Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "VIATRA/Query"

 
(63 intermediate revisions by 12 users not shown)
Line 1: Line 1:
= EMF-IncQuery Wiki Documentation =
+
{{VIATRA}}
 +
{{caution|Old information|This page is not updated anymore; for more up-to-date details look at the language specification at https://www.eclipse.org/viatra/documentation/ instead.}}
 +
= 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.
 
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 EMF-IncQuery for the following reasons:
+
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,
 
* declarative queries can be evaluated over EMF without manually traversing the models,
Line 18: Line 20:
  
  
== EMF-IncQuery User Documentation ==
+
== VIATRA Query User Documentation ==
* Developing Incremental Model Queries using the EMF-IncQuery Tooling
+
* Developing Incremental Model Queries using the VIATRA Query Tooling
** [[EMFIncQuery/UserDocumentation/Installation|Installing EMF-IncQuery]]
+
** [https://www.eclipse.org/viatra/documentation/tutorial.html Getting started with Query Development]
** [[EMFIncQuery/UserDocumentation/QueryLanguage|A Short Introduction to the Query Language]]
+
** [[VIATRA/Query/UserDocumentation/QueryLanguage|A Short Introduction to the Query Language]]
** [[EMFIncQuery/UserDocumentation/RETE_Visualizer|RETE Visualizer]]
+
** Advanced topics
** [[EMFIncQuery/UserDocumentation/DebuggerTooling|EMF-IncQuery Debugger Tooling]] (since 0.8.0)
+
*** [[VIATRA/Query/UserDocumentation/AdvancedPatterns|Advanced pattern language constructs (incl. recursion)]]  
* Using the EMF-IncQuery Runtime library
+
*** [[VIATRA/Query/UserDocumentation/SDK/QueryHotspotTesting|Finding query evaluation hotspots]] (since 1.0.0)
** [[EMFIncQuery/UserDocumentation/HeadlessExecution|Headless (standalone) execution of EMF-IncQuery queries and unit tests]]
+
*** [[VIATRA/Query/UserDocumentation/QueryTestFramework|Query Test Framework]]
** [[EMFIncQuery/UserDocumentation/API|API documentation]]
+
*** [[VIATRA/Query/UserDocumentation/DebuggerTooling|VIATRA Query Debugger Tooling]] (since 0.8.0)
** [[EMFIncQuery/UserDocumentation/API/Advanced|Advanced API features]]
+
*** [[VIATRA/Query/UserDocumentation/RETE_Visualizer|RETE Visualizer]]
** [[EMFIncQuery/UserDocumentation/API/RunOnce|Run once querying API documentation]]
+
*** [[VIATRA/Query/UserDocumentation/LocalSearch_DebuggerTooling|Local Search Debugger Tooling]]
** [[EMFIncQuery/UserDocumentation/API/BaseIndexer|IncQuery Base Indexer]]
+
* Using the VIATRA Query Runtime library
** [[EMFIncQuery/UserDocumentation/AdvancedPatterns|Advanced pattern language constructs]]  
+
** [[VIATRA/Query/UserDocumentation/API|API documentation]]
* Integration Components
+
** [[VIATRA/Query/UserDocumentation/API/LocalSearch|Local Search Support]]
** [[EMFIncQuery/UserDocumentation/Databinding|Databinding]]
+
** [[VIATRA/Query/UserDocumentation/API/BaseIndexer|Base Indexer]]
** [[EMFIncQuery/UserDocumentation/Validation|Validation Framework]]
+
** [[VIATRA/Query/UserDocumentation/API/Advanced|Advanced API features]]
** [[EMFIncQuery/UserDocumentation/Query_Based_Features|Defining Query-based Features]]
+
** [[VIATRA/Query/UserDocumentation/API/RunOnce|Run once querying API documentation]]
** [[EMFIncQuery/UserDocumentation/IncQuery_Viewers|IncQuery Viewers]]
+
** [[VIATRA/Query/UserDocumentation/HeadlessExecution|Headless (standalone) execution of VIATRA queries and unit tests]]
* [[EMFIncQuery/UserDocumentation/Examples|Examples]]
+
* Query language extensibility
* [[EMFIncQuery/UserDocumentation/Build|EMF-IncQuery in CI Environments]] (since 0.8.0)
+
** [[VIATRA/Query/UserDocumentation/PureWhitelist|Pure whitelist]] (since 1.0.0) for custom code in <code>check()</code> or <code>eval()</code>
* Reporting bugs or requesting new features
+
** [[VIATRA/Query/UserDocumentation/CustomAggregators|Custom aggregation operators]] (since 1.4.0)  
** [[EMFIncQuery/UserDocumentation/IssueTracking|Issue tracking]]
+
* [[VIATRA/Query/UserDocumentation/Examples|Examples]]
 
+
* [[VIATRA/UserDocumentation/Build|VIATRA Query in CI Environments (Maven artifacts)]] (since 0.8.0)
== Contributors Guide ==
+
* [[VIATRA/Query/FAQ|Frequently Asked Questions]]
 
+
* Developer's Documentation
+
** [[EMFIncQuery/DeveloperDocumentation/DevEnvironment|Setting up the Development Environment]]
+
** [[EMFIncQuery/DeveloperDocumentation/BuildConfig|The EMF-IncQuery Build Configuration]]
+
** [[EMFIncQuery/DeveloperDocumentation/IssueTracking|Issue Reporting and Management]]
+
* Documentation
+
** [[EMFIncQuery/DeveloperDocumentation/Model_connectors|Model Connectors]]
+
** [[EMFIncQuery/DeveloperDocumentation/IncQuery_Viewers|IncQuery Viewers]]
+
** [[EMFIncQuery/DeveloperDocumentation/EventDrivenVM|Event-driven Virtual Machine]]
+
** [[EMFIncQuery/DeveloperDocumentation/Builder|Builder Architecture]]
+
** [[EMFIncQuery/DeveloperDocumentation/IncQueryXcore|Notes on IncQuery & Xcore integration]]
+
* Developer Meeting Minutes
+
** [[EMFIncQuery/DeveloperMeetingMinutes|Meeting minutes]]
+
 
+
== Releases ==
+
* Version 0.7.0 ([https://www.eclipse.org/incquery/javadoc/releases/0.7.0/ Javadoc])
+
** [[EMFIncQuery/Releases/MigrateTo0.7|Migration guide]]
+
** Known issues affecting version 0.7.1 [[EMFIncQuery/Releases/KnownIssuesFor0.7.1|fixed in 0.7.2]]
+
* Version 0.8.0 ([https://www.eclipse.org/incquery/javadoc/releases/0.8.0/ Javadoc])
+
** [[EMFIncQuery/Releases/NewAndNoteWorthy0.8|New and Noteworthy]]
+
** [[EMFIncQuery/Releases/MigrateTo0.8|Migration guide]]
+
 
+
[[Category:EmfIncQuery]]
+

Latest revision as of 09:38, 30 November 2017

Stop.png
Old information
This page is not updated anymore; for more up-to-date details look at the language specification at https://www.eclipse.org/viatra/documentation/ instead.

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

Back to the top