Implement Cypher Query Language


#1

Neo4j is about to open source their cypher query language: http://www.opencypher.org

Is there some documentation where I can learn how to implement cypher for Cayley?


From: https://github.com/cayleygraph/cayley/issues/340


#2

AFAIK there is no documentation available yet. I did a bit of research on openCypher myself (in the context of implementing it with TinkerPop) and I think a Cypher/Cayley implementation would require these steps:

  1. Based on the README of the openCypher grammar, it is possible to generate an ANTLR 4 grammar.
  2. According to this ANTLR 4 issue, there is ongoing work that allows to generate Go code from an ANTLR grammar (see this fork).
  3. The Cypher expression should be mapped to a relational algebra-like representation. This 2016 paper shows some extensions to relational algebra, which allow more efficient evaluation of Cypher queries: An Algebra and Equivalences to Transform Graph Patterns in Neo4j.
  4. I think the full language specification of openCypher is not yet completed, so the Neo4j Cypher specification is the best approximation.

#3

We (the openCypher language group at Neo Technology) are hosting the first Cypher implementers meeting in February 2017. Please see

https://groups.google.com/forum/#!topic/opencypher/vCNM4UOXcTY

for details. We would be delighted if someone from cayley graph could attend.