Predicate
Node pattern
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 pattern
Path patterns enable to add edge (or path more generally) predicates between node patterns.
Transitive closure
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 match
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 match
Combining
Node patterns, combined with path patterns, define a connected pattern graph. The pattern graph may additionally:
- Combine several path patterns without node pattern.
- Use unconnected part with the separator comma (
,). - Include boolean valued expression as condition.
