EMF-IncQuery - High performance graph search for EMF models

Overview

EMF-IncQuery is a framework for defining declarative graph queries over EMF models, and executing them efficiently without manual coding in an imperative programming language such as Java.

With EMF-IncQuery, you can:

For further details, take a look at our project blog at http://incquery.net.

For the query language, we reuse the concepts of graph patterns (which is a key concept in many graph transformation tools) as a concise and easy way to specify complex structural model queries. High runtime performance is achieved by adapting incremental graph pattern matching techniques based on the Rete algorithm.

We believe the average programmer using EMF models will like EMF-IncQuery for the following reasons:

  • declarative queries can be evaluated over EMF without manually traversing the models,
  • complex interrelated constellations of EMF objects can be easily formulated as a graph pattern,
    • the language is expressive and provides powerful features such as negation or counting,
    • graph patterns are composable and reusable,
    • queries can be evaluated with great freedom, i.e. input and output parameters can be selected at run-time,
    • some frequently encountered shortcomings of EMF’s interfaces are addressed:
      • easy and efficient enumeration of all instances of a class regardless of location,
      • simple backwards navigation along all kinds of references (even without eOpposite)
      • finding objects based on attribute value,
  • the incremental query evaluation mechanism offers a significant performance boost when frequently querying complex structural patterns with a moderate amount of modifications in-between (e.g. during continuous validation),
  • from the declarative representation of queries, pattern matcher code is generated which can be distributed as Eclipse plug-ins with very few dependencies.

Getting started

For end users

For developers

EMF-IncQuery uses git for version control, and is available from http://git.eclipse.org/c/incquery/org.eclipse.incquery.git/. Take a look at the Developers' Guide for details.

New: take a look at the Eclipse project metadata for EMF-IncQuery here.

Contact and getting help

If you need help or support with EMF-IncQuery, you should check the FAQ, or you can ask a question in the Eclipse.org Forum or the IncQuery Users Google Group.

If you want to report a bug or an issue, you can use the Eclipse.org Bugzilla.

Presentations

Partners

The EMF-IncQuery Project is supported by the following partners:

About This Project

Current Status

EMF-IncQuery is currently in the Incubation Phase.

New and Noteworthy

RSS FeedIncQuery.net