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]
- Source Code
- https://github.com/hypergraphdb[02]
- Developer
- Country of Origin
- US
- Start Year
- 2007 [09]
- Project Type
- Open Source
- Written in
- Java
- Embeds / Uses
- Berkeley DB
- Inspired By
- Berkeley DB
- License
- Apache v2
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 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.
Citations
9 sources- http://www.hypergraphdb.org hypergraphdb.org
- hypergraphdb (HyperGraphDB Project) · GitHub github.com
- http://www.hypergraphdb.org?page=LearnHyperGraphDB&project=hypergraphdb hypergraphdb.org
- What is HyperGraphDB? • myNoSQL mypopescu.com
- http://www.hypergraphdb.org/docs/HyperGraphDB-Presentation.pdf hypergraphdb.org
- hypergraphdb/core/src/java/org/hypergraphdb/query/cond2qry/OrToParellelQuery.java at master · hypergraphdb/hypergraphdb · GitHub github.com
- hypergraphdb/core/src/java/org/hypergraphdb/HGQuery.java at master · hypergraphdb/hypergraphdb · GitHub github.com
- Google Code Archive - Long-term storage for Google Code Project Hosting. google.com
- Initial directory structure. git-svn-id: https://hypergraphdb.googlecode.com/svn/trunk@1 43784a7f-e236-0410-9472-c78ae7dffccf github.com