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/LocalSearch"

< VIATRA‎ | Query
(Local Search)
(Local Search)
Line 13: Line 13:
 
* Investigate if new IQPL elements (e.g. containment) should be added that are only supported by either the local search-based or the RETE algorithm.
 
* Investigate if new IQPL elements (e.g. containment) should be added that are only supported by either the local search-based or the RETE algorithm.
 
* Support parallelism for plan execution. For example, the search graph traversal can be done simultaneously starting from different nodes.
 
* Support parallelism for plan execution. For example, the search graph traversal can be done simultaneously starting from different nodes.
 +
* Discuss different plan generation options and additional capabilities [[EMFIncQuery/DeveloperDocumentation/LocalSearch/ConstraintApplicationCondition|here]].

Revision as of 10:22, 15 June 2015

Local Search

This page summarizes the improvement ideas concerning the local search-based pattern matching capabilites of EMF-IncQuery.

  • Hybrid pattern matching:
    • New ISearchOperation to support calling an incremental matcher
    • Provide input for the flattener: which patterns should NOT be flattened. Implement this by creating an interface with a method that expects a constraint and a pattern. (Interface added)
  • Implement a weight function to estimate the cost of a given search plan over a model
  • Learning algorithm: the planner shall be able to tune its internal parameters regarding the planning process. This could be done by providing (small) example models and measuring pattern matching performance.
  • Provide a low-level code generator: instead of the current execution method, that is based on sequential exectuion of ISearchOperations contained in plans, generate executable code. This might be in a form of several embedded for loops and if conditions.
  • Support the POperationCompiler with normalization capability to remove redundant constraints thus decrease the search plan size.
  • Investigate if new IQPL elements (e.g. containment) should be added that are only supported by either the local search-based or the RETE algorithm.
  • Support parallelism for plan execution. For example, the search graph traversal can be done simultaneously starting from different nodes.
  • Discuss different plan generation options and additional capabilities here.

Back to the top