A transactional database for domain-specific models with atomic commands and events.


since 01.03.2018


Essential Object Query (EOQ) is a language for distributed and efficient interaction with object-oriented data, i.e. domain-specific models. It explicitly supports pattern searching as used in model transformation languages. EOQ includes a query language that is easy to parse and behaves deterministically, but provides maximum efficiency and flexibility when working with domain-specific models. The capabilities and semantics of EOQ are similar to those of the Object Constraint Language (OCL), but EOQ additionally supports atomic model changes, events, and error handling.

The basic function of EOQ is shown in the following example:

GET !task/name

retrieves all values of the attribute "name" of all objects of type "Task" existing in the domain. The return value is a list of strings, e.g.

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

Simultaneous interaction of multiple clients with multiple models is supported. EOQ is independent of any particular metamodel.

The reference implementation is based on models of the ECORE format of the Eclipse Modeling Framework (EMF). EOQ implementations are available for Python and Javascript.

EOQ is available as open source under the MIT license.

EOQ homepage: https://gitlab.com/eoq/essentialobjectquery

Projektmitarbeiter und -mitarbeiterinnen

To the top of the page