An overview of the recent history of Graph Query Languages
Narrated by Tobias Lindaaker
Once upon a time…
~2000
The Precursors to Cypher
2001
The Precursors to Cypher
2001 2007
The Precursors to Cypher
Embedded Java API
2001 2007
The Precursors to Cypher
Embedded Java API
2001 2007 2009
The Precursors to Cypher
Embedded Java API HTTP API
server model
2001 2007 2009 2010
The Precursors to Cypher
Embedded Java API HTTP API
server model
2001 2007 2009
Custom code deployment
2010
The Precursors to Cypher
Embedded Java API HTTP API
server model
2001 2007 2009
Custom code deployment
2011 (July)
First release of Cypher
2010
The Origin of Cypher
(query)--[MODELED_AS]--->(drawing) ^ | | | [IMPLEMENTS] [TRANSLATED_TO] | | | v (code)<-[IN_COMMENT_OF]-(ascii art)
The Origin of Cypher
(query)--[MODELED_AS]--->(drawing) ^ | | | [IMPLEMENTS] [TRANSLATED_TO] | | | v (code)<-[IN_COMMENT_OF]-(ascii art)
MATCH (query)-[:MODELED_AS]->(drawing), (code)-[:IMPLEMENTS]->(query), (drawing)-[:TRANSLATED_TO]->(ascii_art) (ascii_art)-[:IN_COMMENT_OF]->(code) WHERE query.id = {query_id} RETURN code.source
The Origin of Cypher
v1: Read Only
START john=node:Person(name="John") MATCH (john)-[:KNOWS]-(friend)-[:KNOWS]-(foaf) WHERE NOT (john)-[:KNOWS]-(foaf) RETURN foaf
July 2011 (neo4j 1.4)
v2: Graph write no update of search structures
START john=node:Person(name="John") MATCH (john)-[:KNOWS]-(friend)-[:KNOWS]-(foaf) WHERE NOT (john)-[:KNOWS]-(foaf) AND NOT (john)-[:RECOMMENDATION]->(foaf)
CREATE (john)-[:RECOMMENDATION]->(foaf)
RETURN foaf
Oct 2012 (neo4j 1.8)
Neo4j 2.0: labels and proper indexes Cypher “feature complete”
MATCH (john:Person{name:"John"}), (john)-[:KNOWS]-(friend)-[:KNOWS]-(foaf) WHERE NOT (john)-[:KNOWS]-(foaf) MERGE (john)-[:RECOMMENDATION]->(foaf)
(neo4j 2.0) Dec 2013
Oracle PGQL 2015
LDBC Query Language Task Force started June 2015
openCypher announced October 2015
LDBC QL TF starts designing G-CORE 2016
SQL Property Graph Ad-Hoc starts 2017
LDBC QL TF finishes G-CORE paper November 2017
Formal semantics of Cypher published SIGMOD 2018