aas-specs
aas-specs copied to clipboard
[BUG] Reference/type is underspecified
Describe the bug It's unclear when the Reference/type should be set to "ModelReference". Options:
- when the target is contained in the same Submodel (example:
ReferenceElement/value
pointing to a neighboringSubmodelElement
) - when the target is contained in the same AAS (example:
ReferenceElement/value
pointing to aSubmodelElement
in aSubmodel
that also belongs to the same AAS) - when the target is contained in the same Environment (example:
Property/semanticId
pointing to a localConceptDescription
) - when the target is contained in the same server (as defined in Part 2, i.e. AssetAdministrationShellRepository, SubmodelRepository)
Where AAS Pt. 1, sec 5.3.10.2
Additional context Ideally, this property would signify to a Client whether to resolve the first key of a Reference locally or look it up in a Registry (either a SubmodelRegistry or a semanic catalog).
For all attributes with type ModelReference<{element}> it is clearly defined that a ModelReference shall be used (see Annex D).
for semanticId there will be an even clearer recommendation to only use ExternalReference in V3.1 (see https://github.com/admin-shell-io/aas-specs/issues/376) Similar for ValueId: https://github.com/admin-shell-io/aas-specs/issues/396
So your question is only open for SubmodelElement types ReferenceElement and RelationshipElement. Since there is no restriction in the specification all your examples are valid (and more, see below).
See also matching algorithms for SemanticId and References in chapter 4.4. There will be an update of these chapters in V3.1. See https://github.com/admin-shell-io/aas-specs/issues/347 and https://github.com/admin-shell-io/aas-specs/issues/350
The main question for dataspaces will be which kind of discovery services are available to find the referenced entities, whether via ExternalReference or ModelReference.
P.S. your list of possibilities is incomplete, the following is missing:
- when the target is on any server (e.g. SubmodelRepository, Submodel, etc.)
P.P.S. There is exactly one „Environment“ class for all servers since it is not identifiable.
I do not consider this to be a bug, remove tag „bug“