DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

HyperGraphDB


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.[04]

Database Entry

HyperGraphDB


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.[04]

History[04][05]


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.

Data Model[05]


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.

Parallel Execution[06]


Allows for unions to be parallelized by running the two child nodes in parallel.

Query Compilation


Query Execution[07]


Accumulates the Atoms that satisfy the condition one by one by implementing a next function.

Query Interface[08]


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.

Storage Architecture[05]


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.

Storage Model[05]


This DBMS supports both n-ary relationships and higher-order relations.

System Architecture


Revision #8 Last Updated: