Skip to main content
Jump to: navigation, search


< VIATRA‎ | Query
Revision as of 05:07, 22 April 2015 by (Talk | contribs)

Features (UI Components)

Xmind diagram.png

Query Editor

The Xtext-based editor can be used to create EMF-IncQuery queries. The editor provides many features to ease the development, such as automatic code completion, validation, etc.

Query Explorer

This view can be used to apply queries on various EMF instance models. The Query Explorer can interact with EMF-based editors such as the generated tree editor, and even with GMF and Graphiti editors. Advanced querying use cases, like pattern match set filtering and detail observation is also available with the Query Explorer. More


In the EMF-IncQuery preferences you can change IncQuery specific settings. You can turn on Wildcard mode or Dynamic EMF mode, or you can just change the settings of the Query Editor. More

Validation framework

EMF-IncQuery provides facilities to create validation rules based on the pattern language of the framework. These rules can be evaluated on various EMF instance models and upon violations of constraints, markers are automatically created in the Eclipse Problems View. More


The goal of the IncQuery Viewers component is to help developing model-driven user interfaces by filling and updating model viewer results with the results of model queries. The implementation relies on (and is modeled after) the JFace Data binding and JFace Viewers libraries. More

Rete Visualizer

The Rete algorithm is a pattern matching algorithm for implementing production rule systems. It is used to determine which of the system's rules should fire based on its data store. More

Testing framework

With Testing Framework, you can define EMF instance models from your query results. You can also modify these models. More

IncQuery Debugger View

The EMF-IncQuery debugger tooling aims to provide useful functionalities for the users, so that they can easily observe the contents of the EMF-IncQuery related artifacts when the program execution has stopped at a breakpoint. More

Xcore integration

See EMFIncQuery/DeveloperDocumentation/IncQueryXcore

Test suites

EMF-IncQuery Test Suites
Test project name Metamodel Test type Tested feature Coverage (the most covered components) Repository CI Site
patternlanguage.emf.tests no metamodel unit test Testing elements of the patternlanguage and parsing patternlanguage (50%), patternlanguage.emf (50%) incquery-core-repo Hudson
runtime.base.itc.test no metamodel unit test Testing graph implementation and graph traversal algorithms runtime.base.itc (67%) incquery-core-repo Hudson
runtime.tests dynamically created component integration test Testing matcher and functional dependency (minimal cover) runtime (30%), patternlanguage (30%), snapshot (30%) incquery-core-repo Hudson
network.tests network.ecore component test (performance) Testing different size of models and investigating performance runtime (30%) eiq-examples-repo -
school.tests school.ecore component integration test Executing different queries on school model and framework testing runtime (50%), patternlanguage (50%), snapshot(50%) eiq-examples-repo Jenkins
ecorequery.tests ecore.ecore component integration test Executing different queries on Ecore.ecore model runtime (40%), patternlanguage (40%) eiq-examples-repo Jenkins
bpmn.tests only instance model out of date out of date out of date eiq-examples-repo -
derivedTest derivedModel.ecore out of date out of date out of date eiq-examples-repo -
runtime.base.test school.ecore ( and unit test Testing getters for different EMF types (also dynamic EMF models) runtime.base (70%), runtime.base.itc (50%) eiq-examples-repo -
runtime.runonce.tests eiqlibrary.ecore component integration test Test cases that run different kind of derived features in run-once engine runtime.matchers (50%), runtime.base (45%), runtime.rete (45%) examples-repo -
bpm.tests derivedModel.ecore, integrated.ecore, operation.ecore, process.ecore, system.ecore component integration test Executing queries on BPMN model and testing IncQueryEngine features runtime.matchers (50%), runtime.rete(45%) examples-repo Jenkins

Back to the top