Graph databases

Graph databases are databases with a data model based on graphs.

Triple store databases (RDF & SPARQL) can also be regarded as graph DBs. The TinkerPop teams compares the SPARQL and Gremlin query languages.

Standards

The main standard in this area is Apache TinkerPop v3 , with an ecosystem centered around the JVM.

Databases

  • Neo4j
  • Amazon Neptune
    • A property graph: supports Apache TinkerPop Gremlin
    • Also a triple store: supports RDF 1.1 and SPARQL 1.1
    • Rumored to be based on Blazegraph , which powers Wikidata’s SPARQL endpoint
  • JanusGraph (GitHub )
  • OrientDB
    • License: Apache 2
    • Multi-model including graph DB
  • Cayley (GitHub , HN )
    • “Inspired by graph database behind Freebase and Google’s Knowledge Graph”
    • Uses existing DBs as backends
  • Dgraph (GitHub )
    • License: Apache 2
    • Written in Go with official clients for Go, Java, JavaScript/TypeScript, and Python (plus universal gRPC and HTTP protocols)
    • Data entry via RDF triples (primary) and JSON (converted to RDF)
    • Custom query language GraphQL+- inspired by Facebook’s GraphQL
    • Differences between Dgraph and Cayley

Literature

  • Angles & Gutierrez, 2008: Survey of graph database models (doi)
    • Angles & Gutierrez, 2005: Querying RDF data from a graph database perspective (doi)
    • Angles, 2012: A comparison of current graph database models (doi)
  • Rodriguez & Neubauer, 2010: Constructions from dots and lines (doi, arxiv)
    • Rodriguez & Neubauer, 2010: The graph traversal pattern (doi, arxiv)
    • Rodriguez, 2015: The Gremlin graph traversal machine and language (doi, arxiv)
  • Wood, 2012: Query languages for graph databases (doi)
  • Barcelo et al, 2013: Schema mappings and data exchange for graph databases (doi)
  • Besta et al, 2020: Demystifying graph databases: Analysis and taxonomy of data organization, system designs, and graph queries (arxiv)
    • Figures 4 and 5 show translation from labeled property graph to RDF triples
    • Figure 7 is a nice overview of different kinds of graph database systems