graph database, an index is just a special type of traversal—usually something
commonly done, such as finding specific nodes or relationships according to a
property they share.
Graph stores are not terribly common, but they are beloved by those who
promote them. There is less differentiation between the options available in
this category, at least compared to the differentiation between the other
categories of NoSQL databases in this chapter.
Neo4j
Neo4j is the graph store that most people have heard of in the NoSQL world.
It has both a free version and a commercial version. Language bindings exist
for Java, Python, and Ruby. It is scalable up to graphs of several billion
nodes/relationships/properties on a single machine and can be scaled across
multiple machines. It can be deployed on a standalone server or as a small-
footprint database coexisting on the same machine with other software.
OrientDB
OrientDB is a free database released under the Apache 2.0 license. It uses an
indexing algorithm called MVRB-Tree, which it claims is significantly faster
than other indexing algorithms. You might remember an older relational
database called Orient ODBMS. OrientDB is related to that and can be used
with a subset of SQL, but it is a complete rewrite using a document/graph
database foundation.
HyperGraphDB
HyperGraphDB (Kobrix Software) is another free option that uses the LGPL.
It is designed primarily for use with the semantic web, knowledge
management, and artificial intelligence projects. In mathematics, a
hypergraph is an extension to a standard graph that allows an edge to point to
more than two nodes. According to the HyperGraphDB website,
“HyperGraphDB extends this even further by allowing edges to point to other
edges as well and making every node or edge carry an arbitrary value as
payload.” HyperGraphDB seems to be focused on the academic side of
things. Students might be especially interested in it because HyperGraphDB
appears to be trying out some new research ideas.