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

Check out the openCypher GitHub repository to track our progress, leave feature requests, and become a participant in our open source community.

openCypher on GitHub

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

Stay Connected