Overview of Submodel Element Types

Metamodel Overview for Submodel Element Subtypes
Figure 1. Metamodel Overview for Submodel Element Subtypes

Submodel elements include data properties as well as operations, events and other elements needed to describe a model for an asset (see Figure 27).

General

All submodel elements including abstract classes like data elements are specified in alphabetical order.

Note: value-related attributes typically are optional to enable definition of Submodel Templates as well, i.e. Submodels with value of Submodel/kind equal to Template.

Annotated Relationship Element Attributes

Metamodel of Annotated Relationship Elements
Figure 2. Metamodel of Annotated Relationship Elements

An annotated relationship is a relationship similar to a ternary association in UML. The semantics of the relationship is defined via the semanticId of the RelationshipElement. If this semantic definition requires additional information not contained in the first or second object referenced via the relationship, this information needs to be stored as annotation.

Class:

AnnotatedRelationshipElement

Explanation:

An annotated relationship element is a relationship element that can be annotated with additional data elements.

Inherits from:

RelationshipElement

ID:

https://admin-shell.io/aas/3/1/AnnotatedRelationshipElement

Attribute

ID

Explanation

Type

Card.

annotation

https://admin-shell.io/aas/3/1/AnnotatedRelationshipElement/annotations

A data element that represents an annotation that holds for the relationship between the two elements

DataElement

0..*

Basic Event Element Attributes

Metamodel of Basic Event Element
Figure 3. Metamodel of Basic Event Element

Class:

BasicEventElement <<Experimental>>

Explanation:

A basic event element

Inherits from:

EventElement

ID:

https://admin-shell.io/aas/3/1/BasicEventElement

Attribute

ID

Explanation

Type

Card.

observed

https://admin-shell.io/aas/3/1/BasicEventElement

Reference to a referable, e.g. a data element or a submodel that is being observed

ModelReference<Referable>

1

direction

https://admin-shell.io/aas/3/1/BasicEventElement/direction

Direction of event

Can be \{ input, output }

Direction

1

state

https://admin-shell.io/aas/3/1/BasicEventElement/state

State of event

Can be { on, off }

StateOfEvent

1

messageTopic

https://admin-shell.io/aas/3/1/BasicEventElement/messageTopic

Information for the outer message infrastructure to schedule the event for the respective communication channel.

MessageTopicType

0..1

messageBroker

https://admin-shell.io/aas/3/1/BasicEventElement/messageBroker

Information about which outer message infrastructure shall handle messages for the EventElement; refers to a Submodel, SubmodelElementList, SubmodelElementCollection or Entity, which contains DataElements describing the proprietary specification for the message broker

Note: this proprietary specification could be standardized by using respective submodels for different message infrastructure, e.g. OPC UA, MQTT or AMQP.

ModelReference<Referable>

0..1

lastUpdate

https://admin-shell.io/aas/3/1/BasicEventElement/lastUpdate

Timestamp in UTC, when the last event was received (input direction) or sent (output direction)

dateTime

0..1

minInterval

https://admin-shell.io/aas/3/1/BasicEventElement/minInterval

For input direction reports on the maximum frequency, the software entity behind the respective referable can handle input events.

For output events, the maximum frequency of outputting this event to an outer infrastructure is specified.

Might be not specified, i.e. if there is no minimum interval.

duration

0..1

maxInterval

https://admin-shell.io/aas/3/1/BasicEventElement/maxInterval

Not applicable for input direction

For output direction: maximum interval in time, the respective referable shall send an update of the status of the event, even if no other trigger condition for the event was not met.

Might not be specified, i.e. if there is no maximum interval.

duration

0..1


Enumeration:

Direction <<Experimental>>

Explanation:

Direction

Set of:

 — 

ID:

https://admin-shell.io/aas/3/0/Direction

Literal

ID

Explanation

input

https://admin-shell.io/aas/3/0/Direction/input

Input direction

output

