Xcore meets IncQuery: How the new generation of DSLs are made - talk at EclipseCon Europe 2013

The EMF-IncQuery Project is proud to announce our talk at this year's EclipseCon Europe conference titled "Xcore meets IncQuery: How the New Generation of DSLs Are Made".

Have you ever got lost in a complex domain-specific model? Are you familiar with Facebook's Graph Search? Ever wished something like this would be available for your favorite EMF-based tool? It is, it's called EMF-IncQuery. In fact, it can do more than Graph Search, because you can create live queries, meaning you get live updates for your search results as the model is being edited. In the talk, we'll show you some of the most powerful features that this technology can be used for in practice.

See you on 31 October between 14:15 - 14:50 in Seminarräume 1-3!

The technology presented in this talk is the result of a collaboration between Ed Merks, Tamas Szabo (itemis AG) and the EMF-IncQuery team. Read the rest of the blog post below for more information regarding the presentation and the live demos.

In this talk, we present a new technology that takes language engineering to the next level by integrating live graph search (as supported by EMF-IncQuery) right into the heart of DSLs. As a result, the new generation of Xcore DSLs can leverage query-based derived values and relationships (that support notifications) that open up a wide range of new possibilities in interlinking various DSLs (traceability), live validation, and model visualization through live abstractions.

In the talk, we use concrete examples to show how:

  • even beginners can create expressive DSLs from scratch, without having to learn complex and difficult languages such as OCL;
  • Xbase, the familiar (Java-like) language can be used in incremental graph queries over EMF models;
  • such metamodel-integrated graph queries can significantly enhance the expressive power and usefulness of a DSL;
  • yet, the model management and query performance of such a new generation DSL scales exceptionally well even as model sizes grow to the millions.

Get the slides here:


Live abstractions powered by incremental graph search

IncQuery Viewers can be used to create live abstractions for your models with a few lines of code. Live abstractions allow your users to manage complex modeling scenarios by providing live updating views that focus on interesting parts of the model.

IncQuery Viewers supports the JFace Viewer Framework as well as the Zest Graph Visualization Framework (available as open source), as well as the powerful yFiles Graph Visualization Toolkit from yWorks (available as a commercial add-on from IncQueryLabs Ltd.).

Query-based derived features with automatic notification support

In co-operation with Ed Merks, the EMF-IncQuery team have developed a deep integration between live graph search and Xcore, the Xtext-based textual syntax for Ecore metamodeling. With this feature, you can write live graph queries with EMF-IncQuery and integrate them transparently into your DSL in the form of derived features that support automatic notifications. As we will show, these query-based derived features can significantly boost the expressive power of your metamodels, help you get rid of a lot of cruft and improve the scalability of your modeling tool.

Try the live demos yourself

If you want to try the examples used in the demos yourself, install a recent Eclipse Kepler with bleeding edge components from the following update sites:

The EMF-IncQuery demo build can be downloaded from the following update site: http://download.eclipse.org/incquery/updates-xcoreiq

Alternatively, you can download everything into Eclipse Kepler from the following all-in-one update site: http://download.eclipse.org/incquery/updates-xcoreiq-all 

Example projects

You can get the demo projects from Git here.

Notes on dynamic instances

If you'd like to work with the dynamic instance models as we do in the demos, please apply the following (Workspace-specific) settings for the EMF-IncQuery Query Explorer (through the Property settings page):

  • disable wildcard mode for Query Explorer
  • enable dynamic mode for Query Explorer

A small FAQ regarding dynamic instances:

  • Q: Can queries be changed while the instance model is loaded? A: Yes, but the derived features will only be updated after the dynamic instance model is reloaded (editor close-open)
  • Q: Can the .xcoreiq be changed while the instance model is loaded? A: Not recommended.

Related reading

Technology documentation

Research Papers

More information

  • Dr. István Ráth, EMF-IncQuery Project Lead rath AT mit.bme.hu
  • Ákos Horváth, CEO IncQueryLabs Ltd. akos.horvath AT incquerylabs.com