EMF-IncQuery

EMF-IncQuery 0.7M3 published

The EMF-IncQuery project is happy to report that we have reached our third milestone, with a special focus on finalizing the API in preparation for the 0.7.0 release in the summer. Important note: please read the migration guide to ensure a smooth upgrade path for existing EMF-IncQuery projects.

The relation between OCL and graph patterns (pun intended)

My previous introductory blog posts talked about the importance of modeling, the concept of model queries (with OCL and EMF-IncQuery) and model evolution. Now it is time to give a glimpse into my research: translating OCL expressions to graph patterns, so that incremental evaluation techniques (see EMF-IncQuery) developed for graph patterns can be applied to queries formulated in OCL.

Change or die: model queries on evolving models

...the only constant

Modeling and model queries were discussed in my previous blog posts. Now it is time to turn our attentions towards a great challenge: that of evolving models.

EMF-IncQuery presentation for Itemis

EMF-IncQuery has been presented to Itemis developers by Tamás Szabó, our former student and freshly enrolled software engineer for Itemis in Stuttgart. The slides are available on SlideShare, and the example projects can be downloaded from GitHub.

EMF-IncQuery 0.7M2 published

We have reached our second milestone, with a special focus on stability and bug fixes. We recommend to update your EMF-IncQuery installation from the Marketplace, or using the update sites.

Syndicate content

Developers

Contact Information

  • For help and support, please direct your questions in the IncQuery Users Group.
  • Bugs and issues can be reported using the Github Issue Tracker.

What is EMF-IncQuery?

EMF-IncQuery is a framework for defining declarative queries over EMF models, and executing them efficiently 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 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

All of the above links are also accessible from the dropdown menu on the top of this page.

For developers

IncQuery uses git for version control, and is hosted at eclipse.org/incquery. Take a look at the Developers' Guide for details, and the Testers' Guide may also prove useful.

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.