EOQ - Essential Object Query

Eine transaktionale Datenbank für domänenspezifische Modelle mit atomaren Kommandos und Events.

Essential Object Query (EOQ) ist eine Sprache zur verteilten und effizienten Interaktion mit objektorientierten Daten, d.h. domänenspezifischen Modellen. Sie unterstützt explizit die Suche nach Mustern, wie sie in Modelltransformationssprachen verwendet wird. EOQ beinhaltet eine leicht zu parsende und sich deterministisch verhaltende Abfragesprache, die aber eine größtmögliche Effizienz und Flexibilität bei der Arbeit mit domänenspezifischen Modellen bietet. Die Fähigkeiten und die Semantik von EOQ ähneln der der Object-Constraint-Language (OCL), aber EOQ unterstützt zusätzlich atomare Modelländerungen, Events und Fehlerbehandlung.

Die grundlegende Funktion von EOQ zeigt folgendes Beispiel:

GET !Task/name

ruft alle Werte des Attributs "name" aller in der Domäne vorhandenen Objekte des Typs "Task" ab. Der Rückgabewert ist eine Liste von Zeichenketten, z.B.

['Flight Control','Stick Input','Security Monitor',...]

Die gleichzeitige Interaktion mehrerer Clients mit mehreren Modellen wird unterstützt. EOQ ist unabhängig von einem bestimmten Metamodell.

Die Referenzimplementierung basiert auf Modellen des ECORE-Formats des Eclipse Modeling Framework (EMF). EOQ-Implementationen sind für Python und Javascript verfügbar.

EOQ ist als Open-Source unter der MIT-Lizenz verfügbar.

EOQ-Homepage: https://gitlab.com/eoq/essentialobjectquery

Beispiel eines Meta- und Anwender-Modells und drei EOQ-Kommandos. Die oberen beiden Kommandos rufen Informationen ab. Das letzte Kommando ändert das Anwendermodell.
Beispiel eines Meta- und Anwender-Modells und drei EOQ-Kommandos. Die oberen beiden Kommandos rufen Informationen ab. Das letzte Kommando ändert das Anwendermodell.
Dieses Bild zeigt Björn Annighöfer

Björn Annighöfer

Prof. Dr.-Ing.

Professor

Zum Seitenanfang