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/DeveloperDocumentation/QueryEngineArchitecture"

< VIATRA‎ | Query
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{caution|Old information|The content from this page was migrated to the new, Github-based wiki system of VIATRA: https://github.com/eclipse-viatra/org.eclipse.viatra/wiki/VIATRA-Query-Engine-Internals}}
 +
{{VIATRA}}
 
== VIATRA Query Engine Internals ==
 
== VIATRA Query Engine Internals ==
  
Line 7: Line 9:
  
 
* '''ViatraQueryEngine''': the central element of the API.
 
* '''ViatraQueryEngine''': the central element of the API.
* '''ViatraQueryScope''': the set of model elements the ViatraQueryEngine should work on. The project itself implements only EMFScope right now.
+
* '''QueryScope''': the set of model elements the ViatraQueryEngine should work on.
* '''EMFQueryRuntimeContext''': wrapper class for the query backends to access the model. The access can be both indexed and non-indexed.
+
** The project itself implements only '''EMFScope''' right now.
* '''IQueryBackend''': an executor of graph pattern matches; it instantiates IResultProviders. Query Backends needs to be registered to the ViatraQueryEngine itself.
+
* '''IQueryRuntimeContext''': wrapper class for the query backends to access the model. The access can be both indexed and non-indexed.
** '''RetePatternMatcher''' is the fully incremental implementation of the IResultProvider interface.
+
* '''IQueryBackend''': an executor of graph pattern matches; it instantiates '''IQueryResultProvider'''s. Query Backends needs to be registered to the ViatraQueryEngine itself.
** '''LocalSearchMatcher''' is a local search based implementation of the IResultProvider interface.
+
** '''RetePatternMatcher''' is the fully incremental implementation of the '''IQueryResultProvider''' interface.
* The '''Matcher''' interface is the public matcher API: generated instances are type-safe.
+
** '''LocalSearchResultProvider''' is a local search based implementation of the '''IQueryResultProvider''' interface.
 +
* The '''ViatraQueryMatcher''' interface is the public matcher API: generated instances are type-safe.

Latest revision as of 09:52, 2 April 2024

Stop.png
Old information
The content from this page was migrated to the new, Github-based wiki system of VIATRA: https://github.com/eclipse-viatra/org.eclipse.viatra/wiki/VIATRA-Query-Engine-Internals


VIATRA Query Engine Internals

Overview

IncQueryEngine.png

Most important concepts

  • ViatraQueryEngine: the central element of the API.
  • QueryScope: the set of model elements the ViatraQueryEngine should work on.
    • The project itself implements only EMFScope right now.
  • IQueryRuntimeContext: wrapper class for the query backends to access the model. The access can be both indexed and non-indexed.
  • IQueryBackend: an executor of graph pattern matches; it instantiates IQueryResultProviders. Query Backends needs to be registered to the ViatraQueryEngine itself.
    • RetePatternMatcher is the fully incremental implementation of the IQueryResultProvider interface.
    • LocalSearchResultProvider is a local search based implementation of the IQueryResultProvider interface.
  • The ViatraQueryMatcher interface is the public matcher API: generated instances are type-safe.

Back to the top