Skip to main content
Jump to: navigation, search

Difference between revisions of "VIATRA/Query"

m (Ujhelyiz.incquerylabs.com moved page EMFIncQuery to VIATRA/Query)
Line 1: Line 1:
= EMF-IncQuery Wiki Documentation =
+
{{VIATRA}}
 +
= 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.
Line 20: Line 21:
 
== EMF-IncQuery User Documentation ==
 
== EMF-IncQuery User Documentation ==
 
* Developing Incremental Model Queries using the EMF-IncQuery Tooling
 
* Developing Incremental Model Queries using the EMF-IncQuery Tooling
** [[EMFIncQuery/UserDocumentation/Installation|Installing EMF-IncQuery]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/Installation|Installing EMF-IncQuery]]
** [[EMFIncQuery/UserDocumentation/QueryLanguage|A Short Introduction to the Query Language]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/QueryLanguage|A Short Introduction to the Query Language]]
** [[ EMFIncQuery/UserDocumentation/QueryDevelopment|Getting started with Query Development]]
+
** ''TODO'' [[ EMFIncQuery/UserDocumentation/QueryDevelopment|Getting started with Query Development]]
 
** Advanced topics
 
** Advanced topics
*** [[EMFIncQuery/UserDocumentation/RETE_Visualizer|RETE Visualizer]]
+
*** ''TODO'' [[EMFIncQuery/UserDocumentation/RETE_Visualizer|RETE Visualizer]]
*** [[EMFIncQuery/UserDocumentation/LocalSearch_DebuggerTooling|Local Search Debugger Tooling]]
+
*** ''TODO'' [[EMFIncQuery/UserDocumentation/LocalSearch_DebuggerTooling|Local Search Debugger Tooling]]
*** [[EMFIncQuery/UserDocumentation/DebuggerTooling|EMF-IncQuery Debugger Tooling]] (since 0.8.0)
+
*** ''TODO'' [[EMFIncQuery/UserDocumentation/DebuggerTooling|EMF-IncQuery Debugger Tooling]] (since 0.8.0)
*** [[EMFIncQuery/UserDocumentation/SDK/QueryHotspotTesting|Finding query evaluation hotspots]] (since 1.0.0)
+
*** ''TODO'' [[EMFIncQuery/UserDocumentation/SDK/QueryHotspotTesting|Finding query evaluation hotspots]] (since 1.0.0)
*** [[EMFIncQuery/UserDocumentation/PureWhitelist|Pure whitelist]] (since 1.0.0)
+
*** ''TODO'' [[EMFIncQuery/UserDocumentation/PureWhitelist|Pure whitelist]] (since 1.0.0)
*** [[EMFIncQuery/UserDocumentation/AdvancedPatterns|Advanced pattern language constructs]]  
+
*** ''TODO'' [[EMFIncQuery/UserDocumentation/AdvancedPatterns|Advanced pattern language constructs]]  
 
* Using the EMF-IncQuery Runtime library
 
* Using the EMF-IncQuery Runtime library
** [[EMFIncQuery/UserDocumentation/HeadlessExecution|Headless (standalone) execution of EMF-IncQuery queries and unit tests]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/HeadlessExecution|Headless (standalone) execution of EMF-IncQuery queries and unit tests]]
** [[EMFIncQuery/UserDocumentation/API|API documentation]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/API|API documentation]]
** [[EMFIncQuery/UserDocumentation/API/Advanced|Advanced API features]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/API/Advanced|Advanced API features]]
** [[EMFIncQuery/UserDocumentation/API/RunOnce|Run once querying API documentation]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/API/RunOnce|Run once querying API documentation]]
** [[EMFIncQuery/UserDocumentation/API/BaseIndexer|IncQuery Base Indexer]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/API/BaseIndexer|IncQuery Base Indexer]]
 
* Integration Components
 
* Integration Components
** [[EMFIncQuery/UserDocumentation/Databinding|Databinding]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/Databinding|Databinding]]
** [[EMFIncQuery/UserDocumentation/Validation|Validation Framework]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/Validation|Validation Framework]]
** [[EMFIncQuery/UserDocumentation/Query_Based_Features|Defining Query-based Features]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/Query_Based_Features|Defining Query-based Features]]
** [[EMFIncQuery/UserDocumentation/Surrogate_Queries|Surrogate queries for existing derived features]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/Surrogate_Queries|Surrogate queries for existing derived features]]
** [[EMFIncQuery/UserDocumentation/IncQuery_Viewers|IncQuery Viewers]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/IncQuery_Viewers|IncQuery Viewers]]
** [[EMFIncQuery/UMLSupport|UML Support]]
+
** ''TODO'' [[EMFIncQuery/UMLSupport|UML Support]]
* [[EMFIncQuery/UserDocumentation/Examples|Examples]]
+
* ''TODO'' [[EMFIncQuery/UserDocumentation/Examples|Examples]]
* [[EMFIncQuery/UserDocumentation/Build|EMF-IncQuery in CI Environments (Maven artifacts)]] (since 0.8.0)
+
* ''TODO'' [[EMFIncQuery/UserDocumentation/Build|EMF-IncQuery in CI Environments (Maven artifacts)]] (since 0.8.0)
 
* Reporting bugs or requesting new features
 
