Das AAS-connect GraphQL-Referenzschema für die Asset Administration Shell führt eine klare Trennung zwischen Daten und deren Metadaten ein. Die Komplexität der Implementierung und Anwendung der AAS wird stark reduziert und die Performance erhöht.
Version AAS-connect GraphQL-Referenzschema: 3-0_0-1
Zugrunde liegende AAS-Spezifikation:
Part 1: Metamodel - aktuelle Version 3.0 aus April 2023 (IDTA Number: 01001-3-0)
Das kommentierte Schema ist auf GitHub verfügbar: https://github.com/foprs/aas-connect
Für Issues und Ideen zur Weiterentwicklung des Schemas nutzen Sie bitte GitHub!
A. Spezifikation des grundsätzlichen Modellaufbaus
A.1
Das AAS-connect GraphQL-Referenzschema ist in zwei Schemata aufgeteilt: dem Anwenderdatenschema (Anwenderdatenmodellebene) und dem Metadatenschema (Metadatenmodellebene). Beide Schemata können im Prinzip unabhängig voneinander angewendet und über verschiedene Endpunkte implementiert werden.
A.2
Im Metadatenmodell ist jedem Objekt zwingend eine metaId zu vergeben, für die globale endpunktübergreifende Identifikation.
A.3
Die eindeutige Verlinkung zwischen Anwenderdatenmodellebene und Metadatenmodellebene erfolgt über das Feld metaId oder innerhalb eines Endpunkts wahlweise über die idShort. Die Verlinkung dient dazu, zum Beispiel bei der Erzeugung und Bearbeitung von Anwenderdaten Metainformationen bereitzustellen oder AASX-Packages mit Metadaten erzeugen zu können.
A.4
Bei Graphdatenbanken kann die Verlinkung der Daten mit den Metadaten auch zusätzlich über Relationen abgebildet werden.
A.5
Die Klasse "Submodel" heißt bei AAS-connect "SubmodelTemplate" für die Metadaten (Submodel template) und "SubmodelInstance" für die Anwenderdaten (Instanz eines Submodel templates).
B. Spezifikation des Anwenderdatenschemas
B.1
Das Anwenderdatenschema enthält die Objekttypen der Asset Administration Shell (z.B. AssetAdministrationShell, AssetInformation oder SpecificAssetId) sowie die Daten der Modellelemente. Die Bezeichung der Datenobjekte beginnt immer mit der Abkürzung aus der AAS-Spezifikation, also zum Beispiel "SmcData" oder "PropData".
B.2
Objekttypen, die Submodelle und Submodellelemente der AAS-Spezifikation abbilden, besitzen eine Referenz zum Metadatenschema über das Feld metaId (siehe A.2).
B.3
Jedes Objekt besitzt einen Objektidentifikator (GraphQL Global Object Identification / UUID - Version 4, gemäß RFC 4122). Im Anwenderdatenschema wird dieser als dataID bezeichnet.
B.4
Die "id" der AssetAdministrationShell wird aufgrund von Kompatibilitätsproblemen mit Softwareentwicklungstools mit "aId" bezeichnet.
B.5
Die id des Submodel (SubmodelInstance) wird zur Vermeidung von Bezeichnungskonflikten mit submodelId bezeichnet.
B.6
Property values sind vom skalaren GraphQL-Typ String. Die Serialisierung, Deserialisierung und Validierung in die Datentypen der AAS (DataTypeDefXsd) muss durch die Anwendung selbst vorgenommen werden.
B.8
Werden einem Submodelelement weitere Submodelelemente mit gleichem keyType als ModelReference zugeordnet (siehe AAS-Spezifikation 5.7.10.3), dann kann über das Feld Counter eine Identifikation innerhalb dieser Zuordnung erfolgen.
C. Spezifikation des Metadatenschemas
C.1
Die id des Submodel (SubmodelTemplate) wird zur Vermeidung von Bezeichnungskonflikten mit submodelId bezeichnet.
C.2
Die Kardinalität kann zusätzlich als über einen Qualifier mit dem Typ Cardinality modelliert werden. Bei der Abbildung über einen Qualifier ist bei 1:n-Beziehungen keine Differenzierung der Kardinalität möglich. Die Enumeration der Kardinalitäten CardEnums entspricht der indirekten Spezifikation gemäß "Guideline: How to create a submodle template specification" von der IDTA aus dem Dezember 2022.
C.3
Die Datentypen DataTypeDefXsd sind aus Kompatibilitätsgründen mit GraphQL im Enum DataTypeDefXsd nicht mit ":" sondern mit "_" versehen, also zum Beispiel xs:string geändert in xs_string.
E. Grafische Darstellung des Schemas (Graph Datenmodell)
Link zur Datei mit größerer Auflösung
Im Modell sind nicht alle Modellelemente vorhanden. Es handelt sich um einen Auszug aus dem führenden GQL-Schema. Ein Stern symbolisiert, dass es sich um ein zusätzliches Modellelement von AAS-connect handelt, das so nicht in der AAS-Spezifikation vorkommt.
Beispiele für Queries und Responses an eine AAS-connect GraphQL API
Die Beispiele werden demnächst erarbeitet.
Ersteller und Herausgeber: FoP Consult GmbH
Die FoP Consult GmbH bietet das AAS-connect GraphQL-Referenzschema zur freien Verwendung sowie weitere Ressourcen, wie die Teilmodell-Templatedaten, für die Implementierung der Asset Administration Shell mit GraphQL an. Dabei erfolgt ein konsequentes Mapping auf die aktuelle IDTA-Spezifikation des Metamodells der AAS, um die Integrierbarkeit in die AAS-Toollandschaft, z.B. für die Erzeugung von AASX-Packages, sicherzustellen.
AAS-connect verfolgt keinen aktiven Standardisierungsprozess. Die FoP Consult GmbH setzt vielmehr darauf, dass sich das AAS-connect Referenzschema und die Teilmodell-Templatedaten auch ohne formalen Standardisierungsprozess mit Hilfe einer interessierten Community als Best Practice weit verbreitet und damit einen von vielen Anwendern genutzen De-facto-Standard für die Implementierung der AAS mit GraphQL bilden wird.