Skip to content

akollegger/openCypher

 
 

Repository files navigation

The Cypher Query Language

Build Status

This repository holds the specification of the Cypher graph database query language. Its purpose is to be central to the process of evolving the specification of the language that is Cypher.

Overview of the process

It is our aim to make the process of specifying and evolving the Cypher query language as open as possible. "We" are the Cypher Language Group, put together by Neo Technology to govern the Cypher query language.

While we aim for the process to be open, this does not mean a public democracy, as all decisions are made by the Cypher Language Group. That said, we are of course extremely grateful for comments and suggestions on how to improve the Cypher query language.

The Cypher Language Group

The Cypher Language Group consists of:

Andrés, in capacity of being the "father of Cypher", has ultimate say, should that ever be necessary. Petra acts as PM for the group, calling meetings and ensuring that notes get taken at said meetings.

Improvement Proposals

Ultimately, proposals for improving the Cypher query language should take the form of a Cypher Improvement Proposal (CIP). These should typically be proposed as pull requests against this repository, proposing the addition of a document following a naming scheme of CIP{year}-{month}-{day}-{name}.asciidoc. The “{name}” part of the filename is a very short name of the proposed changed; for instance the keyword the proposal intends to add or modify. If the “{name}” part contains multiple words, each word should be written using lower case characters, separated by a dash. The date portion of the name is the the initial date of proposing the CIP (typically the same date as the submission of the pull request).

CIPs that additionally come with a reference implementation are very much appreciated, as is helps clarify the workings of the proposed improvement. This would help make the handling of the proposal quicker, or perhaps even make it more likely to be accepted.

Suggestions and ideas are also welcome and much appreciated; these would best be submitted as "issues" in this repository on GitHub. The expectation is that these would eventually result in a CIP being created.

What is a CIP?

A Cypher Improvement Proposal, or CIP for short, is a document that details a change to Cypher.

The life cycle of a CIP

Proposing a change to Cypher starts by either submitting a CIP as a pull request to this repository, or by submitting a feature request. A direct submission of a CIP is appropriate if the proposed changed is in the form of a concrete proposal. A feature request is typically the preferred method of starting a proposal. By starting from a feature request, you will be able to judge how large the general interest for the feature is before you embark on writing the CIP. Starting from a feature request also facilitates building an "experts group" that can work with you on the details of the proposal.

The comment thread on the GitHub issue for the feature proposal is an excellent place for discussing ideas

Meeting notes

The Cypher Language Group published meeting notes from all the group meetings at https://opencypher.github.io/meeting-minutes/

The structure of this repository

  • Cypher Improvement Proposals (CIP), /cip

    • Contains a list of accepted CIP documents.

  • Cypher grammar, /grammar

    • Contains the Cypher grammar specification, in XML source format.

    • A more readily consumable form of the grammar is generated as output from the build:

  • Cypher Technology Compliance Kit (TCK), /tck

    • Contains a set of Cucumber features that define Cypher behaviour, and documentation on how to use it.

  • openCypher developer tools, /tools

    • Contains code that tests the integrity of the repository, generates release artifacts, and aids implementors of openCypher.

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 Google Groups mailing list: https://groups.google.com/forum/#!forum/opencypher

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

© Copyright 2015-2016 Neo Technology, Inc.

Feedback

Any feedback you provide to Neo Technology, Inc. through this repository shall be deemed to be non-confidential. You grant Neo Technology, Inc. a perpetual, irrevocable, worldwide, royalty-free license to use, reproduce, modify, publicly perform, publicly display and distribute such feedback on an unrestricted basis.

License

The openCypher project is licensed under the Apache license 2.0.

About

Specification of the Cypher query language

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Gherkin 100.0%