From 8b6513bc721ad084c44c9242056b94a9a614898e Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Wed, 25 Jan 2017 21:15:29 +0100 Subject: [PATCH 01/37] Add proposal for isomorphic pattern matching in response to #174 --- .../CIP2017-01-18-isomorphic-matching.adoc | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 cip/1.accepted/CIP2017-01-18-isomorphic-matching.adoc diff --git a/cip/1.accepted/CIP2017-01-18-isomorphic-matching.adoc b/cip/1.accepted/CIP2017-01-18-isomorphic-matching.adoc new file mode 100644 index 0000000000..687c78cf7e --- /dev/null +++ b/cip/1.accepted/CIP2017-01-18-isomorphic-matching.adoc @@ -0,0 +1,79 @@ += CIP2017-01-18 - Isomorphic Matching Semantics +:numbered: +:toc: +:toc-placement: macro +:source-highlighter: codemirror + +*Author:* Stefan Plantikow + +This proposal is a response to CIR-2017-174. + +=== Proposal: Add new uniqueness modes + +It is proposed to add the capability to select one of three uniqueness modes for a uniqueness scope: + +* `MATCH ALL`: Impose no uniqueness requirements on candidate matches +* `MATCH UNIQUE RELATIONSHIPS`: Only consider candidate matches that are relationship-unique +* `MATCH UNIQUE NODES`: Only consider candidate matches that are node-unique + +The default uniqueness mode used by `MATCH` (without a further specification of the preferred uniqueness mode) is relationship-unique matching. + +`MATCH ALL` does not reject any paths - not even paths containing cycles - and hence can lead to infinite result sets for the whole query. +It is recommended that implementations generate at least a warning when static analysis is not able to proof query termination due to the chosen uniqueness mode. + +It is conceivable that this approach for the specification of uniqueness is extensible by adding further ways to restrict uniqueness. + +=== Proposal: Specifying the uniqueness mode of a subquery + +Changing the uniqueness mode of a sub query recursively changes the default uniqueness mode for all contained `MATCH` clauses unless it is overridden again. Examples: + +* `MATCH { MATCH ... } ...` +* `DO { MATCH ... } ...` + +=== Proposal: Default uniqueness mode + +Additionally, it is proposed that a conforming implementation should provide a pre-parser option for defining a default uniqueness level for use with regular pattern matching. + +* `unique=nodes` for configuring node-uniqueness as the default for `MATCH` +* `unique=relationships` for configuring relationship-uniqueness as the default for `MATCH` + +=== Proposal: Path classes + +Graph theory has defined various classes of paths. +Cypher so far only supports a single notion of path. + +To improve expressivity and to help preventing the generation of infinite result sets when working with non-unique matches, it is proposed to introduce additional predicates for testing paths: + +* `open(p)`: true if the start and the end node of `p` are not the same node +* `closed(p)`: true if the start and the end node of `p` are the same node +* `trail(p)`: true if `p` contains no duplicate relationships +* `simple(p)`: true if `p` contains no duplicate relationships and either no duplicate nodes at all or the start node and the end node are the same node +* `trek(p)`: true if `p` contains two identical consecutive relationships +* `repetetive(p)`: true if `p` contains any closed subpath `q` of `size > 1` that is immediately repeated after itself in `p` + +Using `repetetive` allows ensuring variable length path matching under no-uniqueness yields a finite result set: + +[source, Cypher] +---- +MATCH ALL p=(a)-[*]->(b), (b)-[*2..4]->(c) WHERE NOT repetetive(p) +RETURN p +---- + +Note that these functions naturally extend to lists. + +Path predicates may be used to further restrict which paths are enumerated by pattern matching. +All uniqueness modes naturally correspond to default path classes: + +* Non-uniqueness implies no restrictions on the path class. +* Relationship-uniqueness implies that all matched paths are trails. +* Node-uniqueness implies that all matched paths are simple paths. + +== Benefits to this proposal + +Cypher is able to express more general classes of patterns. + +== Caveats to this proposal + +Non-uniqueness allows for non-terminating queries. + +A moderate increase in language complexity. From ed1a824bd45a99236a8195a40ec28b4ae740977e Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Sun, 16 Jul 2017 15:46:28 +0200 Subject: [PATCH 02/37] Support walks, trails, paths; shortest and cheapest paths matching --- .../CIP2017-01-18-isomorphic-matching.adoc | 79 ------- ...CIP2017-01-18-path-matching-semantics.adoc | 214 ++++++++++++++++++ 2 files changed, 214 insertions(+), 79 deletions(-) delete mode 100644 cip/1.accepted/CIP2017-01-18-isomorphic-matching.adoc create mode 100644 cip/1.accepted/CIP2017-01-18-path-matching-semantics.adoc diff --git a/cip/1.accepted/CIP2017-01-18-isomorphic-matching.adoc b/cip/1.accepted/CIP2017-01-18-isomorphic-matching.adoc deleted file mode 100644 index 687c78cf7e..0000000000 --- a/cip/1.accepted/CIP2017-01-18-isomorphic-matching.adoc +++ /dev/null @@ -1,79 +0,0 @@ -= CIP2017-01-18 - Isomorphic Matching Semantics -:numbered: -:toc: -:toc-placement: macro -:source-highlighter: codemirror - -*Author:* Stefan Plantikow - -This proposal is a response to CIR-2017-174. - -=== Proposal: Add new uniqueness modes - -It is proposed to add the capability to select one of three uniqueness modes for a uniqueness scope: - -* `MATCH ALL`: Impose no uniqueness requirements on candidate matches -* `MATCH UNIQUE RELATIONSHIPS`: Only consider candidate matches that are relationship-unique -* `MATCH UNIQUE NODES`: Only consider candidate matches that are node-unique - -The default uniqueness mode used by `MATCH` (without a further specification of the preferred uniqueness mode) is relationship-unique matching. - -`MATCH ALL` does not reject any paths - not even paths containing cycles - and hence can lead to infinite result sets for the whole query. -It is recommended that implementations generate at least a warning when static analysis is not able to proof query termination due to the chosen uniqueness mode. - -It is conceivable that this approach for the specification of uniqueness is extensible by adding further ways to restrict uniqueness. - -=== Proposal: Specifying the uniqueness mode of a subquery - -Changing the uniqueness mode of a sub query recursively changes the default uniqueness mode for all contained `MATCH` clauses unless it is overridden again. Examples: - -* `MATCH { MATCH ... } ...` -* `DO { MATCH ... } ...` - -=== Proposal: Default uniqueness mode - -Additionally, it is proposed that a conforming implementation should provide a pre-parser option for defining a default uniqueness level for use with regular pattern matching. - -* `unique=nodes` for configuring node-uniqueness as the default for `MATCH` -* `unique=relationships` for configuring relationship-uniqueness as the default for `MATCH` - -=== Proposal: Path classes - -Graph theory has defined various classes of paths. -Cypher so far only supports a single notion of path. - -To improve expressivity and to help preventing the generation of infinite result sets when working with non-unique matches, it is proposed to introduce additional predicates for testing paths: - -* `open(p)`: true if the start and the end node of `p` are not the same node -* `closed(p)`: true if the start and the end node of `p` are the same node -* `trail(p)`: true if `p` contains no duplicate relationships -* `simple(p)`: true if `p` contains no duplicate relationships and either no duplicate nodes at all or the start node and the end node are the same node -* `trek(p)`: true if `p` contains two identical consecutive relationships -* `repetetive(p)`: true if `p` contains any closed subpath `q` of `size > 1` that is immediately repeated after itself in `p` - -Using `repetetive` allows ensuring variable length path matching under no-uniqueness yields a finite result set: - -[source, Cypher] ----- -MATCH ALL p=(a)-[*]->(b), (b)-[*2..4]->(c) WHERE NOT repetetive(p) -RETURN p ----- - -Note that these functions naturally extend to lists. - -Path predicates may be used to further restrict which paths are enumerated by pattern matching. -All uniqueness modes naturally correspond to default path classes: - -* Non-uniqueness implies no restrictions on the path class. -* Relationship-uniqueness implies that all matched paths are trails. -* Node-uniqueness implies that all matched paths are simple paths. - -== Benefits to this proposal - -Cypher is able to express more general classes of patterns. - -== Caveats to this proposal - -Non-uniqueness allows for non-terminating queries. - -A moderate increase in language complexity. diff --git a/cip/1.accepted/CIP2017-01-18-path-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-path-matching-semantics.adoc new file mode 100644 index 0000000000..1a7daf5e9c --- /dev/null +++ b/cip/1.accepted/CIP2017-01-18-path-matching-semantics.adoc @@ -0,0 +1,214 @@ += CIP2017-01-18 - Configurable Pattern Matching Semantics +:numbered: +:toc: +:toc-placement: macro +:source-highlighter: codemirror + +*Author:* Stefan Plantikow + +This proposal is a response to CIR-2017-174. + +== Motivation + +Currently Cypher uses pattern matching semantics that treats all patterns that occur in a `MATCH` clause as a unit (called a *uniqueness scope*) and only considers pattern instances that bind different relationships to each simple relationship pattern variable and to each element of a variable length relationship pattern variable. +This has come to be called *cypermorphism* informally and is a variation of edge isomorphism. + +Cyphermorphism lies at the intersection of returning as many results as possible while still ruling out returning an infinite number of paths when matching graphs that contain cycles. + +However, the notion of *uniqueness scope* has proven to be non-standard and occasionally confusing for users and cyphermorphic matching is not tractable in terms of computational complexity for some graphs. + +The CIP aims to address these issues. + +== Background + +Each pattern consists of a comma separated list of *pattern parts*. +Pattern parts are bound to a variable and consist of a linear chain of connected node and relationship patterns. + +Note that while Cypher allows omitting path, node, and relationship variables in a pattern this should only be considered as syntactic sugar, i.e. all parts of a pattern are always bound to a variable name from the viewpoint of pattern matching semantics (names are either provided in the query or automatically generated by a conforming implementation). + +== Proposal + +This CIP proposes to replace the notion of *uniqueness scope* and *cyphermorphism* and all associated rules by providing new, configurable pattern matching semantics for Cypher as outlined in this section. + +=== Rename PATH type + +This CIP proposes to rename the cypher type `PATH` to `WALK`. + +=== Definitions + +This CIP introduces the following kinds of walks: + +* `WALK`: A walk is an arbitrary, non-empty sequence of alternating nodes and relationships that starts with a node and ends with a node. +* `TRAIL`: A trail is a walk that does not contain the same relationship twice. +* `PATH`: A simple path is a trail that does not contain the same node twice unless that node is both the start node and the end node of the path. + +Note that every `PATH` is a `TRAIL` and that every `TRAIL` is a `WALK`. + +=== Pattern binder type + +This CIP proposes to name the variable of a pattern element of a pattern part to *pattern binder* in the grammar. +Note that a pattern binder is always bound to a linear sequence of patterns of its pattern element. + +This CIP proposes introducing the notion of a *pattern binder type* that may be writtern before a pattern binder in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and limits the set of valid pattern instances that are considered as potential matches for the following pattern element: + +* `WALK` This pattern binder should only be bound to a `WALK` that matches all node, relationship, and path patterns in the following pattern element +* `TRAIL` This pattern binder should only be bound to a `TRAIL` that matches all node, relationship, and path patterns in the following pattern element +* `PATH` This pattern binder should only be bound to a simple `PATH` that matches all node, relationship, and path patterns in the following pattern element + +The pattern binder type may be futher qualified with one of the following prefixes: + +* `OPEN WALK|TRAIL|PATH` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are not the same node +* `CLOSED WALK|TRAIL|PATH` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are the same node + +The following additional pattern binder types are proposed to accomodate existing terminology that is commonly used in graph theory: + +* `CIRCUIT` is a synonym for `CLOSED TRAIL` +* `CYCLE` is a synonym for `CLOSED PATH` + +Implementations are advised to signal a warning for every use of an `OPEN` pattern binder type if the two endpoints of the pattern element are both unbound and both use the same variable name. + +Implementations are advised to signal a warning for every use of an `CLOSED` pattern binder type if the two endpoints of the pattern element are both unbound and both use a different variable name. + +=== Pattern matching mode + +This CIP proposes introducing the notion of a *pattern matching mode* that may be writtern as a prefix to a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and applies to all pattern parts in that pattern. + +=== MATCH EVERY mode + +This CIP proposes the new `MATCH EVERY [WALK|TRAIL|PATH]` pattern matching mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern element. +This may return an infinite or at least a very large result for some graphs. + +Implementations are advised to signal a warning for every use of `MATCH EVERY (OPEN|CLOSED) WALK` that may lead to the generation of an infinite result set. + +=== MATCH SHORTEST mode + +This CIP proposes the new `MATCH SHORTEST [WALK|TRAIL|PATH]` pattern matching mode that matches every _shortest_ walks (or trails, or paths respectively) as described by all node, relationship, and path patterns in the following pattern element. + +This CIP proposes to deprecate the existing syntax for both `shortestPath` and `allShortestPaths` matching of Cypher. + +=== Weighting rules + +This CIP proposes that pattern elements may be further suffixed with a weighting rule of one of the following forms: + +* `WEIGHT r IN AS ` Calculates a weight `` by evaluating the given `` for each relationship `r` in the currently matched walk +* `WEIGHT || AS ` Calculates a weight `` by summing the results of evaluating `abs()` for each relationship `r` in the currenlty matched walk in a special scope that only contains all properties of `r` as variables + +=== Product function + +To support a common family of weight calculations, this CIP proposes the introduction of a new aggregate function `product` for computing the product of a set of numbers. + +=== MATCH CHEAPEST mode + +This CIP proposes the new `MATCH CHEAPEST [WALK|TRAIL|PATH]` pattern matching mode that matches every cheapest walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern element and its concluding mandatory weighting rule that is prefixed with `BY`. + +The mandatory weighting rule may omit specifying an alias name for the computed weight and it's aggregation must be monotone (i.e. the sequence of intermediary results obtained by computing the aggregation incrementally over all input values in any order is always monotonically increasing). + +A conforming implementation is expected to raise a runtime error when the monotonicity of a monotone aggregation is violated at runtime. + +A conforming implementation may raise a compile time error when it can statically prove that the monotonicity of a monotone aggregation may be violated at runtime. + +=== Nondeterministic matching modes + +This CIP proposed using the keywords `SINGLE` and `FIRST` to modify pattern matching modes to return exactly zero or one arbitrarily chosen match. + +The supported forms are: + +* `MATCH SINGLE SHORTEST [WALK|TRAIL|PATH]` to return at most a single shortest walk (or trail, or path respectively) +* `MATCH SINGLE CHEAPEST [WALK|TRAIL|PATH]` to return at most a single cheapest walk (or trail, or path respectively) +* `MATCH FIRST [WALK|TRAIL|PATH]` to return at most a single arbitrary walk (pendent to `MATCH EVERY`) +* `MATCH SINGLE [WALK|TRAIL|PATH]` to return at most a single walk (or trail, or path respectively) using default pattern matching semantics (defined below) + +=== Default pattern matching semantics + +It is proposed that a conforming implementation should provide a pre-parser option for defining the default pattern binder type for each pattern matching mode as well as the default pattern matching mode: + +* `match-every=walk|trail|path` for configuring the default pattern binder type for each use of the `MATCH EVERY` pattern matching mode +* `match-shortest=walk|trail|path` for configuring the default pattern binder type for each use of the `MATCH SHORTEST` pattern matching mode +* `match-cheapest=walk|trail|path` for configuring the default pattern binder type for each use of the `MATCH CHEAPEST` pattern matching mode +* `match=every|shortest` for configuring the default pattern matching mode + +Using these pre-parser options, current Cypher pattern matching semantics closely correspond to `match-every=trail`, `match-shortest=trail`, `match=every` (except for the use of the uniqueness scope) + +This CIP proposes to change Cypher's default pattern matching semantics to `match-every=trail`, `match-shortest=walk`, `match-cheapest=walk`, `match=shortest`. + +=== Variable length patterns + +This CIP aligns with the introduction of path patterns by proposing that variable length patterns are to be deprecated in favor of path patterns. + +To simplify this migration and deprecation, this CIP proposes that any pattern element that contains a variable length pattern but no path pattern should match a `TRAIL` be default. + +=== Path predicates + +This CIP further proposes to introduce additional predicates and functions for working with walks + +* `open(p)`: true if the start and the end node of `p` are not the same node +* `closed(p)`: true if the start and the end node of `p` are the same node +* `trail(p)`: `p` if `p` contains no duplicate relationships, `NULL` otherwise +* `path(p)`: `p` if `p` contains no duplicate relationships and either no duplicate nodes at all or the start node and the end node are the same node, `NULL` otherwise +* `circuit(p)`: `trail(p)`, if `closed(p)` is true, `NULL` otherwise +* `cycle(p)`: `path(p)`, if `closed(p)` is true, `NULL` otherwise +* `overlap(p1, p2)`: the shared walk between `p1` and `p2`, or `NULL` otherwise +* `overlap(nodes(p1), nodes(p2))`: the shared walk between `nodes(p1)` and `nodes(p2)`, or `NULL` otherwise +* `overlap(rels(p1), rels(p2))`: the shared walk between `rels(p1)` and `rels(p2)`, or `NULL` otherwise +* `adjacent(p1, p2)`: true if `startNode(p1) IN [startNode(p2), endNode(p2)]` or `endNode(p1) IN [startNode(p2), endNode(p2)]` +* `adjacent(nodes(p1), nodes(p2))`: true if `startNode(p1) IN [startNode(p2), endNode(p2)]` or `endNode(p1) IN [startNode(p2), endNode(p2)]` +* `adjacent(rels(p1), rels(p2))`: true if `startNode(p1) IN [startNode(p2), endNode(p2)]` or `endNode(p1) IN [startNode(p2), endNode(p2)]` +* `adjacent(r1, r2)`: true if `startNode(r1) IN [startNode(r2), endNode(r2)]` or `endNode(r1) IN [startNode(r2), endNode(r2)]` +* `adjacent(n1, n2)`: true if `EXISTS (n1)-[]-(n2)` + +== Examples + +The following examples demonstrates various ways in which the newly proposed constructs may be used if this CIP is adopted. + +=== Matching shortest paths + +[source=cypher] +---- +// shortestPath(...) today becomes: +MATCH SHORTEST TRAIL p=(a)-[r*]->(b) +RETURN * LIMIT 1 + +// allShortestPath(...) today becomes: +MATCH SHORTEST TRAIL p=(a)-[r*]->(b) +RETURN p +---- + +=== Matching cheapest paths + +[source=cypher] +---- +MATCH CHEAPEST PATH p=(a)-/(:LOVES|:LIKES)*/->(b) BY WEIGHT |strength| AS w +RETURN p AS paht, w AS weight +---- + +=== Matching with existing semantics + +`overlap` may be used to express Cypher's current pattern matching semantics. + +[source=cypher] +---- +// Today (using same uniqueness scope for pat1, pat2, and pat) +MATCH pat1=..., pat2=..., pat3=... + +// This CIP +MATCH EVERY pat1=... +MATCH EVERY pat2=... WHERE length(overlap(pat1, pat2)) > 1 +MATCH EVERY pat3=... +WHERE + length(overlap(pat1, pat3))>1 OR + length(overlap(pat2, pat3))>1 +) +---- + +== Benefits to this proposal + +This proposal adds a generic facility to Cypher for expressing desired pattern matching semantics. + +== Caveats to this proposal + +A moderate increase in language complexity. + +A substantial departure from current pattern matching semantics. +However, care has been taken to retain access to current semantics. + +`MATCH EVERY (OPEN|CLOSED) WALK` allows for non-terminating queries. From 61176180e9b6985357331b5c8cca2a2bad3590ed Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Mon, 17 Jul 2017 01:43:11 +0200 Subject: [PATCH 03/37] Rework CIP --- ...nfigurable-pattern-matching-semantics.adoc | 231 ++++++++++++++++++ ...CIP2017-01-18-path-matching-semantics.adoc | 214 ---------------- 2 files changed, 231 insertions(+), 214 deletions(-) create mode 100644 cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc delete mode 100644 cip/1.accepted/CIP2017-01-18-path-matching-semantics.adoc diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc new file mode 100644 index 0000000000..2052e4f3c3 --- /dev/null +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -0,0 +1,231 @@ += CIP2017-01-18 - Configurable Pattern Matching Semantics +:numbered: +:toc: +:toc-placement: macro +:source-highlighter: codemirror + +*Author:* Stefan Plantikow + +This proposal is a response to CIR-2017-174. + +== Motivation + +Currently Cypher uses pattern matching semantics that treats all patterns that occur in a `MATCH` clause as a unit (called a *uniqueness scope*) and only considers pattern instances that bind different relationships to each fixed length relationship pattern variable and to each element of a variable length relationship pattern variable. +This has come to be called *cypermorphism* informally and is a variation of edge isomorphism. + +Cyphermorphism lies at the intersection of returning as many results as possible while still ruling out returning an infinite number of paths when matching graphs that contain cycles. + +However, the notion of *uniqueness scope* has proven to be non-standard and is occasionally confusing for users and cyphermorphic matching is not tractable in terms of computational complexity for some graphs. + +The CIP aims to address these issues. + +== Background + +This CIP relies on the terminology introduced by the openCypher grammar. + +Most notably, a pattern in Cypher consists of a comma separated list of *pattern parts*. +Pattern parts may be bound to a path variable and consist of a linear chain of connected node and relationship patterns. + +While Cypher allows omitting path, node, and relationship variables in a pattern this is just syntactic sugar, i.e. all parts of a pattern should be considered to be bound to a variable name from the viewpoint of pattern matching semantics (names are either provided in the query or automatically generated by a conforming implementation). + +== Proposal + +This CIP proposes to replace the notion of *uniqueness scope* and *cyphermorphism* and all associated rules by providing new, configurable pattern matching semantics for Cypher as outlined in this section. + +This CIP has been submitted in the belief that *CIP2017-02-06 Path Pattern Queries* will be accepted and is aligned with it. + +=== Walks + +This CIP introduces the following kinds of walks: + +* `WALK`: A walk is an arbitrary, non-empty sequence of alternating nodes and relationships that starts with a node and ends with a node. +* `TRAIL`: A trail is a walk that does not contain the same relationship twice. +* `PATH`: A simple path is a trail that does not contain the same node twice unless that node is both the start node and the end node of the path. + +Note that every `PATH` is a `TRAIL` and that every `TRAIL` is a `WALK`. + +This CIP proposes to rename the cypher type `PATH` to `WALK`. + +=== Pattern binders + +This CIP proposes to name the path variable that occurs before a pattern element of a pattern part to *pattern binder* in the grammar. +Note that such variables are always bound to a linear sequence of node, relationship, and path query patterns of its pattern element. + +This CIP proposes introducing the notion of a *pattern binder class* that may be writtern before a pattern binder in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and restricts the set of valid pattern matches for the following pattern element. +The proposed pattern binder classes are: + +* `WALK` This pattern binder should only be bound to a `WALK` that matches all node, relationship, and path query patterns given in the following pattern element +* `TRAIL` This pattern binder should only be bound to a `TRAIL` that matches all node, relationship, and path query patterns given in the following pattern element +* `PATH` This pattern binder should only be bound to a simple `PATH` that matches all node, relationship, and path query patterns given in the following pattern element + +The pattern binder class may be futher qualified with one of the following prefixes: + +* `OPEN WALK|TRAIL|PATH` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are _not the same node_ +* `CLOSED WALK|TRAIL|PATH` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are _the same node_ + +The following additional pattern binder classes are proposed to accomodate existing terminology that is commonly used in graph theory: + +* `CIRCUIT` is a synonym for `CLOSED TRAIL` +* `CYCLE` is a synonym for `CLOSED PATH` + +Implementations are advised to signal a warning for every use of an `OPEN` pattern binder class if the two endpoints of the pattern element are both unbound and both use the same variable name. + +Implementations are advised to signal a warning for every use of an `CLOSED` pattern binder class if the two endpoints of the pattern element are both unbound and both use a different variable name. + +=== Pattern match modes + +This CIP proposes introducing the notion of a *pattern match mode* that may be writtern before a pattern binder in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and restricts the set of valid pattern matches for the following pattern element. + +A pattern match mode is always written before any pattern binder class that has been explicitly given for the same pattern binder. + +==== MATCH EVERY mode + +This CIP proposes the new `MATCH EVERY` pattern match mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path query patterns given in the following pattern elements. +This may return an infinite or at least a very large result for some graphs. + +Implementations are advised to signal a warning for every use of `MATCH EVERY (OPEN|CLOSED) WALK` that may lead to the generation of an infinite result set. + +==== MATCH SHORTEST mode + +This CIP proposes the new `MATCH SHORTEST` pattern match mode that matches every _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path query patterns in the following pattern elements. + +This CIP proposes to deprecate the existing syntax for both `shortestPath` and `allShortestPaths` matching of Cypher. + +==== Weight declarations + +This CIP proposes that pattern elements may optionally be followed by weight declarations of one of the following forms: + +* `WEIGHT OVER AS ` Calculates a weight `` by evaluating the given `` for each relationship `` in the associated match +* `WEIGHT || AS ` Calculates a weight `` by summing the results of evaluating `abs()` for each relationship `r` in the associated match in a special scope that only contains all properties of `r` as variables + +Multiple weight declarations may be given as long as they do not define the same `` variable. + +==== MATCH CHEAPEST mode + +This CIP proposes the new `MATCH CHEAPEST` pattern match mode that matches every cheapest walk (or trail, or path respectively) as described by all node, relationship, and path query patterns given in the following pattern element and according to the pattern element's concluding first _mandatory_ weight declaration. + +==== Mandatory weight declarations + +A mandatory weight declaration is prefixed with `BY`, may omit specifying a variable name for the computed weight, and it's aggregation must be monotone (i.e. the sequence of intermediary results obtained by computing the aggregation incrementally over all input values in any order is always monotonically increasing). + +A conforming implementation is expected to raise a runtime error when the monotonicity of a mandatory weight declaration is violated at runtime. + +A conforming implementation may raise a compile time error when it can statically prove that the monotonicity of a mandatory weight declaration may be violated at runtime. + +Additional weight declarations may be given after a mandatory weight declaration as long as no two weight declarations define conflicting aliases. + +==== Singular matches + +This CIP proposes optionally prefixing pattern match modes and pattern binder classes with the `ONE [OF]` marker to support returning at most one match. + +=== Multiple pattern parts + +If a pattern consists of multiple pattern parts, they are first solved independently before returning their cross product as the final result of the pattern. + +=== Default pattern matching semantics + +This CIP defines three classes of pattern parts: + +* *Fixed length pattern parts* are top-level pattern parts that may consist of node patterns or single length relationship patterns only. +* *Variable length pattern parts* are top-level pattern parts that may consist of node patterns, single length relationship patterns, or path query patterns only. +* *Legacy variable length pattern parts* are top-level pattern parts that may consist of node patterns, single length relationship patterns, or path query patterns and contain at least one legacy variable length pattern (including chains of single length patterns expressed as bounded variable length patterns). + +Current Cypher pattern matching semantics correspond to using `MATCH EVERY TRAIL` by default for all top-level pattern parts (i.e. `MATCH` behaves like `MATCH EVERY TRAIL`) + +This CIP proposes to adopt the following new default pattern match modes and default pattern binder classes: + +* `EVERY WALK` for fixed length pattern parts, +* `SHORTEST WALK` for variable length pattern parts, and +* `EVERY TRAIL` for legacy variable length pattern parts only. + +This CIP aligns with the introduction of path query patterns by proposing that existing bounded and unbounded variable length patterns are to be deprecated in favor of path query patterns. + +This changes Cypher to use homomorphic matching for all non-deprecated pattern parts. + +=== Predicates and functions for working with walks + +This CIP proposes to introduce additional predicates and functions for working with walks + +* `open(p)`: true if the start node and the end node of `p` are not the same node +* `closed(p)`: true if the start node and the end node of `p` are the same node +* `trail(p)`: `p` if `p` contains no duplicate relationships, `NULL` otherwise +* `path(p)`: `p` if `p` contains no duplicate relationships and either no duplicate nodes at all or the start node and the end node are the same node, `NULL` otherwise +* `circuit(p)`: `trail(p)`, if `closed(p)` is true, `NULL` otherwise +* `cycle(p)`: `path(p)`, if `closed(p)` is true, `NULL` otherwise +* `disjoint(list1, list2, ..., list_n)` is true if the lists do not share any elements + +To support a common family of weight calculations, this CIP proposes the introduction of a new aggregate function `product` for computing the product of a set of numbers. + +Evaluating `product` for an empty set returns `1`. + +== Examples + +The following examples demonstrates various ways in which the newly proposed constructs may be used if this CIP is adopted. + +=== Matching shortest paths + +[source=cypher] +---- +// shortestPath(...) today becomes: +MATCH ONE SHORTEST [TRAIL] p=(a)-[r*]->(b) +RETURN * + +// allShortestPaths(...) today becomes: +MATCH SHORTEST [TRAIL] p=(a)-[r*]->(b) +RETURN p +---- + +=== Matching cheapest paths + +[source=cypher] +---- +MATCH CHEAPEST PATH p=(a)-/(:LOVES|:LIKES)*/->(b) BY WEIGHT |strength| AS w +RETURN p AS path, w AS weight +---- + +=== Matching one path and computing its weight + +[source=cypher] +---- +MATCH ONE PATH p=(a)-[*]->(b) WEIGHT product(r.score+r.handicap) OVER r AS w +RETURN p, w +---- + +=== Matching with existing semantics + +`overlap` may be used to precisely express Cypher's current pattern matching semantics. + +[source=cypher] +---- +// Today (using same uniqueness scope for pat1, pat2, and pat) +MATCH pat1=..., pat2=..., pat3=... + +// This CIP +MATCH EVERY TRAIL pat1=... +MATCH EVERY TRAIL pat2=... +MATCH EVERY TRAIL pat3=... +WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) +---- + +== Per-parser options + +It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern binder class for each pattern match mode as well as the default pattern match mode for each class of pattern parts: + +* `match-every=walk|trail|path` for configuring the default pattern binder class for each use of the `MATCH EVERY` pattern match mode +* `match-shortest=walk|trail|path` for configuring the default pattern binder class for each use of the `MATCH SHORTEST` pattern match mode +* `match-cheapest=walk|trail|path` for configuring the default pattern binder class for each use of the `MATCH CHEAPEST` pattern match mode +* `fixlen-mode=every|shortest` for configuring the default pattern match mode of fixed length pattern parts +* `varlen-mode=every|shortest` for configuring the default pattern match mode of variable length pattern parts + +== Benefits to this proposal + +This proposal adds a generic facility to Cypher for expressing desired pattern matching semantics. + +== Caveats to this proposal + +A moderate increase in language complexity. + +A substantial departure from current pattern matching semantics. +However, care has been taken to retain access to current semantics. + +`MATCH EVERY [OPEN|CLOSED] WALK` allows for non-terminating queries. diff --git a/cip/1.accepted/CIP2017-01-18-path-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-path-matching-semantics.adoc deleted file mode 100644 index 1a7daf5e9c..0000000000 --- a/cip/1.accepted/CIP2017-01-18-path-matching-semantics.adoc +++ /dev/null @@ -1,214 +0,0 @@ -= CIP2017-01-18 - Configurable Pattern Matching Semantics -:numbered: -:toc: -:toc-placement: macro -:source-highlighter: codemirror - -*Author:* Stefan Plantikow - -This proposal is a response to CIR-2017-174. - -== Motivation - -Currently Cypher uses pattern matching semantics that treats all patterns that occur in a `MATCH` clause as a unit (called a *uniqueness scope*) and only considers pattern instances that bind different relationships to each simple relationship pattern variable and to each element of a variable length relationship pattern variable. -This has come to be called *cypermorphism* informally and is a variation of edge isomorphism. - -Cyphermorphism lies at the intersection of returning as many results as possible while still ruling out returning an infinite number of paths when matching graphs that contain cycles. - -However, the notion of *uniqueness scope* has proven to be non-standard and occasionally confusing for users and cyphermorphic matching is not tractable in terms of computational complexity for some graphs. - -The CIP aims to address these issues. - -== Background - -Each pattern consists of a comma separated list of *pattern parts*. -Pattern parts are bound to a variable and consist of a linear chain of connected node and relationship patterns. - -Note that while Cypher allows omitting path, node, and relationship variables in a pattern this should only be considered as syntactic sugar, i.e. all parts of a pattern are always bound to a variable name from the viewpoint of pattern matching semantics (names are either provided in the query or automatically generated by a conforming implementation). - -== Proposal - -This CIP proposes to replace the notion of *uniqueness scope* and *cyphermorphism* and all associated rules by providing new, configurable pattern matching semantics for Cypher as outlined in this section. - -=== Rename PATH type - -This CIP proposes to rename the cypher type `PATH` to `WALK`. - -=== Definitions - -This CIP introduces the following kinds of walks: - -* `WALK`: A walk is an arbitrary, non-empty sequence of alternating nodes and relationships that starts with a node and ends with a node. -* `TRAIL`: A trail is a walk that does not contain the same relationship twice. -* `PATH`: A simple path is a trail that does not contain the same node twice unless that node is both the start node and the end node of the path. - -Note that every `PATH` is a `TRAIL` and that every `TRAIL` is a `WALK`. - -=== Pattern binder type - -This CIP proposes to name the variable of a pattern element of a pattern part to *pattern binder* in the grammar. -Note that a pattern binder is always bound to a linear sequence of patterns of its pattern element. - -This CIP proposes introducing the notion of a *pattern binder type* that may be writtern before a pattern binder in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and limits the set of valid pattern instances that are considered as potential matches for the following pattern element: - -* `WALK` This pattern binder should only be bound to a `WALK` that matches all node, relationship, and path patterns in the following pattern element -* `TRAIL` This pattern binder should only be bound to a `TRAIL` that matches all node, relationship, and path patterns in the following pattern element -* `PATH` This pattern binder should only be bound to a simple `PATH` that matches all node, relationship, and path patterns in the following pattern element - -The pattern binder type may be futher qualified with one of the following prefixes: - -* `OPEN WALK|TRAIL|PATH` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are not the same node -* `CLOSED WALK|TRAIL|PATH` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are the same node - -The following additional pattern binder types are proposed to accomodate existing terminology that is commonly used in graph theory: - -* `CIRCUIT` is a synonym for `CLOSED TRAIL` -* `CYCLE` is a synonym for `CLOSED PATH` - -Implementations are advised to signal a warning for every use of an `OPEN` pattern binder type if the two endpoints of the pattern element are both unbound and both use the same variable name. - -Implementations are advised to signal a warning for every use of an `CLOSED` pattern binder type if the two endpoints of the pattern element are both unbound and both use a different variable name. - -=== Pattern matching mode - -This CIP proposes introducing the notion of a *pattern matching mode* that may be writtern as a prefix to a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and applies to all pattern parts in that pattern. - -=== MATCH EVERY mode - -This CIP proposes the new `MATCH EVERY [WALK|TRAIL|PATH]` pattern matching mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern element. -This may return an infinite or at least a very large result for some graphs. - -Implementations are advised to signal a warning for every use of `MATCH EVERY (OPEN|CLOSED) WALK` that may lead to the generation of an infinite result set. - -=== MATCH SHORTEST mode - -This CIP proposes the new `MATCH SHORTEST [WALK|TRAIL|PATH]` pattern matching mode that matches every _shortest_ walks (or trails, or paths respectively) as described by all node, relationship, and path patterns in the following pattern element. - -This CIP proposes to deprecate the existing syntax for both `shortestPath` and `allShortestPaths` matching of Cypher. - -=== Weighting rules - -This CIP proposes that pattern elements may be further suffixed with a weighting rule of one of the following forms: - -* `WEIGHT r IN AS ` Calculates a weight `` by evaluating the given `` for each relationship `r` in the currently matched walk -* `WEIGHT || AS ` Calculates a weight `` by summing the results of evaluating `abs()` for each relationship `r` in the currenlty matched walk in a special scope that only contains all properties of `r` as variables - -=== Product function - -To support a common family of weight calculations, this CIP proposes the introduction of a new aggregate function `product` for computing the product of a set of numbers. - -=== MATCH CHEAPEST mode - -This CIP proposes the new `MATCH CHEAPEST [WALK|TRAIL|PATH]` pattern matching mode that matches every cheapest walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern element and its concluding mandatory weighting rule that is prefixed with `BY`. - -The mandatory weighting rule may omit specifying an alias name for the computed weight and it's aggregation must be monotone (i.e. the sequence of intermediary results obtained by computing the aggregation incrementally over all input values in any order is always monotonically increasing). - -A conforming implementation is expected to raise a runtime error when the monotonicity of a monotone aggregation is violated at runtime. - -A conforming implementation may raise a compile time error when it can statically prove that the monotonicity of a monotone aggregation may be violated at runtime. - -=== Nondeterministic matching modes - -This CIP proposed using the keywords `SINGLE` and `FIRST` to modify pattern matching modes to return exactly zero or one arbitrarily chosen match. - -The supported forms are: - -* `MATCH SINGLE SHORTEST [WALK|TRAIL|PATH]` to return at most a single shortest walk (or trail, or path respectively) -* `MATCH SINGLE CHEAPEST [WALK|TRAIL|PATH]` to return at most a single cheapest walk (or trail, or path respectively) -* `MATCH FIRST [WALK|TRAIL|PATH]` to return at most a single arbitrary walk (pendent to `MATCH EVERY`) -* `MATCH SINGLE [WALK|TRAIL|PATH]` to return at most a single walk (or trail, or path respectively) using default pattern matching semantics (defined below) - -=== Default pattern matching semantics - -It is proposed that a conforming implementation should provide a pre-parser option for defining the default pattern binder type for each pattern matching mode as well as the default pattern matching mode: - -* `match-every=walk|trail|path` for configuring the default pattern binder type for each use of the `MATCH EVERY` pattern matching mode -* `match-shortest=walk|trail|path` for configuring the default pattern binder type for each use of the `MATCH SHORTEST` pattern matching mode -* `match-cheapest=walk|trail|path` for configuring the default pattern binder type for each use of the `MATCH CHEAPEST` pattern matching mode -* `match=every|shortest` for configuring the default pattern matching mode - -Using these pre-parser options, current Cypher pattern matching semantics closely correspond to `match-every=trail`, `match-shortest=trail`, `match=every` (except for the use of the uniqueness scope) - -This CIP proposes to change Cypher's default pattern matching semantics to `match-every=trail`, `match-shortest=walk`, `match-cheapest=walk`, `match=shortest`. - -=== Variable length patterns - -This CIP aligns with the introduction of path patterns by proposing that variable length patterns are to be deprecated in favor of path patterns. - -To simplify this migration and deprecation, this CIP proposes that any pattern element that contains a variable length pattern but no path pattern should match a `TRAIL` be default. - -=== Path predicates - -This CIP further proposes to introduce additional predicates and functions for working with walks - -* `open(p)`: true if the start and the end node of `p` are not the same node -* `closed(p)`: true if the start and the end node of `p` are the same node -* `trail(p)`: `p` if `p` contains no duplicate relationships, `NULL` otherwise -* `path(p)`: `p` if `p` contains no duplicate relationships and either no duplicate nodes at all or the start node and the end node are the same node, `NULL` otherwise -* `circuit(p)`: `trail(p)`, if `closed(p)` is true, `NULL` otherwise -* `cycle(p)`: `path(p)`, if `closed(p)` is true, `NULL` otherwise -* `overlap(p1, p2)`: the shared walk between `p1` and `p2`, or `NULL` otherwise -* `overlap(nodes(p1), nodes(p2))`: the shared walk between `nodes(p1)` and `nodes(p2)`, or `NULL` otherwise -* `overlap(rels(p1), rels(p2))`: the shared walk between `rels(p1)` and `rels(p2)`, or `NULL` otherwise -* `adjacent(p1, p2)`: true if `startNode(p1) IN [startNode(p2), endNode(p2)]` or `endNode(p1) IN [startNode(p2), endNode(p2)]` -* `adjacent(nodes(p1), nodes(p2))`: true if `startNode(p1) IN [startNode(p2), endNode(p2)]` or `endNode(p1) IN [startNode(p2), endNode(p2)]` -* `adjacent(rels(p1), rels(p2))`: true if `startNode(p1) IN [startNode(p2), endNode(p2)]` or `endNode(p1) IN [startNode(p2), endNode(p2)]` -* `adjacent(r1, r2)`: true if `startNode(r1) IN [startNode(r2), endNode(r2)]` or `endNode(r1) IN [startNode(r2), endNode(r2)]` -* `adjacent(n1, n2)`: true if `EXISTS (n1)-[]-(n2)` - -== Examples - -The following examples demonstrates various ways in which the newly proposed constructs may be used if this CIP is adopted. - -=== Matching shortest paths - -[source=cypher] ----- -// shortestPath(...) today becomes: -MATCH SHORTEST TRAIL p=(a)-[r*]->(b) -RETURN * LIMIT 1 - -// allShortestPath(...) today becomes: -MATCH SHORTEST TRAIL p=(a)-[r*]->(b) -RETURN p ----- - -=== Matching cheapest paths - -[source=cypher] ----- -MATCH CHEAPEST PATH p=(a)-/(:LOVES|:LIKES)*/->(b) BY WEIGHT |strength| AS w -RETURN p AS paht, w AS weight ----- - -=== Matching with existing semantics - -`overlap` may be used to express Cypher's current pattern matching semantics. - -[source=cypher] ----- -// Today (using same uniqueness scope for pat1, pat2, and pat) -MATCH pat1=..., pat2=..., pat3=... - -// This CIP -MATCH EVERY pat1=... -MATCH EVERY pat2=... WHERE length(overlap(pat1, pat2)) > 1 -MATCH EVERY pat3=... -WHERE - length(overlap(pat1, pat3))>1 OR - length(overlap(pat2, pat3))>1 -) ----- - -== Benefits to this proposal - -This proposal adds a generic facility to Cypher for expressing desired pattern matching semantics. - -== Caveats to this proposal - -A moderate increase in language complexity. - -A substantial departure from current pattern matching semantics. -However, care has been taken to retain access to current semantics. - -`MATCH EVERY (OPEN|CLOSED) WALK` allows for non-terminating queries. From 5742fdf165d1f28710e06b76abc6ddc521566280 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Wed, 19 Jul 2017 03:51:14 +0200 Subject: [PATCH 04/37] Simplified set of match modes and default handling --- ...nfigurable-pattern-matching-semantics.adoc | 228 ++++++++++-------- 1 file changed, 134 insertions(+), 94 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 2052e4f3c3..37999049a7 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -30,9 +30,60 @@ While Cypher allows omitting path, node, and relationship variables in a pattern == Proposal +This CIP has been submitted in the belief that *CIP2017-02-06 Path Pattern Queries* will be accepted and is aligned with it. + +=== Deprecations + This CIP proposes to replace the notion of *uniqueness scope* and *cyphermorphism* and all associated rules by providing new, configurable pattern matching semantics for Cypher as outlined in this section. -This CIP has been submitted in the belief that *CIP2017-02-06 Path Pattern Queries* will be accepted and is aligned with it. +This CIP proposes to deprecate support for binding relationship list variables in variable length relationship patterns. + +This CIP proposes to deprecate the existing syntax for both `shortestPath` and `allShortestPaths` matching of Cypher. + + +=== Basic pattern matching semantics + +Each pattern consists of one or more top-level pattern parts that are given in a comma separated list. + +[source=cypher] +---- +MATCH (a)-->(b), (c)<--(d) +RETURN * +---- + +The solution (set of succesful matches) of a pattern is the cross product over the solutions of all it's top-level pattern parts, i.e. the above is the same as + +[source=cypher] +---- +MATCH (a)-->(b) +// sequence of matches acts like a cross product:name: value +// for each incoming row with a and b, find all matches (c)<--(d) +MATCH (c)<--(d) +RETURN * +---- + +(ignoring uniqueness). + +Binding any two node patterns, relationship patterns, or path patterns that are contained in the same pattern are bound to the same pattern variable describes an implicit join, i.e. + +[source=cypher] +---- +MATCH (a)-->()<--(a)-->(b) +RETURN a +---- + +is semantically the same as + +[source=cypher] +---- +MATCH (n1)-->(n2), (n3)<--(n4), (n4)-->(b) WHERE n1 = n4 AND n2 = n3 +RETURN v1 AS a +---- + +=== Pattern binders + +This CIP proposes to name the path variable that occurs before a pattern element of a pattern part to *pattern binder* in the grammar. +Note that such variables are always bound to a linear sequence of node, relationship, and path patterns of its pattern element. === Walks @@ -46,27 +97,28 @@ Note that every `PATH` is a `TRAIL` and that every `TRAIL` is a `WALK`. This CIP proposes to rename the cypher type `PATH` to `WALK`. -=== Pattern binders - -This CIP proposes to name the path variable that occurs before a pattern element of a pattern part to *pattern binder* in the grammar. -Note that such variables are always bound to a linear sequence of node, relationship, and path query patterns of its pattern element. +=== Pattern binder class This CIP proposes introducing the notion of a *pattern binder class* that may be writtern before a pattern binder in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and restricts the set of valid pattern matches for the following pattern element. -The proposed pattern binder classes are: +The proposed pattern binder classes in both singular and plural form are: + +* `WALK` (plural: `WALKS`) This pattern binder should only be bound to a `WALK` that matches all node, relationship, and path patterns given in the following pattern element. +* `TRAIL` (plural: `TRAILS`) This pattern binder should only be bound to a `TRAIL` that matches all node, relationship, and path patterns given in the following pattern element +* `PATH` (plural: `PATHS`) This pattern binder should only be bound to a simple `PATH` that matches all node, relationship, and path patterns given in the following pattern element -* `WALK` This pattern binder should only be bound to a `WALK` that matches all node, relationship, and path query patterns given in the following pattern element -* `TRAIL` This pattern binder should only be bound to a `TRAIL` that matches all node, relationship, and path query patterns given in the following pattern element -* `PATH` This pattern binder should only be bound to a simple `PATH` that matches all node, relationship, and path query patterns given in the following pattern element +This CIP proposes the default pattern binder class to be `WALK`. The pattern binder class may be futher qualified with one of the following prefixes: -* `OPEN WALK|TRAIL|PATH` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are _not the same node_ -* `CLOSED WALK|TRAIL|PATH` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are _the same node_ +* `OPEN WALK[S]|TRAIL[S]|PATH[S]` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are _not the same node_ +* `CLOSED WALK[S]|TRAIL[S]|PATH[S]` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are _the same node_ The following additional pattern binder classes are proposed to accomodate existing terminology that is commonly used in graph theory: * `CIRCUIT` is a synonym for `CLOSED TRAIL` * `CYCLE` is a synonym for `CLOSED PATH` +* `CIRCUITS` is a synonym for `CLOSED TRAILS` +* `CYCLES` is a synonym for `CLOSED PATHS` Implementations are advised to signal a warning for every use of an `OPEN` pattern binder class if the two endpoints of the pattern element are both unbound and both use the same variable name. @@ -78,122 +130,111 @@ This CIP proposes introducing the notion of a *pattern match mode* that may be w A pattern match mode is always written before any pattern binder class that has been explicitly given for the same pattern binder. -==== MATCH EVERY mode - -This CIP proposes the new `MATCH EVERY` pattern match mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path query patterns given in the following pattern elements. -This may return an infinite or at least a very large result for some graphs. - -Implementations are advised to signal a warning for every use of `MATCH EVERY (OPEN|CLOSED) WALK` that may lead to the generation of an infinite result set. - -==== MATCH SHORTEST mode - -This CIP proposes the new `MATCH SHORTEST` pattern match mode that matches every _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path query patterns in the following pattern elements. - -This CIP proposes to deprecate the existing syntax for both `shortestPath` and `allShortestPaths` matching of Cypher. - -==== Weight declarations - -This CIP proposes that pattern elements may optionally be followed by weight declarations of one of the following forms: - -* `WEIGHT OVER AS ` Calculates a weight `` by evaluating the given `` for each relationship `` in the associated match -* `WEIGHT || AS ` Calculates a weight `` by summing the results of evaluating `abs()` for each relationship `r` in the associated match in a special scope that only contains all properties of `r` as variables +==== Matching node patterns -Multiple weight declarations may be given as long as they do not define the same `` variable. +A node pattern always matches all described nodes from the graph. -==== MATCH CHEAPEST mode +Different pattern match modes do not influence the set of matched nodes. -This CIP proposes the new `MATCH CHEAPEST` pattern match mode that matches every cheapest walk (or trail, or path respectively) as described by all node, relationship, and path query patterns given in the following pattern element and according to the pattern element's concluding first _mandatory_ weight declaration. +==== MATCH ALL mode -==== Mandatory weight declarations +This CIP proposes the new `MATCH ALL` pattern match mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path patterns given in the following pattern elements. -A mandatory weight declaration is prefixed with `BY`, may omit specifying a variable name for the computed weight, and it's aggregation must be monotone (i.e. the sequence of intermediary results obtained by computing the aggregation incrementally over all input values in any order is always monotonically increasing). +`MATCH ALL` may only be used in conjunction with a binder class in plural form (i.e. `WALKS`, `TRAILS`, `PATHS`). -A conforming implementation is expected to raise a runtime error when the monotonicity of a mandatory weight declaration is violated at runtime. +This CIP proposes that an error should be raised for any use of `MATCH ALL` without an explicit binder class in combination with variable length relationship or path patterns. -A conforming implementation may raise a compile time error when it can statically prove that the monotonicity of a mandatory weight declaration may be violated at runtime. +Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN|CLOSED) WALKS` that may return an infinite or prohibitively large result. -Additional weight declarations may be given after a mandatory weight declaration as long as no two weight declarations define conflicting aliases. +==== MATCH ALL SHORTEST mode -==== Singular matches +This CIP proposes the new `MATCH ALL SHORTEST` pattern match mode that matches every _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern elements. -This CIP proposes optionally prefixing pattern match modes and pattern binder classes with the `ONE [OF]` marker to support returning at most one match. +`MATCH ALL SHORTEST` may only be used in conjunction with a binder class in plural form (i.e. `WALKS`, `TRAILS`, `PATHS`). -=== Multiple pattern parts - -If a pattern consists of multiple pattern parts, they are first solved independently before returning their cross product as the final result of the pattern. +==== MATCH SHORTEST mode -=== Default pattern matching semantics +This CIP proposes the new `MATCH SHORTEST` pattern match mode that matches one _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern elements. -This CIP defines three classes of pattern parts: +`MATCH SHORTEST` may only be used in conjunction with a binder class in singular form (i.e. `WALK`, `TRAIL`, `PATH`). -* *Fixed length pattern parts* are top-level pattern parts that may consist of node patterns or single length relationship patterns only. -* *Variable length pattern parts* are top-level pattern parts that may consist of node patterns, single length relationship patterns, or path query patterns only. -* *Legacy variable length pattern parts* are top-level pattern parts that may consist of node patterns, single length relationship patterns, or path query patterns and contain at least one legacy variable length pattern (including chains of single length patterns expressed as bounded variable length patterns). +=== Default MATCH mode -Current Cypher pattern matching semantics correspond to using `MATCH EVERY TRAIL` by default for all top-level pattern parts (i.e. `MATCH` behaves like `MATCH EVERY TRAIL`) +This CIP proposes a new default pattern match mode that assigns a different pattern match mode to each type of pattern element: -This CIP proposes to adopt the following new default pattern match modes and default pattern binder classes: +* Simple relationship patterns (e.g. `()-[]->()`) are to be matched using `MATCH ALL` (which is identical to `MATCH ALL SHORTEST` for simple relationship patterns) +* Bounded variable length relationship patterns (e.g. `()-[*2..4]->()`) are to be matched using `MATCH ALL` +* Unbounded variable length relationship patterns (e.g. `()-[*]->()`) are to be matched using `MATCH ALL` +* Path patterns (e.g. `()-/../->()`) are to be matched using `MATCH ALL SHORTEST` -* `EVERY WALK` for fixed length pattern parts, -* `SHORTEST WALK` for variable length pattern parts, and -* `EVERY TRAIL` for legacy variable length pattern parts only. +This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit binder class in combination with variable length relationship patterns. -This CIP aligns with the introduction of path query patterns by proposing that existing bounded and unbounded variable length patterns are to be deprecated in favor of path query patterns. +The default pattern match mode may only be used in conjunction with a binder class in plural form (i.e. `WALKS`, `TRAILS`, `PATHS`). -This changes Cypher to use homomorphic matching for all non-deprecated pattern parts. +This changes Cypher to use homomorphic matching for simple relationship patterns. === Predicates and functions for working with walks This CIP proposes to introduce additional predicates and functions for working with walks -* `open(p)`: true if the start node and the end node of `p` are not the same node -* `closed(p)`: true if the start node and the end node of `p` are the same node -* `trail(p)`: `p` if `p` contains no duplicate relationships, `NULL` otherwise -* `path(p)`: `p` if `p` contains no duplicate relationships and either no duplicate nodes at all or the start node and the end node are the same node, `NULL` otherwise -* `circuit(p)`: `trail(p)`, if `closed(p)` is true, `NULL` otherwise -* `cycle(p)`: `path(p)`, if `closed(p)` is true, `NULL` otherwise +* `isOpen(p)`: true if the start node and the end node of `p` are not the same node +* `isClosed(p)`: true if the start node and the end node of `p` are the same node +* `toTrail(p)`: `p` if `p` contains no duplicate relationships, `NULL` otherwise +* `toPath(p)`: `p` if `p` contains no duplicate relationships and either no duplicate nodes at all or the start node and the end node are the same node, `NULL` otherwise +* `toCircuit(p)`: return `toTrail(p)` if `closed(p)` is true, `NULL` otherwise +* `toCycle(p)`: returns `toPath(p)` if `closed(p)` is true, `NULL` otherwise * `disjoint(list1, list2, ..., list_n)` is true if the lists do not share any elements -To support a common family of weight calculations, this CIP proposes the introduction of a new aggregate function `product` for computing the product of a set of numbers. - -Evaluating `product` for an empty set returns `1`. - -== Examples - -The following examples demonstrates various ways in which the newly proposed constructs may be used if this CIP is adopted. +=== Multiline patterns -=== Matching shortest paths +Finally, this CIP proposes additional syntax for splitting a pattern binding accross multiple lines: [source=cypher] ---- -// shortestPath(...) today becomes: -MATCH ONE SHORTEST [TRAIL] p=(a)-[r*]->(b) +MATCH p=(a)-/~very_long_path_pattern/->(b)-/~another-long_path_pattern/->(c) RETURN * - -// allShortestPaths(...) today becomes: -MATCH SHORTEST [TRAIL] p=(a)-[r*]->(b) -RETURN p ---- -=== Matching cheapest paths +may be split as: [source=cypher] ---- -MATCH CHEAPEST PATH p=(a)-/(:LOVES|:LIKES)*/->(b) BY WEIGHT |strength| AS w -RETURN p AS path, w AS weight +MATCH p=(a)-/~very_long_path_pattern/->(b) + + (b)-/~another-long_path_pattern/->(c) +RETURN * ---- -=== Matching one path and computing its weight +This additional syntax is necessary due to the changes uniqueness scoping rules for pattern binders. +Splitting the pattern using `,` instead of the proposed `+` would have changed the result by only binding the first part of the pattern to `p`. + +== Examples + +The following examples demonstrates various ways in which the newly proposed constructs may be used if this CIP is adopted. + +=== Matching shortest paths [source=cypher] ---- -MATCH ONE PATH p=(a)-[*]->(b) WEIGHT product(r.score+r.handicap) OVER r AS w -RETURN p, w +// MATCH p=shortestPath((a)-[:X*]->()) today becomes: +MATCH SHORTEST TRAIL p=(a)-[:X*]->() +RETURN * + +// MATCH p=shortestPaths((a)-[:X*]->()) may be approximated using path patterns: +MATCH SHORTEST p=(a)-/:X*/->() +RETURN * + +// MATCH p=allShortestPaths((a)-[:X*]->()) today becomes: +MATCH ALL SHORTEST TRAILS p=(a)-[:X*]->() +RETURN * + +// MATCH p=allShortestPaths((a)-[:X*]->()) today may be approximated using path patterns: +MATCH p=(a)-/:X*/->() +RETURN * ---- === Matching with existing semantics -`overlap` may be used to precisely express Cypher's current pattern matching semantics. +`disjoint` may be used to precisely express Cypher's current pattern matching semantics. [source=cypher] ---- @@ -201,25 +242,24 @@ RETURN p, w MATCH pat1=..., pat2=..., pat3=... // This CIP -MATCH EVERY TRAIL pat1=... -MATCH EVERY TRAIL pat2=... -MATCH EVERY TRAIL pat3=... +MATCH pat1=... +MATCH pat2=... +MATCH pat3=... WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) ---- -== Per-parser options +== Pre-parser options + +It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern binder class as well as the default pattern match mode: -It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern binder class for each pattern match mode as well as the default pattern match mode for each class of pattern parts: +for each pattern match mode as well as the default pattern match mode for each class of pattern parts: -* `match-every=walk|trail|path` for configuring the default pattern binder class for each use of the `MATCH EVERY` pattern match mode -* `match-shortest=walk|trail|path` for configuring the default pattern binder class for each use of the `MATCH SHORTEST` pattern match mode -* `match-cheapest=walk|trail|path` for configuring the default pattern binder class for each use of the `MATCH CHEAPEST` pattern match mode -* `fixlen-mode=every|shortest` for configuring the default pattern match mode of fixed length pattern parts -* `varlen-mode=every|shortest` for configuring the default pattern match mode of variable length pattern parts +* `binder-class=walk[s]|trail[s]|path[s]` for configuring a different default pattern binder class +* `match-mode=all|all-shortest|shortest` for configuring a different default pattern match mode == Benefits to this proposal -This proposal adds a generic facility to Cypher for expressing desired pattern matching semantics. +This proposal adds a facility to Cypher for selecting from multiple desirable pattern matching semantics. == Caveats to this proposal @@ -228,4 +268,4 @@ A moderate increase in language complexity. A substantial departure from current pattern matching semantics. However, care has been taken to retain access to current semantics. -`MATCH EVERY [OPEN|CLOSED] WALK` allows for non-terminating queries. +`MATCH ALL [OPEN|CLOSED] WALKS` allows for non-terminating queries. From 13f371165561c805e87db5e5807313ee4a6fb1cc Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Wed, 19 Jul 2017 07:55:15 +0200 Subject: [PATCH 05/37] Fix example --- ...P2017-01-18-configurable-pattern-matching-semantics.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 37999049a7..8e0e894434 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -242,9 +242,9 @@ RETURN * MATCH pat1=..., pat2=..., pat3=... // This CIP -MATCH pat1=... -MATCH pat2=... -MATCH pat3=... +MATCH TRAILS pat1=... +MATCH TRAILS pat2=... +MATCH TRAILS pat3=... WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) ---- From fe68d482ab89b185901cb4a862daa0d4d5bd10c1 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Sun, 23 Jul 2017 15:39:37 +0200 Subject: [PATCH 06/37] Small fixups --- ...nfigurable-pattern-matching-semantics.adoc | 46 +++++++++++++------ 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 8e0e894434..2a2fbb2c10 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -10,12 +10,12 @@ This proposal is a response to CIR-2017-174. == Motivation -Currently Cypher uses pattern matching semantics that treats all patterns that occur in a `MATCH` clause as a unit (called a *uniqueness scope*) and only considers pattern instances that bind different relationships to each fixed length relationship pattern variable and to each element of a variable length relationship pattern variable. -This has come to be called *cypermorphism* informally and is a variation of edge isomorphism. +Currently Cypher uses pattern matching semantics that treats _all_ patterns that occur in a `MATCH` clause as a unit (called a *uniqueness scope*) and only considers pattern instances that bind different relationships to each fixed length relationship pattern variable and to each element of a variable length relationship pattern variable. +This has come to be called *cypermorphism* informally and is a form of edge isomorphism that is based on Cypher's notion of uniqueness scope. Cyphermorphism lies at the intersection of returning as many results as possible while still ruling out returning an infinite number of paths when matching graphs that contain cycles. -However, the notion of *uniqueness scope* has proven to be non-standard and is occasionally confusing for users and cyphermorphic matching is not tractable in terms of computational complexity for some graphs. +However, the notion of uniqueness scope has proven to be non-standard and is occasionally confusing for users and cyphermorphic matching is not tractable in terms of computational complexity for some graphs. The CIP aims to address these issues. @@ -142,7 +142,7 @@ This CIP proposes the new `MATCH ALL` pattern match mode that matches every walk `MATCH ALL` may only be used in conjunction with a binder class in plural form (i.e. `WALKS`, `TRAILS`, `PATHS`). -This CIP proposes that an error should be raised for any use of `MATCH ALL` without an explicit binder class in combination with variable length relationship or path patterns. +This CIP proposes that an error should be raised for any use of `MATCH ALL` without an explicit binder class in combination with an unbounded variable length relationship pattern or an unbounded path pattern. Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN|CLOSED) WALKS` that may return an infinite or prohibitively large result. @@ -167,7 +167,7 @@ This CIP proposes a new default pattern match mode that assigns a different patt * Unbounded variable length relationship patterns (e.g. `()-[*]->()`) are to be matched using `MATCH ALL` * Path patterns (e.g. `()-/../->()`) are to be matched using `MATCH ALL SHORTEST` -This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit binder class in combination with variable length relationship patterns. +This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit binder class in combination with an unbounded variable length relationship pattern only. The default pattern match mode may only be used in conjunction with a binder class in plural form (i.e. `WALKS`, `TRAILS`, `PATHS`). @@ -181,8 +181,8 @@ This CIP proposes to introduce additional predicates and functions for working w * `isClosed(p)`: true if the start node and the end node of `p` are the same node * `toTrail(p)`: `p` if `p` contains no duplicate relationships, `NULL` otherwise * `toPath(p)`: `p` if `p` contains no duplicate relationships and either no duplicate nodes at all or the start node and the end node are the same node, `NULL` otherwise -* `toCircuit(p)`: return `toTrail(p)` if `closed(p)` is true, `NULL` otherwise -* `toCycle(p)`: returns `toPath(p)` if `closed(p)` is true, `NULL` otherwise +* `toCircuit(p)`: return `toTrail(p)` if `isClosed(p)` is true, `NULL` otherwise +* `toCycle(p)`: returns `toPath(p)` if `isClosed(p)` is true, `NULL` otherwise * `disjoint(list1, list2, ..., list_n)` is true if the lists do not share any elements === Multiline patterns @@ -207,6 +207,15 @@ RETURN * This additional syntax is necessary due to the changes uniqueness scoping rules for pattern binders. Splitting the pattern using `,` instead of the proposed `+` would have changed the result by only binding the first part of the pattern to `p`. +== Pre-parser options + +It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern binder class as well as the default pattern match mode: + +for each pattern match mode as well as the default pattern match mode for each class of pattern parts: + +* `bind=walks|trails|paths` for configuring a different default pattern binder class +* `match=all|all-shortest|shortest` for configuring a different default pattern match mode + == Examples The following examples demonstrates various ways in which the newly proposed constructs may be used if this CIP is adopted. @@ -240,22 +249,31 @@ RETURN * ---- // Today (using same uniqueness scope for pat1, pat2, and pat) MATCH pat1=..., pat2=..., pat3=... +RETURN * // This CIP MATCH TRAILS pat1=... MATCH TRAILS pat2=... MATCH TRAILS pat3=... -WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) +WITH * WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) +RETURN * ---- -== Pre-parser options +This query may be simplified by using a pre-parser option: -It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern binder class as well as the default pattern match mode: - -for each pattern match mode as well as the default pattern match mode for each class of pattern parts: +[source=cypher] +---- +// Today (using same uniqueness scope for pat1, pat2, and pat) +MATCH pat1=..., pat2=..., pat3=... -* `binder-class=walk[s]|trail[s]|path[s]` for configuring a different default pattern binder class -* `match-mode=all|all-shortest|shortest` for configuring a different default pattern match mode +// This CIP, using pre-parser option +CYPHER bind=trails +MATCH pat1=... +MATCH pat2=... +MATCH pat3=... +WITH * WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) +RETURN * +---- == Benefits to this proposal From 856ae1b3b8ceb21f99cd354e6929a7d50abc8a28 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Sun, 23 Jul 2017 15:46:38 +0200 Subject: [PATCH 07/37] Removed duplicate line --- .../CIP2017-01-18-configurable-pattern-matching-semantics.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 2a2fbb2c10..6851ad7367 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -211,8 +211,6 @@ Splitting the pattern using `,` instead of the proposed `+` would have changed t It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern binder class as well as the default pattern match mode: -for each pattern match mode as well as the default pattern match mode for each class of pattern parts: - * `bind=walks|trails|paths` for configuring a different default pattern binder class * `match=all|all-shortest|shortest` for configuring a different default pattern match mode From dd397a51933fd21f53aa8da22b8ed4367fa4e162 Mon Sep 17 00:00:00 2001 From: Mats Rydberg Date: Mon, 24 Jul 2017 14:44:09 +0200 Subject: [PATCH 08/37] Restructure CIP and improve language - Add more queries - Add EBNF grammar of proposed changes --- ...nfigurable-pattern-matching-semantics.adoc | 152 ++++++++++-------- 1 file changed, 88 insertions(+), 64 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 6851ad7367..ed28a46011 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -34,9 +34,9 @@ This CIP has been submitted in the belief that *CIP2017-02-06 Path Pattern Queri === Deprecations -This CIP proposes to replace the notion of *uniqueness scope* and *cyphermorphism* and all associated rules by providing new, configurable pattern matching semantics for Cypher as outlined in this section. +This CIP proposes to replace the notion of *uniqueness scope* and *cyphermorphism* and all associated rules with new, configurable pattern matching semantics. -This CIP proposes to deprecate support for binding relationship list variables in variable length relationship patterns. +Likewise to what is proposed by *CIP2017-02-06 Path Pattern Queries*, support for binding relationship list variables in variable length patterns will be deprecated. This CIP proposes to deprecate the existing syntax for both `shortestPath` and `allShortestPaths` matching of Cypher. @@ -45,46 +45,44 @@ This CIP proposes to deprecate the existing syntax for both `shortestPath` and ` Each pattern consists of one or more top-level pattern parts that are given in a comma separated list. -[source=cypher] +.Query 3.2.1 +[source,cypher] ---- MATCH (a)-->(b), (c)<--(d) RETURN * ---- -The solution (set of succesful matches) of a pattern is the cross product over the solutions of all it's top-level pattern parts, i.e. the above is the same as +The solution (set of successful matches) of a pattern is the cross product over the solutions of all its top-level pattern parts. +Thus, if we ignore uniqueness, Query 3.2.1 is semantically identical to Query 3.2.2. -[source=cypher] +.Query 3.2.2 +[source,cypher] ---- MATCH (a)-->(b) -// sequence of matches acts like a cross product:name: value +// sequence of matches acts like a cross product // for each incoming row with a and b, find all matches (c)<--(d) MATCH (c)<--(d) RETURN * ---- -(ignoring uniqueness). +Binding several nodes or relationships in a pattern to the same variable describes an implicit join. +Thus, queries 3.2.3 and 3.2.4 are semantically identical. -Binding any two node patterns, relationship patterns, or path patterns that are contained in the same pattern are bound to the same pattern variable describes an implicit join, i.e. - -[source=cypher] +.Query 3.2.3 +[source,cypher] ---- MATCH (a)-->()<--(a)-->(b) RETURN a ---- -is semantically the same as - -[source=cypher] +.Query 3.2.4 +[source,cypher] ---- -MATCH (n1)-->(n2), (n3)<--(n4), (n4)-->(b) WHERE n1 = n4 AND n2 = n3 -RETURN v1 AS a +MATCH (n1)-->(n2), (n3)<--(n4), (n5)-->(b) +WHERE n1 = n4 AND n2 = n3 AND n4 = n5 +RETURN n1 AS a ---- -=== Pattern binders - -This CIP proposes to name the path variable that occurs before a pattern element of a pattern part to *pattern binder* in the grammar. -Note that such variables are always bound to a linear sequence of node, relationship, and path patterns of its pattern element. - === Walks This CIP introduces the following kinds of walks: @@ -97,82 +95,108 @@ Note that every `PATH` is a `TRAIL` and that every `TRAIL` is a `WALK`. This CIP proposes to rename the cypher type `PATH` to `WALK`. -=== Pattern binder class +=== Pattern binders -This CIP proposes introducing the notion of a *pattern binder class* that may be writtern before a pattern binder in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and restricts the set of valid pattern matches for the following pattern element. -The proposed pattern binder classes in both singular and plural form are: +This CIP proposes to name the variable to which a pattern part may be assigned a *pattern binder* in the grammar. +Note that pattern binders are always bound to a connected sequence of node, relationship, and path patterns of its pattern part. -* `WALK` (plural: `WALKS`) This pattern binder should only be bound to a `WALK` that matches all node, relationship, and path patterns given in the following pattern element. -* `TRAIL` (plural: `TRAILS`) This pattern binder should only be bound to a `TRAIL` that matches all node, relationship, and path patterns given in the following pattern element -* `PATH` (plural: `PATHS`) This pattern binder should only be bound to a simple `PATH` that matches all node, relationship, and path patterns given in the following pattern element +.In the query, `p` and `q` are examples of pattern binders. A named path pattern `foo` is assumed. +[source, cypher] +---- +MATCH p = (:A)-->(:B)-[:KNOWS]->(), q = (a)-/~foo/->(b) +RETURN p, q +---- -This CIP proposes the default pattern binder class to be `WALK`. +Three different classes of pattern binders are proposed by this CIP: -The pattern binder class may be futher qualified with one of the following prefixes: +* `WALK`: This pattern binder should only be bound to a `WALK` that matches all node, relationship, and path patterns given. +* `TRAIL`: This pattern binder should only be bound to a `TRAIL` that matches all node, relationship, and path patterns given. +* `PATH`: This pattern binder should only be bound to a `PATH` that matches all node, relationship, and path patterns given. -* `OPEN WALK[S]|TRAIL[S]|PATH[S]` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are _not the same node_ -* `CLOSED WALK[S]|TRAIL[S]|PATH[S]` This pattern binder should only be bound to walks (or trails, or paths respectively) whose start and end nodes are _the same node_ +.Example of using pattern binder classes for the pattern binders `p` and `q`: +[source, cypher] +---- +MATCH TRAIL p = (:A)-->(:B)-[:KNOWS]->(), PATH q = (a)-/~foo/->(b) +RETURN p, q +---- -The following additional pattern binder classes are proposed to accomodate existing terminology that is commonly used in graph theory: +This CIP proposes the default pattern binder class to be `WALK`. -* `CIRCUIT` is a synonym for `CLOSED TRAIL` -* `CYCLE` is a synonym for `CLOSED PATH` -* `CIRCUITS` is a synonym for `CLOSED TRAILS` -* `CYCLES` is a synonym for `CLOSED PATHS` +The pattern binder class may be further qualified with one of the following prefixes: -Implementations are advised to signal a warning for every use of an `OPEN` pattern binder class if the two endpoints of the pattern element are both unbound and both use the same variable name. +* `OPEN`: This pattern binder should only be bound to walks (or trails, or paths respectively) which begin and end at _distinct_ nodes. +* `CLOSED` This pattern binder should only be bound to walks (or trails, or paths respectively) which begin and end at _the same node_. -Implementations are advised to signal a warning for every use of an `CLOSED` pattern binder class if the two endpoints of the pattern element are both unbound and both use a different variable name. +Implementations are advised to signal a warning for uses of `OPEN` pattern binder classes where the two endpoints of the pattern both use the _same_ variable name. -=== Pattern match modes +Implementations are advised to signal a warning for uses of `CLOSED` pattern binder classes where the two endpoints of the pattern both use a _different_ variable name. -This CIP proposes introducing the notion of a *pattern match mode* that may be writtern before a pattern binder in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and restricts the set of valid pattern matches for the following pattern element. +==== Synonyms and plural forms -A pattern match mode is always written before any pattern binder class that has been explicitly given for the same pattern binder. +The following additional pattern binder classes are proposed to accommodate existing terminology that is commonly used in graph theory: -==== Matching node patterns +* `CIRCUIT` is a synonym for `CLOSED TRAIL` +* `CYCLE` is a synonym for `CLOSED PATH` -A node pattern always matches all described nodes from the graph. +Additionally, this CIP proposes to allow for plural forms of all pattern binder classes, which will be synonymous with their respective singular forms. +The plural forms are as follows: `WALKS`, `TRAILS`, `PATHS`, `CURCUITS`, `CYCLES`. +The main motivation is to aid readability when used in conjunction with different pattern match modes (see <>). -Different pattern match modes do not influence the set of matched nodes. +[[modes]] +=== Pattern match modes -==== MATCH ALL mode +.Overview of proposed grammar changes: +[source,ebnf] +---- +Pattern = PatternPart, { ',', PatternPart } ; +PatternPart = [ PatternBinderSpec, '=' ], NodePattern, { (EdgePattern | PathPattern), NodePattern } ; + +PatternBinderSpec = [ PatternMatchMode ], [ PBClassModifier ], [ PatternBinderClass ], Variable ; + +PatternBinderClass = 'WALK' + | 'TRAIL' + | 'PATH' + ; +PBClassModifier = 'OPEN' + | 'CLOSED' + ; +PatternMatchMode = 'ALL' + | 'ALL SHORTEST' + | 'SHORTEST' + ; +---- -This CIP proposes the new `MATCH ALL` pattern match mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path patterns given in the following pattern elements. +This CIP proposes introducing the notion of a _pattern match mode_, that may be specified before a pattern binder in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and restricts the set of valid pattern matches for the subsequent pattern part. -`MATCH ALL` may only be used in conjunction with a binder class in plural form (i.e. `WALKS`, `TRAILS`, `PATHS`). +Node patterns are unaffected by the pattern match mode, and will always match all described nodes from the graph. -This CIP proposes that an error should be raised for any use of `MATCH ALL` without an explicit binder class in combination with an unbounded variable length relationship pattern or an unbounded path pattern. +==== ALL mode -Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN|CLOSED) WALKS` that may return an infinite or prohibitively large result. +This CIP proposes the new `ALL` pattern match mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path patterns given in the subsequent pattern elements. -==== MATCH ALL SHORTEST mode +This CIP proposes that an error should be raised for any use of the `ALL` pattern match mode without an explicit pattern binder class in combination with an unbounded variable length relationship pattern or an unbounded path pattern. -This CIP proposes the new `MATCH ALL SHORTEST` pattern match mode that matches every _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern elements. +Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN|CLOSED) WALKS` that may return an infinite or prohibitively large result. -`MATCH ALL SHORTEST` may only be used in conjunction with a binder class in plural form (i.e. `WALKS`, `TRAILS`, `PATHS`). +==== ALL SHORTEST mode -==== MATCH SHORTEST mode +This CIP proposes the new `ALL SHORTEST` pattern match mode that matches every _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the subsequent pattern elements. -This CIP proposes the new `MATCH SHORTEST` pattern match mode that matches one _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern elements. +==== SHORTEST mode -`MATCH SHORTEST` may only be used in conjunction with a binder class in singular form (i.e. `WALK`, `TRAIL`, `PATH`). +This CIP proposes the new `SHORTEST` pattern match mode that matches _one shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern elements. -=== Default MATCH mode +==== Default MATCH mode -This CIP proposes a new default pattern match mode that assigns a different pattern match mode to each type of pattern element: +This CIP proposes a new default pattern match mode that assigns a different pattern match mode to each type of pattern part: -* Simple relationship patterns (e.g. `()-[]->()`) are to be matched using `MATCH ALL` (which is identical to `MATCH ALL SHORTEST` for simple relationship patterns) -* Bounded variable length relationship patterns (e.g. `()-[*2..4]->()`) are to be matched using `MATCH ALL` -* Unbounded variable length relationship patterns (e.g. `()-[*]->()`) are to be matched using `MATCH ALL` -* Path patterns (e.g. `()-/../->()`) are to be matched using `MATCH ALL SHORTEST` +* Simple relationship patterns (e.g. `()-[]\->()`) are to be matched using `ALL`. This is identical to `ALL SHORTEST` for simple relationship patterns. +* Bounded variable length relationship patterns (e.g. `()-[*2..4]\->()`) are to be matched using `ALL`. +* Unbounded variable length relationship patterns (e.g. `()-[*]\->()`) are to be matched using `ALL`. +* Path patterns (e.g. `()-/../\->()`) are to be matched using `ALL SHORTEST`. This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit binder class in combination with an unbounded variable length relationship pattern only. -The default pattern match mode may only be used in conjunction with a binder class in plural form (i.e. `WALKS`, `TRAILS`, `PATHS`). - -This changes Cypher to use homomorphic matching for simple relationship patterns. - === Predicates and functions for working with walks This CIP proposes to introduce additional predicates and functions for working with walks From ce78377bf89d4839f3e78f98e0f09fe3edd41f17 Mon Sep 17 00:00:00 2001 From: Mats Rydberg Date: Mon, 24 Jul 2017 14:45:52 +0200 Subject: [PATCH 09/37] Rename pattern binder to pattern variable --- ...nfigurable-pattern-matching-semantics.adoc | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index ed28a46011..fa669ec506 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -95,50 +95,50 @@ Note that every `PATH` is a `TRAIL` and that every `TRAIL` is a `WALK`. This CIP proposes to rename the cypher type `PATH` to `WALK`. -=== Pattern binders +=== Pattern variables -This CIP proposes to name the variable to which a pattern part may be assigned a *pattern binder* in the grammar. -Note that pattern binders are always bound to a connected sequence of node, relationship, and path patterns of its pattern part. +This CIP proposes to name the variable to which a pattern part may be assigned a *pattern variable* in the grammar. +Note that pattern variables are always bound to a connected sequence of node, relationship, and path patterns of its pattern part. -.In the query, `p` and `q` are examples of pattern binders. A named path pattern `foo` is assumed. +.In the query, `p` and `q` are examples of pattern variables. A named path pattern `foo` is assumed. [source, cypher] ---- MATCH p = (:A)-->(:B)-[:KNOWS]->(), q = (a)-/~foo/->(b) RETURN p, q ---- -Three different classes of pattern binders are proposed by this CIP: +Three different classes of pattern variables are proposed by this CIP: -* `WALK`: This pattern binder should only be bound to a `WALK` that matches all node, relationship, and path patterns given. -* `TRAIL`: This pattern binder should only be bound to a `TRAIL` that matches all node, relationship, and path patterns given. -* `PATH`: This pattern binder should only be bound to a `PATH` that matches all node, relationship, and path patterns given. +* `WALK`: This pattern variable should only be bound to a `WALK` that matches all node, relationship, and path patterns given. +* `TRAIL`: This pattern variable should only be bound to a `TRAIL` that matches all node, relationship, and path patterns given. +* `PATH`: This pattern variable should only be bound to a `PATH` that matches all node, relationship, and path patterns given. -.Example of using pattern binder classes for the pattern binders `p` and `q`: +.Example of using pattern variable classes for the pattern variables `p` and `q`: [source, cypher] ---- MATCH TRAIL p = (:A)-->(:B)-[:KNOWS]->(), PATH q = (a)-/~foo/->(b) RETURN p, q ---- -This CIP proposes the default pattern binder class to be `WALK`. +This CIP proposes the default pattern variable class to be `WALK`. -The pattern binder class may be further qualified with one of the following prefixes: +The pattern variable class may be further qualified with one of the following prefixes: -* `OPEN`: This pattern binder should only be bound to walks (or trails, or paths respectively) which begin and end at _distinct_ nodes. -* `CLOSED` This pattern binder should only be bound to walks (or trails, or paths respectively) which begin and end at _the same node_. +* `OPEN`: This pattern variable should only be bound to walks (or trails, or paths respectively) which begin and end at _distinct_ nodes. +* `CLOSED` This pattern variable should only be bound to walks (or trails, or paths respectively) which begin and end at _the same node_. -Implementations are advised to signal a warning for uses of `OPEN` pattern binder classes where the two endpoints of the pattern both use the _same_ variable name. +Implementations are advised to signal a warning for uses of `OPEN` pattern variable classes where the two endpoints of the pattern both use the _same_ variable name. -Implementations are advised to signal a warning for uses of `CLOSED` pattern binder classes where the two endpoints of the pattern both use a _different_ variable name. +Implementations are advised to signal a warning for uses of `CLOSED` pattern variable classes where the two endpoints of the pattern both use a _different_ variable name. ==== Synonyms and plural forms -The following additional pattern binder classes are proposed to accommodate existing terminology that is commonly used in graph theory: +The following additional pattern variable classes are proposed to accommodate existing terminology that is commonly used in graph theory: * `CIRCUIT` is a synonym for `CLOSED TRAIL` * `CYCLE` is a synonym for `CLOSED PATH` -Additionally, this CIP proposes to allow for plural forms of all pattern binder classes, which will be synonymous with their respective singular forms. +Additionally, this CIP proposes to allow for plural forms of all pattern variable classes, which will be synonymous with their respective singular forms. The plural forms are as follows: `WALKS`, `TRAILS`, `PATHS`, `CURCUITS`, `CYCLES`. The main motivation is to aid readability when used in conjunction with different pattern match modes (see <>). @@ -149,11 +149,11 @@ The main motivation is to aid readability when used in conjunction with differen [source,ebnf] ---- Pattern = PatternPart, { ',', PatternPart } ; -PatternPart = [ PatternBinderSpec, '=' ], NodePattern, { (EdgePattern | PathPattern), NodePattern } ; +PatternPart = [ PatternVariableSpec, '=' ], NodePattern, { (EdgePattern | PathPattern), NodePattern } ; -PatternBinderSpec = [ PatternMatchMode ], [ PBClassModifier ], [ PatternBinderClass ], Variable ; +PatternVariableSpec = [ PatternMatchMode ], [ PBClassModifier ], [ PatternVariableClass ], Variable ; -PatternBinderClass = 'WALK' +PatternVariableClass = 'WALK' | 'TRAIL' | 'PATH' ; @@ -166,7 +166,7 @@ PatternMatchMode = 'ALL' ; ---- -This CIP proposes introducing the notion of a _pattern match mode_, that may be specified before a pattern binder in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and restricts the set of valid pattern matches for the subsequent pattern part. +This CIP proposes introducing the notion of a _pattern match mode_, that may be specified before a pattern variable in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and restricts the set of valid pattern matches for the subsequent pattern part. Node patterns are unaffected by the pattern match mode, and will always match all described nodes from the graph. @@ -174,7 +174,7 @@ Node patterns are unaffected by the pattern match mode, and will always match al This CIP proposes the new `ALL` pattern match mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path patterns given in the subsequent pattern elements. -This CIP proposes that an error should be raised for any use of the `ALL` pattern match mode without an explicit pattern binder class in combination with an unbounded variable length relationship pattern or an unbounded path pattern. +This CIP proposes that an error should be raised for any use of the `ALL` pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern or an unbounded path pattern. Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN|CLOSED) WALKS` that may return an infinite or prohibitively large result. @@ -195,7 +195,7 @@ This CIP proposes a new default pattern match mode that assigns a different patt * Unbounded variable length relationship patterns (e.g. `()-[*]\->()`) are to be matched using `ALL`. * Path patterns (e.g. `()-/../\->()`) are to be matched using `ALL SHORTEST`. -This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit binder class in combination with an unbounded variable length relationship pattern only. +This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern only. === Predicates and functions for working with walks @@ -228,14 +228,14 @@ MATCH p=(a)-/~very_long_path_pattern/->(b) RETURN * ---- -This additional syntax is necessary due to the changes uniqueness scoping rules for pattern binders. +This additional syntax is necessary due to the changes uniqueness scoping rules for pattern variables. Splitting the pattern using `,` instead of the proposed `+` would have changed the result by only binding the first part of the pattern to `p`. == Pre-parser options -It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern binder class as well as the default pattern match mode: +It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern variable class as well as the default pattern match mode: -* `bind=walks|trails|paths` for configuring a different default pattern binder class +* `bind=walks|trails|paths` for configuring a different default pattern variable class * `match=all|all-shortest|shortest` for configuring a different default pattern match mode == Examples From cd548719fee86fc64d0e301dfa7070f68b4cb44c Mon Sep 17 00:00:00 2001 From: Mats Rydberg Date: Mon, 24 Jul 2017 14:46:14 +0200 Subject: [PATCH 10/37] Remove section on multiline patterns --- ...nfigurable-pattern-matching-semantics.adoc | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index fa669ec506..7c50c861da 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -209,28 +209,6 @@ This CIP proposes to introduce additional predicates and functions for working w * `toCycle(p)`: returns `toPath(p)` if `isClosed(p)` is true, `NULL` otherwise * `disjoint(list1, list2, ..., list_n)` is true if the lists do not share any elements -=== Multiline patterns - -Finally, this CIP proposes additional syntax for splitting a pattern binding accross multiple lines: - -[source=cypher] ----- -MATCH p=(a)-/~very_long_path_pattern/->(b)-/~another-long_path_pattern/->(c) -RETURN * ----- - -may be split as: - -[source=cypher] ----- -MATCH p=(a)-/~very_long_path_pattern/->(b) - + (b)-/~another-long_path_pattern/->(c) -RETURN * ----- - -This additional syntax is necessary due to the changes uniqueness scoping rules for pattern variables. -Splitting the pattern using `,` instead of the proposed `+` would have changed the result by only binding the first part of the pattern to `p`. - == Pre-parser options It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern variable class as well as the default pattern match mode: From 9386b7097db46d5f8cde6ee910a871ccdccc8aea Mon Sep 17 00:00:00 2001 From: Mats Rydberg Date: Mon, 24 Jul 2017 14:51:50 +0200 Subject: [PATCH 11/37] Remove section on pre-parser options --- ...configurable-pattern-matching-semantics.adoc | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 7c50c861da..85f367f3e9 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -209,13 +209,6 @@ This CIP proposes to introduce additional predicates and functions for working w * `toCycle(p)`: returns `toPath(p)` if `isClosed(p)` is true, `NULL` otherwise * `disjoint(list1, list2, ..., list_n)` is true if the lists do not share any elements -== Pre-parser options - -It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern variable class as well as the default pattern match mode: - -* `bind=walks|trails|paths` for configuring a different default pattern variable class -* `match=all|all-shortest|shortest` for configuring a different default pattern match mode - == Examples The following examples demonstrates various ways in which the newly proposed constructs may be used if this CIP is adopted. @@ -245,7 +238,8 @@ RETURN * `disjoint` may be used to precisely express Cypher's current pattern matching semantics. -[source=cypher] +.Query 4.2.1 +[source,cypher] ---- // Today (using same uniqueness scope for pat1, pat2, and pat) MATCH pat1=..., pat2=..., pat3=... @@ -259,15 +253,16 @@ WITH * WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) RETURN * ---- -This query may be simplified by using a pre-parser option: +Assuming a pre-parser option `class` which allows overriding the default pattern variable class, we may reduce the verbosity of Query 4.2.1 as in Query 4.2.2: -[source=cypher] +.Query 4.2.2 +[source,cypher] ---- // Today (using same uniqueness scope for pat1, pat2, and pat) MATCH pat1=..., pat2=..., pat3=... // This CIP, using pre-parser option -CYPHER bind=trails +CYPHER class=trails MATCH pat1=... MATCH pat2=... MATCH pat3=... From 048ac32be34cf5ec92b70bc2dab428f976d1f66f Mon Sep 17 00:00:00 2001 From: Mats Rydberg Date: Mon, 24 Jul 2017 15:15:13 +0200 Subject: [PATCH 12/37] Move functions to appendix - Move definition of `disjoint()` to examples --- ...nfigurable-pattern-matching-semantics.adoc | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 85f367f3e9..edb1ac44f7 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -197,18 +197,6 @@ This CIP proposes a new default pattern match mode that assigns a different patt This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern only. -=== Predicates and functions for working with walks - -This CIP proposes to introduce additional predicates and functions for working with walks - -* `isOpen(p)`: true if the start node and the end node of `p` are not the same node -* `isClosed(p)`: true if the start node and the end node of `p` are the same node -* `toTrail(p)`: `p` if `p` contains no duplicate relationships, `NULL` otherwise -* `toPath(p)`: `p` if `p` contains no duplicate relationships and either no duplicate nodes at all or the start node and the end node are the same node, `NULL` otherwise -* `toCircuit(p)`: return `toTrail(p)` if `isClosed(p)` is true, `NULL` otherwise -* `toCycle(p)`: returns `toPath(p)` if `isClosed(p)` is true, `NULL` otherwise -* `disjoint(list1, list2, ..., list_n)` is true if the lists do not share any elements - == Examples The following examples demonstrates various ways in which the newly proposed constructs may be used if this CIP is adopted. @@ -236,7 +224,11 @@ RETURN * === Matching with existing semantics -`disjoint` may be used to precisely express Cypher's current pattern matching semantics. +Assume a function `disjoint()` defined as follows: + +* `disjoint(list1, list2, ..., list_n)`: returns `true` if all argument lists are pairwise disjoint. + +The function `disjoint()` may now be used to precisely express Cypher's current pattern matching semantics. .Query 4.2.1 [source,cypher] @@ -282,3 +274,17 @@ A substantial departure from current pattern matching semantics. However, care has been taken to retain access to current semantics. `MATCH ALL [OPEN|CLOSED] WALKS` allows for non-terminating queries. + +[appendix] +== Functions for working with walks + +Related to the concepts outlined in this CIP, but peripheral to the model and semantics described, several functions are envisioned as useful for working with the various types of patterns bound to pattern variables. +This section presents a few such functions: + +* `isOpen(p)`: returns `true` if the source and target nodes of `p` are distinct. +* `isClosed(p)`: returns `true` if the source and target nodes of `p` are equal. +* `toTrail(p)`: returns `p` if `p` contains no duplicate relationships, `null` otherwise. +* `toPath(p)`: returns `toTrail(p)` if `p` contains no duplicate nodes at all or if the only two duplicate nodes are the source and target nodes of `p`, `null` otherwise. +* `toCircuit(p)`: returns `toTrail(p)` if `isClosed(p)` is true, `null` otherwise. +* `toCycle(p)`: returns `toPath(p)` if `isClosed(p)` is true, `null` otherwise. + From 00dc3c117dcf93f30bf496bfc4122032f805e3c8 Mon Sep 17 00:00:00 2001 From: Mats Rydberg Date: Mon, 24 Jul 2017 15:20:08 +0200 Subject: [PATCH 13/37] Rename Walks section to walks, trails, paths --- ...P2017-01-18-configurable-pattern-matching-semantics.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index edb1ac44f7..348807e74c 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -83,13 +83,13 @@ WHERE n1 = n4 AND n2 = n3 AND n4 = n5 RETURN n1 AS a ---- -=== Walks +=== Walks, trails and paths This CIP introduces the following kinds of walks: * `WALK`: A walk is an arbitrary, non-empty sequence of alternating nodes and relationships that starts with a node and ends with a node. -* `TRAIL`: A trail is a walk that does not contain the same relationship twice. -* `PATH`: A simple path is a trail that does not contain the same node twice unless that node is both the start node and the end node of the path. +* `TRAIL`: A trail is a walk in which all relationships are distinct. +* `PATH`: A path is a trail in which all nodes are distinct, except when the path starts and ends at the same node. Note that every `PATH` is a `TRAIL` and that every `TRAIL` is a `WALK`. From 91622f5cd7c5d04bb7b1d77366cc9c04761529c5 Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Mon, 24 Jul 2017 14:56:55 +0100 Subject: [PATCH 14/37] Morphism CIP: add definitions of WTP --- cip/1.accepted/CIP2017-01-18-WTP-Graph.jpg | Bin 0 -> 268349 bytes ...nfigurable-pattern-matching-semantics.adoc | 75 ++++++++++++++++-- 2 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 cip/1.accepted/CIP2017-01-18-WTP-Graph.jpg diff --git a/cip/1.accepted/CIP2017-01-18-WTP-Graph.jpg b/cip/1.accepted/CIP2017-01-18-WTP-Graph.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5aa54481832dbf733d469a5c732fa1de1d9bfaf2 GIT binary patch literal 268349 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

