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.

Query Interface

Custom API

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 Model


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

Query Execution

Tuple-at-a-Time Model

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

Storage Architecture


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.

Data Model


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.

System Architecture

Shared-Everything Embedded

Query Compilation

Code Generation

Parallel Execution

Intra-Operator (Horizontal)

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

HyperGraphDB Logo


Source Code


Tech Docs



Kobrix Software

Country of Origin


Start Year


Project Type

Open Source

Written in


Embeds / Uses

Berkeley DB

Inspired By

Berkeley DB

Operating Systems

Linux, OS X, Windows


Apache v2