The AAS-connect Repository is characterized

  • by providing a GraphQL Endpoint for the Asset Administration Shell (in addition to the standard AAS API and direct database interface) as well as
  • a stringent differentiation between metadata and data in order to manage the data consistently in a company and to avoid data redundancies.

 

The following principles have to be considered when using the AAS-connect Repository

 

General principles

  • If there are variations between Submodel Instances (based on a common Template) in metadata-like information on Instance level like Qualifier, Extension, description etc. a seperate Submodel Template has to be generated for every characteristic. Where the id of these Submodel templates must be unique, they can share the same semanticId.

 

When working with the AAS API according Specification of the Asset Administration Shell: Part 2 (Version 3.0)

  • In the first step Submodels of kind "Template" have to be imported
    • For every Submodel of kind "Instance" a corresponding Submodel of kind "Template" has to be provided in advance. When putting an Instance the API checks the existence of a Template via id (Template) / templateId (Instance). If there is no match the import will be refused.
    • In addition a validation takes place whether the content of the Instance conforms to the content of the Template. Thereby the structure and order of the SubmodelElements has to be identical.
  • In the second step Submodels of kind "Instance" have to be imported
    • In order to connect a Submodel Instance to an AAS (REST "Post Shells"), the Submodel Instance must be already created.
  • In the third step AAS can be imported and connected to their Submodel Instances

 

When working with the GraphQL-API

  • Mutations via the GraphQL-API should be done only for AAS data (see data nodes of the GraphQL schema). The idShort must be identical to the idShort of the Submodel Templates.
    • There is no validation step whether the mutations are conform to the Submodel Template. That's the reason why only data should be mutated but not metadata.
  • Endpunkt API/GraphQL to create instances