The Cypher Property Graph Query Language
This repository holds the specification of Cypher, a declarative property graph query language. Its purpose is to be central to the process of evolving the specification and standardisation of Cypher as a graph query language.
Overview of the process
Changes to openCypher are made through consensus in the openCypher Implementers Group (oCIG). The process for proposing changes, voting on proposals and measuring consensus is described in this set of slides.
Refer to the Cypher Improvement Process document for more details on CIPs, CIRs, their structure and lifecycle.
The structure of this repository
-
Cypher Improvement Proposals (CIP),
/cip
-
Contains a list of accepted CIP documents.
-
-
Cypher grammar,
/grammar
-
Contains the Cypher grammar specification, in XML source format.
-
A more readily consumable form of the grammar is generated as output from the build and can be found here:
-
Railroad diagrams
-
EBNF
-
ANTLR4 Grammar
-
-
-
Cypher Technology Compatibility Kit (TCK),
/tck
-
Contains a set of Cucumber features that define Cypher behaviour, and documentation on how to use it.
-
-
openCypher developer tools,
/tools
-
Contains code that tests the integrity of the repository, generates release artifacts, and aids implementers of openCypher.
-
Building
This repository uses a Maven build and supports cross building for Scala 2.12 and Scala 2.13:
-
For Scala 2.12, use
mvn -U clean install -P scala-212
-
For Scala 2.13 use
mvn -U clean install -P scala-213
Contact us
There are several ways to get in touch with the openCypher project and its participants:
-
Are you interested in implementing openCypher for your platform, but you have general questions and want to reach out to other community members with similar interests? Post to our Google Groups mailing list: https://groups.google.com/forum/#!forum/opencypher
-
For specific feature requests or bug reports, please open an issue on this repository.
-
Do you have a particular contribution in mind, and concrete ideas on how to implement them? Open a pull request.
Copyright
Β© Copyright 2015-2017 Neo Technology, Inc.
Feedback
Any feedback you provide to Neo Technology, Inc. through this repository shall be deemed to be non-confidential. You grant Neo Technology, Inc. a perpetual, irrevocable, worldwide, royalty-free license to use, reproduce, modify, publicly perform, publicly display and distribute such feedback on an unrestricted basis.
License
The openCypher
project is licensed under the Apache license 2.0.