aas-specs icon indicating copy to clipboard operation
aas-specs copied to clipboard

Clarify Handling of globalAssetId and specificAssetId (Constraint AASd-116)

Open BirgitBoss opened this issue 11 months ago • 4 comments

Is your feature request related to a problem? Please describe. Handling of globalAssetId and specificAssetId is not completely clear in combination with. Background Part 1:

Background Part 1 Metamodel: Both attributes are optional but with the following note:

The asset has a globally unique identifier, plus – if needed – additional domain-specific (proprietary) identifiers. However, to support the corner case of very first phase of life cycle where a stabilized/constant global asset identifier does not already exist, the corresponding attribute "globalAssetId" is optional.

and the following constraints: Constraint AASd-116: "globalAssetId" (case-insensitive) is a reserved key. If used as value for SpecificAssetId/name, SpecificAssetId/value shall be identical to AssetInformation/globalAssetId.

Constraint AASd-131: The globalAssetId or at least one specificAssetId shall be defined for AssetInformation.

Describe the solution you'd like Decision Proposal from TF AAS API from 2024-03-27 and approved by TF Metamodel from 2024-03-27

  • Add to Part 1 Constraint AASd-116 that the SpecificAssetId with "name" = "globalAssetId" shall only be used for the Discovery operations but not for the creation of Asset Administration Shells or SubmodelElements of type Entity.

Describe alternatives you've considered Use Case: Create a new AAS (in bold the one that would be the expected behavior for the recommended solution:

A) Create a new AASDescriptor or AAS:

  • Case1: The caller sends the globalAssetId as part of the specificAssetIds but not as part of the shell

    • We could set the globalAssetId of the shell to the same value

    • We could throw an error that they are not identical or missing

    • Throw an error , reason:


Violation of AASD-116: stating that the name globalAssetId must not be used for SpecificAssetIds, or 

Violation of AASd-131: stating that there must be at least one valid entry for globalAssetId or specificAssetIds if no other other SpecificAssetId is defined 
  • Case 2: The caller sends the globalAssetId as part of the shell but not as part of the specificAssetId

    • We could add the globalAssetId to the specifcAssetId

      • and also return it as part of specificAssetId in shell

      • remove it from specificAssetiIds

    • Not add it as part of the specificAssetIds but support search for it on shell level but not on specificAssetId

  • Case3: The caller sends the globalAssetId as part of the specificAssetId and as part of the shell but they are different

    • We could throw an error that they are not identical

    • Throw an error , reason:

Violation of AASD-116: stating that the name globalAssetId must not be used for SpecificAssetIds

  • Case4: The caller does not send any info for the globalAssetId

    • We could throw a warning that there is no global asset ID defined

    • Throw an error, reason:

Violation of AASd-131: stating that there must be at least one valid entry for globalAssetId or specificAssetIds if no other other SpecificAssetId is defined

BirgitBoss avatar Mar 26 '24 13:03 BirgitBoss

Remove attribute globalAssetID and force a (Key,Val) tuple in specific Asset ID that has the keyword "globalAssetID".

g1zzm0 avatar Apr 10 '24 14:04 g1zzm0

2024-04-12 Workstream AAS: approved

BirgitBoss avatar Apr 12 '24 11:04 BirgitBoss

In combination with https://github.com/admin-shell-io/aas-specs/issues/298 the proposal is to state the following:

Constraint AASd-116: : "globalAssetId" (case-insensitive) is a reserved key for SpecificAssetId/name with the semantics as defined in https://admin-shell.io/aas/3/0/AssetInformation/globalAssetId.

Note: AASd-116 is important to enable a generic search across global and specific asset IDs (e.g. in IDTA-01002-3-0 discovery operations like GetAllAssetLinksById). In the future the constraint might become more strict in stating that the name “globalAssetId” shall not be used as SpecificAssetId/name.

BirgitBoss avatar Apr 12 '24 12:04 BirgitBoss

[...] "globalAssetId" (case-insensitive) [...]

Please note that the case-sensitivity can not be reliably implemented across different cultures (good example is Turkish because of the i, I, İ and ı). You can specify a regular expression, specifying exactly which characters are meant, though.

mristin avatar Apr 12 '24 13:04 mristin

Workstream AAS Specs Change to

Constraint AASd-116: : "globalAssetId" (case-insensitive) is a reserved key for SpecificAssetId/name with the semantics as defined in https://admin-shell.io/aas/3/0/AssetInformation/globalAssetId.

Note: AASd-116 is important to enable a generic search across global and specific asset IDs (e.g. in IDTA-01002-3-0 discovery operations like GetAllAssetLinksById). In the future the constraint might become more strict in stating that the name “globalAssetId” shall not be used as SpecificAssetId/name.

BirgitBoss avatar Jun 13 '24 08:06 BirgitBoss

solved in IDTA-01001-3-0-1: https://industrialdigitaltwin.org/wp-content/uploads/2024/06/IDTA-01001-3-0-1_SpecificationAssetAdministrationShell_Part1_Metamodel.pdf

BirgitBoss avatar Jul 16 '24 10:07 BirgitBoss