admin-shell-io / submodel-templates

Submodel Templates for AAS
Creative Commons Attribution 4.0 International
45 stars 16 forks source link

Compliance of SMTs with AAS specification #76

Closed mjacoby closed 2 months ago

mjacoby commented 2 months ago

I noticed that multiple SMTs are not compliant to the AAS specification and therefore fail to load with some implementations. For example, the SMT Digital Nameplate defines the globally unique identifier https://admin-shell.io/zvei/nameplate/2/0/Nameplate/Markings/Marking/ExplosionSafeties/ExplosionSafety/SpecificConditionsForUse two times which is an obvious violation of the uniqueness constraint.

I also noticed that many SMTs have a comment with the commit message

Updated AASX file for compatibility with AAS metamodel version 3.0(Tested with BaSyx)

However, IDTA should not rely on one arbitrary implementation of many available to test conformity, especially when this implementation does not seem to really ensure compliance. As developers of an AAS implementation, this causes problems for us, e.g., when users try to load a SMT with our implementation and it fails because the model is not valid but the official Github repository hosting the SMT says that the SMT has been tested to be compatible with the specification. This leads the user to think our software is bad/not working correctly while it actually is correct but the official files are not valid and they have been tested to be compliant with a tool that does not guarantee compliance.

To resolve this, why not use the official IDTA verification tool https://github.com/admin-shell-io/aas-test-engines for validation? Although I am not sure if the AAS test engine currently does find these constraint violations of duplicate unique IDs but this needs to be fixed nonetheless.

Rudra-sandeep commented 2 months ago

@mjacoby Thank you for raising the issue and it is resolved please check the latest version of the SMT's

mjacoby commented 2 months ago

Thanks! Maybe in the future we can also have a Github workflow that checks all model files on commit/push automatically to ensure that only valid models are published. I created a new issue for that https://github.com/admin-shell-io/submodel-templates/issues/77 so that we can close this one.