-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Task] Asset Administration Shell - describe semantics of RelationshipElement submodel element #133
Comments
A agree that for modeling custom relationships beyond Properties there should be a well-defined way. I think for that, there are three ways in principle:
Personally I'd prefer option 2 (Characteristic, as proposed), but with Characteristic inheritance cleanly defined first and having a clear description of how the annotations should be handled. |
From https://industrialdigitaltwin.org/content-hub/downloads https://industrialdigitaltwin.org/wp-content/uploads/2021/11/Details_of_the_Asset_Administration_Shell_Part_2_V1.pdf Details of the Asset Administration Shell - Part 2 Page 88:
{
"CurrentFlowsFrom":{
"first":[
{
"type":"Submodel",
"value":"http://customer.com/demo/aas/1/1/1234859590"
},
{
"type":"Property",
"value":"PlusPole"
}
],
"second":[
{
"type":"Submodel",
"value":"http://customer.com/demo/aas/1/0/1234859123490"
},
{
"type":"Property",
"value":"MinusPole"
}
]
} |
For adding support for RelationshipElement, we must first clarify on which meta model level theses references are located. As opposed to AAS, in SAMM the model level is clearly separated from the data (instance) level. So in the terminology of ISO/IEC 42010 (M0 = instance level, M1 = model level, M2 = meta model level, M3 = meta meta model level), JSON data is M0, the Aspect Model is M1, SAMM is M2 and RDF+SHACL is M3. For the RelationshipElement, the distiction between M1 (model) and M0 (data) is relevant. For a regular Aspect Model, this looks like this: Now my question is, is the RelationShip expressed from M1 to M1, M0 to M1 or from M0 to M0? Proposal 1: Only on model level (M1 to M1)This proposal corresponds to the second bullet point in my previous post. Proposal 2: Data to model references (M0 to M1)This proposal solves the problem of proposal 1, and corresponds to the third bullet in my previous post. We model the relationship as an Entity, with Properties that refer to the identifiers of model elements (in this example using the This works, but has a major shortcoming: It delegates the expression of relationships between model elements to the implementers of the Aspect. The author of the Aspect Model can not relate model elements. Furthermore, it might confuse developers who only look at the JSON payload, they might mistake the reference that actually points to a model element for a reference to some other JSON key in the same document - this happens to align in most cases, but falls apart once Proposal 3: Data to data references (M0 to M0)This is essentially using JSON References, as specified and popularized by OpenAPI's This alleviates the problem of references crossing meta-model-level-boundaries, but it retains the problem that relationships can not be expressed by the modeller. SummaryI'm not happy with any of the proposals. (1) is not usable, (2) and (3) are error-prone and violate the separation of semantic description with data. Schema and comparable information does not belong into the data itself. If you have any other idea of how to approach this and would like to visualize it, I'll attach the sources of the diagrams (.graphml format). |
With V3.0 it is (Page 103), Besides Model References also external references are allowed |
Is your task related to a problem? Please describe.
SAMM shall support the semantic definition of relationship and annotated relationship submodel elements in the Asset Administration Shell (AAS).
Describe the solution you'd like
Introduce a predefined characteristic "Relationship" with two attributes first and second. "First" relates to "second" as described in the description of the property. The values of first and second are not predefined and subject to inheritance.
Example:for instance:
Door with ID=1223 isPartOf PessengerCar with id=XYZ
semantic of Property with Relationship Characteristic =
isPartOf between (first) CarParts and (second) Vehicle
Note: in AAS the relationship is between existing elements, thus just references. For example the Door instance with ID =1223 might be described in a different twin than the Vehicle instance with id=XYZ.
Describe alternatives you've considered
none
Additional context
see also #138 (reference element)
https://industrialdigitaltwin.org/wp-content/uploads/2021/09/07_details_of_the_asset_administration_shell_part1_v3_en_2020.pdf
Updated in the meanwhile:
https://industrialdigitaltwin.org/content-hub/aasspecifications
Look for Part 2
The text was updated successfully, but these errors were encountered: