What is EMF-IncQuery?
EMF-IncQuery is a framework for deﬁning declarative queries over EMF models, and executing them efﬁciently without manual coding.
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.
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 efﬁcient 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 signiﬁcant performance boost when frequently querying complex structural patterns with a moderate amount of modiﬁcations 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.
For end users
- Take a look at the Getting Started page for installation details, downloads and update site information.
- For an introductory, step-by-step example, take a look at the built-in cheat sheet, the School example and the language tutorial.
- Example projects can be accessed at GitHub, and are described in detail on the Examples page.
- We also maintain a page for frequently asked questions.
- If you are interested in performance benchmarking, be sure to check our recommendations.
- Research papers related to EMF-IncQuery are collected on the publications page and papers with online material are listed here.
All of the above links are also accessible from the dropdown menu on the top of this page.
Contact and getting help
If you want to report a bug or an issue, you can use the Eclipse.org Bugzilla.