Jump to: navigation, search

Difference between revisions of "VIATRA/Query"

(EMF-IncQuery User Documentation)
m (Add link to Query Test Framework page)
 
(76 intermediate revisions by 13 users not shown)
Line 1: Line 1:
= EMF-IncQuery Wiki Documentation =
+
{{VIATRA}}
 +
= VIATRA Incremental Query Wiki Documentation =
  
These are the (work-in-progress) wiki pages for the EMF-IncQuery project. At the moment, much of the EMF-IncQuery documentation resides on IncQuery.net, this will change as the development of this wiki progresses.
+
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 based on the Rete algorithm.
  
== Quick pointers ==
+
We believe the average programmer using EMF models will like VIATRA Query for the following reasons:
  
*[http://eclipse.org/incquery Eclipse.org project website]
+
* declarative queries can be evaluated over EMF without manually traversing the models,
*[http://incquery.net IncQuery.net portal]
+
* complex interrelated constellations of EMF objects can be easily formulated as a graph pattern,
*[http://incquery.net/incquery/getting_started Getting Started]
+
** the language is expressive and provides powerful features such as negation or counting,
*[http://incquery.net/incquery/documentation User Documentation]
+
** graph patterns are composable and reusable,
*[http://incquery.net/incquery/devguide Developer Documentation]
+
** queries can be evaluated with great freedom, i.e. input and output parameters can be selected at run-time,
*[http://incquery.net/incquery/examples Examples]
+
** 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.
  
== EMF-IncQuery User Documentation ==
 
* Developing Incremental Model Queries using the EMF-IncQuery Tooling
 
** [[EMFIncQuery/UserDocumentation/Installation|Installing EMF-IncQuery]]
 
** [[EMFIncQuery/UserDocumentation/QueryLanguage|A Short Introduction to the Query Language]]
 
** [[EMFIncQuery/UserDocumentation/RETE_Visualizer|RETE Visualizer]]
 
* Using the EMF-IncQuery Runtime library
 
** [[EMFIncQuery/UserDocumentation/HeadlessExecution|Headless (standalone) execution of EMF-IncQuery queries and unit tests]]
 
** [[EMFIncQuery/UserDocumentation/API|API documentation]]
 
** [[EMFIncQuery/UserDocumentation/API/Advanced|Advanced API features]]
 
** [[EMFIncQuery/UserDocumentation/AdvancedPatterns|Advanced pattern language constructs]]
 
* Integration Components
 
** [[EMFIncQuery/UserDocumentation/Databinding|Databinding]]
 
** [[EMFIncQuery/UserDocumentation/Validation|Validation Framework]]
 
** [[EMFIncQuery/UserDocumentation/Query_Based_Features|Defining Query-based Features]]
 
** [[EMFIncQuery/UserDocumentation/IncQuery_Viewers|IncQuery Viewers]]
 
  
== Contributors Guide ==
+
== VIATRA Query User Documentation ==
 
+
* Developing Incremental Model Queries using the VIATRA Query Tooling
* [[EMFIncQuery/DeveloperDocumentation|Developer's Documentation]]
+
** [[VIATRA/Query/UserDocumentation/GettingStarted|Installing VIATRA Query]]
** [[EMFIncQuery/DeveloperDocumentation/DevEnvironment|Setting up the Development Environment]]
+
** [[VIATRA/Query/UserDocumentation/QueryLanguage|A Short Introduction to the Query Language]]
** [[EMFIncQuery/DeveloperDocumentation/BuildConfig|The EMF-IncQuery Build Configuration]]
+
** [[VIATRA/Query/UserDocumentation/QueryDevelopment|Getting started with Query Development]]
* Documentation
+
** Advanced topics
** [[EMFIncQuery/DeveloperDocumentation/Model_connectors|Model Connectors]]
+
*** [[VIATRA/Query/UserDocumentation/RETE_Visualizer|RETE Visualizer]]
** [[EMFIncQuery/DeveloperDocumentation/IncQuery_Viewers|IncQuery Viewers]]
+
*** [[VIATRA/Query/UserDocumentation/LocalSearch_DebuggerTooling|Local Search Debugger Tooling]]
** [[EMFIncQuery/DeveloperDocumentation/EventDrivenVM|Event-driven Virtual Machine]]
+
*** [[VIATRA/Query/UserDocumentation/DebuggerTooling|VIATRA Query Debugger Tooling]] (since 0.8.0)
* Developer Meeting Minutes
+
*** [[VIATRA/Query/UserDocumentation/SDK/QueryHotspotTesting|Finding query evaluation hotspots]] (since 1.0.0)
** [[EMFIncQuery/DeveloperMeetingMinutes|Meeting minutes]]
+
*** [[VIATRA/Query/UserDocumentation/PureWhitelist|Pure whitelist]] (since 1.0.0)
 
+
*** [[VIATRA/Query/UserDocumentation/AdvancedPatterns|Advanced pattern language constructs]]
 
+
*** [[VIATRA/Query/UserDocumentation/QueryTestFramework|Query Test Framework]]
== Releases ==
+
* Using the VIATRA Query Runtime library
* Version 0.7.0
+
** [[VIATRA/Query/UserDocumentation/HeadlessExecution|Headless (standalone) execution of VIATRA queries and unit tests]]
** [[EMFIncQuery/Releases/MigrateTo0.7|Migration guide]]
+
** [[VIATRA/Query/UserDocumentation/API|API documentation]]
 
+
** [[VIATRA/Query/UserDocumentation/API/Advanced|Advanced API features]]
[[Category:EmfIncQuery]]
+
** [[VIATRA/Query/UserDocumentation/API/RunOnce|Run once querying API documentation]]
 +
** [[VIATRA/Query/UserDocumentation/API/BaseIndexer|VIATRA Query Base Indexer]]
 +
* [[VIATRA/Query/UserDocumentation/Examples|Examples]]
 +
* [[VIATRA/UserDocumentation/Build|VIATRA Query in CI Environments (Maven artifacts)]] (since 0.8.0)
 +
* [[VIATRA/Query/FAQ|Frequently Asked Questions]]

Latest revision as of 04:40, 31 March 2016

VIATRA Incremental Query Wiki Documentation

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 based on the Rete algorithm.

We believe the average programmer using EMF models will like VIATRA Query 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.


VIATRA Query User Documentation