https://admin-shell.io/aas/3/0/Direction/output

Output direction


Enumeration:

StateOfEvent <<Experimental>>

Explanation:

State of an event

Set of:

 — 

ID:

https://admin-shell.io/aas/3/0/StateOfEvent

Literal

ID

Explanation

on

https://admin-shell.io/aas/3/0/StateOfEvent/on

Event is on

off

https://admin-shell.io/aas/3/0/StateOfEvent/off

Event is off

Events sent or received by an Asset Administration Shell always comply with a general format. Exception: events exchanged in the course of an Industry 4.0 interaction pattern.

The payload of such an event is specified below.

Note: the payload is not part of the information model as exchanged via the AASX package format but used in re-active Asset Administration Shells.

Metamodel of Event Payload
Figure 4. Metamodel of Event Payload

Class:

EventPayload <<Experimental>>

Explanation:

Defines the necessary information of an event instance sent out or received

Inherits from:

-

ID:

https://admin-shell.io/aas/3/1/EventPayload

Attribute

ID

Explanation

Type

Card.

source

https://admin-shell.io/aas/3/1/EventPayload/source

Reference to the source event element

ModelReference<EventElement>

1

sourceSemanticId

https://admin-shell.io/aas/3/1/EventPayload/sourceSemanticId

semanticId of the source event element, if available

Note: it is recommended to use an external reference.

Reference

0..1

observableReference

https://admin-shell.io/aas/3/1/EventPayload/observableReference

Reference to the referable, which defines the scope of the event.

ModelReference<Referable>

1

observableSemanticId

https://admin-shell.io/aas/3/1/EventPayload/observableSemanticId

semanticId of the referable, which defines the scope of the event, if available.

Note: it is recommended to use an external reference.

Reference

0..1

topic

https://admin-shell.io/aas/3/1/EventPayload/topic

Information for the outer message infrastructure to schedule the event for the respective communication channel

MessageTopicType

0..1

subjectId

https://admin-shell.io/aas/3/1/EventPayload/subjectId

Subject, who/which initiated the creation

Note: this is an external reference.

Reference

0..1

timestamp

https://admin-shell.io/aas/3/1/EventPayload/timestamp

Timestamp in UTC, when this event was triggered

dateTime

1

payload

https://admin-shell.io/aas/3/1/EventPayload/payload

Event-specific payload

BlobType

0..1

For more information on the concept of subject, see Attribute Based Access Control (ABAC) [49]. The assumption is that every subject has a unique identifier.

Blob Attributes

Metamodel of Blobs
Figure 5. Metamodel of Blobs

For information on content type, see Clause File Attributes.

Class:

Blob

Explanation:

A Blob is a data element representing a file that is contained in the value attribute with its source code.

Inherits from:

DataElement

ID:

https://admin-shell.io/aas/3/1/Blob

Attribute

ID

Explanation

Type

Card.

value

https://admin-shell.io/aas/3/1/Blob/value

The value of the blob instance of a blob data element

Note: in contrast to the file property, the file content is stored directly as value in the Blob data element.

BlobType

0..1

contentType

https://admin-shell.io/aas/3/1/Blob/contentType

Content type of the content of the blob.

The content type (MIME type) states which file extensions the file can have.

Valid values are content types like "application/json", "application/xls", "image/jpg".

The allowed values are defined as in RFC2046.

ContentType

0..1

Capability Attributes

Metamodel of Capabilities
Figure 6. Metamodel of Capabilities

Note: the semanticId of a capability is typically an ontology, which enables reasoning on capabilities. For information and examples on how to apply the concept of capability and how to map it to one or more skills implementing the capability, please refer to [27]. The mapping is done via a relationship element with the corresponding semantics. A skill is typically a property or an operation. In more complex cases, the mapping can also be a collection or a complete submodel.

Class:

Capability

Explanation:

A capability is the implementation-independent description of the potential of an asset to achieve a certain effect in the physical or virtual world.

Inherits from:

SubmodelElement

ID:

https://admin-shell.io/aas/3/1/Capability

Attribute

ID

Explanation

Type

Card.

Data Element and Overview of Data Element Types

Metamodel of Data Elements
Figure 7. Metamodel of Data Elements

A data element is a submodel element that is not further composed of other submodel elements.

A data element is a submodel element that has a value or a predefined number of values like range data elements.

The type of value differs for different subtypes of data elements. Data elements include properties, file handling, and reference elements, see Figure 33.

Class:

DataElement <<abstract>>

Explanation:

A data element is a submodel element that is not further composed of other submodel elements.

A data element is a submodel element that has a value. The type of value differs for different subtypes of data elements.

Constraint AASd-090: for data elements, category (inherited by Referable) shall be one of the following values: CONSTANT, PARAMETER or VARIABLE. Default: VARIABLE

Note: categories are deprecated and should no longer be used.

Inherits from:

SubmodelElement

ID:

https://admin-shell.io/aas/3/1/DataElement

Attribute

ID

Explanation

Type

Card.

Entity Attributes

Metamodel of Entities
Figure 8. Metamodel of Entities

The entity submodel element is designed to be used in submodels defining the relationship between the parts of the composite asset it is composed of (e.g. bill of material). These parts are called entities. Not all entities have a global asset ID.

Class:

Entity

Explanation:

An entity is a submodel element that is used to model entities.

Constraint AASd-014: Either the attribute globalAssetId or specificAssetId of an Entity must be set if Entity/entityType is set to "SelfManagedEntity".

Inherits from:

SubmodelElement

ID:

https://admin-shell.io/aas/3/1/Entity

Attribute

ID

Explanation

Type

Card.

statement

https://admin-shell.io/aas/3/1/Entity/statements

Describes statements applicable to the entity by a set of submodel elements, typically with a qualified value

SubmodelElement

0..*

entityType

https://admin-shell.io/aas/3/1/Entity/entityType

Describes whether the entity is a co-managed entity or a self-managed entity

EntityType

0..1

globalAssetId

https://admin-shell.io/aas/3/1/Entity/globalAssetId

Global identifier of the asset the entity is representing

Identifier

0..1

specificAssetId

https://admin-shell.io/aas/3/1/Entity/specificAssetIds

Reference to a specific asset ID representing a supplementary identifier of the asset represented by the Asset Administration Shell

SpecificAssetId

0..*


Enumeration:

EntityType

Explanation:

Enumeration for denoting whether an entity is a self-managed entity or a co-managed entity

Set of:

 — 

ID:

https://admin-shell.io/aas/3/0/EntityType

Literal

ID

Explanation

CoManagedEntity

https://admin-shell.io/aas/3/0/EntityType/CoManagedEntity

There is no separate Asset Administration Shell for co-managed entities. Co-managed entities need to be part of a self-managed entity.

SelfManagedEntity

https://admin-shell.io/aas/3/0/EntityType/SelfManagedEntity

Self-managed entities have their own Asset Administration Shell but can be part of another composite self-managed entity.

The asset of an I4.0 Component is a self-managed entity per definition.

Event Element Attributes

Metamodel of Event Elements
Figure 9. Metamodel of Event Elements

Class:

EventElement <<abstract>> <<Experimental>>

Explanation:

An event element

Inherits from:

SubmodelElement

ID:

https://admin-shell.io/aas/3/1/EventElement

Attribute

ID

Explanation

Type

Card.

File Attributes

Metamodel of File Submodel Element
Figure 10. Metamodel of File Submodel Element

A media type (also MIME type and content type) is a two-part identifier for file formats and format contents transmitted via the Internet. The Internet Assigned Numbers Authority (IANA) is the official authority for the standardization and publication of these classifications.

Note: for information on handling supplementary external files in exchanging Asset Administration Shells in AASX package format see also Part 5 of the series "Specification of the Asset Administration Shell". An absolute path is used in case the file exists independently of the Asset Administration Shell. A relative path, relative to the package root, should be used if the file is part of a serialized package of the Asset Administration Shell.

Class:

File

Explanation:

A file is a data element that represents an address to a file (a locator). The value is a URI that can represent an absolute or relative path.

Inherits from:

DataElement

ID:

https://admin-shell.io/aas/3/1/File

Attribute

ID

Explanation

Type

Card.

value

https://admin-shell.io/aas/3/1/File/value

Path and name of the file (with file extension)

The path can be absolute or relative.

PathType

0..1

contentType

https://admin-shell.io/aas/3/1/File/contentType

Content type of the content of the file

ContentType

0..1

Multi Language Property Attributes

Metamodel of Multi Language Properties
Figure 11. Metamodel of Multi Language Properties

Class:

MultiLanguageProperty

Explanation:

A property is a data element that has a multi-language value.

Constraint AASd-012: if both the MultiLanguageProperty/value and the MultiLanguageProperty/valueId are present, the meaning must be the same for each string in a specific language, as specified in MultiLanguageProperty/valueId.

Inherits from:

DataElement

ID:

https://admin-shell.io/aas/3/1/MultiLanguageProperty

Attribute

ID

Explanation

Type

Card.

value

https://admin-shell.io/aas/3/1/MultiLanguageProperty/value

The value of the property instance

MultiLanguageTextType

0..1

valueId

https://admin-shell.io/aas/3/1/MultiLanguageProperty/valueId

Reference to the global unique ID of a coded value.

Note: it is recommended to use an external reference, compare to HasSemantics/semanticId

Reference

0..1

Operation Attributes

Metamodel of Operations
Figure 12. Metamodel of Operations

Class:

Operation

Explanation:

An operation is a submodel element with input and output variables.

Constraint AASd-134: For an Operation, the idShort of all inputVariable/value, outputVariable/value, and inoutputVariable/value shall be unique.

Inherits from:

SubmodelElement

ID:

https://admin-shell.io/aas/3/1/Operation

Attribute

ID

Explanation

Type

Card.

inputVariable

https://admin-shell.io/aas/3/1/Operation/inputVariables

Input parameter of the operation

OperationVariable

0..*

outputVariable

https://admin-shell.io/aas/3/1/Operation/outputVariables

Output parameter of the operation

OperationVariable

0..*

inoutputVariable

https://admin-shell.io/aas/3/1/Operation/inoutputVariables

Parameter that is input and output of the operation

OperationVariable

0..*


Class:

OperationVariable

Explanation:

The value of an operation variable is a submodel element that is used as input and/or output variable of an operation.

Inherits from:

 — 

ID:

https://admin-shell.io/aas/3/1/OperationVariable

Attribute

ID

Explanation

Type

Card.

value

https://admin-shell.io/aas/3/1/OperationVariable/value

Describes an argument or result of an operation via a submodel element

SubmodelElement

1

Note 1: operations typically specify the behavior of a component in terms of procedures. Hence, operations enable the specification of services with procedure-based interactions [23].

Note 2: OperationVariable is introduced as separate class to enable future extensions, e.g. for adding a default value or cardinality (option/mandatory).

Note 3: even if the submodel element as the value of an input and an output variable have the same idShort, this does not mean that they are identical or mapped to the same variable since OperationVariables are no referables. The same applies to two input variables or an input variable and an inoutputVariable a.s.o.

Property Attributes

Metamodel of Properties
Figure 13. Metamodel of Properties

Class:

Property

Explanation:

A property is a data element that has a single value.

Constraint AASd-007: If both the Property/value and the Property/valueId are present, the value of Property/value needs to be identical to the value of the referenced coded value in Property/valueId.

Inherits from:

DataElement

ID:

https://admin-shell.io/aas/3/1/Property

Attribute

ID

Explanation

Type

Card.

valueType

https://admin-shell.io/aas/3/1/Property/valueType

Data type of the value attribute

DataTypeDefXsd

1

value

https://admin-shell.io/aas/3/1/Property/value

The value of the property instance

ValueDataType

0..1

valueId

https://admin-shell.io/aas/3/1/Property/valueId

Reference to the global unique ID of a coded value

Note: it is recommended to use an external reference, compare to HasSemantics/semanticId

Reference

0..1

Range Attributes

Metamodel of Ranges
Figure 14. Metamodel of Ranges

Class:

Range <<Experimental>>

Explanation:

A range data element is a data element that defines a range with min and max.

Inherits from:

DataElement

ID:

https://admin-shell.io/aas/3/1/Range

Attribute

ID

Explanation

Type

Card.

valueType

https://admin-shell.io/aas/3/1/Range/valueType

Data type of the min und max attributes

DataTypeDefXsd

1

min

https://admin-shell.io/aas/3/1/Range/min

The minimum value of the range

If the min value is missing, the value is assumed to be negative infinite.

ValueDataType

0..1

max

https://admin-shell.io/aas/3/1/Range/max

The maximum value of the range

If the max value is missing, the value is assumed to be positive infinite.

ValueDataType

0..1

Reference Element Attributes

Metamodel of Reference Elements
Figure 15. Metamodel of Reference Elements

Class:

ReferenceElement

Explanation:

A reference element is a data element that defines a logical reference to another element within the same or another Asset Administration Shell or a reference to an external object or entity.

Inherits from:

DataElement

ID:

https://admin-shell.io/aas/3/1/ReferenceElement

Attribute

ID

Explanation

Type

Card.

value

https://admin-shell.io/aas/3/1/ReferenceElement/value

External reference to an external object or entity or a logical reference to another element within the same or another Asset Administration Shell (i.e. a model reference to a Referable)

Reference

0..1

For more information on references, see Clause Referencing in Asset Administration Shells.

Relationship Element Attributes

The semantics of the relationship is defined via the semanticId of the RelationshipElement. If this semantic definition requires additional information not contained in the first or second object referenced via the relationship, the submodel element type AnnotatedRelationshipElement shall be used instead.

Metamodel of Relationship Elements
Figure 16. Metamodel of Relationship Elements

Class:

RelationshipElement

Explanation:

A relationship element is used to define a relationship between two elements being either referable (model reference) or external (external reference).

Inherits from:

SubmodelElement

ID:

https://admin-shell.io/aas/3/1/RelationshipElement

Attribute

ID

Explanation

Type

Card.

first

https://admin-shell.io/aas/3/1/RelationshipElement/first

Reference to the first element in the relationship taking the role of the subject

Reference

0..1

second

https://admin-shell.io/aas/3/1/RelationshipElement/second

Reference to the second element in the relationship taking the role of the object

Reference

0..1

Submodel Element Collection Attributes

Metamodel of Submodel Element Collections
Figure 17. Metamodel of Submodel Element Collections

Submodel Element Collections are used for complex elements with a typically fixed set of properties with unique names. This set of properties is typically predefined by the semantic definition (referenced via semanticId) of the submodel element collection. Each property within the collection itself should have clearly defined semantics.

Note: the different elements of a submodel element collection do not have to have different semanticIds. However, in these cases the usage of a SubmodelElementList should be considered.

Example: a single document has a predefined set of properties like title, version, author, etc. They logically belong to a document. So a single document is represented by a SubmodelElementCollection. An asset usually has many different documents available like operating instructions, safety instructions, etc. The set of all documents is represented by a SubmodelElementList. In this case, we have a SubmodelElementList of SubmodelElementCollections.

Note: the elements within a submodel element collection are not ordered. Every element has a unique ID (its "idShort"). However, it is recommended to adhere to the order defined in the submodel template.

