Product Information Graph

Product Information Graph

Properties

Element Typeuml:Model

▣  pig Ontology Language Diagram

The ontology language (pig-ol) of the Product Information Graph (pig) has the following characteristics:

  • There are concepts for entities, relationships and organizers, all being elements of the graph. For example, entity concepts may be Requirement or Function, relationship concepts may be satisfies or refines and organizer concepts may be 'Package', 'Folder' or 'View'. Like entities, the organizers are elements (nodes) of the graph, but the latter are not part of the model and thus no model elements.
  • Element concepts (thus entity, relationship or organizer) usually are related to eligible property concepts. E.g. a Requirement would have properties Title, Description and Priority.
  • Property concepts may be related to eligible value concepts. For example, a property Priority may have enumerated values high, medium and low.
  • A relationship concept may define eligible concepts for source and target. For example, a relationship satisfies may have a source Function or Component and a target Requirement, but nothing else. If no eligible source is specified, all entities are eligible. The same rule applies to eligible targets.
  • For The time being, not all attributes of the concepts are shown the diagram.

Note: This class diagram may indeed cause confusion: The concrete classes and the named associations contribute to the semantics of the ontology, whereas the abstract classes and the UML:Generalization are construction aids to simplify the diagram. Thus, an UML:Generalization indicates that all attributes and named associations apply to all of the subordinated classes, whereas associations of type pig-ol:specializesX indicate that one concept is a specialization of another.

Data according to this information model (thus an ontology defined with the classes of the ontology language shown here) can be used to generate the ontology classes in the upper part of the pig Metamodel Diagram:

  • A concrete concept (an instantiation of a shown class) becomes a corresponding class with a shape.- For this purpose the concepts shown here must have certain attributes (which are not shown yet) to generate the details needed.

In addition, this information model can be implemented with the pig metamodel. Thus, the same software can be used to edit the ontology based on this ontology language which is used to manage the application data later on:

LevelOntology DefinitionData Management
Ontology Languagemanually →pig-ol classes
Ontology =
Application Language
pig-ol instances→ generate →pig classes
Applicationpig instances

To discuss and validate:

  • Shall the ontology language be expressive enough to define the OMG Commons Ontology Library? Consider property restrictions, domains and ranges.
  • Similarly, should the IOF be expressible, as well?
  • The existing DDP Dictionary and the SpecIF Ontology can be expressed.
  • Consider the naming of concept classes: pig-ol:Resource instead of pig-ol:Entity and pig-ol:Predicate rather than pig-ol:Relationship?

pig Ontology Language Diagram.png

Properties

Element TypeDiagram
NotationUML Class Diagram

Statements

▣  pig Ontology Language Diagramshows☆  pig-ol:Property
☆  pig-ol:Concept
☆  pig-ol:Organizer
☆  pig-ol:ModelElement
☆  pig-ol:Relationship
○  pig-ol:Name-hasTarget
☆  pig-ol:Element
○  sh:maxCount
○  rdfs:comment
☆  pig-ol:Value
○  sh:minCount
○  pig-ol:Name-hasSource
☆  pig-ol:Entity
○  rdfs:label

▣  pig Metamodel Diagram

The metamodel is a 'platform independent model' in OMG terms and defines both the classes (above the dashed line) and their instances (below the dashed line) for the Product Information Graph (PIG). Both the classes and the instances are data:

  • pig:Entity and pig:anEntity are used for model elements, such as a requirement, a function or a system component.
  • pig:Relationship and pig:aRelationship are used for relations between elements, such as a 'system component satisfies a requirement'. A relationship class may define the classes of entities or relationships, whose instances are eligible as source or target in a directed relationship.
  • pig:Organizer and pig:anOrganizer are used for diagrams, chapters, folders or similar with references to any pig:Element, which is an entity, relationship or organizer. An organizer class may define the classes of entities, relationships or organizers, whose instances are eligible to be referenced (i.e. organized).
  • Every pig:Organizer, pig:Entity and pig:Relationship can define an individual set of pig:Property, each of which specifies a data type and range. For example, a requirement might have three properties, such as a „Title“ with data type „String of max. length 96“, a „Description“ with data type „String“ without restriction and a „Priority“ with data type „String with a single choice of ['high', 'medium', 'low']“.
  • A data type may be any of those known from XML. As described above, some parameters may restrict the value range, such as minimum and/or maximum value of a number, a string length or a set of enumerated values.
  • pig:anOrganizer, pig:anEntity or pig:aRelationship is an instance of a pig:Organizer, pig:Entity or pig:Relationship respectively. Each instance usually has a set of pig:aProperty corresponding with the pig:Property of its class.

Note:

  • The prefixes 'pig*', 'sh*' and 'dcterms*' designate namespaces. In other technical environments such as RDF, XML and JSON, a namespace would be separated with ':' more appropriately, which may lead to confusion in UML. The separator '*' may be replaced during transformation.
  • As usual, the classes with white background and italic name are abstract.

pig Metamodel Diagram.png

Properties

Element TypeDiagram
NotationUML Class Diagram

Statements

▣  pig Metamodel Diagramshows○  pig:value
☆  pig:Identifiable
☆  pig:anOrganizer
○  sh:minInclusive
○  sh:datatype
☆  pig:Property
pig:ModelElement
○  pig:icon
○  dcterms:creator
☆  pig:Element
○  sh:maxCount
○  dcterms:description
○  dcterms:title
☆  pig:aModelElement
○  sh:maxInclusive
○  pig:priorRevision
○  dcterms:modified
☆  pig:aRelationship
pig:Entity
pig:Relationship
○  sh:minCount
☆  pig:anElement
○  sh:pattern
pig:Organizer
☆  pig:anEntity
☆  pig:aProperty
○  sh:maxLength
○  pig:id
○  pig:revision
○  sh:defaultValue

