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, without the steep learning curve of learning a new language.

Human Readable

Cypher is a human-readable query language that makes complex things possible. 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. Everyone from Oracle and Apache Spark to Tableau and Structr can (and do) use Cypher’s capabilities – now you can too.

    MATCH (cypher:QueryLanguage)-[:QUERIES]->(graphs)
    MATCH (cypher)<-[:USES]-(u:User) WHERE u.name IN [‘Oracle’, ‘Apache Spark’, ‘Tableau’, ‘Structr’]
    MATCH (openCypher)-[:MAKES_AVAILABLE]->(cypher)
    RETURN cypher.attributes

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
Technology Compatibility Kit (TCK) tck-M05 tck-snapshot
Grammar specification grammar-M05 grammar-snapshot
Antlr grammar antlr-grammar-M05 antlr-grammar-snapshot
Antlr grammar (legacy*) antlr-grammar-legacy-M05 antlr-grammar-legacy-snapshot
EBNF grammar ebnf-grammar-M05 ebnf-grammar-snapshot
EBNF grammar (legacy*) ebnf-grammar-legacy-M05 ebnf-grammar-legacy-snapshot
Railroad diagrams railroad-M05 railroad-snapshot
Railroad diagrams (legacy*) railroad-legacy-M05 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.