HyperGraphDB is an extensible open-source graph-based data storage engine. It implements the ability to store hypergraph relationships, which make it suitable for complex data and knowledge representation problems. It relies on a tuple as its unit storage, where both n-ary relationships and graph orientated relationships are allowed as relationships between tuples. It uses BerkeleyDB as its key value store, and operates as an object-orientated database for Java.
Originated from an AI project (http://www.opencog.org) in 2007. It's inspired by the paper "Directed Recursive Labelnode Hypergraphs: A new Representation-Language", by Harold Boley.
Each tuple is called an atom, which is a subset of a graph (set of nodes and edges). Each of these atoms are strongly typed, such that there is a specific API that you can call to access that atom's contents. This DBMS uses BerkeleyDB as its key-value storage.
Allows for unions to be parallelized by running the two child nodes in parallel.
Accumulates the Atoms that satisfy the condition one by one by implementing a next function.
HypergraphDB supports a special API specific to its atoms, but doesn't support any particular querying language. Query objects called HGQuery filter all atoms by submitting the condition to a query processor, and it returns a list of atoms. Details on the API can be found in its javadoc.
There are two layers of how they store objects: primitive and model layer. The primitive layer stores the raw data in the form of a graph. The model layer associates a type to the raw data, formalizing the layout.
This DBMS supports both n-ary relationships and higher-order relations.
Linux, OS X, Windows