pig:ModelElement

A superclass of all model elements with class pig:Entity and pig:Relationship.

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its subclasses.

Properties

Element TypeClass

Statements

pig:Relationship
pig:eligibleSourcepig:ModelElement
pig:Relationship
pig:eligibleTargetpig:ModelElement
pig:Relationship
pig:Entity
specializespig:ModelElement
pig:ModelElementspecializes☆  pig:Element
▣  pig Metamodel Diagram
showspig:ModelElement

pig:Relationship

pig:Relationship is a class of relationships between two entities, such as a 'system component satisfies a requirement'. All relationships are bilateral and directed. This allows for statements according to propositional logic. They can be easily mapped to many technologies such as RDF or ReqIF.

Details:

  • A pig:relationship must have a title (name) and may have a description (definition).
  • A pig:relationship lists zero to many property classes its instances may have.
  • A pig:relationship may define entitiy classes or relationship classes, whose instances are eligible as source resp. target in a relationship. If none are defined, all entities and relationships are eligible.
  • A pig:relationship is reified (as a rdfs:Resource in RDF), so that it can be a source or target of another relationship as described before ... to make a statement on a statement.
  • The definitions of the relationship together with those of the properties may be used to build user dialogs and to check its instances whether all properties have a correct type and value range as well as whether all required ones are present.

Properties

Element TypeClass

Statements

pig:Relationshippig:eligibleSourcepig:ModelElement
pig:Relationshippig:eligibleTargetpig:ModelElement
☆  pig:aRelationship
pig:instanceOfpig:Relationship
pig:Relationshipspecializespig:ModelElement
▣  pig Metamodel Diagram
showspig:Relationship

☆  pig:aModelElement

A superclass of pig:anEntity and pig:aRelationship. Thus, an instance of pig:aRelationship may be related to any pig:anEntity or pig:aRelationship with pig:hasSoure and pig:hasTarget.

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its subclasses.

Properties

Element TypeClass

Statements

☆  pig:aRelationship
pig:hasSource☆  pig:aModelElement
☆  pig:aRelationship
pig:hasTarget☆  pig:aModelElement
☆  pig:aRelationship
☆  pig:anEntity
specializes☆  pig:aModelElement
☆  pig:aModelElementspecializes☆  pig:anElement
▣  pig Metamodel Diagram
shows☆  pig:aModelElement

☆  pig:aRelationship

Is used for relations between entities, such as a 'system component satisfies a requirement'. All relationships are bilateral and directed.

Details:

  • This is a reified graph edge and must have exactly one source and target entity each. The source must be an entity or relationship with a class defined by an eligible source class of its pig:Relationship. The same applies for the target.
  • A relationship may have zero to many properties as defined in its class.

Properties

Element TypeClass

Statements

☆  pig:aRelationshippig:instanceOfpig:Relationship
☆  pig:aRelationshippig:hasSource☆  pig:aModelElement
☆  pig:aRelationshippig:hasTarget☆  pig:aModelElement
☆  pig:aRelationshipspecializes☆  pig:aModelElement
▣  pig Metamodel Diagram
shows☆  pig:aRelationship

☆  pig:Property

Every class pig:Entity, pig:Relationship and pig:Organizer can have an individual set of pig:Property, each of which is uniquely defined by a data type and range. For example, a requirement might have a list with three pig:Property, such as Title with data type „String of max. length 96“, Description with data type „String“ wíthout length restriction and Priority with data type „String with a single choice of ['high', 'medium', 'low']“.

Details:

  • A property class must have a title named dcterms:title and may have a description named dcterms:description.
  • A property class may define a minimum and maximum count of values.
  • A property class may define a default value which must of course satisfy its own data type.
  • A property class may be composed of multiple property classes to form a structured data type (xs:complexType). The structure must be a tree, i.e without cyclic dependency.

Properties

Element TypeClass

Statements

☆  pig:Propertyhas part○  sh:datatype
○  sh:minCount
○  sh:maxCount
○  sh:maxLength
○  sh:pattern
○  sh:minInclusive
○  sh:maxInclusive
○  sh:defaultValue
☆  pig:aProperty
pig:instanceOf☆  pig:Property
☆  pig:Propertypig:composedProperty☆  pig:Property
☆  pig:Element
pig:eligibleProperty☆  pig:Property
☆  pig:Propertyspecializes☆  pig:Identifiable
▣  pig Metamodel Diagram
shows☆  pig:Property

○  sh:datatype

One of the xs: data types. Shall be anyURI.

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:datatype
▣  pig Metamodel Diagram
shows○  sh:datatype

○  sh:minCount

tbd: Use 'xs:minOccurs' instead?

Properties

Element Typeuml:Property

Statements

☆  pig:Property
☆  pig-ol:Property
has part○  sh:minCount
▣  pig Metamodel Diagram
▣  pig Ontology Language Diagram
shows○  sh:minCount

○  sh:maxCount

tbd: Use 'xs:maxOccurs' instead?

Properties

Element Typeuml:Property

Statements

☆  pig:Property
☆  pig-ol:Property
has part○  sh:maxCount
▣  pig Metamodel Diagram
▣  pig Ontology Language Diagram
shows○  sh:maxCount

○  sh:maxLength

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:maxLength
▣  pig Metamodel Diagram
shows○  sh:maxLength

○  sh:pattern

