User Tools

Site Tools


02_user_tutorials:15_rules:01_xl-queries-and-operators

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
02_user_tutorials:15_rules:01_xl-queries-and-operators [2025/12/10 13:14] – ↷ Page moved from 02_new_tutorials:15_rules:01_xl-queries-and-operators to 02_user_tutorials:15_rules:01_xl-queries-and-operators gaetan02_user_tutorials:15_rules:01_xl-queries-and-operators [2025/12/12 11:54] (current) groimp
Line 1: Line 1:
 +~~NOTOC~~
 ====== XL queries and operators ====== ====== XL queries and operators ======
  
Line 61: Line 62:
 </code> </code>
  
-The underlying 2d graph of the generated structure given below:+{{ :tutorials:graph_query_example_2rot.png?200|}}
  
-{{ :tutorials:graph_query_example_2.png?620|}}+The underlying 2d graph of the generated structure is given below:
  
-Beginning from //RGGRoot//, we have the sequence of three //Internodes// where to each is a //Leaf// linked by a branching edge. The last internode, additionally, has a Bud node successor.+Beginning from //RGGRoot//, we have the sequence of three //Internodes//where to each //Internode// a //Leaf// is linked by a branching edge. The last internode, additionally, has a //Bud// node successor.
  
  
Line 145: Line 146:
 Aggregate operations are used to collect multiple values when traversing the graph structure and return a single value. Aggregate operations are used to collect multiple values when traversing the graph structure and return a single value.
  
-Standard [[01_user_documentation:groimp-platform:xl-builtin-methods|aggregate operations]] are: ''count'', ''sum'', ''empty'', ''exist'', ''forall'', ''first'', ''last'', ''max'', ''min'', ''mean'', ''selectRandomly'', ''selectWhereMin'', ''selectWhereMax'', ...+Standard [[:15_cheatsheet:operators|aggregate operations]] are: ''count'', ''sum'', ''empty'', ''exist'', ''forall'', ''first'', ''last'', ''max'', ''min'', ''mean'', ''selectRandomly'', ''selectWhereMin'', ''selectWhereMax'', ...
  
   * Count all leaves:    * Count all leaves: 
Line 202: Line 203:
 </hidden> </hidden>
  
 +==== Transitive closure ====
 +
 +Transitive closure is a concept used to derive relations between successive nodes connected by several edges of the same type. For example, we want to find all descendants of some given node that are of type Internode.
 +
 +The quantifier ''+'' stands for 1-to-//n// repetitions, the quantifier ''*'' stands for 0-to-//n// repetitions.
 +
 +  * Find all internodes connected to the bud:
 + 
 +<code java> 
 +(* Bud (<--)+ Internode *)
 +</code>
 +
 +Special syntax is used after the quantifier if we are interested only in finding minimal elements '':(node_type)'' 
 +
 +  * Find the first internode connected to the bud:
 + 
 +<code java> 
 +(* Bud (<--)+ :(Internode) *)
 +</code>
02_user_tutorials/15_rules/01_xl-queries-and-operators.1765368851.txt.gz · Last modified: 2025/12/10 13:14 by gaetan