About
HyperGraphDB is a general purpose, extensible, portable, distributed, embeddable, open-source data storage mechanism. It is a graph database designed specifically for artificial intelligence and semantic web projects, it can also be used as an embedded object-oriented database for projects of all sizes.
The system is reliable and in production use is several projects, including a search engine and our own Seco scripting IDE where most of the runtime environment is automatically saved as a hypergraph.
HyperGraphDB is primarily what its carefully chosen name implies: a database for storing hypergraphs. While it falls into the general family of graph databases, it is hard to categorize HyperGraphDB as yet another database because much of its design evolves around providing the means to manage structure-rich information with arbitrary layers of complexity. For instance, a relational as well as an object-oriented style of data management can be emulated. As a graph database, HyperGraphDB doesn't impose any constraints and offers much more generality than all other graph databases we've come across. The design is minimalistic at its core and the end-goal is to evolve a set of concepts and practices, combining structure and interpretation in such a way as to allow future software to meet the complexities of the real-world better that now.
Possible Usage Scenarios
In a server-side Java application, the standard setup relies on a RDBMs together with a set of business components and a presentation tier. If you've kept up with the latest industry advances, you have a good O/R mapping tool such as Hibernate to transparently and non-intrusively convert your object structure to/from database tables. Recently, there has been a noticeable trend to replace RDBMs, especially for smaller applications by embedded in-memory databases with less sophisticated, but typically much faster querying capabilities.
In a desktop Java application, programmers frequently rely on a large set of configuration files to store user preferences and other persistent application state. A large amount of time is devoted to the management of configuration data and frequently end-users are not allowed to configure simple application behavior simply because programmers don't have the time to make "everything" configurable and need to selectively predict the most important parameters of potential interest to users. With HyperGraphDB, all beans that have to do with configuration can simply be added as atoms and they will be managed from there on.
Bioinformatics projects form a category of fairly complex software that not only can benefit form a data management piece like HyperGraphDB, but also constitute a very natural fit for it. Frequently, such projects need to manage highly complex descriptive information based on structured taxonomies (or ontologies), together with large sets of experimental data. In addition, sophisticated algorithms operate on both experimental and ontological data in order to infer interaction networks at various level of biological organization. HyperGraphDB is designed to facilitate all those activities.
Semantic Web projects are an obvious domain of application of HyperGraphDB. The so called "conceptual graphs" or RDF graphs and even the more advanced modeling practices utilizing higher-order relationships have a straightforward and natural expression within the HyperGraphDB framework.
Networks research can benefit from the capacity of HyperGraphDB to store very large, distributed graphs and have pattern mining, computationally intensive algorithms operate on them.