EMF-IncQuery

mbeddr meets IncQuery - Combining the Best Features of Two Modeling Worlds - EclipseCon Europe 2014

We are proud to announce that this year’s EclipseCon again had a talk about EMF-IncQuery, this time in the context of an integration project with a different modeling world. During the summer, we have started to work on the MPS-IncQuery project, which aims to bring IncQuery’s powerful features to the world of the Meta Programming System (MPS) from JetBrains. MPS is a powerful language workbench which is designed to ease the development of domain specific and general purpose languages, plus their IDEs. 

EMF-IncQuery 0.8.1 released and EclipseCon plans

We have released version 0.8.1 of EMF-IncQuery, a release fixing a selection of bugs. It is recommended for all users of EMF-IncQuery to update to this latest version. The update is available both from Eclipse Marketplace and the project download page.

EMF-IncQuery 0.8.0 Released

The EMF-IncQuery project is happy to report that our new release with the version 0.8.0 is available now from the Eclipse.org download servers or the Eclipse Marketplace.

A year's worth of research in retrospect

It's the end of the year according to both the calendar, as well as my research grant. I have spent some of this past year doing research on the connection of OCL and graph queries. I have also tried to explain and illustrate my research topic in previous posts of this very blog, and let the readers keep tabs on what I was up to all this time. Let's do a quick recap.

Measuring up

My previous blog post demonstrated my OCL to EMF-IncQuery transformation OCL2IQ in action. Here I am presenting my first performance measurements to investigate whether this solution fulfills the original promise of my research: delivering efficient, incremental query evaluation for a subset of OCL expressions by transforming them to graph patterns of equivalent semantics, and applying EMF-IncQuery on them.

Syndicate content

Developers

Contact Information

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.