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
- License: AGPL + commercial
- Most popular graph DB
- 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)
- Rodriguez & Neubauer, 2010: Constructions from dots and lines (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