« Hot Scalability Links for January 28 2010 | Main | Let's Welcome our Neo-Feudal Overlords »
Tuesday
Jan262010

Product: HyperGraphDB - A Graph Database

With the success of Neo4j as a graph database in the NoSQL revolution, it's interesting to see another graph database, HyperGraphDB, in the mix. Their quick blurb on HyperGraphDB says it 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.

From the NoSQL Archive the summary on HyperGraphDB is: API: Java (and Java Langs), Written in:Java,  Query Method: Java or P2P, Replication: P2P, Concurrency: STM, Misc: Open-Source, Especially for AI and Semantic Web.

So it has some interesting features, like software transactional memory and P2P  for data distribution, but I found that my first and most obvious question was not answered: what the heck is a hypergraph and why do I care? Buried in the tutorial was:

A HyperGraphDB database is a generalized graph of entities. The generalization is two-fold:

  1. Links/edges "point to" an arbitrary number of elements instead of just two as in regular graphs 
  2. Links can be pointed to by other links as well.

OK, but I wish there was some explanation of why this is valuable. What can I do with it that I can't do with normal graphs? Given that there have been concerns over the complexity of the API this would seem a natural topic to cover. I assume it's cool, it sounds cool, but I would like to know why :-)

In any case it looks like an interesting product to take a look at. Database options are still expanding fast.

Related Articles

Reader Comments (10)

There's also InfoGrid ... see http://infogrid.org/

January 26, 2010 | Unregistered CommenterJohannes Ernst

what I really like about hypergraph is the license LGPL. it isn't GPL3/Affero like neo4j is.

in initial (basic) testing, it appears slower than neo4j for my needs, it means I don't have to worry about what happens when I get too large.

it doesn't seem to support 1-way relations, but that could be my lack of knowledge of the product.

January 26, 2010 | Unregistered Commenternice license

Hi Todd,

The hypergraph model has many applications and it makes sense to support it in a native way just from that perspective. The edges pointing to edges generalization automatically reifies every relationship in your data model so you can directly talk about it via higher-order relationships.

Also, hypergraphs make it possible to represent graph structures more compactly. You can represent a hypergraph as a bipartite graph, but you end up with a node/link bloat just because the plain graph model is too restrictive. For example, RDF is a typical "graph database" application where normally you don't need hypergraphs. Yet, people are proposing a hypergraph-based model to address both a low-level issue (storage efficiency, query speed), and a conceptual issue (reification of properties): http://www.ldc.usb.ve/~mvidal/workshop/amadis.pdf. The same applies to many other domains...a recent exposition in the bioinformatics domain: http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.1000385. Whether the model works better than plain graphs will depend on the application at hand.

Cheers,
Boris

January 27, 2010 | Unregistered CommenterBorislav Iordanov

Hi "nice license" :)

Would you be kind enough to post/explain your test case either here (if not too big) or on the HGDB discussion group (http://groups.google.com/group/hypergraphdb). Since we've just released the system, this sort of feedback is extremely valuable to us!

HyperGraphDB supports n-way relations for n >= 0, that's its main thing :)

Best,
Boris

January 27, 2010 | Unregistered CommenterBorislav Iordanov

Thanks for citing the nosql archive :-)

The information about hypergraphDB is from hypergraph itself.
So with 6 graph databases there should be a good choice so far.

regards

January 27, 2010 | Unregistered CommenterStefan Edlich

The ability to attach additional attributes to edges could be a critical property for reification, which is the ability to talk about assertions stored in a knowledge base, to keep track of where they come from, and how true we believe they are: see

http://www.mail-archive.com/public-lod@w3.org/msg04224.html

for at least one thing that could be done with a HyperGraph.

January 27, 2010 | Unregistered CommenterPaul A. Houle

The information about hypergraphDB is from hypergraph itself.

February 10, 2010 | Unregistered CommenterVoyance par téléphone

Thanks for citing the nosql archive

February 10, 2010 | Unregistered Commentertelecommunication

There's also InfoGrid

February 10, 2010 | Unregistered CommenterVoyance

@Borislav Iordanov - "nice license"

Not that much, what about BerkleyDB's license model. It's not LGPL so if you use HypergraphDB LGPL is not applied to BerkeleyDB's license.

Extracted from Wikipedia's site: http://en.wikipedia.org/wiki/Berkeley_DB

"Oracle Corporation makes versions 2.0 and higher of Berkeley DB available under a dual license.[8] This license is a 2-clause BSD license with an additional copyleft clause similar to the GNU GPL version 2's Section 3, requiring source code of an application using Berkeley DB to be made available for a nominal fee.

Thus, the license depends on how a particular application that uses Berkeley DB is distributed to the public. Software that is not distributed can use the Sleepycat License, as can free and open source software. Proprietary software can use Berkeley DB only under a commercial license agreement between Oracle and the application's publisher."


Hander

July 2, 2010 | Unregistered CommenterHander

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>