Skip to content

[Task] SAMM2AASX: Retain the full semantic information in the AAS Submodel, SubmodelElements & ConceptDescription #863

@dglachs

Description

@dglachs

Is your task related to a problem? Please describe.

When generating the AAS Environment based on a SAMM definition, it would be useful for later value processing of an AAS instance to keep the full semantic information of the TTL file (including namespaces) within the AAS model.

Currently, when the AAS model is generated, especially aas:Property elements have aas:semanticId which point's to the elements qualified name of out of the SAMM model. The corresponding aas:ConceptDescription is created and part of the AAS environment. However, the semanticId uses an external reference instead of an internal model reference with KeyType ConceptDescription.
The aas:semanticId however is not added for aas:SubmodelElementCollection elements, although the respective aas:ConceptDescription is present in the environment.

That way, the relevant semantic information of the aspect model w.r.t the entity type is lost in the AAS model.

Describe the solution you'd like

The generated AAS model should retain the full semantic information. Based on that, an AAS Submodel or or even SubmodelElements may be represented/serialized as lightweight RDF / JSON-LD documents in addition to the yet existing Value Only serialization. This would allow for further validation of AAS instance data with existing RDF tools.

In order to retain the linking between the generated AAS model and its originating TTL file, the following should happen:

  1. The idShort of any aas:SubmodelElement should be the payloadName of the property (see [Task] CLI SAMM2AASX: Take payload names into account #769 , [BUG] SAMM2AASX Generator: SML handling, semanticId, payload Name and missing properties #766) including aas:SubmodelElementCollection & aas:SubmodelElementList elements. The use of the the element's name as proposed in [Task] CLI SAMM2AASX: Take payload names into account #769 would change the ValueOnly serialization compared to the Aspect Model Editor!
  2. The aas:semanticId should be added for every samm:Property, including aas:SubmodelElementCollection, aas:SubmodelElementList (see [Task] CLI SAMM2AASX: add semanticId for SMC #796 )
  3. Each element's aas:semanticId refers to its corresponding aas:ConceptDescription.
  4. The corresponding aas:ConceptDescription created on behalf of samm:Property elements either outline the aas:dataSpecificationContent (for aas:DataElement's) or indicate the entity type for aas:SubmodelElementCollection elements representing samm:Entity elements, e.g. samm:Property elements with a complex characteristic type.

Describe alternatives you've considered

Additional context

To solve the issue (when reasonable & applicable), it is sufficient, to tweak the AspectModelAasVisitor. You may check the provided version (based on v2.13.0 AspectModelAasVisitor)

AspectModelAasVisitor.java

The following changes are relevant (starting with line number)

345: Do not exclude SubmodelElementList & SubmodelElementCollection when using payloadName
382: include a semanticId for SubmodelElementCollection referencing the yet generated ConceptDescription
403: build the semanticId for SubmodelElementCollection
480: build the Reference(s) for complex type characteristic
515: include the reference(s) for complex type characteristics

Kind regards

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions