eclipse-esmf / esmf-semantic-aspect-meta-model

Formal and textual specification of the Semantic Aspect Meta Model (SAMM)
https://eclipse-esmf.github.io/samm-specification/snapshot/index.html
Mozilla Public License 2.0
47 stars 9 forks source link

[Task] Asset Administration Shell - describe semantics of ReferenceElement submodel element #138

Closed BirgitBoss closed 4 months ago

BirgitBoss commented 2 years ago

Is your task related to a problem? Please describe. SAMM shall support the semantic definition of reference element submodel elements in the Asset Administration Shell (AAS).

Describe the solution you'd like introduce characteristic for references introduce characteristic for model references introduce characteristic for global references

Note: in AAS a reference may be either a global reference like an urn or it may be a reference to a property of another aspect in another twin. There are also requirements to state: it is a reference to the element with the semanticId XYZ in the aspect 123.

Describe alternatives you've considered none

Additional context compare to #133 (relationship element) https://industrialdigitaltwin.org/wp-content/uploads/2021/09/07_details_of_the_asset_administration_shell_part1_v3_en_2020.pdf

BirgitBoss commented 1 year ago

This would be a straightforward modelling (AAS V3.0 DRAFT).

:Reference a bamm:Entity;
    bamm:properties (:keys :type [
  bamm:property :referredSemanticId;
  bamm:optional "true"^^xsd:boolean
]);
    bamm:preferredName "Reference"@en.
:ReferenceCharacteristic a bamm:Characteristic;
    bamm:dataType :Reference.
:keys a bamm:Property;
    bamm:characteristic :ListOfKeys.
:ListOfKeys a bamm-c:List;
    bamm:dataType :Key.
:Key a bamm:Entity;
    bamm:properties (:keyType :value).
:value a bamm:Property;
    bamm:characteristic :IdentifierDataType.
:type a bamm:Property;
    bamm:characteristic :ReferenceTypes;
    bamm:exampleValue "ExternalReference".
:referredSemanticId a bamm:Property;
    bamm:characteristic :ReferenceCharacteristic;
    bamm:description "type now Identifier because recursive otherwise: needs to be fixed"@en.
:ReferenceTypes a bamm-c:Enumeration;
    bamm:dataType xsd:string;
    bamm-c:values ("ExternalReference" "ModelReference").
:keyType a bamm:Property;
    bamm:characteristic :KeyTypesEnum.
:KeyTypesEnum a bamm-c:Enumeration;
    bamm:dataType xsd:string;
    bamm-c:values ("AnnotationRelationshipElement" "AssetAdministrationShell" "BasicEventElement" "Blob" "Capability" "ConceptDescription" "DataElement" "Entity" "EventElement" "File" "FragmentReference" "GlobalReference" "Identifiable" "MultiLanguageProperty" "Operation" "Property" "Range" "Referable" "ReferenceElement" "RelationshipElement" "Submodel" "SubmodelElement" "SubmodelElementCollection" "SubmodelElementList").
:IdentifierLengthConstraint a bamm-c:LengthConstraint;
    bamm-c:maxValue "2000"^^xsd:nonNegativeInteger;
    bamm-c:minValue "1"^^xsd:nonNegativeInteger.
:IdentifierDataType a bamm-c:Trait;
    bamm-c:baseCharacteristic bamm-c:Text;
    bamm-c:constraint :IdentifierLengthConstraint.

Edit @atextor: Fix formatting

chris-volk commented 1 year ago

@atextor , should there be an ADR to describe how this and other Asset Administration Shell features are supported within SAMM and tooling?