What is openCypher?

The openCypher project aims to deliver a full and open specification of the industry’s most widely adopted graph database query language: Cypher.

Focus on Your Domain

Graphs naturally describe your domain, and Cypher lets you focus on that domain instead of getting lost in the mechanics of data access. Both expressive and efficient, Cypher is intuitive and immediately familiar.

Human Readable

Cypher is a human-readable query language that makes common operations easy. A combination of English prose and intuitive iconography, Cypher is accessible to developers and operations professionals alike.

Complete Open Source Access

The openCypher project means you can use Cypher as your query language for graph processing capabilities within any product or application. Databases like SAP HANA Graph, Redis, AgensGraph and Neo4j all use the Cypher query language – now you can too.


     MATCH (d:Database)-[:USES]->(Cypher)-[:QUERIES]->(:Model:Graph)
     WHERE d.name IN ['SAP HANA Graph','Redis','AgensGraph', 'Neo4j',...]
     RETURN Cypher.features
                        

The openCypher project aims to improve growth and adoption of graph processing and analysis by providing an open graph query language to any data store, tooling or application provider as a mechanism to query graph data.

  • Provides a query language with full support
  • Makes graph processing and analysis easier to adopt
  • Grants vendor independence to all users
  • Eases graph integration with other data platforms

Get in touch or follow our activity through the following communication channels:

Most of our activity happens on the GitHub repository, where you may for example submit or comment on CIRs (Cypher Improvement Requests). The Slack link points to a sign-up page, which will give you an invitation to the neo4j-users Slack team, where we live in the #opencypher channel.

openCypher Resources

The table below provides links to consumable artifacts produced as part of the openCypher project.

Resource name Latest stable version Snapshot version
Cypher Style Guide style-guide-M07 style-guide-snapshot
Technology Compatibility Kit (TCK) tck-M07 tck-snapshot
Grammar specification grammar-M07 grammar-snapshot
Antlr grammar antlr-grammar-M07 antlr-grammar-snapshot
Antlr grammar (legacy*) antlr-grammar-legacy-M07 antlr-grammar-legacy-snapshot
EBNF grammar ebnf-grammar-M07 ebnf-grammar-snapshot
EBNF grammar (legacy*) ebnf-grammar-legacy-M07 ebnf-grammar-legacy-snapshot
Railroad diagrams railroad-M07 railroad-snapshot
Railroad diagrams (legacy*) railroad-legacy-M07 railroad-legacy-snapshot

The process of standardising the Cypher language has led to two versions of the grammar being maintained: standardised and legacy.

The standardised version only includes the Cypher language constructs that have been adopted for standardisation, as detailed in the Standardisation Scope document.

* The legacy version of the grammar (and artifacts generated from it) additionally includes Cypher language constructs that are supported by vendors, but have not been selected for standardisation. Read more about this here.