I have been trying to understand how Cypher corresponds to graph database theory. In particular I had in mind "Query Languages for Graph Databases by Peter T.Wood" (http://users.dcc.uchile.cl/~pbarcelo/wood.pdf). I imagine that it corresponds to conjunctive regular path queries with additional operations such as aggregation but I cannot find information about this anywhere.
Two question:
- Is there anywhere I can find information about the theory behind Cypher? In particular with a conjunctive query spin.
- How does Cypher handle negation? e.g. is it 'safe negation'?
Background: I started using Neo4j with Cypher for a paper that I'm working on. I did this because these both seemed well established and well supported. However, I want to abstract away from my implementation of query answering to a more general graph query formalism but I do not know how Cypher corresponds to this.
I got an answer to this question on LinkedIn which can be found here: https://www.linkedin.com/groups/Does-anybody-know-similarities-differences-2623939.S.5939804856381382658
The answer below refers to this query:
The answer is as follows: