views:

796

answers:

2

What are the strengths and weaknesses of a triplestore database, such as Mulgara? In which situations would its performance be significantly different from that of a traditional relational database?

I'm thinking in particular about situations where you have data in the form namespace:predicate=value. Triplestores would seem to keep the data in its "natural" form, but I would like to know if there are specific advantages beyond that.

+2  A: 

I assume you're asking about persistence of triples (and possibly graphs via quads) where the storage is either a "native" triple store (for example, TDB) or a relational database with a triple store overlay (like SDB).

If you an elaborate on your requirements, I'm sure Stack Overflow members can offer a more directed answer, but just off the top of my head:

  • Native triple stores typically have better performance when the size of the dataset gets very large. See some numbers from the W3C.
  • Native triple stores can offer in-store reasoning/inferencing (like Oracle's semantic toolkit, although it doesn't fully support SPARQL).
  • Triples in an RDBMS can be "easily" integrated into traditional reporting tools (like Jasper Reports) since you can query them with SQL.
Phil M
+3  A: 

I'm the creator of Redland which includes native triple stores in C plus I've used some of the Java systems like Jena and Sesame.

It's hard to say more without knowing what your problem is but in general native triple stores work better if your problem space/query pattern is more 'graphy', rather than 'objecty'. Objecty means you tend to always manipulate - set/get the same pattern of data each time - in that case you might as well use ORM or other object-relational mappping and a fixed schema. If your problem and schema is more dynamic - 'Graphy' - you may benefit from the triple store approach where it's easier to hop across the data than it is typically in a RDBMS world (aka joins).

Of course there is also the document-approach too such as CouchDB but that's hard to know from the info you've given.

dajobe