Third openCypher Implementers Group Meeting: Status Update
1. The Third Meeting
of the openCypher
Implementers
Group (“oCIG 3”)
Thursday, 27 July 2017
2. The agenda for today
● Brief report of actions following the last oCIG (Petra Selmer, Neo4j)
● How openCypher relates to graph query language discussions in ISO
and LDBC (Alastair Green, Neo4j)
● ISO/INCITS initiatives on property graph querying in SQL (Jan Michels
(Oracle), Group Chair: Ad Hoc on SQL Extensions Property Graphs)
● Controllable morphism: walks, trails, and paths (Stefan Plantikow, Neo4j)
● SQL and Cypher (and PGQL) (Alastair Green, Neo4j)
● Graph addressing in support of multiple graphs (Peter Furniss, Neo4j)
4. Executive summary
The MANDATORY MATCH clause (accepted)
Aggregation and grouping semantics: issues and approaches to
address these
=> http://www.opencypher.org/blog
Blog posts on oCIG 1 (22 June)
5. CIPs & CIRs
No new CIPs or CIRs
No updates on Path Patterns work
Updates
● Configurable Pattern Semantics (coming up later on)
● CIP2016-06-14 - Define Comparability and Equality, as well as
Orderability and Equivalence: PR #244
○ The definition of comparability within a list has been expanded: “comparing any
pair of incomparable values - [1,2] > [1, ‘a’] - evaluates to null”
6. Formal semantic specification for Cypher
Collaboration with the University of Edinburgh; Prof. Leonid Libkin
and Dr. Nadime Francis
First draft has been completed
Feedback currently in progress
7. TCK side effects
oCIM 2: Gábor raised the problem of ill-defined side effects in the
TCK (with respect to properties in mutating operations)
PR #236 addresses this problem, and has been merged
8. Cypher.PL: initial version almost ready!
Jan and Paweł (Scott Tiger)
An executable specification of Cypher written in Prolog
oCIG 5 - 7 September 2017
9. PR #245
oCIM 2: a canonical data graph to be used in CIPs and CIRs
● Easier to write and understand examples and scenarios
Based on YAGO (Max Planck Institute for Informatics) [RDF]
Data from Wikipedia (amongst others)
Everyone welcome to extend it, as the need arises
Example data graph