The key attributes of Cypher
In making Cypher, Neo Technology and Andres Taylor (@andres_taylor
) set out to create a new query language, specifically for dealing with graph data structures like the ones we store in Neo4j. There were a couple of reasons for doing this, more specifically four attributes that are not available together in any other query language out there.
Let's quickly examine these attributes, as they are quite important to understanding the way Cypher works in Neo4j:
- Declarative: Cypher is a declarative query language, which is very different from the imperative alternatives out there. You declare the pattern that you are looking for. You effectively tell Cypher what you want, not how to get it. This is crucial, as imperative approaches always suppose that you—as you interact with the database—have the following qualities:
- A programmer who knows how to tell the database what to do—probably with some procedural logic that would need to be formalized...