Graph Database Fundamentals


Many people that are new to graph database can get overwhelmed when they read our github issues due to lack of knowledge. It will be great to have a section in our docs dedicated to the basics of graphs and also the specific type of graph that cayley is - RDF. Neo4j and Titan are different than Cayley so a comparison to those might be useful as well.


Neo4j also have a book that explain many of the ideas behind the database:


That book is EXCELLENT. Officially the book is an introduction to graph databases but since it is sponsored by Neo4J, it is very much neo4j centric. Still a great book - particular the section about amazing use cases for graph databases (pg 111 for social network, pg 123 for Access Control list (ACL) ). There is also a comparison of calculating a facebook style ‘friends of friends’ query using a relational database and graph database. In the relational version, as the depth of friends increases (i.e. friends of friends of friends…), it totally breaks down. For graph databases, they can still manage. (pg 21)


Worth noting some of the terms that @oren had mentioned on IRC explicitly: RDF, SPARQL, JSON-LD, MQL, Meta Store, Virtual predicates, Iterator, Cross Iterator, topic service, recon service, etc…

Short of a full manual, a nice glossary will help.

How to use Cayley in production

More terms that need definition:

  1. Cayley as a server (“Cayley Server”)
  2. Cayley as embedded database (“embedded Cayley”)
  3. Client Libraries (

(from this thread)


Another term: how to call the Database that Cayley is using. One option: Storage Engine.