Node predicates represent patterns applied on the Nodes in the graph. They are the base of XL queries, as it is required to have at least one node predicate in a query.
Path patterns enable to add edge (or path more generally) predicates between node patterns.
Transitive closures of relations follow the well-known syntax of regular expressions where patterns to be repeated are enclosed in parentheses with a quantifier appended. The possible quantifiers are:
+ : 1-to-n repetitions.* : 0-to-n repetitions.? : 0-to-1 repetitions.{n} : exactly n repetitions,{n,m} : n-to-m repetitions.{n,} : least n repetitions.Single, late and optional matches enables to restrict the set of matches to a specific condition. These conditions can improve the pattern matching in as it might enable to skip some of the predicates. The syntax is:
: : for single match& : for late match? : for optional matchNode patterns, combined with path patterns, define a connected pattern graph. The pattern graph may additionally:
,).