A Regular Expression that must evaluate successfully with the property value. Can also be used to limit the number of decimals of a number, as there is no restriction like xs:fractionDigits in SHACL.

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:pattern
▣  pig Metamodel Diagram
shows○  sh:pattern

○  sh:minInclusive

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:minInclusive
▣  pig Metamodel Diagram
shows○  sh:minInclusive

○  sh:maxInclusive

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:maxInclusive
▣  pig Metamodel Diagram
shows○  sh:maxInclusive

○  sh:defaultValue

Optional default value(s) in case a modelElement's property does not have an individual value. It must follow the definitions of the PropertyClass, of course.

Here, the attribute is named 'sh:defaultValue' for clarity and may just be called 'values' in an implementation, as all restrictions and operations of a property's values apply.

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:defaultValue
▣  pig Metamodel Diagram
shows○  sh:defaultValue

☆  pig:aProperty

Each property belongs to a single entity, relationship or organizer. A property has no identifier, thus a property update results in a new revision of the element to which it belongs.

Details:

  • A property may be required or not depending on the attributes sh:minCount and sh:maxCount of its class, but an existing property must have a value.
  • A property may be composed of multiple properties to form a structured data set according to its class pig:Property.

Properties

Element TypeClass

Statements

☆  pig:aPropertyhas part○  pig:value
☆  pig:aPropertypig:instanceOf☆  pig:Property
☆  pig:aPropertypig:aComposedProperty☆  pig:aProperty
☆  pig:anElement
pig:hasProperty☆  pig:aProperty
▣  pig Metamodel Diagram
shows☆  pig:aProperty

○  pig:value

Properties

Element Typeuml:Property

Statements

☆  pig:aProperty
has part○  pig:value
▣  pig Metamodel Diagram
shows○  pig:value

pig:Entity

pig:Entity is a class of model elements, such as a system component or a requirement.

Details:

  • A pig:entity should have a title (name) and may have a description (definition).
  • A pig:entity lists one to many classes of properties its instances may have. (No pig:property at all is formally allowed to be consistent with other elements, but an entitiy without property has no reason to exist.)
  • The definitions of the entity together with those of the properties may be used to build user dialogs and to check its instances whether all property values have a correct type and value range as well as whether all required ones are present.

Properties

Element TypeClass

Statements

☆  pig:anEntity
pig:instanceOfpig:Entity
pig:Entityspecializespig:ModelElement
▣  pig Metamodel Diagram
showspig:Entity

☆  pig:anEntity

Is used for model elements such as a system component or a requirement.

Details:

  • An entity should have at least one property as properties are the only payload an entity can carry. (No property at all is formally allowed to be consistent with other elements, but an entity without property has no reason to exist.)
  • The entity's class lists the classes of properties it may have.

Properties

Element TypeClass

Statements

☆  pig:anEntitypig:instanceOfpig:Entity
☆  pig:anEntityspecializes☆  pig:aModelElement
▣  pig Metamodel Diagram
shows☆  pig:anEntity

☆  pig:aHierarchyRoot

Anchors hierarchies (trees) whose leaves point to a pig:Entity each. Thus, hierarchies with their items organize entities for a given target group or purpose, such as a bill of material (BoM) or a document outline. A given entity may be referenced by none, one or multiple items in one or more hierarchies.

Properties

Element TypeClass

☆  pig:Identifiable

All specializations are identifiable and under revision control.

Details:

  • The class is abstract.
  • All attributes are inherited by its subclasses.

Properties

Element TypeClass

Statements

☆  pig:Identifiablehas part○  pig:id
○  pig:revision
○  pig:priorRevision
○  dcterms:modified
○  dcterms:creator
○  dcterms:title
○  dcterms:description
☆  pig:Property
☆  pig:Element
☆  pig:anElement
specializes☆  pig:Identifiable
▣  pig Metamodel Diagram
shows☆  pig:Identifiable

○  pig:id

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  pig:id
▣  pig Metamodel Diagram
shows○  pig:id

○  pig:revision

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  pig:revision
▣  pig Metamodel Diagram
shows○  pig:revision

○  pig:priorRevision

Links to the previous revisions of the identifiable item. It is a list with

  • zero elements, if it is the first revision,
  • one element for a subsequent revision or
  • two elements when two branches are merged.

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  pig:priorRevision
▣  pig Metamodel Diagram
shows○  pig:priorRevision

○  dcterms:modified

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  dcterms:modified
▣  pig Metamodel Diagram
shows○  dcterms:modified

○  dcterms:creator

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  dcterms:creator
▣  pig Metamodel Diagram
shows○  dcterms:creator

○  dcterms:title

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  dcterms:title
▣  pig Metamodel Diagram
shows○  dcterms:title

○  dcterms:description

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  dcterms:description
▣  pig Metamodel Diagram
shows○  dcterms:description

☆  pig:Element

A superclass of pig:Entity (class of entities), pig:Relationship (class of relationships) and pig:Organizer (class of package, folder, view etc.). Any of those classes may be selected by a pig:Organizer to restrict the eligible elements. Thus, a folder class may be defined allowing its instances to contain activity diagrams and activities, but not any other.

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its subclasses.

Properties

Element TypeClass

Statements

☆  pig:Elementhas part○  pig:icon
pig:Organizer
pig:eligibleElement☆  pig:Element
☆  pig:Elementpig:eligibleProperty☆  pig:Property
pig:ModelElement
pig:Organizer
specializes☆  pig:Element
☆  pig:Elementspecializes☆  pig:Identifiable
▣  pig Metamodel Diagram
shows☆  pig:Element

○  pig:icon

Properties

Element Typeuml:Property

