This repository holds the specification of openCypher, a declarative property graph query language. Its purpose is to be central to the process of evolving the specification of openCypher towards ISO/IEC 39075 GQL.
The specification of openCypher includes:
-
Grammar (in ISO WG3 BNF notation)
With ISO/IEC 39075 GQL, the purpose of openCypher is to pave the road to GQL for openCypher implementers. Changes to openCypher are made by adding GQL features to openCypher.
Refer to the Cypher Improvement Process document for more details on CIPs, CIRs, their structure and lifecycle.
-
Cypher Improvement Proposals (CIP),
/cip
-
openCypher grammar,
/grammar
-
Contains the openCypher grammar specification, in ISO WG3 BNF notation.
-
-
Cypher Technology Compatibility Kit (TCK),
/tck
-
Contains a set of Cucumber features that define openCypher behaviour, and documentation on how to use it.
-
-
openCypher developer tools,
/tools
-
Contains code that tests the integrity of the repository and aids implementers of openCypher.
-
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
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
-
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.
Prior to ISO/IEC 39075 GQL, the purpose of openCypher was to define a common language for property graphs, and the evolution of the Cypher® language was driven by the openCypher Implementers Group. Documentation of that time can be found the website and in this branch of the repository.
© Copyright Neo4j, Inc.
Any feedback you provide to Neo4j, Inc. through this repository shall be deemed to be non-confidential. You grant Neo4j, Inc. a perpetual, irrevocable, worldwide, royalty-free license to use, reproduce, modify, publicly perform, publicly display and distribute such feedback on an unrestricted basis.
The openCypher
project is licensed under the Apache license 2.0.
Neo4j’s trademark policy is available at our trademark policy page.