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.
Watch a presentation by Victor Puente (in Portuguese) given at Sao Paulo TDC conference: http://www.infoq.com/presentations/HyperGraphDB
- 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. Non-blocking concurrent writes and reads!
- P2P framework for data distribution.
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.
|JSON||Implementation of JSON storage as a hypergraph - JSON structures as graphs rather than blobs as commonly implemented in so called "document-oriented" database.|
|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||Full implementation of the OWL 2.0 standard with distributed versioning and a Protege plugin.|
|Protege Plugin||Integration of HyperGraphDB backed ontology storage into the popular Protege ontology editor. Full GUI support for the distributed version control management with pull, push, commit, revision graph, history and everything you would expect from a modern version control system.|
|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