Git Product home page Git Product logo

opencypher's Introduction

The Cypher Query Language

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

  • Reference Implementation

  • Compatibility Test Suite

All material in this repository is the exclusive property of Neo Technology.

opencypher's People

Contributors

thobe avatar systay avatar boggle avatar mats-sx avatar

Watchers

James Cloos avatar Yu Hu avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.