wgVdV;HRtjl#lrvCXSjCa7^)e* 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

9#s8X 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

pm8e3qWIBm$B{5k`Z=USW$Mgq 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 T6nyz#{hhy#|DU%8e~$ex@LE>x literal 0 HcmV?d00001 diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 348807e74c..df53912b47 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -4,9 +4,9 @@ :toc-placement: macro :source-highlighter: codemirror -*Author:* Stefan Plantikow +*Author:* Stefan Plantikow , Mats Rydberg , Petra Selmer -This proposal is a response to CIR-2017-174. +This proposal is a response to link:https://github.com/opencypher/openCypher/issues/174[CIR-2017-174]. == Motivation @@ -15,18 +15,72 @@ This has come to be called *cypermorphism* informally and is a form of edge isom Cyphermorphism lies at the intersection of returning as many results as possible while still ruling out returning an infinite number of paths when matching graphs that contain cycles. -However, the notion of uniqueness scope has proven to be non-standard and is occasionally confusing for users and cyphermorphic matching is not tractable in terms of computational complexity for some graphs. +However, the notion of uniqueness scope has proven to be non-standard and is occasionally confusing for users and Cyphermorphic matching is not tractable in terms of computational complexity for some graphs. The CIP aims to address these issues. == Background -This CIP relies on the terminology introduced by the openCypher grammar. +This CIP is based upon the notions of _walks_, _trails_ and _paths_, as defined by _Jungnickel_ in [1]. +We note that walks, trails and paths are not universally used, and correspond to _paths_, _simple paths_ and _tidy paths_ as defined by _Rosen_ [2]. +However, we use Jungnickel's definitions as the terms lend themselves better from a syntactic perspective. -Most notably, a pattern in Cypher consists of a comma separated list of *pattern parts*. -Pattern parts may be bound to a path variable and consist of a linear chain of connected node and relationship patterns. +We define and provide an example for each of these terms below. -While Cypher allows omitting path, node, and relationship variables in a pattern this is just syntactic sugar, i.e. all parts of a pattern should be considered to be bound to a variable name from the viewpoint of pattern matching semantics (names are either provided in the query or automatically generated by a conforming implementation). +Assume graph `G` is given as follows: + +image::CIP2017-01-18-WTP-Graph.jpg[Graph,300,200] + + +For the remainder of this CIP, we use the notation `r^-^` to indicate that a relationship `r` was traversed in the inverse direction; i.e. that `r` was traversed from its target node to its source node. + +**a) Walk** + +A walk is an arbitrary, non-empty sequence of alternating nodes and relationships that starts with a node and ends with a node. +Within a walk, both nodes and edges can be duplicated. +A walk whose start node and end node is the same is called a **closed walk**. + +A valid walk in `G` is given by the sequence `S~1~`: `B, t, C, v, D, w, E, w^-^, D, v^-^, C, t^-^, B, s^-^, A`. + +We note that `S~1~` contains the duplicated nodes `B`, `C` and `D`, and the duplicated relationships `t`, `v` and `w`. +Moreover, `S~1~` is not a _closed_ walk, as `B` (the start node) ≠ `A` (the end node). + +A walk corresponds to the standard definition of _homomorphic_ graph pattern matching. + +**b) Trail** + +A trail is a walk that does not contain any duplicate relationships. + +A valid trail in `G` is given by the sequence `S~2~`: `B, t, C, v, D, w, E, x, F, y^-^, D, u, C`. + +We note that `S~2~` contains the duplicated notes `C` and `D`, and no duplicate relationships. +Moreover, `S~2~` is not a **closed trail**, as `B` (the start node) ≠ `C` (the end node). +`S~2~` is also a walk. + +A trail corresponds to the notion of _Cyphermorphic_ graph pattern matching. + +**c) Path** + +A simple path is a trail that does not contain the same node twice unless that node is both the start node and the end node of the path. + +A valid path in `G` is given by the sequence `S~3~`: `B, t, C, v, D, y, F, z, A, s, B`. + +We note that `S~3~` contains no duplicated relationships, and that there are no duplicated nodes other than `B`. +However, as `B` is both the start node and end node, `S~3~` is still a valid path, and is, in fact, an example of a **closed path**. +`S~3~` is also an example of a _closed_ walk and a _closed_ trail. + +A path corresponds to the standard definition of _isomorphic_ graph pattern matching. + +--- + +In general, we see that every path is a trail, and every trail is a walk. + +This CIP relies on the terminology introduced by the link:https://github.com/opencypher/openCypher/tree/master/grammar[openCypher grammar]. + +Most notably, a pattern in Cypher consists of a comma separated list of *pattern parts*, where a pattern part is exemplified by `p = (e:Employee)-[:REPORTS_TO*1..3]->(m:Manager)`. +Pattern parts may be bound to a path variable, such as `p` in our example, and consist of a linear chain of connected node and relationship patterns. + +While Cypher allows omitting path, node, and relationship variables in a pattern, this is just syntactic sugar; i.e. all parts of a pattern should be considered to be bound to a variable name from the viewpoint of pattern matching semantics (names are either provided in the query or automatically generated by a conforming implementation). == Proposal @@ -275,6 +329,12 @@ However, care has been taken to retain access to current semantics. `MATCH ALL [OPEN|CLOSED] WALKS` allows for non-terminating queries. +== References + +[1] D. Jungnickel. Graphs, Networks and Algorithms. Springer Publishing Company, 2010. + +[2] K. H. Rosen. Discrete Mathematics and Its Applications. McGraw-Hill, 2002. + [appendix] == Functions for working with walks @@ -287,4 +347,3 @@ This section presents a few such functions: * `toPath(p)`: returns `toTrail(p)` if `p` contains no duplicate nodes at all or if the only two duplicate nodes are the source and target nodes of `p`, `null` otherwise. * `toCircuit(p)`: returns `toTrail(p)` if `isClosed(p)` is true, `null` otherwise. * `toCycle(p)`: returns `toPath(p)` if `isClosed(p)` is true, `null` otherwise. - From db32e46a505e17f77f66c7813001a6aabefec68a Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Mon, 24 Jul 2017 15:37:40 +0100 Subject: [PATCH 15/37] Structural improvements --- ...nfigurable-pattern-matching-semantics.adoc | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index df53912b47..9cb9fa20b6 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -26,6 +26,7 @@ We note that walks, trails and paths are not universally used, and correspond to However, we use Jungnickel's definitions as the terms lend themselves better from a syntactic perspective. We define and provide an example for each of these terms below. +In general, we note that every path is a trail, and every trail is a walk. Assume graph `G` is given as follows: @@ -34,7 +35,7 @@ image::CIP2017-01-18-WTP-Graph.jpg[Graph,300,200] For the remainder of this CIP, we use the notation `r^-^` to indicate that a relationship `r` was traversed in the inverse direction; i.e. that `r` was traversed from its target node to its source node. -**a) Walk** +=== Walk A walk is an arbitrary, non-empty sequence of alternating nodes and relationships that starts with a node and ends with a node. Within a walk, both nodes and edges can be duplicated. @@ -47,7 +48,7 @@ Moreover, `S~1~` is not a _closed_ walk, as `B` (the start node) ≠ `A` (the en A walk corresponds to the standard definition of _homomorphic_ graph pattern matching. -**b) Trail** +=== Trail A trail is a walk that does not contain any duplicate relationships. @@ -59,9 +60,9 @@ Moreover, `S~2~` is not a **closed trail**, as `B` (the start node) ≠ `C` (the A trail corresponds to the notion of _Cyphermorphic_ graph pattern matching. -**c) Path** +=== Path -A simple path is a trail that does not contain the same node twice unless that node is both the start node and the end node of the path. +A path is a trail that does not contain the same node twice unless that node is both the start node and the end node of the path. A valid path in `G` is given by the sequence `S~3~`: `B, t, C, v, D, y, F, z, A, s, B`. @@ -71,20 +72,41 @@ However, as `B` is both the start node and end node, `S~3~` is still a valid pat A path corresponds to the standard definition of _isomorphic_ graph pattern matching. ---- +== Proposal -In general, we see that every path is a trail, and every trail is a walk. +This CIP has been submitted in the belief that *CIP2017-02-06 Path Pattern Queries* will be accepted and is aligned with it. -This CIP relies on the terminology introduced by the link:https://github.com/opencypher/openCypher/tree/master/grammar[openCypher grammar]. +=== Syntax -Most notably, a pattern in Cypher consists of a comma separated list of *pattern parts*, where a pattern part is exemplified by `p = (e:Employee)-[:REPORTS_TO*1..3]->(m:Manager)`. -Pattern parts may be bound to a path variable, such as `p` in our example, and consist of a linear chain of connected node and relationship patterns. +Below is outlined the syntactical changes proposed in this CIP. +Note that path patterns are assumed from the *CIP2017-02-06 Path Pattern Queries*. -While Cypher allows omitting path, node, and relationship variables in a pattern, this is just syntactic sugar; i.e. all parts of a pattern should be considered to be bound to a variable name from the viewpoint of pattern matching semantics (names are either provided in the query or automatically generated by a conforming implementation). +.Overview of proposed grammar changes: +[source,ebnf] +---- +Pattern = PatternPart, { ',', PatternPart } ; +PatternPart = [ PatternVariableSpec, '=' ], NodePattern, { (EdgePattern | PathPattern), NodePattern } ; -== Proposal +PatternVariableSpec = [ PatternMatchMode ], [ PVClassModifier ], [ PatternVariableClass ], Variable ; -This CIP has been submitted in the belief that *CIP2017-02-06 Path Pattern Queries* will be accepted and is aligned with it. +PatternVariableClass = 'WALK' + | 'TRAIL' + | 'PATH' + ; +PVClassModifier = 'OPEN' + | 'CLOSED' + ; +PatternMatchMode = 'ALL' + | 'ALL SHORTEST' + | 'SHORTEST' + ; +---- + + +As we can see above, patterns in Cypher consist of a comma-separated list of _pattern parts_, where a pattern part is exemplified by `p = (e:Employee)-[:REPORTS_TO*1..3]->(m:Manager)`. +Pattern parts may be bound to a variable, such as `p` in our example, and consist of a linear chain of connected node, relationship, and path patterns. + +While Cypher allows omitting path, node, and relationship variables in a pattern, this is just syntactic sugar; i.e. all parts of a pattern should be considered to be bound to a variable name from the viewpoint of pattern matching semantics (names are either provided in the query or automatically generated by a conforming implementation). === Deprecations @@ -94,7 +116,6 @@ Likewise to what is proposed by *CIP2017-02-06 Path Pattern Queries*, support fo This CIP proposes to deprecate the existing syntax for both `shortestPath` and `allShortestPaths` matching of Cypher. - === Basic pattern matching semantics Each pattern consists of one or more top-level pattern parts that are given in a comma separated list. @@ -193,33 +214,12 @@ The following additional pattern variable classes are proposed to accommodate ex * `CYCLE` is a synonym for `CLOSED PATH` Additionally, this CIP proposes to allow for plural forms of all pattern variable classes, which will be synonymous with their respective singular forms. -The plural forms are as follows: `WALKS`, `TRAILS`, `PATHS`, `CURCUITS`, `CYCLES`. +The plural forms are as follows: `WALKS`, `TRAILS`, `PATHS`, `CIRCUITS`, `CYCLES`. The main motivation is to aid readability when used in conjunction with different pattern match modes (see <>). [[modes]] === Pattern match modes -.Overview of proposed grammar changes: -[source,ebnf] ----- -Pattern = PatternPart, { ',', PatternPart } ; -PatternPart = [ PatternVariableSpec, '=' ], NodePattern, { (EdgePattern | PathPattern), NodePattern } ; - -PatternVariableSpec = [ PatternMatchMode ], [ PBClassModifier ], [ PatternVariableClass ], Variable ; - -PatternVariableClass = 'WALK' - | 'TRAIL' - | 'PATH' - ; -PBClassModifier = 'OPEN' - | 'CLOSED' - ; -PatternMatchMode = 'ALL' - | 'ALL SHORTEST' - | 'SHORTEST' - ; ----- - This CIP proposes introducing the notion of a _pattern match mode_, that may be specified before a pattern variable in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and restricts the set of valid pattern matches for the subsequent pattern part. Node patterns are unaffected by the pattern match mode, and will always match all described nodes from the graph. @@ -240,7 +240,7 @@ This CIP proposes the new `ALL SHORTEST` pattern match mode that matches every _ This CIP proposes the new `SHORTEST` pattern match mode that matches _one shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern elements. -==== Default MATCH mode +==== Default pattern match mode This CIP proposes a new default pattern match mode that assigns a different pattern match mode to each type of pattern part: From 7cccffff4892a7c25115ded06c6a66196f7d9a16 Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Mon, 24 Jul 2017 15:57:53 +0100 Subject: [PATCH 16/37] Tie pattern variable classes together with formal definitions --- ...nfigurable-pattern-matching-semantics.adoc | 42 ++++++++----------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 9cb9fa20b6..c3b7df3e99 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -35,6 +35,7 @@ image::CIP2017-01-18-WTP-Graph.jpg[Graph,300,200] For the remainder of this CIP, we use the notation `r^-^` to indicate that a relationship `r` was traversed in the inverse direction; i.e. that `r` was traversed from its target node to its source node. +[[walks]] === Walk A walk is an arbitrary, non-empty sequence of alternating nodes and relationships that starts with a node and ends with a node. @@ -48,6 +49,7 @@ Moreover, `S~1~` is not a _closed_ walk, as `B` (the start node) ≠ `A` (the en A walk corresponds to the standard definition of _homomorphic_ graph pattern matching. +[[trails]] === Trail A trail is a walk that does not contain any duplicate relationships. @@ -60,6 +62,7 @@ Moreover, `S~2~` is not a **closed trail**, as `B` (the start node) ≠ `C` (the A trail corresponds to the notion of _Cyphermorphic_ graph pattern matching. +[[paths]] === Path A path is a trail that does not contain the same node twice unless that node is both the start node and the end node of the path. @@ -76,6 +79,7 @@ A path corresponds to the standard definition of _isomorphic_ graph pattern matc This CIP has been submitted in the belief that *CIP2017-02-06 Path Pattern Queries* will be accepted and is aligned with it. +[[syntax]] === Syntax Below is outlined the syntactical changes proposed in this CIP. @@ -110,7 +114,7 @@ While Cypher allows omitting path, node, and relationship variables in a pattern === Deprecations -This CIP proposes to replace the notion of *uniqueness scope* and *cyphermorphism* and all associated rules with new, configurable pattern matching semantics. +This CIP proposes to replace the notion of *uniqueness scope* and *Cyphermorphism* and all associated rules with new, configurable pattern matching semantics. Likewise to what is proposed by *CIP2017-02-06 Path Pattern Queries*, support for binding relationship list variables in variable length patterns will be deprecated. @@ -158,35 +162,25 @@ WHERE n1 = n4 AND n2 = n3 AND n4 = n5 RETURN n1 AS a ---- -=== Walks, trails and paths +=== Pattern variables and classes -This CIP introduces the following kinds of walks: +This CIP proposes to name the variable to which a pattern part may be assigned a _pattern variable_. +Note that pattern variables are always bound to a connected sequence of node, relationship, and path patterns (see <>). -* `WALK`: A walk is an arbitrary, non-empty sequence of alternating nodes and relationships that starts with a node and ends with a node. -* `TRAIL`: A trail is a walk in which all relationships are distinct. -* `PATH`: A path is a trail in which all nodes are distinct, except when the path starts and ends at the same node. - -Note that every `PATH` is a `TRAIL` and that every `TRAIL` is a `WALK`. - -This CIP proposes to rename the cypher type `PATH` to `WALK`. - -=== Pattern variables - -This CIP proposes to name the variable to which a pattern part may be assigned a *pattern variable* in the grammar. -Note that pattern variables are always bound to a connected sequence of node, relationship, and path patterns of its pattern part. - -.In the query, `p` and `q` are examples of pattern variables. A named path pattern `foo` is assumed. +.In the query, `p` and `q` are examples of pattern variables. A named path pattern `foo` is assumed: [source, cypher] ---- MATCH p = (:A)-->(:B)-[:KNOWS]->(), q = (a)-/~foo/->(b) RETURN p, q ---- -Three different classes of pattern variables are proposed by this CIP: +Three classes of pattern variables are proposed: + +* `WALK`: Pattern variables of this class may only be bound to pattern instances that are walks, as defined in <>. +* `TRAIL`: Pattern variables of this class may only be bound to pattern instances that are trails, as defined in <>. +* `PATH`: Pattern variables of this class may only be bound to pattern instances that are paths, as defined in <>. -* `WALK`: This pattern variable should only be bound to a `WALK` that matches all node, relationship, and path patterns given. -* `TRAIL`: This pattern variable should only be bound to a `TRAIL` that matches all node, relationship, and path patterns given. -* `PATH`: This pattern variable should only be bound to a `PATH` that matches all node, relationship, and path patterns given. +NOTE: This CIP proposes to rename the Cypher type `PATH` to `WALK`. .Example of using pattern variable classes for the pattern variables `p` and `q`: [source, cypher] @@ -195,7 +189,7 @@ MATCH TRAIL p = (:A)-->(:B)-[:KNOWS]->(), PATH q = (a)-/~foo/->(b) RETURN p, q ---- -This CIP proposes the default pattern variable class to be `WALK`. +NOTE: This CIP proposes the default pattern variable class to be `WALK`. The pattern variable class may be further qualified with one of the following prefixes: @@ -257,13 +251,13 @@ The following examples demonstrates various ways in which the newly proposed con === Matching shortest paths -[source=cypher] +[source,cypher] ---- // MATCH p=shortestPath((a)-[:X*]->()) today becomes: MATCH SHORTEST TRAIL p=(a)-[:X*]->() RETURN * -// MATCH p=shortestPaths((a)-[:X*]->()) may be approximated using path patterns: +// MATCH p=shortestPath((a)-[:X*]->()) may be approximated using path patterns: MATCH SHORTEST p=(a)-/:X*/->() RETURN * From 8f2982dd6385ed9d0ef39e67248cb558073c957d Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Mon, 24 Jul 2017 16:21:00 +0100 Subject: [PATCH 17/37] Tidy up referencing --- ...-01-18-configurable-pattern-matching-semantics.adoc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index c3b7df3e99..d26c982e2e 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -21,8 +21,8 @@ The CIP aims to address these issues. == Background -This CIP is based upon the notions of _walks_, _trails_ and _paths_, as defined by _Jungnickel_ in [1]. -We note that walks, trails and paths are not universally used, and correspond to _paths_, _simple paths_ and _tidy paths_ as defined by _Rosen_ [2]. +This CIP is based upon the notions of _walks_, _trails_ and _paths_, as defined by _Jungnickel_ <>. +We note that walks, trails and paths are not universally used, and correspond to _paths_, _simple paths_ and _tidy paths_ as defined by _Rosen_ <>. However, we use Jungnickel's definitions as the terms lend themselves better from a syntactic perspective. We define and provide an example for each of these terms below. @@ -325,9 +325,11 @@ However, care has been taken to retain access to current semantics. == References -[1] D. Jungnickel. Graphs, Networks and Algorithms. Springer Publishing Company, 2010. +[[Jung10]] +[Jung10] D. Jungnickel. _Graphs, Networks and Algorithms_. Springer Publishing Company, 2010. -[2] K. H. Rosen. Discrete Mathematics and Its Applications. McGraw-Hill, 2002. +[[Rose02]] +[Rose02] K. H. Rosen. _Discrete Mathematics and Its Applications_. McGraw-Hill, 2002. [appendix] == Functions for working with walks From 254b89001e0e4ffa18f0704316365b9b6e412302 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Mon, 24 Jul 2017 21:50:06 +0200 Subject: [PATCH 18/37] Added plural forms to grammar --- ...P2017-01-18-configurable-pattern-matching-semantics.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index d26c982e2e..b297928eb7 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -93,9 +93,9 @@ PatternPart = [ PatternVariableSpec, '=' ], NodePattern, { (EdgePattern | PathPa PatternVariableSpec = [ PatternMatchMode ], [ PVClassModifier ], [ PatternVariableClass ], Variable ; -PatternVariableClass = 'WALK' - | 'TRAIL' - | 'PATH' +PatternVariableClass = 'WALK' | 'WALKS' + | 'TRAIL' | 'TRAILS' + | 'PATH' | 'PATHS' ; PVClassModifier = 'OPEN' | 'CLOSED' From d6384c2116a9e761016cae16ba517f63553d1d9f Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Mon, 24 Jul 2017 21:52:43 +0200 Subject: [PATCH 19/37] Mandate correct cardinality warnings consistently --- ...CIP2017-01-18-configurable-pattern-matching-semantics.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index b297928eb7..8ea8b354a3 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -224,7 +224,7 @@ This CIP proposes the new `ALL` pattern match mode that matches every walk (or t This CIP proposes that an error should be raised for any use of the `ALL` pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern or an unbounded path pattern. -Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN|CLOSED) WALKS` that may return an infinite or prohibitively large result. +Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN|CLOSED) WALKS` that may return an infinite result. ==== ALL SHORTEST mode @@ -245,6 +245,8 @@ This CIP proposes a new default pattern match mode that assigns a different patt This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern only. +Implementations are advised to signal a warning for any use of the default pattern match mode that may return an infinite result. + == Examples The following examples demonstrates various ways in which the newly proposed constructs may be used if this CIP is adopted. From b789402acb49eaa67fce8a71ca97073e582bf172 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Mon, 24 Jul 2017 22:04:37 +0200 Subject: [PATCH 20/37] Updated grammar to include all proposed syntactic forms --- ...onfigurable-pattern-matching-semantics.adoc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 8ea8b354a3..463b680316 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -91,19 +91,21 @@ Note that path patterns are assumed from the *CIP2017-02-06 Path Pattern Queries Pattern = PatternPart, { ',', PatternPart } ; PatternPart = [ PatternVariableSpec, '=' ], NodePattern, { (EdgePattern | PathPattern), NodePattern } ; -PatternVariableSpec = [ PatternMatchMode ], [ PVClassModifier ], [ PatternVariableClass ], Variable ; +PatternVariableSpec = [ PatternMatchMode ], [ PatternVariableClass ], Variable ; -PatternVariableClass = 'WALK' | 'WALKS' - | 'TRAIL' | 'TRAILS' - | 'PATH' | 'PATHS' - ; -PVClassModifier = 'OPEN' - | 'CLOSED' - ; PatternMatchMode = 'ALL' | 'ALL SHORTEST' | 'SHORTEST' ; +PatternVariableClass = ([ PVClassModifier ], 'WALK', ['S']) + | ([ PVClassModifier ], 'TRAIL', ['S']) + | ([ PVClassModifier ], 'PATH', ['S']) + | ('CYCLE', ['S']) + | ('CIRCUIT', ['S']) + ; +PVClassModifier = 'OPEN' + | 'CLOSED' + ; ---- From e9081961189047a482115b8a59c307ed8a3e20b5 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Mon, 24 Jul 2017 22:17:54 +0200 Subject: [PATCH 21/37] Update grammar to allow match modes etc without giving a variable name --- ...CIP2017-01-18-configurable-pattern-matching-semantics.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 463b680316..498fd3ab05 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -89,9 +89,9 @@ Note that path patterns are assumed from the *CIP2017-02-06 Path Pattern Queries [source,ebnf] ---- Pattern = PatternPart, { ',', PatternPart } ; -PatternPart = [ PatternVariableSpec, '=' ], NodePattern, { (EdgePattern | PathPattern), NodePattern } ; +PatternPart = [ PatternVariableSpec ], NodePattern, { (EdgePattern | PathPattern), NodePattern } ; -PatternVariableSpec = [ PatternMatchMode ], [ PatternVariableClass ], Variable ; +PatternVariableSpec = [ PatternMatchMode ], [ PatternVariableClass ], [ Variable, '=' ] ; PatternMatchMode = 'ALL' | 'ALL SHORTEST' From dd74857855bbac5debbea3789c4b1b3c9091fa0e Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Tue, 25 Jul 2017 10:10:27 +0100 Subject: [PATCH 22/37] Reinstated pre-parser suggestions * Now in Appendix * "bind" -> "class" (former deprecated) * Added example --- ...01-18-configurable-pattern-matching-semantics.adoc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 498fd3ab05..7a972ceb55 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -347,3 +347,14 @@ This section presents a few such functions: * `toPath(p)`: returns `toTrail(p)` if `p` contains no duplicate nodes at all or if the only two duplicate nodes are the source and target nodes of `p`, `null` otherwise. * `toCircuit(p)`: returns `toTrail(p)` if `isClosed(p)` is true, `null` otherwise. * `toCycle(p)`: returns `toPath(p)` if `isClosed(p)` is true, `null` otherwise. + +[appendix] +== Pre-parser options + +It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern variable class as well as the default pattern match mode: + +* `match=one of(all|all-shortest|shortest)` for configuring a different default pattern match mode +* `match=one of(walks|trails|paths)` for configuring a different default pattern variable class +* `match=one of(all|all-shortest|shortest)`, `-`, `one of(walks|trails|paths)` for configuring both a different default pattern match mode and a different default pattern variable class + +An example of the latter would be `match=all-shortest-trails`. \ No newline at end of file From f98570c528591109bc49a70dacc3d851677bc811 Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Tue, 25 Jul 2017 20:26:50 +0100 Subject: [PATCH 23/37] Add exemplar data graph: used for examples in CIPs --- cip/1.accepted/DataGraph.jpg | Bin 0 -> 406798 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 cip/1.accepted/DataGraph.jpg diff --git a/cip/1.accepted/DataGraph.jpg b/cip/1.accepted/DataGraph.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a3cfdf6799992720c03082ae1c8b2c28945a15f GIT binary patch literal 406798 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�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

-$)TjgLh(n-7kTO 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 literal 0 HcmV?d00001 From fce68fa67d0e2fa69b5b1c772a5c2eb6c3445f18 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Wed, 26 Jul 2017 08:12:38 +0200 Subject: [PATCH 24/37] Clarified relationship of WTP to *morphisms --- ...P2017-01-18-configurable-pattern-matching-semantics.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 7a972ceb55..d99e7c37d2 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -60,7 +60,7 @@ We note that `S~2~` contains the duplicated notes `C` and `D`, and no duplicate Moreover, `S~2~` is not a **closed trail**, as `B` (the start node) ≠ `C` (the end node). `S~2~` is also a walk. -A trail corresponds to the notion of _Cyphermorphic_ graph pattern matching. +A path corresponds to the standard definition of _(relationship-)isomorphic_ graph pattern matching as well as the notion of _Cyphermorphic_ graph pattern matching. [[paths]] === Path @@ -73,7 +73,7 @@ We note that `S~3~` contains no duplicated relationships, and that there are no However, as `B` is both the start node and end node, `S~3~` is still a valid path, and is, in fact, an example of a **closed path**. `S~3~` is also an example of a _closed_ walk and a _closed_ trail. -A path corresponds to the standard definition of _isomorphic_ graph pattern matching. +A path corresponds to the standard definition of _(node-)isomorphic_ graph pattern matching. == Proposal @@ -357,4 +357,4 @@ It is suggested that a conforming implementation should provide pre-parser optio * `match=one of(walks|trails|paths)` for configuring a different default pattern variable class * `match=one of(all|all-shortest|shortest)`, `-`, `one of(walks|trails|paths)` for configuring both a different default pattern match mode and a different default pattern variable class -An example of the latter would be `match=all-shortest-trails`. \ No newline at end of file +An example of the latter would be `match=all-shortest-trails`. From 40713bbea929a7ace832605eec2212ba8cdc22fc Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Wed, 26 Jul 2017 12:06:05 +0100 Subject: [PATCH 25/37] Add expansive example using data graph --- ...nfigurable-pattern-matching-semantics.adoc | 60 +++++++++++++++---- 1 file changed, 47 insertions(+), 13 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index d99e7c37d2..20588e23de 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -32,7 +32,6 @@ Assume graph `G` is given as follows: image::CIP2017-01-18-WTP-Graph.jpg[Graph,300,200] - For the remainder of this CIP, we use the notation `r^-^` to indicate that a relationship `r` was traversed in the inverse direction; i.e. that `r` was traversed from its target node to its source node. [[walks]] @@ -253,24 +252,59 @@ Implementations are advised to signal a warning for any use of the default patte The following examples demonstrates various ways in which the newly proposed constructs may be used if this CIP is adopted. +The following graph is used: + +image::DataGraph.jpg[Graph,600,600] + +=== Homomorphic matching using walks + +We'll illustrate the benefits of the new homomorphic pattern matching by means of a series of queries. + +Assume we wish to know which two people have grandchildren in common, as well as the names of the grandchildren. +Intuitively, we can see that the only two people in the graph have grandchildren in common, namely _Michael Redgrave_ and _Rachel Kempson_, and that there are two grandchildren, _Natasha Richardson_ and _Jemma Redgrave_. + + + + +[source,cypher] +---- +MATCH [ALL WALKS] (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), + (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) +WHERE grandparent1 <> grandparent2 +RETURN grandparent1.name, grandparent2.name, grandchild.name +---- + +Equivalent to `MATCH ALL WALKS` + +[queryresult] +---- ++------------------------------------------------------------+ +| grandparent1.name | grandparent2.name | grandchild.name | ++------------------------------------------------------------+ +| Michael Redgrave | Rachel Kempson | Natasha Richardson | +| Michael Redgrave | Rachel Kempson | Jemma Redgrave | ++------------------------------------------------------------+ +2 rows +---- + === Matching shortest paths [source,cypher] ---- // MATCH p=shortestPath((a)-[:X*]->()) today becomes: -MATCH SHORTEST TRAIL p=(a)-[:X*]->() +MATCH SHORTEST TRAIL p = (a)-[:X*]->() RETURN * // MATCH p=shortestPath((a)-[:X*]->()) may be approximated using path patterns: -MATCH SHORTEST p=(a)-/:X*/->() +MATCH SHORTEST p = (a)-/:X*/->() RETURN * // MATCH p=allShortestPaths((a)-[:X*]->()) today becomes: -MATCH ALL SHORTEST TRAILS p=(a)-[:X*]->() +MATCH ALL SHORTEST TRAILS p = (a)-[:X*]->() RETURN * // MATCH p=allShortestPaths((a)-[:X*]->()) today may be approximated using path patterns: -MATCH p=(a)-/:X*/->() +MATCH p = (a)-/:X*/->() RETURN * ---- @@ -286,13 +320,13 @@ The function `disjoint()` may now be used to precisely express Cypher's current [source,cypher] ---- // Today (using same uniqueness scope for pat1, pat2, and pat) -MATCH pat1=..., pat2=..., pat3=... +MATCH pat1 = ..., pat2 = ..., pat3 = ... RETURN * // This CIP -MATCH TRAILS pat1=... -MATCH TRAILS pat2=... -MATCH TRAILS pat3=... +MATCH TRAILS pat1 = ... +MATCH TRAILS pat2 = ... +MATCH TRAILS pat3 = ... WITH * WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) RETURN * ---- @@ -303,13 +337,13 @@ Assuming a pre-parser option `class` which allows overriding the default pattern [source,cypher] ---- // Today (using same uniqueness scope for pat1, pat2, and pat) -MATCH pat1=..., pat2=..., pat3=... +MATCH pat1 = ..., pat2 = ..., pat3 = ... // This CIP, using pre-parser option CYPHER class=trails -MATCH pat1=... -MATCH pat2=... -MATCH pat3=... +MATCH pat1 = ... +MATCH pat2 = ... +MATCH pat3 = ... WITH * WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) RETURN * ---- From 50e7ac38976a45a1c4b182f3ce44902ae5ecb553 Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Wed, 26 Jul 2017 15:05:19 +0100 Subject: [PATCH 26/37] Added a detailed example; fix-ups; language changes --- ...nfigurable-pattern-matching-semantics.adoc | 90 +++++++++++++++--- cip/1.accepted/DataGraph.jpg | Bin 406798 -> 421962 bytes 2 files changed, 75 insertions(+), 15 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 20588e23de..1c122574e2 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -11,7 +11,7 @@ This proposal is a response to link:https://github.com/opencypher/openCypher/iss == Motivation Currently Cypher uses pattern matching semantics that treats _all_ patterns that occur in a `MATCH` clause as a unit (called a *uniqueness scope*) and only considers pattern instances that bind different relationships to each fixed length relationship pattern variable and to each element of a variable length relationship pattern variable. -This has come to be called *cypermorphism* informally and is a form of edge isomorphism that is based on Cypher's notion of uniqueness scope. +This has come to be called *Cypermorphism* informally and is a form of edge isomorphism that is based on Cypher's notion of uniqueness scope. Cyphermorphism lies at the intersection of returning as many results as possible while still ruling out returning an infinite number of paths when matching graphs that contain cycles. @@ -117,7 +117,7 @@ While Cypher allows omitting path, node, and relationship variables in a pattern This CIP proposes to replace the notion of *uniqueness scope* and *Cyphermorphism* and all associated rules with new, configurable pattern matching semantics. -Likewise to what is proposed by *CIP2017-02-06 Path Pattern Queries*, support for binding relationship list variables in variable length patterns will be deprecated. +As proposed in *CIP2017-02-06 Path Pattern Queries*, support for binding relationship list variables in variable length patterns will be deprecated. This CIP proposes to deprecate the existing syntax for both `shortestPath` and `allShortestPaths` matching of Cypher. @@ -125,7 +125,7 @@ This CIP proposes to deprecate the existing syntax for both `shortestPath` and ` Each pattern consists of one or more top-level pattern parts that are given in a comma separated list. -.Query 3.2.1 +.Query 3.3.1 [source,cypher] ---- MATCH (a)-->(b), (c)<--(d) @@ -133,9 +133,9 @@ RETURN * ---- The solution (set of successful matches) of a pattern is the cross product over the solutions of all its top-level pattern parts. -Thus, if we ignore uniqueness, Query 3.2.1 is semantically identical to Query 3.2.2. +Thus, if we ignore uniqueness, Query 3.3.1 is semantically identical to Query 3.3.2. -.Query 3.2.2 +.Query 3.3.2 [source,cypher] ---- MATCH (a)-->(b) @@ -146,16 +146,16 @@ RETURN * ---- Binding several nodes or relationships in a pattern to the same variable describes an implicit join. -Thus, queries 3.2.3 and 3.2.4 are semantically identical. +Thus, queries 3.3.3 and 3.3.4 are semantically equivalent. -.Query 3.2.3 +.Query 3.3.3 [source,cypher] ---- MATCH (a)-->()<--(a)-->(b) RETURN a ---- -.Query 3.2.4 +.Query 3.3.4 [source,cypher] ---- MATCH (n1)-->(n2), (n3)<--(n4), (n5)-->(b) @@ -209,7 +209,7 @@ The following additional pattern variable classes are proposed to accommodate ex * `CYCLE` is a synonym for `CLOSED PATH` Additionally, this CIP proposes to allow for plural forms of all pattern variable classes, which will be synonymous with their respective singular forms. -The plural forms are as follows: `WALKS`, `TRAILS`, `PATHS`, `CIRCUITS`, `CYCLES`. +The plural forms are as follows: `WALKS`, `TRAILS`, `PATHS`, `CIRCUITS`, and `CYCLES`. The main motivation is to aid readability when used in conjunction with different pattern match modes (see <>). [[modes]] @@ -254,28 +254,69 @@ The following examples demonstrates various ways in which the newly proposed con The following graph is used: -image::DataGraph.jpg[Graph,600,600] +image::DataGraph.jpg[Graph,800,700] === Homomorphic matching using walks We'll illustrate the benefits of the new homomorphic pattern matching by means of a series of queries. Assume we wish to know which two people have grandchildren in common, as well as the names of the grandchildren. -Intuitively, we can see that the only two people in the graph have grandchildren in common, namely _Michael Redgrave_ and _Rachel Kempson_, and that there are two grandchildren, _Natasha Richardson_ and _Jemma Redgrave_. +Intuitively, we can see that the only two people in the graph who have grandchildren in common are _Michael Redgrave_ and _Rachel Kempson_, and that there are two grandchildren, _Natasha Richardson_ and _Jemma Redgrave_. +Although _Roy Redgrave_ is a grandfather, there is no one else in the graph who has grandchildren in common with him. +.Query 4.1.1: Current semantics: single patterns +[source,cypher] +---- +MATCH (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), + (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) +WHERE grandparent1 <> grandparent2 +RETURN grandparent1.name, grandparent2.name, grandchild.name +---- +Query 4.1.1 comprises two comma-separated matches which form a single pattern, `p~1~`. +As the query runs under the current semantics, relationship uniqueness (aka Cyphermorphism) is applied to `p~1~`. +This means that the `:HAS_CHILD` relationship given by `()-[:HAS_CHILD]->(grandchild)` is only traversed once, which results in no rows being returned. +.Query 4.1.2: Current semantics: breaking the pattern to prevent the effects of Cyphermorphism +[source,cypher] +---- +MATCH (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) +MATCH (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) +WHERE grandparent1 <> grandparent2 +RETURN grandparent1.name, grandparent2.name, grandchild.name +---- + +By splitting out the matches using a separate `MATCH` clause, Query 4.1.2 in effect considers two patterns, `p~2~` and `p~3~`. +Cyphermorphism is applied to `p~2~` and `p~3~` separately, which resolves the limitation inherent in Query 4.1.1. + +Running Query 4.1.2 returns the following results: + +[queryresult] +---- ++------------------------------------------------------------+ +| grandparent1.name | grandparent2.name | grandchild.name | ++------------------------------------------------------------+ +| Michael Redgrave | Rachel Kempson | Natasha Richardson | +| Michael Redgrave | Rachel Kempson | Jemma Redgrave | +| Rachel Kempson | Michael Redgrave | Natasha Richardson | +| Rachel Kempson | Michael Redgrave | Jemma Redgrave | ++------------------------------------------------------------+ +4 rows +---- + +.Query 4.1.3: New semantics: achieving homomorphism by default + +The method to achieve homomorphism as exemplified by Query 4.1.2 is undoubtedly effective, but is potentially unintuitive and contrived. +In contrast, Query 4.1.3 uses the new default semantics for simple relationship patterns, and achieves the desired result without the need to consciously manipulate the structure of the matching clause. [source,cypher] ---- -MATCH [ALL WALKS] (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), +MATCH ALL WALKS (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) WHERE grandparent1 <> grandparent2 RETURN grandparent1.name, grandparent2.name, grandchild.name ---- -Equivalent to `MATCH ALL WALKS` - [queryresult] ---- +------------------------------------------------------------+ @@ -283,9 +324,28 @@ Equivalent to `MATCH ALL WALKS` +------------------------------------------------------------+ | Michael Redgrave | Rachel Kempson | Natasha Richardson | | Michael Redgrave | Rachel Kempson | Jemma Redgrave | +| Rachel Kempson | Michael Redgrave | Natasha Richardson | +| Rachel Kempson | Michael Redgrave | Jemma Redgrave | +------------------------------------------------------------+ -2 rows +4 rows +---- + +We could omit `ALL WALKS` from Query 4.1.3, as these are the default pattern match mode and pattern variable class, respectively, for simple relationship patterns. + +.Query 4.1.4: New semantics: achieving Cyphermorphism by default + +What happens in the scenarios where the current semantics -- i.e. Cyphermorphism -- are desirable? +All that is required is to alter the pattern variable class in the `MATCH` clause from `WALKS` to `TRAILS` (or to just add `TRAILS` if no pattern variable class was previously specified). + +[source,cypher] ---- +MATCH ALL TRAILS (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), + (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) +WHERE grandparent1 <> grandparent2 +RETURN grandparent1.name, grandparent2.name, grandchild.name +---- + +Running Query 4.1.4 will return no results. === Matching shortest paths diff --git a/cip/1.accepted/DataGraph.jpg b/cip/1.accepted/DataGraph.jpg index 5a3cfdf6799992720c03082ae1c8b2c28945a15f..49016222f90373e7f1c8b78688e5ea410ae77dbe 100644 GIT binary patch delta 34101 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 WORJ>vv8%wB4ES1I&&RIWg#0g4+op&B delta 18789 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�BC6zT4%luL&MGj@rV0s4?{P^ zLx=n$;+_cN3}#J@$@4g5oKeLYmID=0f8}|tDtV4am`bi+jmfi&1zvtkR$pG7EKV;A z>@hXUS&!E-S%0%`n)bN*7@AS38jy8pQKu;T@NN|$X~v~Ft>YxxQf)`}zQ2?Ybomp< z_b1_R?aliWd|$LJZDH|hb?t(d_nN$wN~(1_YPsWuLVw}N9^e496yes zmg3`wr+!~=kHP13CtcaOQOaq)XewN_ejkmns#shmF)w7(vvhd%)ZAjgKewUMR zcqUmNA$(K+0D^q}!5klSR_3 zbR8WvuNL^X!CJ<@sxFhE>6&hhrmgm&IIz;R`yD#eLuYGm3V?aPn zH$UK(zY0HRZ;zi8Q~n9J`vFs7lX{X;zk+W|5?6mX^AHo2S~_*;!k|Z47a!lR(%llW-6Tll4s! Vhb?#lhb?#mhb?#nw=H-D9ry-bzwH13 From 5a8436da0149ee0a525c4e78b97434f0118728df Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Wed, 26 Jul 2017 15:14:50 +0100 Subject: [PATCH 27/37] Formatted query headings so they are more readable in default GH view --- ...-01-18-configurable-pattern-matching-semantics.adoc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 1c122574e2..b039379111 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -264,7 +264,8 @@ Assume we wish to know which two people have grandchildren in common, as well as Intuitively, we can see that the only two people in the graph who have grandchildren in common are _Michael Redgrave_ and _Rachel Kempson_, and that there are two grandchildren, _Natasha Richardson_ and _Jemma Redgrave_. Although _Roy Redgrave_ is a grandfather, there is no one else in the graph who has grandchildren in common with him. -.Query 4.1.1: Current semantics: single patterns +_Query 4.1.1 - Current semantics: single patterns_ + [source,cypher] ---- MATCH (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), @@ -277,7 +278,8 @@ Query 4.1.1 comprises two comma-separated matches which form a single pattern, ` As the query runs under the current semantics, relationship uniqueness (aka Cyphermorphism) is applied to `p~1~`. This means that the `:HAS_CHILD` relationship given by `()-[:HAS_CHILD]->(grandchild)` is only traversed once, which results in no rows being returned. -.Query 4.1.2: Current semantics: breaking the pattern to prevent the effects of Cyphermorphism +_Query 4.1.2 - Current semantics: breaking the pattern to prevent the effects of Cyphermorphism_ + [source,cypher] ---- MATCH (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) @@ -304,7 +306,7 @@ Running Query 4.1.2 returns the following results: 4 rows ---- -.Query 4.1.3: New semantics: achieving homomorphism by default +_Query 4.1.3 - New semantics: achieving homomorphism by default_ The method to achieve homomorphism as exemplified by Query 4.1.2 is undoubtedly effective, but is potentially unintuitive and contrived. In contrast, Query 4.1.3 uses the new default semantics for simple relationship patterns, and achieves the desired result without the need to consciously manipulate the structure of the matching clause. @@ -332,7 +334,7 @@ RETURN grandparent1.name, grandparent2.name, grandchild.name We could omit `ALL WALKS` from Query 4.1.3, as these are the default pattern match mode and pattern variable class, respectively, for simple relationship patterns. -.Query 4.1.4: New semantics: achieving Cyphermorphism by default +_Query 4.1.4 - New semantics: achieving Cyphermorphism by default_ What happens in the scenarios where the current semantics -- i.e. Cyphermorphism -- are desirable? All that is required is to alter the pattern variable class in the `MATCH` clause from `WALKS` to `TRAILS` (or to just add `TRAILS` if no pattern variable class was previously specified). From 08afc88d74d086ec69cee16d796aa66f10cf37b5 Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Wed, 26 Jul 2017 15:16:34 +0100 Subject: [PATCH 28/37] Added TOC --- .../CIP2017-01-18-configurable-pattern-matching-semantics.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index b039379111..a8659fdddb 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -8,6 +8,8 @@ This proposal is a response to link:https://github.com/opencypher/openCypher/issues/174[CIR-2017-174]. +toc::[] + == Motivation Currently Cypher uses pattern matching semantics that treats _all_ patterns that occur in a `MATCH` clause as a unit (called a *uniqueness scope*) and only considers pattern instances that bind different relationships to each fixed length relationship pattern variable and to each element of a variable length relationship pattern variable. From efb9fee0a118fa4c4518d8798fd089ac7bf22ac8 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Thu, 27 Jul 2017 00:58:34 +0200 Subject: [PATCH 29/37] Removed Cycles and Circuits for now --- ...01-18-configurable-pattern-matching-semantics.adoc | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index a8659fdddb..9146cc71c9 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -101,8 +101,6 @@ PatternMatchMode = 'ALL' PatternVariableClass = ([ PVClassModifier ], 'WALK', ['S']) | ([ PVClassModifier ], 'TRAIL', ['S']) | ([ PVClassModifier ], 'PATH', ['S']) - | ('CYCLE', ['S']) - | ('CIRCUIT', ['S']) ; PVClassModifier = 'OPEN' | 'CLOSED' @@ -203,14 +201,9 @@ Implementations are advised to signal a warning for uses of `OPEN` pattern varia Implementations are advised to signal a warning for uses of `CLOSED` pattern variable classes where the two endpoints of the pattern both use a _different_ variable name. -==== Synonyms and plural forms +==== Plural forms -The following additional pattern variable classes are proposed to accommodate existing terminology that is commonly used in graph theory: - -* `CIRCUIT` is a synonym for `CLOSED TRAIL` -* `CYCLE` is a synonym for `CLOSED PATH` - -Additionally, this CIP proposes to allow for plural forms of all pattern variable classes, which will be synonymous with their respective singular forms. +This CIP proposes to allow for plural forms of all pattern variable classes, which will be synonymous with their respective singular forms. The plural forms are as follows: `WALKS`, `TRAILS`, `PATHS`, `CIRCUITS`, and `CYCLES`. The main motivation is to aid readability when used in conjunction with different pattern match modes (see <>). From 1c39c76f251661e694048d3dc62e55f653dd61e5 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Thu, 27 Jul 2017 01:27:24 +0200 Subject: [PATCH 30/37] Change to minimize breaking existing queries --- ...nfigurable-pattern-matching-semantics.adoc | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 9146cc71c9..cf1786f264 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -190,8 +190,6 @@ MATCH TRAIL p = (:A)-->(:B)-[:KNOWS]->(), PATH q = (a)-/~foo/->(b) RETURN p, q ---- -NOTE: This CIP proposes the default pattern variable class to be `WALK`. - The pattern variable class may be further qualified with one of the following prefixes: * `OPEN`: This pattern variable should only be bound to walks (or trails, or paths respectively) which begin and end at _distinct_ nodes. @@ -204,7 +202,7 @@ Implementations are advised to signal a warning for uses of `CLOSED` pattern var ==== Plural forms This CIP proposes to allow for plural forms of all pattern variable classes, which will be synonymous with their respective singular forms. -The plural forms are as follows: `WALKS`, `TRAILS`, `PATHS`, `CIRCUITS`, and `CYCLES`. +The plural forms are as follows: `WALKS`, `TRAILS`, and `PATHS`. The main motivation is to aid readability when used in conjunction with different pattern match modes (see <>). [[modes]] @@ -218,6 +216,8 @@ Node patterns are unaffected by the pattern match mode, and will always match al This CIP proposes the new `ALL` pattern match mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path patterns given in the subsequent pattern elements. +This CIP proposes the default pattern variable class for `MATCH ALL` to be `TRAILS`. + This CIP proposes that an error should be raised for any use of the `ALL` pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern or an unbounded path pattern. Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN|CLOSED) WALKS` that may return an infinite result. @@ -226,18 +226,26 @@ Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN| This CIP proposes the new `ALL SHORTEST` pattern match mode that matches every _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the subsequent pattern elements. +This CIP proposes the default pattern variable class for `MATCH ALL SHORTEST` to be `WALKS`. + ==== SHORTEST mode This CIP proposes the new `SHORTEST` pattern match mode that matches _one shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern elements. +This CIP proposes the default pattern variable class for `MATCH SHORTEST` to be `WALKS`. + ==== Default pattern match mode -This CIP proposes a new default pattern match mode that assigns a different pattern match mode to each type of pattern part: +This CIP proposes a new default pattern match mode that assigns a different pattern match mode and pattern variable class to each type of pattern part: + +* Simple relationship patterns (e.g. `()-[]\->()`) are to be matched using `ALL TRAILS`. +* Bounded variable length relationship patterns (e.g. `()-[*2..4]\->()`) are to be matched using `ALL TRAILS`. +* Unbounded variable length relationship patterns (e.g. `()-[*]\->()`) are to be matched using `ALL TRAILS`. +* Path patterns (e.g. `()-/../\->()`) are to be matched using `ALL SHORTEST WALKS`. + +This CIP proposes that an explicitly specified pattern variable class overrides the implicit pattern variable class assigned to each pattern part by using the default pattern match mode. -* Simple relationship patterns (e.g. `()-[]\->()`) are to be matched using `ALL`. This is identical to `ALL SHORTEST` for simple relationship patterns. -* Bounded variable length relationship patterns (e.g. `()-[*2..4]\->()`) are to be matched using `ALL`. -* Unbounded variable length relationship patterns (e.g. `()-[*]\->()`) are to be matched using `ALL`. -* Path patterns (e.g. `()-/../\->()`) are to be matched using `ALL SHORTEST`. +This CIP proposes that when using the default patter match mode without an explicitly specified pattern variable class only, all pattern parts that are to be matched as `ALL TRAILS` according to the default pattern match mode are to be matched together (i.e. may not bind the same relationship twice between them) while all other pattern parts are to be matched independently from any other pattern part. This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern only. @@ -344,7 +352,7 @@ RETURN grandparent1.name, grandparent2.name, grandchild.name Running Query 4.1.4 will return no results. -=== Matching shortest paths +=== Matching shortest trails [source,cypher] ---- @@ -413,8 +421,8 @@ This proposal adds a facility to Cypher for selecting from multiple desirable pa A moderate increase in language complexity. -A substantial departure from current pattern matching semantics. -However, care has been taken to retain access to current semantics. +A change from current pattern matching semantics. +However, care has been taken to reduce the amount of broken queries and to retain access to current semantics. `MATCH ALL [OPEN|CLOSED] WALKS` allows for non-terminating queries. @@ -436,8 +444,6 @@ This section presents a few such functions: * `isClosed(p)`: returns `true` if the source and target nodes of `p` are equal. * `toTrail(p)`: returns `p` if `p` contains no duplicate relationships, `null` otherwise. * `toPath(p)`: returns `toTrail(p)` if `p` contains no duplicate nodes at all or if the only two duplicate nodes are the source and target nodes of `p`, `null` otherwise. -* `toCircuit(p)`: returns `toTrail(p)` if `isClosed(p)` is true, `null` otherwise. -* `toCycle(p)`: returns `toPath(p)` if `isClosed(p)` is true, `null` otherwise. [appendix] == Pre-parser options @@ -445,7 +451,7 @@ This section presents a few such functions: It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern variable class as well as the default pattern match mode: * `match=one of(all|all-shortest|shortest)` for configuring a different default pattern match mode -* `match=one of(walks|trails|paths)` for configuring a different default pattern variable class -* `match=one of(all|all-shortest|shortest)`, `-`, `one of(walks|trails|paths)` for configuring both a different default pattern match mode and a different default pattern variable class +* `match=one of(walk[s]|trail[s]|path[s])` for configuring a different default pattern variable class +* `match=one of(all|all-shortest|shortest)`, `-`, `one of(walk[s]|trail[s]|path[s])` for configuring both a different default pattern match mode and a different default pattern variable class An example of the latter would be `match=all-shortest-trails`. From f8c45b484dd1640e933b62a207d7588e27ad36d8 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Thu, 27 Jul 2017 01:37:33 +0200 Subject: [PATCH 31/37] Update examples to reflect latest changes --- ...nfigurable-pattern-matching-semantics.adoc | 41 ++++++------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index cf1786f264..5f497a97f8 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -216,7 +216,7 @@ Node patterns are unaffected by the pattern match mode, and will always match al This CIP proposes the new `ALL` pattern match mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path patterns given in the subsequent pattern elements. -This CIP proposes the default pattern variable class for `MATCH ALL` to be `TRAILS`. +This CIP proposes the default pattern variable class for the `ALL` pattern match mode to be `TRAILS`. This CIP proposes that an error should be raised for any use of the `ALL` pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern or an unbounded path pattern. @@ -226,13 +226,13 @@ Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN| This CIP proposes the new `ALL SHORTEST` pattern match mode that matches every _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the subsequent pattern elements. -This CIP proposes the default pattern variable class for `MATCH ALL SHORTEST` to be `WALKS`. +This CIP proposes the default pattern variable class for the `ALL SHORTEST` pattern match mode to be `WALKS`. ==== SHORTEST mode This CIP proposes the new `SHORTEST` pattern match mode that matches _one shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern elements. -This CIP proposes the default pattern variable class for `MATCH SHORTEST` to be `WALKS`. +This CIP proposes the default pattern variable class for the `SHORTEST` pattern match mode to be `WALK`. ==== Default pattern match mode @@ -247,6 +247,8 @@ This CIP proposes that an explicitly specified pattern variable class overrides This CIP proposes that when using the default patter match mode without an explicitly specified pattern variable class only, all pattern parts that are to be matched as `ALL TRAILS` according to the default pattern match mode are to be matched together (i.e. may not bind the same relationship twice between them) while all other pattern parts are to be matched independently from any other pattern part. +NOTE: This rule emulates the current behaviour of Cypher. + This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern only. Implementations are advised to signal a warning for any use of the default pattern match mode that may return an infinite result. @@ -357,18 +359,18 @@ Running Query 4.1.4 will return no results. [source,cypher] ---- // MATCH p=shortestPath((a)-[:X*]->()) today becomes: -MATCH SHORTEST TRAIL p = (a)-[:X*]->() +MATCH SHORTEST p = (a)-[:X*]->() RETURN * -// MATCH p=shortestPath((a)-[:X*]->()) may be approximated using path patterns: -MATCH SHORTEST p = (a)-/:X*/->() -RETURN * +// MATCH p=shortestPath((a)-[:X*]->()) may be expressed using path patterns, too: +MATCH p = (a)-/:X*/->() +RETURN * LIMIT 1 // MATCH p=allShortestPaths((a)-[:X*]->()) today becomes: -MATCH ALL SHORTEST TRAILS p = (a)-[:X*]->() +MATCH ALL SHORTEST p = (a)-[:X*]->() RETURN * -// MATCH p=allShortestPaths((a)-[:X*]->()) today may be approximated using path patterns: +// MATCH p=allShortestPaths((a)-[:X*]->()) may be expressed using path patterns, too: MATCH p = (a)-/:X*/->() RETURN * ---- @@ -389,27 +391,8 @@ MATCH pat1 = ..., pat2 = ..., pat3 = ... RETURN * // This CIP -MATCH TRAILS pat1 = ... -MATCH TRAILS pat2 = ... -MATCH TRAILS pat3 = ... -WITH * WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) -RETURN * ----- - -Assuming a pre-parser option `class` which allows overriding the default pattern variable class, we may reduce the verbosity of Query 4.2.1 as in Query 4.2.2: - -.Query 4.2.2 -[source,cypher] ----- -// Today (using same uniqueness scope for pat1, pat2, and pat) MATCH pat1 = ..., pat2 = ..., pat3 = ... - -// This CIP, using pre-parser option -CYPHER class=trails -MATCH pat1 = ... -MATCH pat2 = ... -MATCH pat3 = ... -WITH * WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) +WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) RETURN * ---- From c6b01b57e2f49696fabf6e5c6782b2590ce501c4 Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Thu, 27 Jul 2017 10:20:06 +0100 Subject: [PATCH 32/37] Textual tidy-ups --- ...onfigurable-pattern-matching-semantics.adoc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 5f497a97f8..e625399b4b 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -4,7 +4,11 @@ :toc-placement: macro :source-highlighter: codemirror -*Author:* Stefan Plantikow , Mats Rydberg , Petra Selmer +*Authors:* + + * Stefan Plantikow + * Mats Rydberg + * Petra Selmer This proposal is a response to link:https://github.com/opencypher/openCypher/issues/174[CIR-2017-174]. @@ -133,7 +137,7 @@ RETURN * ---- The solution (set of successful matches) of a pattern is the cross product over the solutions of all its top-level pattern parts. -Thus, if we ignore uniqueness, Query 3.3.1 is semantically identical to Query 3.3.2. +Thus, if we ignore uniqueness, Query 3.3.1 is semantically equivalent to Query 3.3.2. .Query 3.3.2 [source,cypher] @@ -245,7 +249,7 @@ This CIP proposes a new default pattern match mode that assigns a different patt This CIP proposes that an explicitly specified pattern variable class overrides the implicit pattern variable class assigned to each pattern part by using the default pattern match mode. -This CIP proposes that when using the default patter match mode without an explicitly specified pattern variable class only, all pattern parts that are to be matched as `ALL TRAILS` according to the default pattern match mode are to be matched together (i.e. may not bind the same relationship twice between them) while all other pattern parts are to be matched independently from any other pattern part. +This CIP proposes that when using the default pattern match mode without an explicitly specified pattern variable class only, all pattern parts that are to be matched as `ALL TRAILS` according to the default pattern match mode are to be matched together (i.e. may not bind the same relationship twice between them) while all other pattern parts are to be matched independently from any other pattern part. NOTE: This rule emulates the current behaviour of Cypher. @@ -311,7 +315,7 @@ Running Query 4.1.2 returns the following results: 4 rows ---- -_Query 4.1.3 - New semantics: achieving homomorphism by default_ +_Query 4.1.3 - New semantics: achieving homomorphism_ The method to achieve homomorphism as exemplified by Query 4.1.2 is undoubtedly effective, but is potentially unintuitive and contrived. In contrast, Query 4.1.3 uses the new default semantics for simple relationship patterns, and achieves the desired result without the need to consciously manipulate the structure of the matching clause. @@ -337,12 +341,10 @@ RETURN grandparent1.name, grandparent2.name, grandchild.name 4 rows ---- -We could omit `ALL WALKS` from Query 4.1.3, as these are the default pattern match mode and pattern variable class, respectively, for simple relationship patterns. - -_Query 4.1.4 - New semantics: achieving Cyphermorphism by default_ +_Query 4.1.4 - New semantics: achieving Cyphermorphism_ What happens in the scenarios where the current semantics -- i.e. Cyphermorphism -- are desirable? -All that is required is to alter the pattern variable class in the `MATCH` clause from `WALKS` to `TRAILS` (or to just add `TRAILS` if no pattern variable class was previously specified). +All that is required is to alter the pattern variable class in the `MATCH` clause from `WALKS` to `TRAILS` (which is, in fact, the default). [source,cypher] ---- From ac72e91acb353943953568eb85e22ad77687a360 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Thu, 27 Jul 2017 16:47:02 +0200 Subject: [PATCH 33/37] Updated default rules + Moved disjoint back into proposal --- ...nfigurable-pattern-matching-semantics.adoc | 36 ++++++++----------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index e625399b4b..5e932458d7 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -187,6 +187,8 @@ Three classes of pattern variables are proposed: NOTE: This CIP proposes to rename the Cypher type `PATH` to `WALK`. +IMPORTANT: This CIP proposes that the default pattern variable class is `TRAIL` with the exception that any path pattern part is to be matched separately using the `WALK` pattern variable class. + .Example of using pattern variable classes for the pattern variables `p` and `q`: [source, cypher] ---- @@ -220,8 +222,6 @@ Node patterns are unaffected by the pattern match mode, and will always match al This CIP proposes the new `ALL` pattern match mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path patterns given in the subsequent pattern elements. -This CIP proposes the default pattern variable class for the `ALL` pattern match mode to be `TRAILS`. - This CIP proposes that an error should be raised for any use of the `ALL` pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern or an unbounded path pattern. Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN|CLOSED) WALKS` that may return an infinite result. @@ -230,32 +230,29 @@ Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN| This CIP proposes the new `ALL SHORTEST` pattern match mode that matches every _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the subsequent pattern elements. -This CIP proposes the default pattern variable class for the `ALL SHORTEST` pattern match mode to be `WALKS`. - ==== SHORTEST mode This CIP proposes the new `SHORTEST` pattern match mode that matches _one shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern elements. -This CIP proposes the default pattern variable class for the `SHORTEST` pattern match mode to be `WALK`. - ==== Default pattern match mode -This CIP proposes a new default pattern match mode that assigns a different pattern match mode and pattern variable class to each type of pattern part: +This CIP proposes a new default pattern match mode that assigns a different pattern match mode to each type of pattern part: -* Simple relationship patterns (e.g. `()-[]\->()`) are to be matched using `ALL TRAILS`. -* Bounded variable length relationship patterns (e.g. `()-[*2..4]\->()`) are to be matched using `ALL TRAILS`. -* Unbounded variable length relationship patterns (e.g. `()-[*]\->()`) are to be matched using `ALL TRAILS`. -* Path patterns (e.g. `()-/../\->()`) are to be matched using `ALL SHORTEST WALKS`. +* Simple relationship patterns (e.g. `()-[]\->()`) are to be matched using `ALL`. +* Bounded variable length relationship patterns (e.g. `()-[*2..4]\->()`) are to be matched using `ALL`. +* Unbounded variable length relationship patterns (e.g. `()-[*]\->()`) are to be matched using `ALL`. +* Path patterns (e.g. `()-/../\->()`) are to be matched using `ALL SHORTEST`. -This CIP proposes that an explicitly specified pattern variable class overrides the implicit pattern variable class assigned to each pattern part by using the default pattern match mode. +This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern only. -This CIP proposes that when using the default pattern match mode without an explicitly specified pattern variable class only, all pattern parts that are to be matched as `ALL TRAILS` according to the default pattern match mode are to be matched together (i.e. may not bind the same relationship twice between them) while all other pattern parts are to be matched independently from any other pattern part. +Implementations are advised to signal a warning for any use of the default pattern match mode that may return an infinite result. -NOTE: This rule emulates the current behaviour of Cypher. +=== `disjoint` function -This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern only. +This CIP finally proposes a function `disjoint()` defined as follows: -Implementations are advised to signal a warning for any use of the default pattern match mode that may return an infinite result. +* `disjoint(list1, list2, ..., list_n)`: returns `true` if all argument lists are pairwise disjoint +* If any argument is a walk, it is treated as a list of alternating nodes and relationships == Examples @@ -379,11 +376,7 @@ RETURN * === Matching with existing semantics -Assume a function `disjoint()` defined as follows: - -* `disjoint(list1, list2, ..., list_n)`: returns `true` if all argument lists are pairwise disjoint. - -The function `disjoint()` may now be used to precisely express Cypher's current pattern matching semantics. +The function `disjoint()` may now be used to precisely express Cypher's current pattern matching semantics: .Query 4.2.1 [source,cypher] @@ -419,7 +412,6 @@ However, care has been taken to reduce the amount of broken queries and to retai [[Rose02]] [Rose02] K. H. Rosen. _Discrete Mathematics and Its Applications_. McGraw-Hill, 2002. -[appendix] == Functions for working with walks Related to the concepts outlined in this CIP, but peripheral to the model and semantics described, several functions are envisioned as useful for working with the various types of patterns bound to pattern variables. From c139130b49aebe6a85fc395e2cf03cfeec8484c6 Mon Sep 17 00:00:00 2001 From: Petra Selmer Date: Wed, 17 Jan 2018 16:32:03 +0000 Subject: [PATCH 34/37] Reformatted title --- .../CIP2017-01-18-configurable-pattern-matching-semantics.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 5e932458d7..1ac26ddf4c 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -1,4 +1,4 @@ -= CIP2017-01-18 - Configurable Pattern Matching Semantics += CIP2017-01-18 Configurable Pattern Matching Semantics :numbered: :toc: :toc-placement: macro From 8cb74ae6e40ce94c3afa2e8c797cb22cd3172789 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Tue, 27 Mar 2018 00:39:45 +0200 Subject: [PATCH 35/37] Updated to reflect recent discussions --- ...nfigurable-pattern-matching-semantics.adoc | 229 ++++++++++++------ 1 file changed, 159 insertions(+), 70 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index 5e932458d7..f2ff49c701 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -14,17 +14,21 @@ This proposal is a response to link:https://github.com/opencypher/openCypher/iss toc::[] + + == Motivation Currently Cypher uses pattern matching semantics that treats _all_ patterns that occur in a `MATCH` clause as a unit (called a *uniqueness scope*) and only considers pattern instances that bind different relationships to each fixed length relationship pattern variable and to each element of a variable length relationship pattern variable. This has come to be called *Cypermorphism* informally and is a form of edge isomorphism that is based on Cypher's notion of uniqueness scope. -Cyphermorphism lies at the intersection of returning as many results as possible while still ruling out returning an infinite number of paths when matching graphs that contain cycles. +Cyphermorphism lies at the intersection of returning as many results as possible while still ruling out returning an infinite number of paths when matching graphs that contain cycles with a variable length pattern. -However, the notion of uniqueness scope has proven to be non-standard and is occasionally confusing for users and Cyphermorphic matching is not tractable in terms of computational complexity for some graphs. +However, the notion of uniqueness scope has proven to be non-standard and is occasionally confusing for users and cyphermorphic matching is not tractable in terms of computational complexity for some graphs. The CIP aims to address these issues. + + == Background This CIP is based upon the notions of _walks_, _trails_ and _paths_, as defined by _Jungnickel_ <>. @@ -80,10 +84,13 @@ However, as `B` is both the start node and end node, `S~3~` is still a valid pat A path corresponds to the standard definition of _(node-)isomorphic_ graph pattern matching. + + == Proposal This CIP has been submitted in the belief that *CIP2017-02-06 Path Pattern Queries* will be accepted and is aligned with it. + [[syntax]] === Syntax @@ -93,26 +100,68 @@ Note that path patterns are assumed from the *CIP2017-02-06 Path Pattern Queries .Overview of proposed grammar changes: [source,ebnf] ---- -Pattern = PatternPart, { ',', PatternPart } ; -PatternPart = [ PatternVariableSpec ], NodePattern, { (EdgePattern | PathPattern), NodePattern } ; +!! Clause-level argument +Pattern = PatternGroup, { PatternGroupWithModifiers } + | { PatternGroupWithModifiers }- + ; -PatternVariableSpec = [ PatternMatchMode ], [ PatternVariableClass ], [ Variable, '=' ] ; +PatternGroup = PatternPart, { ',', PatternPart } ; -PatternMatchMode = 'ALL' - | 'ALL SHORTEST' - | 'SHORTEST' - ; -PatternVariableClass = ([ PVClassModifier ], 'WALK', ['S']) - | ([ PVClassModifier ], 'TRAIL', ['S']) - | ([ PVClassModifier ], 'PATH', ['S']) - ; -PVClassModifier = 'OPEN' - | 'CLOSED' +!! Expected to form a connected component +PatternPart = NamedPatternPart + | AnonymousPatternPart + ; + +NamedPatternPart = PatternVariableSpec, AnonymousPatternPart ; + +AnonymousPatternPart = { + NodePattern, + { (EdgePattern | PathPattern), NodePattern } + }- ; ----- +PathVariableSpec = [ [ PathClassModifier ], PathClass ], [ Variable, '=' ] ; + +PathClassModifier = ('OPEN' | 'CLOSED'), 'DIRECTED' + | 'DIRECTED' + ; -As we can see above, patterns in Cypher consist of a comma-separated list of _pattern parts_, where a pattern part is exemplified by `p = (e:Employee)-[:REPORTS_TO*1..3]->(m:Manager)`. +PathClass = 'WALK' + | 'TRAIL' + | [ 'SIMPLE' ], 'PATH' + ; + +PatternGroupWithModifiers = PatternGroupModifiers, PatternGroup ; + +PatternGroupModifiers = + PatternQuantifier [ PatternLengthRestriction] [ PatternMorphism ] + | PatternLengthRestriction [ PatternMorphism ] + | PatternMorphism + ; + +PatternQuantifier = 'ANY' + | 'EACH' [ 'OF' ] !! For readability + ; + +PatternLengthRestriction = 'SHORTEST' + | 'CHEAPEST' + | 'UNRESTRICTED' + ; + +PatternMorphism = 'DIFFERENT', ('NODES' | 'VERTICES'), [ VariableList ] + | 'DIFFERENT', ('RELATIONSHIPS' | 'EDGES'), [ VariableList ] + | 'LENIENT' + ; + +VariableList = '(', Variable, { ',', Variable }, ')' ; + +Expression = ... + | 'DIFFERENT', VariableList + | 'DISJOINT', VariableList + ; +---- + +Basic patterns in Cypher consist of a comma-separated list of *pattern parts*, where a pattern part is exemplified by `p = (e:Employee)-[:REPORTS_TO*1..3]->(m:Manager)`. Pattern parts may be bound to a variable, such as `p` in our example, and consist of a linear chain of connected node, relationship, and path patterns. While Cypher allows omitting path, node, and relationship variables in a pattern, this is just syntactic sugar; i.e. all parts of a pattern should be considered to be bound to a variable name from the viewpoint of pattern matching semantics (names are either provided in the query or automatically generated by a conforming implementation). @@ -167,9 +216,22 @@ WHERE n1 = n4 AND n2 = n3 AND n4 = n5 RETURN n1 AS a ---- +=== Flexible pattern part syntax + +This CIP proposes to allow breaking of pattern parts using whitespace in order to aid visual layout of longer patterns. + +.Query 3.4.1 +[source,cypher] +---- +MATCH + p=(a)-->(n2)-->(n3) + (n3)<--(n4)<--(n5)-->(b) +RETURN * +---- + === Pattern variables and classes -This CIP proposes to name the variable to which a pattern part may be assigned a _pattern variable_. +This CIP proposes to name the variable to which a pattern part may be assigned a *pattern variable*. Note that pattern variables are always bound to a connected sequence of node, relationship, and path patterns (see <>). .In the query, `p` and `q` are examples of pattern variables. A named path pattern `foo` is assumed: @@ -183,16 +245,12 @@ Three classes of pattern variables are proposed: * `WALK`: Pattern variables of this class may only be bound to pattern instances that are walks, as defined in <>. * `TRAIL`: Pattern variables of this class may only be bound to pattern instances that are trails, as defined in <>. -* `PATH`: Pattern variables of this class may only be bound to pattern instances that are paths, as defined in <>. - -NOTE: This CIP proposes to rename the Cypher type `PATH` to `WALK`. - -IMPORTANT: This CIP proposes that the default pattern variable class is `TRAIL` with the exception that any path pattern part is to be matched separately using the `WALK` pattern variable class. +* `[SIMPLE] PATH`: Pattern variables of this class may only be bound to pattern instances that are paths, as defined in <>. .Example of using pattern variable classes for the pattern variables `p` and `q`: [source, cypher] ---- -MATCH TRAIL p = (:A)-->(:B)-[:KNOWS]->(), PATH q = (a)-/~foo/->(b) +MATCH TRAIL p = (:A)-->(:B)-[:KNOWS]->(), SIMPLE PATH q = (a)-/~foo/->(b) RETURN p, q ---- @@ -200,59 +258,90 @@ The pattern variable class may be further qualified with one of the following pr * `OPEN`: This pattern variable should only be bound to walks (or trails, or paths respectively) which begin and end at _distinct_ nodes. * `CLOSED` This pattern variable should only be bound to walks (or trails, or paths respectively) which begin and end at _the same node_. +* `DIRECTED` This pattern variable should only be bound to walks (or trails, or simple paths respectively) in which all relationships are traversed in the same direction Implementations are advised to signal a warning for uses of `OPEN` pattern variable classes where the two endpoints of the pattern both use the _same_ variable name. Implementations are advised to signal a warning for uses of `CLOSED` pattern variable classes where the two endpoints of the pattern both use a _different_ variable name. -==== Plural forms -This CIP proposes to allow for plural forms of all pattern variable classes, which will be synonymous with their respective singular forms. -The plural forms are as follows: `WALKS`, `TRAILS`, and `PATHS`. -The main motivation is to aid readability when used in conjunction with different pattern match modes (see <>). +[[groups]] +=== Pattern groups and group modifiers + +A comma separated list of named on unnamed pattern parts is called a *pattern group*. + +This CIP proposes to add control over the semantic of matching of pattern groups by allowing to prefix pattern groups with additional *pattern group modifiers*. + +This CIP further proposes to redefine a *pattern* as a non-empty sequence of pattern groups that are separated by whitespace where all but the first pattern group is prefixed by at lease one pattern group modifier. + +This CIP proposes the introduction of three kinds of pattern group modifiers: + +* A *pattern quantifier* controls how many matches are to be returned +* A *pattern length restriction* limits the length and nature of matched paths +* A *pattern morphism* specifies with which morphism the pattern group is to be matched + + +==== Pattern quantifiers -[[modes]] -=== Pattern match modes +This CIP proposes to introduce the `ANY` pattern quantifier that requests that at most one match is to be returned for the whole pattern group. -This CIP proposes introducing the notion of a _pattern match mode_, that may be specified before a pattern variable in a read-only pattern (i.e. a pattern that is not used as an argument to an updating clause) and restricts the set of valid pattern matches for the subsequent pattern part. +This CIP proposes to introduce the `EACH` pattern quantifier that requests that all matches are to be returned for the whole pattern group. -Node patterns are unaffected by the pattern match mode, and will always match all described nodes from the graph. +This CIP proposes to introduce the `ALL` pattern quantifier that requests that all matches are to be returned for the whole pattern group. -==== ALL mode -This CIP proposes the new `ALL` pattern match mode that matches every walk (or trail, or path respectively) as described by all node, relationship, and path patterns given in the subsequent pattern elements. +==== Pattern length restrictions -This CIP proposes that an error should be raised for any use of the `ALL` pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern or an unbounded path pattern. +This CIP proposes to introduce the `SHORTEST` pattern length restriction to request that only shortest paths inside the pattern group are to be considered by matching. +A path is considered to be shorter than another path if it has a smaller length. -Implementations are advised to signal a warning for any use of `MATCH ALL (OPEN|CLOSED) WALKS` that may return an infinite result. +This CIP proposes to introduce the `CHEAPEST` pattern length restriction to request that only shortest cheapest inside the pattern group are to be considered by matching. +A path is considered to be cheaper than another path if it has a smaller cost in terms of the cost function specified through the use of a path pattern. -==== ALL SHORTEST mode +This CIP proposes to introduce the `UNRESTRICTED` pattern length restriction to request that all possible paths inside the pattern group are to be considered by matching. +A path is considered to be shorter than another path if it has a smaller length. -This CIP proposes the new `ALL SHORTEST` pattern match mode that matches every _shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the subsequent pattern elements. -==== SHORTEST mode +==== Pattern morphisms -This CIP proposes the new `SHORTEST` pattern match mode that matches _one shortest_ walk (or trail, or path respectively) as described by all node, relationship, and path patterns in the following pattern elements. +This CIP proposes to introduce the `DIFFERENT NODES` pattern morphism that requests that the pattern group is to be matched using node isomorphism (i.e. all matched nodes must be different nodes). -==== Default pattern match mode +This CIP proposes to introduce the `DIFFERENT EDGES` pattern morphism that requests that the pattern group is to be matched using relationship isomorphism (i.e. all matched relationships must be different relationships). -This CIP proposes a new default pattern match mode that assigns a different pattern match mode to each type of pattern part: +This CIP proposes to introduce the `LENIENT` pattern morphism that requests that the pattern group is to be matched using homomorphism (i.e. no restrictions are placed on matched entities). -* Simple relationship patterns (e.g. `()-[]\->()`) are to be matched using `ALL`. -* Bounded variable length relationship patterns (e.g. `()-[*2..4]\->()`) are to be matched using `ALL`. -* Unbounded variable length relationship patterns (e.g. `()-[*]\->()`) are to be matched using `ALL`. -* Path patterns (e.g. `()-/../\->()`) are to be matched using `ALL SHORTEST`. -This CIP proposes that an error should be raised for any use of the default pattern match mode without an explicit pattern variable class in combination with an unbounded variable length relationship pattern only. +==== Recommended default pattern group modifiers -Implementations are advised to signal a warning for any use of the default pattern match mode that may return an infinite result. +If no pattern group modifiers are given, a pattern group is to be matched using `EACH OF UNRESTRICTED DIFFERENT EDGES`. -=== `disjoint` function +If a pattern group is to be matched using either `SHORTEST` or `CHEAPEST` but no pattern morphism was specified, the pattern group is to be matched using `LENIENT`. + +If a pattern group is to be matched using either `SHORTEST` or `CHEAPEST` but no pattern quantifier was specified, the pattern group is to be matched using `ANY`. + + +=== `DIFFERENT` operator + +This CIP finally proposes a new operator `DIFFERENT(var1, var2, var3, ...)` that returns `true` if all pairs of variables are mutually different, returns `NULL` if any variable is `NULL`, and returns `false` otherwise. + + +=== `DISJOINT` operator + +This CIP finally proposes a new operator `DISJOINT(var1, var2, var3, ...)` that returns `true` if all pairs of variables pass the following test: + +* If both variables are nodes, they must be different +* If both variables are relationships, they must be different +* If one variable is a list and the other variable is an entity, the entity must not be contained in the list +* If both variables are lists, all pairs of elements from both lists must pass the same test +* If one variable is `NULL`, the whole operator returns `NULL`. +* If any variable is a path, it is treated as a list of alternating nodes and relationships + + +=== Cardinality warning + +Implementations are advised to signal a warning for pattern that may return an infinite result. -This CIP finally proposes a function `disjoint()` defined as follows: -* `disjoint(list1, list2, ..., list_n)`: returns `true` if all argument lists are pairwise disjoint -* If any argument is a walk, it is treated as a list of alternating nodes and relationships == Examples @@ -274,8 +363,9 @@ _Query 4.1.1 - Current semantics: single patterns_ [source,cypher] ---- -MATCH (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), - (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) +MATCH + (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), + (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) WHERE grandparent1 <> grandparent2 RETURN grandparent1.name, grandparent2.name, grandchild.name ---- @@ -319,8 +409,9 @@ In contrast, Query 4.1.3 uses the new default semantics for simple relationship [source,cypher] ---- -MATCH ALL WALKS (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), - (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) +MATCH EACH LENIENT + (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), + (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) WHERE grandparent1 <> grandparent2 RETURN grandparent1.name, grandparent2.name, grandchild.name ---- @@ -341,12 +432,13 @@ RETURN grandparent1.name, grandparent2.name, grandchild.name _Query 4.1.4 - New semantics: achieving Cyphermorphism_ What happens in the scenarios where the current semantics -- i.e. Cyphermorphism -- are desirable? -All that is required is to alter the pattern variable class in the `MATCH` clause from `WALKS` to `TRAILS` (which is, in fact, the default). +All that is required is to alter the pattern morphism in the `MATCH` clause from `LENIENT` to `DIFFERENT RELATIONSHIPS` (which is, in fact, the default). [source,cypher] ---- -MATCH ALL TRAILS (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), - (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) +MATCH EACH OF DIFFERENT RELATIONSHIPS + (grandparent1:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild), + (grandparent2:Person)-[:HAS_CHILD]->()-[:HAS_CHILD]->(grandchild) WHERE grandparent1 <> grandparent2 RETURN grandparent1.name, grandparent2.name, grandchild.name ---- @@ -366,7 +458,7 @@ MATCH p = (a)-/:X*/->() RETURN * LIMIT 1 // MATCH p=allShortestPaths((a)-[:X*]->()) today becomes: -MATCH ALL SHORTEST p = (a)-[:X*]->() +MATCH EACH SHORTEST p = (a)-[:X*]->() RETURN * // MATCH p=allShortestPaths((a)-[:X*]->()) may be expressed using path patterns, too: @@ -376,7 +468,7 @@ RETURN * === Matching with existing semantics -The function `disjoint()` may now be used to precisely express Cypher's current pattern matching semantics: +The operator `DISJOINT()` may now be used to precisely express Cypher's current pattern matching semantics: .Query 4.2.1 [source,cypher] @@ -387,7 +479,7 @@ RETURN * // This CIP MATCH pat1 = ..., pat2 = ..., pat3 = ... -WHERE disjoint(rels(pat1), rels(pat2), rels(pat3)) +WHERE DISJOINT(rels(pat1), rels(pat2), rels(pat3)) RETURN * ---- @@ -402,7 +494,7 @@ A moderate increase in language complexity. A change from current pattern matching semantics. However, care has been taken to reduce the amount of broken queries and to retain access to current semantics. -`MATCH ALL [OPEN|CLOSED] WALKS` allows for non-terminating queries. +`MATCH EACH LENIENT` allows for non-terminating queries. == References @@ -419,16 +511,13 @@ This section presents a few such functions: * `isOpen(p)`: returns `true` if the source and target nodes of `p` are distinct. * `isClosed(p)`: returns `true` if the source and target nodes of `p` are equal. +* `isDirected(p)`: returns `true` if relationships in p are traversed in the same direction. * `toTrail(p)`: returns `p` if `p` contains no duplicate relationships, `null` otherwise. -* `toPath(p)`: returns `toTrail(p)` if `p` contains no duplicate nodes at all or if the only two duplicate nodes are the source and target nodes of `p`, `null` otherwise. +* `toSimplePath(p)`: returns `toTrail(p)` if `p` contains no duplicate nodes at all or if the only two duplicate nodes are the source and target nodes of `p`, `null` otherwise. [appendix] == Pre-parser options -It is suggested that a conforming implementation should provide pre-parser options for defining the default pattern variable class as well as the default pattern match mode: - -* `match=one of(all|all-shortest|shortest)` for configuring a different default pattern match mode -* `match=one of(walk[s]|trail[s]|path[s])` for configuring a different default pattern variable class -* `match=one of(all|all-shortest|shortest)`, `-`, `one of(walk[s]|trail[s]|path[s])` for configuring both a different default pattern match mode and a different default pattern variable class +It is suggested that a conforming implementation should provide pre-parser options for changing the default pattern group modifiers. -An example of the latter would be `match=all-shortest-trails`. +An example of the latter could be `match=any-shortest-lenient`. From 3b4255fa287d44d177ec83b8c1ec41d17544ca61 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Tue, 27 Mar 2018 00:42:44 +0200 Subject: [PATCH 36/37] Fix query result blocks --- ...CIP2017-01-18-configurable-pattern-matching-semantics.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index bd18b668f7..d0d228cd63 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -389,7 +389,7 @@ Cyphermorphism is applied to `p~2~` and `p~3~` separately, which resolves the li Running Query 4.1.2 returns the following results: -[queryresult] +[source,queryresult] ---- +------------------------------------------------------------+ | grandparent1.name | grandparent2.name | grandchild.name | @@ -416,7 +416,7 @@ WHERE grandparent1 <> grandparent2 RETURN grandparent1.name, grandparent2.name, grandchild.name ---- -[queryresult] +[source,queryresult] ---- +------------------------------------------------------------+ | grandparent1.name | grandparent2.name | grandchild.name | From b74e09e15eec4c96af4b798ae34a752e5c84c535 Mon Sep 17 00:00:00 2001 From: Stefan Plantikow Date: Tue, 27 Mar 2018 00:50:22 +0200 Subject: [PATCH 37/37] Clarified DIFFERENT(vars) modifier --- ...2017-01-18-configurable-pattern-matching-semantics.adoc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc index d0d228cd63..1de8af65fb 100644 --- a/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc +++ b/cip/1.accepted/CIP2017-01-18-configurable-pattern-matching-semantics.adoc @@ -148,8 +148,9 @@ PatternLengthRestriction = 'SHORTEST' | 'UNRESTRICTED' ; -PatternMorphism = 'DIFFERENT', ('NODES' | 'VERTICES'), [ VariableList ] - | 'DIFFERENT', ('RELATIONSHIPS' | 'EDGES'), [ VariableList ] +PatternMorphism = 'DIFFERENT', ('NODES' | 'VERTICES') + | 'DIFFERENT', ('RELATIONSHIPS' | 'EDGES') + | 'DIFFERENT', [ VariableList ] | 'LENIENT' ; @@ -308,6 +309,8 @@ This CIP proposes to introduce the `DIFFERENT NODES` pattern morphism that reque This CIP proposes to introduce the `DIFFERENT EDGES` pattern morphism that requests that the pattern group is to be matched using relationship isomorphism (i.e. all matched relationships must be different relationships). +This CIP proposes to introduce the `DIFFERENT(variables)` pattern morphism that requests that the pattern group is to be matched such that all given variables are pairwise different. + This CIP proposes to introduce the `LENIENT` pattern morphism that requests that the pattern group is to be matched using homomorphism (i.e. no restrictions are placed on matched entities).

q6lRLx>I0y;WWc$-f109*~v!<&L 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