Statements

☆  pig:Element
has part○  pig:icon
▣  pig Metamodel Diagram
shows○  pig:icon

pig:Organizer

pig:OrganizerClass is used for types of diagrams, chapters, folders and similar with links to any pig:Element, which is an entity, relationship or organizer.

Details:

  • An organizer class must have a title (name) and may have a description (definition).
  • An organizer class lists zero to many classes of properties its instances may have.
  • An organizer class may define the classes of entities, relationships or organizers, whose instances are eligible to be linked (i.e. organized). If none are defined, all entities, relationships and organizers are eligible.
  • The definitions of the organizer class together with those of the property classes may be used to build user dialogs and to check its instances whether all properties have a correct type and value range as well as whether all required ones are present.

Properties

Element TypeClass

Statements

pig:Organizerpig:eligibleElement☆  pig:Element
☆  pig:anOrganizer
pig:instanceOfpig:Organizer
pig:Organizerspecializes☆  pig:Element
▣  pig Metamodel Diagram
showspig:Organizer

☆  pig:anElement

A superclass of pig:anEntity, pig:aRelationship and pig:Organizer. Thus, an instance of pig:Organizer may be related with pig:hasElement to any instance of pig:anEntity, pig:aRelationship or pig:anOrganizer, as long as the related element's class is among the pig:Organizer's eligible element classes.

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its subclasses.

Properties

Element TypeClass

Statements

☆  pig:anOrganizer
pig:hasElement☆  pig:anElement
☆  pig:anElementpig:hasProperty☆  pig:aProperty
☆  pig:aModelElement
☆  pig:anOrganizer
specializes☆  pig:anElement
☆  pig:anElementspecializes☆  pig:Identifiable
▣  pig Metamodel Diagram
shows☆  pig:anElement

☆  pig:anOrganizer

Is used for diagrams, chapters, folders and similar with references to any pig:anElement, which is an entity, relationship or organizer. An organizer class may define the classes of entities, relationships or organizers, whose instances are eligible to be refernced (i.e. organized).

Details:

  • An organizer must have at least one refernce to an entity, relationship or organizer with a class defined in its pig:Organizer. If none is defined, all entities, relationships and organizers are eligible.
  • A organizer may have zero to many properties as defined in its class.

Properties

Element TypeClass

Statements

☆  pig:anOrganizerpig:hasElement☆  pig:anElement
☆  pig:anOrganizerpig:instanceOfpig:Organizer
☆  pig:anOrganizerspecializes☆  pig:anElement
▣  pig Metamodel Diagram
shows☆  pig:anOrganizer

☆  pig-ol:Organizer

Is a concept used for an organizer which is a special graph element. An organizer is an element organizing model elements. An example is a list of requirements or a diagram using a certain notation which depicts selected model elements.

Properties

Element TypeClass

Statements

☆  pig-ol:Organizerpig-ol:eligibleElement☆  pig-ol:Element
☆  pig-ol:Organizerpig-ol:specializesOrganizer☆  pig-ol:Organizer
☆  pig-ol:Organizerspecializes☆  pig-ol:Element
▣  pig Ontology Language Diagram
shows☆  pig-ol:Organizer

☆  pig-ol:Entity

Is a concept used for an entity which is a special graph element. An entity is a model element representing a resource or object.

Properties

Element TypeClass

Statements

☆  pig-ol:Entitypig-ol:specializesEntity☆  pig-ol:Entity
☆  pig-ol:Entityspecializes☆  pig-ol:ModelElement
▣  pig Ontology Language Diagram
shows☆  pig-ol:Entity

☆  pig-ol:Relationship

Is a concept used for a relationship which is a special graph element. A relationship is a model element representing a statement on two resources or relation between two objects.

Properties

Element TypeClass

Statements

☆  pig-ol:Relationshiphas part○  pig-ol:Name-hasSource
○  pig-ol:Name-hasTarget
☆  pig-ol:Relationshippig-ol:eligibleSource☆  pig-ol:ModelElement
☆  pig-ol:Relationshippig-ol:eligibleTarget☆  pig-ol:ModelElement
☆  pig-ol:Relationshippig-ol:specializesRelationship☆  pig-ol:Relationship
☆  pig-ol:Relationshipspecializes☆  pig-ol:ModelElement
▣  pig Ontology Language Diagram
shows☆  pig-ol:Relationship

○  pig-ol:Name-hasSource

Name for the objectProperty pointing at the source of the relationship.

Properties

Element Typeuml:Property

Statements

☆  pig-ol:Relationship
has part○  pig-ol:Name-hasSource
▣  pig Ontology Language Diagram
shows○  pig-ol:Name-hasSource

○  pig-ol:Name-hasTarget

Name for the objectProperty pointing at the target of the relationship.

Properties

Element Typeuml:Property

Statements

☆  pig-ol:Relationship
has part○  pig-ol:Name-hasTarget
▣  pig Ontology Language Diagram
shows○  pig-ol:Name-hasTarget

☆  pig-ol:Property

A property such as Title, Description or Priority.

Properties

Element TypeClass

Statements

☆  pig-ol:Propertyhas part○  sh:minCount
○  sh:maxCount
☆  pig-ol:Propertypig-ol:enumeratedValue☆  pig-ol:Value
☆  pig-ol:Element
pig-ol:eligibleProperty☆  pig-ol:Property
☆  pig-ol:Propertypig-ol:composesProperty☆  pig-ol:Property
☆  pig-ol:Propertyspecializes☆  pig-ol:Concept
▣  pig Ontology Language Diagram
shows☆  pig-ol:Property

