3

3

What are the fundamental questions that makes you decide to use either RDF data store (triple store) or RDBMS like complex storage?

(lets keep the semantic inference aside)

flag
A very interesting question, although I think there are more options that should be considered. Actually, there are other types of data stores besides triple stores and RDBMS: column databases, key/value stores, document stores, object databases, xml databases. For a list of some of those, including a plethora of relevant links, see the NoSQL Databases site: nosql-database.org It would be interesting to come up with a list of relevant questions / fundamental requirements for choosing between all of those types of data stores. – Herrmann Jul 14 at 18:08

2 Answers

8

Great question.

Broadly a triple store, like an RDBMS is a general purpose data storage engine. I could store any kind of data in either a triple store or a relational database. The trade-offs relate to areas where one type of storage engine excels over another in terms of flexibility, performance, etc AND other non-functional aspects like robustness, cost, strength of the ecosystem, etc.

With this in mind, lets separate out the discussion into two areas.

  • Where would I use an RDBMS?
  • Where would I use a triple store?

Personally I would typically use an RDBMS for OLTP type applications -- i.e. where I need fast, transactional updates, such as in an ecommerce system. In these scenarios the data schema is typically small, is known in advance and the non-functional requirements emphasise performance, resilience, and the availability of a broad ecosystem of additional tools and services such as reporting engines.

In contrast I would use a triple store in any scenario where my schema is less closely defined and particularly where the there is an wide range of different types of entity to be stored, and an evolving set of relationships between them. In the flexible, schema-free environment that a triple store provides, dealing with this kind of data is much, much easier. So I would typically use a triple store in any scenario where I know my schema is going to evolve rapidly over time; or where I'm dealing with integrating data from a wide range of sources but don't want or need to force that data into a single normalized schema.

From my own development experience I've found triple stores to be a very agile backing store for rapid prototyping and experimentation.

link|flag
6

I find it much quicker to develop a data model using RDF. In the past, I've found normalising the data for an RDBMS a time consuming exercise and is easily broken when additional use cases are thrown at you. Taking a more semi-structured approach with RDF I find it quicker to prototype and more flexible to adapt as the project progresses.

link|flag

Your Answer

Get an OpenID
or

Not the answer you're looking for? Browse other questions tagged or ask your own question.