SkillAgentSearch skills...

OpenCypher

Specification of the Cypher property graph query language

Install / Use

/learn @opencypher/OpenCypher
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

ifdef::env-github,env-browser[:outfilesuffix: .adoc]

= The openCypher Property Graph Query Language

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 https://www.iso.org/standard/76120.html[ISO/IEC 39075 GQL].

The specification of openCypher includes:

  • link:/cip[openCypher Improvement Proposals] (CIPs)
  • link:/grammar[Grammar] (in ISO WG3 BNF notation)
  • link:/tck[Technology Compatibility Kit] (TCK)

== Overview of the process

With https://www.iso.org/standard/76120.html[ISO/IEC 39075 GQL], the purpose of openCypher is to https://neo4j.com/blog/opencypher-gql-cypher-implementation/[pave the road] to GQL for openCypher implementers. Changes to openCypher are made by adding GQL features to openCypher.

Refer to the link:CIP-PROCESS.adoc[Cypher Improvement Process] document for more details on CIPs, CIRs, their structure and lifecycle.

== The structure of this repository

  • 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.

== 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 https://groups.google.com/forum/#!forum/opencypher[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.

== History

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 https://opencypher.org/oC9history[the website] and in https://github.com/opencypher/openCypher/tree/master[this branch of the repository].

== Copyright

© Copyright https://neo4j.com[Neo4j, Inc.]

== Feedback

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.

== Disclaimer

This repository is not an official Neo4j product or project. It is maintained by Neo4j employees or contributors in a personal or experimental capacity. The content here is provided “as is,” comes with no guarantees, and is unsupported.

== License

The openCypher project is licensed under the http://www.apache.org/licenses/LICENSE-2.0[Apache license 2.0].

== Trademark

Neo4j's trademark policy is available at https://neo4j.com/trademark-policy/[our trademark policy page].

View on GitHub
GitHub Stars983
CategoryData
Updated1h ago
Forks157

Languages

Gherkin

Security Score

100/100

Audited on Mar 29, 2026

No findings