○  sh:minCount

tbd: Use 'xs:minOccurs' instead?

Properties

Element Typeuml:Property

Statements

☆  pig:Property
☆  pig-ol:Property
has part○  sh:minCount
▣  pig Metamodel Diagram
▣  pig Ontology Language Diagram
shows○  sh:minCount

○  sh:maxCount

tbd: Use 'xs:maxOccurs' instead?

Properties

Element Typeuml:Property

Statements

☆  pig:Property
☆  pig-ol:Property
has part○  sh:maxCount
▣  pig Metamodel Diagram
▣  pig Ontology Language Diagram
shows○  sh:maxCount

☆  pig-ol:Value

A value such as high or low for use with a property named Priority. Values can only be assigned to leaves in a complex (= composed) property.

Properties

Element TypeClass

Statements

☆  pig-ol:Property
pig-ol:enumeratedValue☆  pig-ol:Value
☆  pig-ol:Valuespecializes☆  pig-ol:Concept
▣  pig Ontology Language Diagram
shows☆  pig-ol:Value

☆  pig-ol:Concept

A concept is a unit of knowledge created by a unique combination of characteristics. It corresponds to a mvf:Entry, see Multiple Vocabulary Facility (MVF).

A concept is considered a normalized (cross-domain) term in the Product Information Graph and can be replaced by a term used in a certain domain or community for display. A concept name (= title) usually is given with a namespace.

Properties

Element TypeClass

Statements

☆  pig-ol:Concepthas part○  rdfs:label
○  rdfs:comment
☆  pig-ol:Property
☆  pig-ol:Value
☆  pig-ol:Element
specializes☆  pig-ol:Concept
▣  pig Ontology Language Diagram
shows☆  pig-ol:Concept

○  rdfs:label

Properties

Element Typeuml:Property

Statements

☆  pig-ol:Concept
has part○  rdfs:label
▣  pig Ontology Language Diagram
shows○  rdfs:label

○  rdfs:comment

Properties

Element Typeuml:Property

Statements

☆  pig-ol:Concept
has part○  rdfs:comment
▣  pig Ontology Language Diagram
shows○  rdfs:comment

☆  pig-ol:Element

Is a concept used for a graph element, namely an entity, relationship or organizer.

Properties

Element TypeClass

Statements

☆  pig-ol:Organizer
pig-ol:eligibleElement☆  pig-ol:Element
☆  pig-ol:Elementpig-ol:eligibleProperty☆  pig-ol:Property
☆  pig-ol:Organizer
☆  pig-ol:ModelElement
specializes☆  pig-ol:Element
☆  pig-ol:Elementspecializes☆  pig-ol:Concept
▣  pig Ontology Language Diagram
shows☆  pig-ol:Element

☆  pig-ol:ModelElement

Properties

Element TypeClass

Statements

☆  pig-ol:Relationship
pig-ol:eligibleSource☆  pig-ol:ModelElement
☆  pig-ol:Relationship
pig-ol:eligibleTarget☆  pig-ol:ModelElement
☆  pig-ol:Entity
☆  pig-ol:Relationship
specializes☆  pig-ol:ModelElement
☆  pig-ol:ModelElementspecializes☆  pig-ol:Element
▣  pig Ontology Language Diagram
shows☆  pig-ol:ModelElement

Model Elements (Glossary)

Properties

Element TypeModel Elements (Glossary)

○  dcterms:creator

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  dcterms:creator
▣  pig Metamodel Diagram
shows○  dcterms:creator

○  dcterms:description

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  dcterms:description
▣  pig Metamodel Diagram
shows○  dcterms:description

○  dcterms:modified

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  dcterms:modified
▣  pig Metamodel Diagram
shows○  dcterms:modified

○  dcterms:title

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  dcterms:title
▣  pig Metamodel Diagram
shows○  dcterms:title

☆  pig-ol:Concept

A concept is a unit of knowledge created by a unique combination of characteristics. It corresponds to a mvf:Entry, see Multiple Vocabulary Facility (MVF).

A concept is considered a normalized (cross-domain) term in the Product Information Graph and can be replaced by a term used in a certain domain or community for display. A concept name (= title) usually is given with a namespace.

Properties

Element TypeClass

Statements

☆  pig-ol:Concepthas part○  rdfs:label
○  rdfs:comment
☆  pig-ol:Property
☆  pig-ol:Value
☆  pig-ol:Element
specializes☆  pig-ol:Concept
▣  pig Ontology Language Diagram
shows☆  pig-ol:Concept

☆  pig-ol:Element

Is a concept used for a graph element, namely an entity, relationship or organizer.

Properties

Element TypeClass

Statements

☆  pig-ol:Organizer
pig-ol:eligibleElement☆  pig-ol:Element
☆  pig-ol:Elementpig-ol:eligibleProperty☆  pig-ol:Property
☆  pig-ol:Organizer
☆  pig-ol:ModelElement
specializes☆  pig-ol:Element
☆  pig-ol:Elementspecializes☆  pig-ol:Concept
▣  pig Ontology Language Diagram
shows☆  pig-ol:Element

☆  pig-ol:Entity

Is a concept used for an entity which is a special graph element. An entity is a model element representing a resource or object.

Properties

Element TypeClass

Statements

☆  pig-ol:Entitypig-ol:specializesEntity☆  pig-ol:Entity
☆  pig-ol:Entityspecializes☆  pig-ol:ModelElement
▣  pig Ontology Language Diagram
shows☆  pig-ol:Entity

☆  pig-ol:ModelElement

Properties

Element TypeClass

Statements

☆  pig-ol:Relationship
pig-ol:eligibleSource☆  pig-ol:ModelElement
☆  pig-ol:Relationship
pig-ol:eligibleTarget☆  pig-ol:ModelElement
☆  pig-ol:Entity
☆  pig-ol:Relationship
specializes☆  pig-ol:ModelElement
☆  pig-ol:ModelElementspecializes☆  pig-ol:Element
▣  pig Ontology Language Diagram
shows☆  pig-ol:ModelElement

○  pig-ol:Name-hasSource

Name for the objectProperty pointing at the source of the relationship.

Properties

Element Typeuml:Property

Statements

☆  pig-ol:Relationship
has part○  pig-ol:Name-hasSource
▣  pig Ontology Language Diagram
shows○  pig-ol:Name-hasSource

○  pig-ol:Name-hasTarget

Name for the objectProperty pointing at the target of the relationship.

Properties

Element Typeuml:Property

Statements

☆  pig-ol:Relationship
has part○  pig-ol:Name-hasTarget
▣  pig Ontology Language Diagram
shows○  pig-ol:Name-hasTarget

☆  pig-ol:Organizer

Is a concept used for an organizer which is a special graph element. An organizer is an element organizing model elements. An example is a list of requirements or a diagram using a certain notation which depicts selected model elements.

Properties

Element TypeClass

Statements

☆  pig-ol:Organizerpig-ol:eligibleElement☆  pig-ol:Element
☆  pig-ol:Organizerpig-ol:specializesOrganizer☆  pig-ol:Organizer
☆  pig-ol:Organizerspecializes☆  pig-ol:Element
▣  pig Ontology Language Diagram
shows☆  pig-ol:Organizer

☆  pig-ol:Property

A property such as Title, Description or Priority.

Properties

Element TypeClass

Statements

☆  pig-ol:Propertyhas part○  sh:minCount
○  sh:maxCount
☆  pig-ol:Propertypig-ol:enumeratedValue☆  pig-ol:Value
☆  pig-ol:Element
pig-ol:eligibleProperty☆  pig-ol:Property
☆  pig-ol:Propertypig-ol:composesProperty☆  pig-ol:Property
☆  pig-ol:Propertyspecializes☆  pig-ol:Concept
▣  pig Ontology Language Diagram
shows☆  pig-ol:Property

☆  pig-ol:Relationship

Is a concept used for a relationship which is a special graph element. A relationship is a model element representing a statement on two resources or relation between two objects.

Properties

Element TypeClass

Statements

☆  pig-ol:Relationshiphas part○  pig-ol:Name-hasSource
○  pig-ol:Name-hasTarget
☆  pig-ol:Relationshippig-ol:eligibleSource☆  pig-ol:ModelElement
☆  pig-ol:Relationshippig-ol:eligibleTarget☆  pig-ol:ModelElement
☆  pig-ol:Relationshippig-ol:specializesRelationship☆  pig-ol:Relationship
☆  pig-ol:Relationshipspecializes☆  pig-ol:ModelElement
▣  pig Ontology Language Diagram
shows☆  pig-ol:Relationship

☆  pig-ol:Value

A value such as high or low for use with a property named Priority. Values can only be assigned to leaves in a complex (= composed) property.

Properties

Element TypeClass

Statements

☆  pig-ol:Property
pig-ol:enumeratedValue☆  pig-ol:Value
☆  pig-ol:Valuespecializes☆  pig-ol:Concept
▣  pig Ontology Language Diagram
shows☆  pig-ol:Value

☆  pig:aModelElement

A superclass of pig:anEntity and pig:aRelationship. Thus, an instance of pig:aRelationship may be related to any pig:anEntity or pig:aRelationship with pig:hasSoure and pig:hasTarget.

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its subclasses.

Properties

Element TypeClass

Statements

☆  pig:aRelationship
pig:hasSource☆  pig:aModelElement
☆  pig:aRelationship
pig:hasTarget☆  pig:aModelElement
☆  pig:aRelationship
☆  pig:anEntity
specializes☆  pig:aModelElement
☆  pig:aModelElementspecializes☆  pig:anElement
▣  pig Metamodel Diagram
shows☆  pig:aModelElement

☆  pig:anElement

A superclass of pig:anEntity, pig:aRelationship and pig:Organizer. Thus, an instance of pig:Organizer may be related with pig:hasElement to any instance of pig:anEntity, pig:aRelationship or pig:anOrganizer, as long as the related element's class is among the pig:Organizer's eligible element classes.

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its subclasses.

Properties

Element TypeClass

Statements

☆  pig:anOrganizer
pig:hasElement☆  pig:anElement
☆  pig:anElementpig:hasProperty☆  pig:aProperty
☆  pig:aModelElement
☆  pig:anOrganizer
specializes☆  pig:anElement
☆  pig:anElementspecializes☆  pig:Identifiable
▣  pig Metamodel Diagram
shows☆  pig:anElement

☆  pig:anEntity

Is used for model elements such as a system component or a requirement.

Details:

  • An entity should have at least one property as properties are the only payload an entity can carry. (No property at all is formally allowed to be consistent with other elements, but an entity without property has no reason to exist.)
  • The entity's class lists the classes of properties it may have.

Properties

Element TypeClass

Statements

☆  pig:anEntitypig:instanceOfpig:Entity
☆  pig:anEntityspecializes☆  pig:aModelElement
▣  pig Metamodel Diagram
shows☆  pig:anEntity

☆  pig:anOrganizer

Is used for diagrams, chapters, folders and similar with references to any pig:anElement, which is an entity, relationship or organizer. An organizer class may define the classes of entities, relationships or organizers, whose instances are eligible to be refernced (i.e. organized).

