Product Information Graph
Attribute
▣ pig Metamodel Diagram
The following major design goals are pursued:
- Separate syntax and semantics: The metamodel governs the graph pattern independently of the ontology. Any software depends on the metamodel and doesn’t need updating, when the ontology evolves over time.
- Simplify transformation: A graph pattern is designed which may be represented in RDF, JSON-LD, GQL and OOP alike. Bidirectional transformations between any of those formats shall be possible without data-loss. Admittedly this ‘sweet-spot’ has reduced expressivity when compared with any of the listed data formats, but the choice of implementation technologies is maximized. Verification and validation will show that the resulting expressivity of the graph is sufficient for the purpose.
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.

Attribute
| Element-Typ | Diagramm |
| Notation | UML Class Diagram |
Aussagen
▣ pig Ontology Language Diagram
An ontology language describes how an ontology is defined. Some ontologies such as the widely accepted Dublin Core Metadata Initiative name entity properties, while others name entities with their respective properties such as Schema.org. CASCaRA needs more, so the PIG Ontology language encompasses entities, relationships and organizers with their respective properties and value ranges. As a fundamental characteristic, relationships may define eligible entities as source and target to support semantically meaningful graphs: Only relationships of certain relationship classes may be applied to relate a given pair of entities depending on their respective classes.
The terms defined by the ontology language govern the application. In our case, the ontology defined with help of the ontology language provide the terms for entities, relationships, organizers and properties an application shall use. Those ontology terms are used to derive the classes shown in the upper part of the PIG Metamodel Diagram shown before.
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.
Clarification: 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:
| Level | | Ontology Definition | | Data Management |
|---|
| Ontology Language | manually → | pig-ol classes | | |
Ontology = Application Language | | pig-ol instances | → generate → | pig classes |
| Application | | | | pig 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?

Attribute
| Element-Typ | Diagramm |
| Notation | UML Class Diagram |
Aussagen
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.
Attribute
Aussagen
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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
○ sh:datatype
One of the xs: data types. Shall be anyURI.
Attribute
Aussagen
○ sh:minCount
tbd: Use 'xs:minOccurs' instead?
Attribute
Aussagen
○ sh:maxCount
tbd: Use 'xs:maxOccurs' instead?
Attribute
Aussagen
○ sh:maxLength
Attribute
Aussagen
○ 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.
Attribute
Aussagen
○ sh:minInclusive
Attribute
Aussagen
○ sh:maxInclusive
Attribute
Aussagen
○ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
○ pig:value
Attribute
Aussagen
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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
☆ pig:Identifiable
All specializations are identifiable.
Details:
- The class is abstract.
- All attributes are inherited by its subclasses.
- All class level items in the upper part of the diagram are commonly released and made available with an URL path including revision id. Multiple revisions of the class set may exist in parallel.
- All instance level items in the lower part of the diagram may have individual revisions with revision id, modification date and creator. The prior revision id is memorized to support change history and branching. In case of a merge, there are two prior revisions.
Attribute
Aussagen
○ pig:id
Attribute
Aussagen
○ dcterms:title
Attribute
Aussagen
○ dcterms:description
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
○ pig:icon
Attribute
Aussagen
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.
Attribute
Aussagen
☆ 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.
- All subclasses may have individual revisions with revision id, modification date and creator. The prior revision id is memorized to support change history and branching. In case of a merge, there are two prior revisions.
Attribute
Aussagen
○ pig:revision
Attribute
Aussagen
○ 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.
Attribute
Aussagen
○ dcterms:modified
Attribute
Aussagen
○ dcterms:creator
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
○ pig-ol:Name-hasSource
Name for the objectProperty pointing at the source of the relationship.
Attribute
Aussagen
○ pig-ol:Name-hasTarget
Name for the objectProperty pointing at the target of the relationship.
Attribute
Aussagen
☆ pig-ol:Property
A property such as Title, Description or Priority.
Attribute
Aussagen
○ sh:datatype
One of the xs: data types. Shall be anyURI.
Attribute
Aussagen
○ sh:minCount
tbd: Use 'xs:minOccurs' instead?
Attribute
Aussagen
○ sh:maxCount
tbd: Use 'xs:maxOccurs' instead?
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
○ rdfs:label
Attribute
Aussagen
○ rdfs:comment
Attribute
Aussagen
☆ pig-ol:Element
Is a concept used for a graph element, namely an entity, relationship or organizer.
Attribute
Aussagen
☆ pig-ol:ModelElement
Attribute
Aussagen
Model Elements (Glossary)
Attribute
| Element-Typ | Model Elements (Glossary) |
○ dcterms:creator
Attribute
Aussagen
○ dcterms:description
Attribute
Aussagen
○ dcterms:modified
Attribute
Aussagen
○ dcterms:title
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ pig-ol:Element
Is a concept used for a graph element, namely an entity, relationship or organizer.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ pig-ol:ModelElement
Attribute
Aussagen
○ pig-ol:Name-hasSource
Name for the objectProperty pointing at the source of the relationship.
Attribute
Aussagen
○ pig-ol:Name-hasTarget
Name for the objectProperty pointing at the target of the relationship.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ pig-ol:Property
A property such as Title, Description or Priority.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
- All subclasses may have individual revisions with revision id, modification date and creator. The prior revision id is memorized to support change history and branching. In case of a merge, there are two prior revisions.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
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.
Attribute
Aussagen
○ pig:icon
Attribute
Aussagen
○ pig:id
Attribute
Aussagen
☆ pig:Identifiable
All specializations are identifiable.
Details:
- The class is abstract.
- All attributes are inherited by its subclasses.
- All class level items in the upper part of the diagram are commonly released and made available with an URL path including revision id. Multiple revisions of the class set may exist in parallel.
- All instance level items in the lower part of the diagram may have individual revisions with revision id, modification date and creator. The prior revision id is memorized to support change history and branching. In case of a merge, there are two prior revisions.
Attribute
Aussagen
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.
Attribute
Aussagen
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.
Attribute
Aussagen
○ 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.
Attribute
Aussagen
☆ 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.
Attribute
Aussagen
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.
Attribute
Aussagen
○ pig:revision
Attribute
Aussagen
○ pig:value
Attribute
Aussagen
○ rdfs:comment
Attribute
Aussagen
○ rdfs:label
Attribute
Aussagen
○ sh:datatype
One of the xs: data types. Shall be anyURI.
Attribute
Aussagen
○ 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.
Attribute
Aussagen
○ sh:maxCount
tbd: Use 'xs:maxOccurs' instead?
Attribute
Aussagen
○ sh:maxInclusive
Attribute
Aussagen
○ sh:maxLength
Attribute
Aussagen
○ sh:minCount
tbd: Use 'xs:minOccurs' instead?
Attribute
Aussagen
○ sh:minInclusive
Attribute
Aussagen
○ 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.
Attribute
Aussagen