Version GraphQL Schema:
v1.0.0-alpha.1 
Die Versionierung erfolgt gemäß Semantic Versioning 2.0.0 (https://semver.org/lang/de/).

Zugrunde liegende AAS-Spezifikation:
Part 1 - The exchange of information between partners in the value chain of Industrie 4.0 (Version 3.0RC02)

 

Das kommentierte Schema ist auf GitHub verfügbar:
https://github.com/foprs/aas-connect

 

Grundlagen

A. Zwei verlinkte Schemata für Anwenderdaten und Metadaten

A.1
Das AAS-connect GraphQL Schema ist in zwei Schemata aufgeteilt: dem Anwenderdatenschema (Anwenderdatenmodellebene) und dem Metadatenschema (Metadatenmodellebene). Beide Schemata können unabhängig voneinander angewendet und über verschiedene Endpunkte erreicht werden.

A.2
Die eindeutige Verlinkung zwischen Anwenderdatenmodellebene und Metadatenmodellebene erfolgt über den Objekttyp MetaData und das Feld metaId (UUID). Die Verlinkung dient dazu, bei der Erzeugung und Bearbeitung von Anwenderdaten Metainformationen bereitzustellen oder z.B. AASX- oder JSON-Dateien mit Metadaten erzeugen zu können.

 

B. Spezifikation des Anwenderdatenschemas

B.1
Das Anwenderdatenschema enthält die Objekttypen der Asset Administration Shell (z.B. AssetAdministrationShell, AssetInformation oder SpecificAssetId) sowie die anwenderspezifischen Objekttypen der zugeordneten Submodelle mit den Submodellelementen.

B.2
Objekttypen die Submodelle und Submodellelemente der AAS-Spezifikation abbilden besitzen eine Referenz zum Metadatenschema über den zugeordneten Objekttyp MetaData (siehe A.2).

B.3
Der Identifier id der AssetAdministrationShell heißt im GraphQL-Schema aasId aufgrund möglicher Kompatibilitätsprobleme.

B.4 
Jedes Objekt, das ein Modellelement aus der AAS-Spezifikation abbildet, besitzt einen Objektidentifikator (GraphQL Global Object Identification / UUID - Version 4, gemäß RFC 4122). Im Anwenderdatenschema wird dieser als dataID bezeichnet.

B.5
Der Name der Objekttypen der Submodelle/Submodellelemente entspricht der idShort der Modellelemente aus dem Metadatenschema.

B.6
Properties werden direkt als field am Objekt modelliert mit dem Namen der idShort des Modellelements plus einem Unterstrich gefolgt von einem dreistelligem Suffix (A-Z,a-z). Der Suffix wird eingeführt, da in der AAS-Spezifikation (5.7.7.11) vorgesehen ist, dass auch eine Referenz auf einen Wert bestehen kann. Der Wert ist erreichbar unter [idShort]_val und die Referenz auf einen Wert unter [idShort]_vId.

B.7
Es werden die Skalartypen (scalar types) des GraphQL-Standards verwendet, die sich auf die in der AAS-Spezifikation vorgesehene Enumeration (DataTypeDefXsd) mappen lassen.

B.8
Werden einem Submodelelement weitere Submodelelemente mit gleichem keyType als ModelReference zugeordnet (siehe AAS-Spezifikation 5.7.10.3) dann kann über den Objekttyp Counter eine Identifikation innerhalb dieser Zuordnung erfolgen.


C. Spezifikation des Metadatenschemas

C.1 
Jedes Objekt besitzt einen Objektidentifikator (GraphQL Global Object Identification / UUID - Version 4, gemäß RFC 4122). Im Metadatenschema wird dieser als metaID bezeichnet.