Details:

  • An organizer must have at least one refernce to an entity, relationship or organizer with a class defined in its pig:Organizer. If none is defined, all entities, relationships and organizers are eligible.
  • A organizer may have zero to many properties as defined in its class.

Properties

Element TypeClass

Statements

☆  pig:anOrganizerpig:hasElement☆  pig:anElement
☆  pig:anOrganizerpig:instanceOfpig:Organizer
☆  pig:anOrganizerspecializes☆  pig:anElement
▣  pig Metamodel Diagram
shows☆  pig:anOrganizer

☆  pig:aProperty

Each property belongs to a single entity, relationship or organizer. A property has no identifier, thus a property update results in a new revision of the element to which it belongs.

Details:

  • A property may be required or not depending on the attributes sh:minCount and sh:maxCount of its class, but an existing property must have a value.
  • A property may be composed of multiple properties to form a structured data set according to its class pig:Property.

Properties

Element TypeClass

Statements

☆  pig:aPropertyhas part○  pig:value
☆  pig:aPropertypig:instanceOf☆  pig:Property
☆  pig:aPropertypig:aComposedProperty☆  pig:aProperty
☆  pig:anElement
pig:hasProperty☆  pig:aProperty
▣  pig Metamodel Diagram
shows☆  pig:aProperty

☆  pig:aRelationship

Is used for relations between entities, such as a 'system component satisfies a requirement'. All relationships are bilateral and directed.

Details:

  • This is a reified graph edge and must have exactly one source and target entity each. The source must be an entity or relationship with a class defined by an eligible source class of its pig:Relationship. The same applies for the target.
  • A relationship may have zero to many properties as defined in its class.

Properties

Element TypeClass

Statements

☆  pig:aRelationshippig:instanceOfpig:Relationship
☆  pig:aRelationshippig:hasSource☆  pig:aModelElement
☆  pig:aRelationshippig:hasTarget☆  pig:aModelElement
☆  pig:aRelationshipspecializes☆  pig:aModelElement
▣  pig Metamodel Diagram
shows☆  pig:aRelationship

☆  pig:Element

A superclass of pig:Entity (class of entities), pig:Relationship (class of relationships) and pig:Organizer (class of package, folder, view etc.). Any of those classes may be selected by a pig:Organizer to restrict the eligible elements. Thus, a folder class may be defined allowing its instances to contain activity diagrams and activities, but not any other.

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its subclasses.

Properties

Element TypeClass

Statements

☆  pig:Elementhas part○  pig:icon
pig:Organizer
pig:eligibleElement☆  pig:Element
☆  pig:Elementpig:eligibleProperty☆  pig:Property
pig:ModelElement
pig:Organizer
specializes☆  pig:Element
☆  pig:Elementspecializes☆  pig:Identifiable
▣  pig Metamodel Diagram
shows☆  pig:Element

pig:Entity

pig:Entity is a class of model elements, such as a system component or a requirement.

Details:

  • A pig:entity should have a title (name) and may have a description (definition).
  • A pig:entity lists one to many classes of properties its instances may have. (No pig:property at all is formally allowed to be consistent with other elements, but an entitiy without property has no reason to exist.)
  • The definitions of the entity together with those of the properties may be used to build user dialogs and to check its instances whether all property values have a correct type and value range as well as whether all required ones are present.

Properties

Element TypeClass

Statements

☆  pig:anEntity
pig:instanceOfpig:Entity
pig:Entityspecializespig:ModelElement
▣  pig Metamodel Diagram
showspig:Entity

○  pig:icon

Properties

Element Typeuml:Property

Statements

☆  pig:Element
has part○  pig:icon
▣  pig Metamodel Diagram
shows○  pig:icon

○  pig:id

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  pig:id
▣  pig Metamodel Diagram
shows○  pig:id

☆  pig:Identifiable

All specializations are identifiable and under revision control.

Details:

  • The class is abstract.
  • All attributes are inherited by its subclasses.

Properties

Element TypeClass

Statements

☆  pig:Identifiablehas part○  pig:id
○  pig:revision
○  pig:priorRevision
○  dcterms:modified
○  dcterms:creator
○  dcterms:title
○  dcterms:description
☆  pig:Property
☆  pig:Element
☆  pig:anElement
specializes☆  pig:Identifiable
▣  pig Metamodel Diagram
shows☆  pig:Identifiable

pig:ModelElement

A superclass of all model elements with class pig:Entity and pig:Relationship.

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its subclasses.

Properties

Element TypeClass

Statements

pig:Relationship
pig:eligibleSourcepig:ModelElement
pig:Relationship
pig:eligibleTargetpig:ModelElement
pig:Relationship
pig:Entity
specializespig:ModelElement
pig:ModelElementspecializes☆  pig:Element
▣  pig Metamodel Diagram
showspig:ModelElement

pig:Organizer

pig:OrganizerClass is used for types of diagrams, chapters, folders and similar with links to any pig:Element, which is an entity, relationship or organizer.

Details:

  • An organizer class must have a title (name) and may have a description (definition).
  • An organizer class lists zero to many classes of properties its instances may have.
  • An organizer class may define the classes of entities, relationships or organizers, whose instances are eligible to be linked (i.e. organized). If none are defined, all entities, relationships and organizers are eligible.
  • The definitions of the organizer class together with those of the property classes may be used to build user dialogs and to check its instances whether all properties have a correct type and value range as well as whether all required ones are present.

Properties

Element TypeClass

Statements

