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:
- Eclipse Kepler SR1 Classic
- EMF all in one SDK 2.10 milestone M2
- Xtext 2.5 milestone M2 SDK
- Xcore from same EMF milestone update site
- EMF Transaction 2.10 milestone M2
- GEF4 Zest Visualization Toolkit SDK integration
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.
- IncQuery Viewers
- library.ecore: simple Library Ecore project
- library.ecore.viewers: Viewers queries featured in the live demo
- IncQuery+Xcore
- library.domain.base: simple Library Xcore+IncQuery project
- Viewers with Xcore projects
- library.domain: complete Library Xcore+IncQuery project with advanced examples
- library.viewers: more complex Viewers visualization queries, Viewers Extensions UI component samples
- library.instances: sample instance models featured in the live demos
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
- IncQuery Viewers Documentation
- IncQuery-Xcore Integration Documentation
- IncQuery Query-based Derived Features Documentation
Research Papers
- Hegedüs, Horváth, Ráth, Varró: Query-driven soft interconnection of EMF Models. (MODELS'12) Paper Minipage with examples
- Ráth, Hegedüs, Varró: Derived Features for EMF by Integrating Advanced Model Queries. (ECMFA'12) Paper Minipage with examples
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