User Tools

Site Tools


tutorials: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
tutorials:xl-queries-and-operators [2024/12/07 16:30] – [Aggregators] ksmolentutorials:xl-queries-and-operators [2025/06/02 07:36] (current) – added transitive closure examples ksmolen
Line 60: Line 60:
 } }
 </code> </code>
 +
 +{{ :tutorials:graph_query_example_2rot.png?200|}}
 +
 +The underlying 2d graph of the generated structure given below:
 +
 +Beginning from //RGGRoot//, we have the sequence of three //Internodes// where to each a //Leaf// is linked by a branching edge. The last internode, additionally, has a Bud node successor.
 +
  
 ==== Query examples ==== ==== Query examples ====
Line 138: Line 145:
 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 [[groimp-platform:xl-operators|aggregate operations]] are: ''count'', ''sum'', ''empty'', ''exist'', ''forall'', ''first'', ''last'', ''max'', ''min'', ''mean'', ''selectRandomly'', ''selectWhereMin'', ''selectWhereMax'', ...+Standard [[:groimp-platform:xl-builtin-methods|aggregate operations]] are: ''count'', ''sum'', ''empty'', ''exist'', ''forall'', ''first'', ''last'', ''max'', ''min'', ''mean'', ''selectRandomly'', ''selectWhereMin'', ''selectWhereMax'', ...
  
   * Count all leaves:    * Count all leaves: 
Line 195: Line 202:
 </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>
tutorials/xl-queries-and-operators.1733585443.txt.gz · Last modified: 2024/12/07 16:30 by ksmolen