openCypher Resources

The following resources are available to download and use.

  • The Cypher Query Language Reference (Version 9), containing the complete reference for Version 9 of the Cypher query language.
  • The Cypher Style Guide is comprised of:
    • Syntax guidelines for composing Cypher queries in a conventional, readability-oriented manner.
    • Guidelines that may affect the semantics of queries.
  • The TCK (Technology Compatibility Kit) is a Cucumber-based set of tests that can be used for any Cypher implementation in any of the many languages supported by Cucumber.
    • Defines the correct behaviour of Cypher under various conditions.
    • Provides an unambiguous way of certifying implementations for correctness.
    • Documents the behaviour of queries in a clear manner.
    • Grouped into features, each of which consists of a set of scenarios, which comprise ordered steps defining the prerequisites, input and expected output.
    • Allows a proposed change to be expressed clearly, through the modification of existing scenarios or the addition of a new scenario.
  • Grammar specification
    • A syntax and language composition specification in XML format, along with derived artifacts comprising a parser, EBNF-style grammar(s), and railroad diagrams.
    • An XML grammar definition is used to generate an EBNF and an Antlr4 grammar for use by projects wanting to parse Cypher, and “Railroad Diagrams” which document the syntax.


Resource name Latest stable version
Cypher Query Language Reference (Version 9) [download]
Cypher Style Guide style-guide-M18
Technology Compatibility Kit (TCK) tck-M18
Grammar specification grammar-M18
Antlr grammar antlr-grammar-M18
Antlr grammar (legacy*) antlr-grammar-legacy-M18
EBNF grammar ebnf-grammar-M18
EBNF grammar (legacy*) ebnf-grammar-legacy-M18
Railroad diagrams railroad-M18
Railroad diagrams (legacy*) railroad-legacy-M18

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.