Class:

SubmodelElementCollection

Explanation:

A submodel element collection is a kind of struct, i.e. a logical encapsulation of multiple named values.

Inherits from:

SubmodelElement

ID:

https://admin-shell.io/aas/3/1/SubmodelElementCollection

Attribute

ID

Explanation

Type

Card.

value

https://admin-shell.io/aas/3/1/SubmodelElementCollection/values

Submodel element contained in the collection

SubmodelElement

0..*

Submodel Element List Attributes

Metamodel of Submodel Element Lists
Figure 18. Metamodel of Submodel Element Lists

Submodel element lists are used for sets (i.e. unordered collections without duplicates), ordered lists (i.e. ordered collections that may contain duplicates), bags (i.e. unordered collections that may contain duplicates), and ordered sets (i.e. ordered collections without duplicates).

Note: there is no idShort for submodel elements in lists (see Constraint AASd-120).

Submodel element lists are also used to create multidimensional arrays. A two-dimensional array list[3][5] with Property values would be realized like follows: the first submodel element list would contain three SubmodelElementList elements. Each of these three SubmodelElementLists would contain 5 single Property elements. The semanticId of the contained properties would be the same for all lists in the first list, i.e. semanticIdListElement would be identical for all three lists contained in the first list. The semanticId of the three contained lists would differ depending on the dimension it represents. In case of complex values in the array, a SubmodelElementCollection would be used as values in the leaf lists.

Similarly, a table with three columns can be represented. In this case a SubmodelElementCollection with three SubmodelElementLists would be contained and the semanticId as well as the semanticIdListElement for the three columns would differ.

Matching strategies for semantic IDs are explained in Clause Matching Strategies for Semantic Identifiers.

Class:

SubmodelElementList

Explanation:

A submodel element list is an ordered list of submodel elements.

Note: the list is ordered although the ordering might not be relevant (see attribute "orderRelevant".)

The numbering starts with Zero (0).

Constraint AASd-107: If a first level child element in a SubmodelElementList has a semanticId, it shall be identical to SubmodelElementList/semanticIdListElement.

Constraint AASd-114: If two first level child elements in a SubmodelElementList have a semanticId, they shall be identical.

Constraint AASd-115: If a first level child element in a SubmodelElementList does not specify a semanticId, the value is assumed to be identical to SubmodelElementList/semanticIdListElement.

Constraint AASd-108: All first level child elements in a SubmodelElementList shall have the same submodel element type as specified in SubmodelElementList/typeValueListElement.

Constraint AASd-109: If SubmodelElementList/typeValueListElement is equal to Property or Range, SubmodelElementList/valueTypeListElement shall be set and all first level child elements in the SubmodelElementList shall have the value type as specified in SubmodelElementList/valueTypeListElement.

Inherits from:

SubmodelElement

ID:

https://admin-shell.io/aas/3/0/SubmodelElementList

Attribute

ID

Explanation

Type

Card.

orderRelevant

https://admin-shell.io/aas/3/0/SubmodelElementList/orderRelevant

Defines whether order in list is relevant. If orderRelevant = false, the list represents a set or a bag.

Default: True

boolean

0..1

value

https://admin-shell.io/aas/3/0/SubmodelElementList/values

Submodel element contained in the list

SubmodelElement

0..*

semanticIdListElement

https://admin-shell.io/aas/3/0/SubmodelElementList/semanticIdListElement

Semantic ID which the submodel elements contained in the list match

Note: it is recommended to use an external reference.

Reference

0..1

typeValueListElement

https://admin-shell.io/aas/3/0/SubmodelElementList/typeValueListElement/typeValueListElement

The submodel element type of the submodel elements contained in the list

AasSubmodelElements

1

valueTypeListElement

https://admin-shell.io/aas/3/0/SubmodelElementList/valueTypeListElement

The value type of the submodel element contained in the list

DataTypeDefXsd

0..1