Semantic Identifiers for Metamodel and Data Specifications

Rules for creating identifiers are defined to enable the unique identification of concepts as used and defined in the metamodel of the Asset Administration Shell.

Grammar Semantic Metamodel Identifiers

The following grammar is used to create valid identifiers:

<Namespace> ::= <AAS Namespace> | <ID of Data Specification>

<Namespace Qualifier> ::= <AAS Namespace Qualifier> | <Data Specification Qualifier>

<AAS Namespace> ::= <Shell-Namespace> "/aas/" <Version>

<Shell-Namespace> ::= "https://admin-shell.io/"

<Version> ::= {<Digit>}+ "/" {<Digit>}+ [ "/" {<Character>}+ ]

<Digit> ::= "0"| "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

<Character> ::= characters conformant to regular expression [a..zA..Z-]

For AAS a predefined namespace qualifier is defined. For data specifications this is defined within the corresponding specifications for single data specifications.

<ID of Data Specification> ::= defined per Data Specification

<Data Specification Qualifier> ::= defined per Data Specification

<AAS Namespace Qualifier> ::= "AAS:"

Note: The Data Specification ID should include versioning information. Data Specifications defined by the IDTA typically start with the <AAS namespace> as well. Additionally, a sub-namespace is defined following the rules of the Identification Scheme of the Asset Administration Shell.

A concrete unique identifier is defined as follows:

<AAS Unique Concept Identifier> ::= (<Namespace> | <Namespace Qualifier>) "/" <AAS Concept Identifier>

<AAS Concept Identifier> ::= <AAS Class Name> [( <AAS Attribute> | <AAS Enumeration>)]

<AAS Attribute> ::= "/" <AAS Attribute Name> [{ "/" <AAS Attribute Name>}* ]

<AAS Enumeration> ::= [{ "/" <AAS Attribute Name>}*] "/" <AAS Enumeration Value>

Examples for Semantic Metamodel Identifiers

Examples for valid unique Asset Administration Shell concept identifiers:

https://admin-shell.io/aas/2/0/AssetAdministrationShell/administration/version

AAS:AssetAdministrationShell/administration/version

AAS:AssetInformation/assetKind/Instance

The application of the pattern is explained as follows:

The concept identifier of a Class follows the pattern

<AAS Class name>

This also applies to abstract classes and types including enumerations.

Valid examples:

AAS:Submodel

AAS:Qualifier

AAS:Reference

AAS:ContentType

AAS:KeyTypes

Attributes of classes are separated by "/". Inherited attributes can also be referenced in this way, if the concrete referable is important in the context.

Basic Pattern:

<AAS Class name>"/"<AAS Attribute Name>

Examples[1]:

AAS:Referable/idShort

AAS:Property/idShort

AAS:Qualifier/semanticId

This also applies to attributes of attributes, if the cardinality of the attributes involved is not greater than 1:

<AAS Class Name> "/" <AAS Attribute Name> [\{ "/" <AAS Attribute Name>}* ]

Valid examples:

AAS:Identifiable/administration/version

This also applies to values of enumerations:

<AAS Class Name>[\{ "/" <AAS Attribute Name>}*][ "/" <AAS Enumeration Value>]

Valid examples:

AAS:Key/type/Submodel

AAS:AasSubmodelElements/Submodel

In case of an attribute with a cardinality greater than 1, no further attributes or enumeration values can be added.

Note: although the attribute name in UML is always singular, the attribute name is annotated by the plural "s" if the cardinality is > 1.

Valid examples:

AAS:Operation/InputVariables

AAS:AssetAdministrationShell/submodels

AAS:Submodel/submodelElements

Invalid examples:

AAS:AssetAdministrationShell/submodels/administration/version

AAS:Submodel/Property/idShort

These semantic identifiers are used as values for the RefSemantic attribute in AutomationML Mapping of the Asset Administration Shell. They are also used in OPC UA to describe the semantics of the metamodel via the OPC UA HasDictionaryEntry reference type.

Additional identifiers might be needed for specific serializations and mappings, e.g. for a set of Asset Administration Shells or a set of available concept descriptions. Here, the Asset Administration Shell metamodel and specification does not give any recommendations.

Data specification handling is special. Data specification templates do not belong to Part 1 of the Asset Administration Shell. However, serializations only support the predefined data specification templates as stipulated in this specification series, Part 3. Their corresponding name space qualifiers are defined individually.

Examples:

In xml and JSON, data specifications are embedded into the schema itself using the attribute "embeddedDataSpecification". Here, no concept identifier shall be used. For example,

AAS:ConceptDescription/embeddedDataSpecifications

is not a valid concept identifier. AAS:DataSpecificationContent is a valid concept identifier.


1. For simplicity reasons, most examples use the namespace qualifier and not the full path of the namespace.