pig:Organizerpig:eligibleElement☆  pig:Element
☆  pig:anOrganizer
pig:instanceOfpig:Organizer
pig:Organizerspecializes☆  pig:Element
▣  pig Metamodel Diagram
showspig:Organizer

○  pig:priorRevision

Links to the previous revisions of the identifiable item. It is a list with

  • zero elements, if it is the first revision,
  • one element for a subsequent revision or
  • two elements when two branches are merged.

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  pig:priorRevision
▣  pig Metamodel Diagram
shows○  pig:priorRevision

☆  pig:Property

Every class pig:Entity, pig:Relationship and pig:Organizer can have an individual set of pig:Property, each of which is uniquely defined by a data type and range. For example, a requirement might have a list with three pig:Property, such as Title with data type „String of max. length 96“, Description with data type „String“ wíthout length restriction and Priority with data type „String with a single choice of ['high', 'medium', 'low']“.

Details:

  • A property class must have a title named dcterms:title and may have a description named dcterms:description.
  • A property class may define a minimum and maximum count of values.
  • A property class may define a default value which must of course satisfy its own data type.
  • A property class may be composed of multiple property classes to form a structured data type (xs:complexType). The structure must be a tree, i.e without cyclic dependency.

Properties

Element TypeClass

Statements

☆  pig:Propertyhas part○  sh:datatype
○  sh:minCount
○  sh:maxCount
○  sh:maxLength
○  sh:pattern
○  sh:minInclusive
○  sh:maxInclusive
○  sh:defaultValue
☆  pig:aProperty
pig:instanceOf☆  pig:Property
☆  pig:Propertypig:composedProperty☆  pig:Property
☆  pig:Element
pig:eligibleProperty☆  pig:Property
☆  pig:Propertyspecializes☆  pig:Identifiable
▣  pig Metamodel Diagram
shows☆  pig:Property

pig:Relationship

pig:Relationship is a class of relationships between two entities, such as a 'system component satisfies a requirement'. All relationships are bilateral and directed. This allows for statements according to propositional logic. They can be easily mapped to many technologies such as RDF or ReqIF.

Details:

  • A pig:relationship must have a title (name) and may have a description (definition).
  • A pig:relationship lists zero to many property classes its instances may have.
  • A pig:relationship may define entitiy classes or relationship classes, whose instances are eligible as source resp. target in a relationship. If none are defined, all entities and relationships are eligible.
  • A pig:relationship is reified (as a rdfs:Resource in RDF), so that it can be a source or target of another relationship as described before ... to make a statement on a statement.
  • The definitions of the relationship together with those of the properties may be used to build user dialogs and to check its instances whether all properties have a correct type and value range as well as whether all required ones are present.

Properties

Element TypeClass

Statements

pig:Relationshippig:eligibleSourcepig:ModelElement
pig:Relationshippig:eligibleTargetpig:ModelElement
☆  pig:aRelationship
pig:instanceOfpig:Relationship
pig:Relationshipspecializespig:ModelElement
▣  pig Metamodel Diagram
showspig:Relationship

○  pig:revision

Properties

Element Typeuml:Property

Statements

☆  pig:Identifiable
has part○  pig:revision
▣  pig Metamodel Diagram
shows○  pig:revision

○  pig:value

Properties

Element Typeuml:Property

Statements

☆  pig:aProperty
has part○  pig:value
▣  pig Metamodel Diagram
shows○  pig:value

○  rdfs:comment

Properties

Element Typeuml:Property

Statements

☆  pig-ol:Concept
has part○  rdfs:comment
▣  pig Ontology Language Diagram
shows○  rdfs:comment

○  rdfs:label

Properties

Element Typeuml:Property

Statements

☆  pig-ol:Concept
has part○  rdfs:label
▣  pig Ontology Language Diagram
shows○  rdfs:label

○  sh:datatype

One of the xs: data types. Shall be anyURI.

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:datatype
▣  pig Metamodel Diagram
shows○  sh:datatype

○  sh:defaultValue

Optional default value(s) in case a modelElement's property does not have an individual value. It must follow the definitions of the PropertyClass, of course.

Here, the attribute is named 'sh:defaultValue' for clarity and may just be called 'values' in an implementation, as all restrictions and operations of a property's values apply.

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:defaultValue
▣  pig Metamodel Diagram
shows○  sh:defaultValue

○  sh:maxCount

tbd: Use 'xs:maxOccurs' instead?

Properties

Element Typeuml:Property

Statements

☆  pig:Property
☆  pig-ol:Property
has part○  sh:maxCount
▣  pig Metamodel Diagram
▣  pig Ontology Language Diagram
shows○  sh:maxCount

○  sh:maxInclusive

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:maxInclusive
▣  pig Metamodel Diagram
shows○  sh:maxInclusive

○  sh:maxLength

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:maxLength
▣  pig Metamodel Diagram
shows○  sh:maxLength

○  sh:minCount

tbd: Use 'xs:minOccurs' instead?

Properties

Element Typeuml:Property

Statements

☆  pig:Property
☆  pig-ol:Property
has part○  sh:minCount
▣  pig Metamodel Diagram
▣  pig Ontology Language Diagram
shows○  sh:minCount

○  sh:minInclusive

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:minInclusive
▣  pig Metamodel Diagram
shows○  sh:minInclusive

○  sh:pattern

A Regular Expression that must evaluate successfully with the property value. Can also be used to limit the number of decimals of a number, as there is no restriction like xs:fractionDigits in SHACL.

Properties

Element Typeuml:Property

Statements

☆  pig:Property
has part○  sh:pattern
▣  pig Metamodel Diagram
shows○  sh:pattern