* Reporting bugs or requesting new features
** [[EMFIncQuery/UserDocumentation/IssueTracking|Issue tracking]]
+
** ''TODO'' [[EMFIncQuery/UserDocumentation/IssueTracking|Issue tracking]]
 
* Frequently Asked Questions
 
* Frequently Asked Questions
** [[EMFIncQuery/FAQ|FAQ]]
+
** ''TODO'' [[EMFIncQuery/FAQ|FAQ]]
 
+
== Contributor's Guide ==
+
 
+
* Overview and setting up
+
** [[EMFIncQuery/DeveloperDocumentation/DevEnvironment|Setting up the Development Environment]]
+
** [[EMFIncQuery/DeveloperDocumentation/BuildConfig|The EMF-IncQuery Build Configuration]]
+
** [[EMFIncQuery/DeveloperDocumentation/IssueTracking|Issue Reporting and Management]]
+
** [[EMFIncQuery/DeveloperDocumentation/FeatureSetAndTesting|Feature Set and Testing]]
+
** [[EMFIncQuery/DeveloperDocumentation/Contributing|How to contribute]]
+
* Developer's 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]]
+
** [[EMFIncQuery/DeveloperDocumentation/IncQueryEngineArchitecture|Overview of the IncQuery Engine Internals]]
+
** [[EMFIncQuery/DeveloperDocumentation/PSystem|PSystem Overview]]
+
** [[EMFIncQuery/DeveloperDocumentation/QueryProcessing|Query Processing]]
+
** [[EMFIncQuery/DeveloperDocumentation/LocalSearch|Local Search]]
+
* Developer Meeting Minutes
+
** [[EMFIncQuery/DeveloperMeetingMinutes|Meeting minutes]]
+
  
 
== Releases ==
 
== Releases ==
 
* Version 0.7.0 ([https://www.eclipse.org/incquery/javadoc/releases/0.7.0/ Javadoc])
 
* Version 0.7.0 ([https://www.eclipse.org/incquery/javadoc/releases/0.7.0/ Javadoc])
** [[EMFIncQuery/Releases/MigrateTo0.7|Migration guide]]
+
** ''TODO'' [[EMFIncQuery/Releases/MigrateTo0.7|Migration guide]]
** Known issues affecting version 0.7.1 [[EMFIncQuery/Releases/KnownIssuesFor0.7.1|fixed in 0.7.2]]
+
** ''TODO'' 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])
 
* Version 0.8.0 ([https://www.eclipse.org/incquery/javadoc/releases/0.8.0/ Javadoc])
** [[EMFIncQuery/Releases/NewAndNoteWorthy0.8|New and Noteworthy]]
+
** ''TODO'' [[EMFIncQuery/Releases/NewAndNoteWorthy0.8|New and Noteworthy]]
** [[EMFIncQuery/Releases/MigrateTo0.8|Migration guide]]
+
** ''TODO'' [[EMFIncQuery/Releases/MigrateTo0.8|Migration guide]]
** Known issues affecting version 0.8.1 [[EMFIncQuery/Releases/KnownIssuesFor0.8.1|fixed in 0.8.2]]
+
** ''TODO'' Known issues affecting version 0.8.1 [[EMFIncQuery/Releases/KnownIssuesFor0.8.1|fixed in 0.8.2]]
 
* Version 0.9.0 ([https://www.eclipse.org/incquery/javadoc/releases/0.9.0/ Javadoc])
 
* Version 0.9.0 ([https://www.eclipse.org/incquery/javadoc/releases/0.9.0/ Javadoc])
** [[EMFIncQuery/Releases/NewAndNoteWorthy0.9|New and Noteworthy]]
+
** ''TODO'' [[EMFIncQuery/Releases/NewAndNoteWorthy0.9|New and Noteworthy]]
 
[[Category:EmfIncQuery]]
 
[[Category:EmfIncQuery]]
 
* Version 1.0.0 ([https://www.eclipse.org/incquery/javadoc/releases/1.0.0/ Javadoc])
 
* Version 1.0.0 ([https://www.eclipse.org/incquery/javadoc/releases/1.0.0/ Javadoc])
** [[EMFIncQuery/Releases/NewAndNoteWorthy1.0|New and Noteworthy]]
+
** ''TODO'' [[EMFIncQuery/Releases/NewAndNoteWorthy1.0|New and Noteworthy]]
** [[EMFIncQuery/Releases/MigrateTo1.0|Migration guide]]
+
** ''TODO'' [[EMFIncQuery/Releases/MigrateTo1.0|Migration guide]]
 
* Version 1.1.0 ([https://www.eclipse.org/incquery/javadoc/releases/1.1.0/ Javadoc])
 
* Version 1.1.0 ([https://www.eclipse.org/incquery/javadoc/releases/1.1.0/ Javadoc])
** [[EMFIncQuery/Releases/NewAndNoteWorthy1.1|New and Noteworthy]]
+
** ''TODO'' [[EMFIncQuery/Releases/NewAndNoteWorthy1.1|New and Noteworthy]]
** [[EMFIncQuery/Releases/MigrateTo1.1|Migration guide]]
+
** ''TODO'' [[EMFIncQuery/Releases/MigrateTo1.1|Migration guide]]

Revision as of 17:14, 25 February 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 EMF-IncQuery 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.


EMF-IncQuery User Documentation

Releases

Back to the top