User Tools

Site Tools


01_user_documentation:07_rgg_xl:03_query_graph:07_msgraph:03_predicate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
01_user_documentation:07_rgg_xl:03_query_graph:07_msgraph:03_predicate [2026/02/07 12:47] gaetan01_user_documentation:07_rgg_xl:03_query_graph:07_msgraph:03_predicate [2026/02/07 13:04] (current) gaetan
Line 2: Line 2:
  
 The MSGraph have a specific predicate for the [[:01_user_documentation:07_rgg_xl:02_xl:03_query:01_predicate:02_path|path patterns]]. It will try to implicitly match path pattern between the different scales of the other predicates. The MSGraph have a specific predicate for the [[:01_user_documentation:07_rgg_xl:02_xl:03_query:01_predicate:02_path|path patterns]]. It will try to implicitly match path pattern between the different scales of the other predicates.
 +
 +===== Scale matching =====
 +
 +For the MSGraph, the spacing predicate (implicit path pattern) have two implicit usages:
 +  - The matched nodes between the predicate belong to the same scale: the spacing pattern works as in a [[:01_user_documentation:07_rgg_xl:03_query_graph:03_rgggraph|rgg graph model]] (i.e. as defined in [[:01_user_documentation:07_rgg_xl:02_xl:03_query:01_predicate:02_path:01_implicit|implicit path pattern]]).
 +  - Otherwise, the predicate use [[:01_user_documentation:06_graph:01_edge:04_refinement|refinement edges]] as default connection. (Even with the implicit "branch" edge '[').
 +
 +To define if nodes type belong to the same scale, the  [[:01_user_documentation:06_graph:03_graphs:01_project_graph:03_type_graph|type graph]] is used. 
  
 ===== Examples ===== ===== Examples =====
Line 11: Line 19:
 MSGraph msgraph = MSGraph.get (graph()) ; // get an instance of a MSGraph MSGraph msgraph = MSGraph.get (graph()) ; // get an instance of a MSGraph
 // use the MSGraph as query model // use the MSGraph as query model
-msgraph.[A b:B ::> println(b);]; // the node B is found because Node "SPACE" Node look for refinement edges as well+msgraph.[A b:B ::> println(b);]; // the node B is found because Node "SPACE" Node look for refinement edges as A and B are not defined in the same scale 
 </code> </code>
01_user_documentation/07_rgg_xl/03_query_graph/07_msgraph/03_predicate.txt · Last modified: 2026/02/07 13:04 by gaetan