What Is It?
HyperGraphDB is a general purpose, open-source data storage mechanism based on a powerful knowledge management formalism known as directed hypergraphs. While a persistent memory model designed mostly for knowledge management, AI and semantic web projects, it can also be used as an embedded object-oriented database for Java projects of all sizes. Or a graph database. Or a (non-SQL) relational database.
Read Alex Popescu's
HyperGraphDB interview with Borislav Iordanov for a high-level overview.
Watch Borislav Iordanov's
HyperGraphDB Presentation at StrangeLoop 2010.
Feature Summary
- Powerful data modeling and knowledge representation.
- Graph-oriented storage.
- N-ary, higher order relationships (edges) between graph nodes.
- Graph traversals and relational-style queries.
- Customizable indexing.
- Customizable storage management.
- Extensible, dynamic DB schema through custom typing.
- Out of the box Java OO database.
- Fully transactional and multi-threaded, MVCC/STM.
- P2P framework for data distribution.
Application Components
Besides covering persistence of Java objects, the core database engine targets exclusively the implementation of generalized, typed, directed hypergraphs. As a meta-model those are pretty powerful and subsume most data models. But practical applications are built within a specific domain and sometimes follow an existing industry standard.
HyperGraphDB application components implement various domain models, standards, algorithms and domain-specific tools, taking advantage of its generality. Every entity in those components is ultimately a HyperGraphDB atom, which makes it possible to integrate and compose them naturally.
| Component | Description |
| WordNet | Representation of the lexical WordNet database from Princeton. |
| TopicMaps | Implementation of the Topic Maps 1.0 standard. |
| RDF via Sail | Implementation of the RDF standard using the openRDF.org Sesame framework. |
| OWL 2.0 | Implementation of the OWL 2.0 standard. [incomplete] |
| TuProlog | Integration with the TuProlog interpreter for reasoning over hypergraphs through Prolog. |
| XmlSchema | Implementation of the XML Schema standard within the HyperGraphDB type system.[incomplete] |
| Feedforward Neural Nets | Implementation for a feed-forward 3-layer neural net as a hypergraph |
| Distributed Dataflow | Flow-based programming in Java based on a HyperGraphDB representation and using its P2P framework.[unreleased] |
All those components are implemented as
HyperGraphDB Applications