Blog
Books
Talks
Follow
Me
Search

Larsblog

RDF triple stores — an overview

<< 2012-09-17 19:56 >>

There's a huge range of triple stores out there, and it's not trivial to find the one most suited for your exact needs. I reviewed all those I could find earlier this year for a project, and here is the result. I've evaluated the stores against the requirements that mattered for that particular project. I haven't summarized the scores, as everyone's weights for these requirements will be different.

By a triple store I mean a tool that has some form of persistent storage of RDF data and lets you run SPARQL queries against that data. The SPARQL support can either be built-in as part of the main tool, or an add-on installed separately. This is why Sesame is in the table (it has SPARQL and a native backend), but Jena is not. The column for Fuseki with the tdb backend (which is basically Fuseki on top of Jena) is the closest you get to a Jena column.

I've deliberately left out rows for whether these tools support things like R2RML, query federation, data binding, SDshare, and so on, even though many of them do. The rationale is that if you pick a triple store that doesn't support these things you can get support anyway through separate components.

I've also deliberately left out cloud-only offerings, as I feel these are a different type of product from the databases you can install and maintain locally.

If something in the table is not clear, try mousing over it to get an explanation. If you have more information, or think any part of this is wrong, please leave a comment (or send me email), and we can clear it up.
Requirement Virtuoso Oracle OWLIM Allegro Bigdata Mulgara 4Store Sesame Stardog B* DB2 Fuseki
Open source Yes/no No No No Yes Yes Yes Yes No No No Yes
Free edition Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
10 billion statements Yes Yes Yes Yes Maybe No Maybe No Yes Coming ? No
Clustering Yes Yes Yes Yes Yes No Yes No Yes Cloud Yes No
SPARQL 1.0 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
SPARQL 1.1 Partial Yes Yes Yes Yes Partial Partial Partial Yes Yes Partial Yes
SPARQL Update Non-std Yes Yes Yes Yes TQL Upd Yes Yes Yes Yes No Yes
Support Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes
Events Yes Yes Yes No No No No Yes No No Yes Yes/no
Reasoning Rules Materialized Rules Rules Datalog Rules Add-on Little OWL + rules No ? Rules
Constraints No Yes No No No No No No Yes No No No
Triple-level security Coming Yes No Some No No No No No No No No
Endpoint built in Yes No Yes Yes Yes Yes Yes Yes Yes Yes No Yes
Live backup Yes Yes Yes Yes ? Yes Yes Kind of Kind of Yes Yes Yes
Embeddable Yes No Yes ? ? Yes Yes Yes Yes Yes No Yes

Since this blog post was originally published people have written to me about yet more triple stores that should be included. Since the table above is getting too wide already I'm adding a new table here with room for those. It should not be taken to mean that these triple stores are not as good; it just means they were added later.

Note that Tinkerpop supports multiple backends. We're here assuming the Neo4J backend.

Requirement LMF Tinkerpop Urika
Open source Yes Yes (w/ commercial ed) No
Free edition Yes Yes No
10 billion statements Probably ? Yes
Clustering No Yes Yes
SPARQL 1.0 Yes Yes Yes
SPARQL 1.1 Yes Partial Partial
SPARQL Update Yes Yes Yes
Support Yes ? Yes
Events Yes Yes No
Constraints No No No
Reasoning Rules Some Rules
Triple-level security No ? No
Endpoint built in Yes Yes Yes
Live backup Kind of Commercial No
Embeddable Yes Yes No

There is also Meronymy, but since it's not out of closed alpha yet, I haven't included it.

I guess the main thing to take away from this table is that there are lots of triple stores out there, giving users a wide range of products to choose from.

Kendall Clark's summary of the RDF database market from 2010 is still a good read if you want more on the subject.

Update: To keep track of all the updates: you are now looking at $Id$.

Update: Corrected Sesame support, as per comment from Tomas Francart. Corrected some BrighstarDB details from Graham Moore. Also added "Free edition" row suggested by Graham Moore.

Update: Fixed links for live backups, as pointed out by Maxime.

Update: Fixed 4Store and Sesame SPARQL 1.1 status, based on comment from Kjetil Kjernsmo. Also added "Embedded" row, as suggested by Graham Moore.

Update: Fixed OWLIM scaling based on comment from Jerven Bolleman. Fixed 4Store backup and embeddable status, based on comment from Steve Harris. Changed "Embedded" row to "Embeddable", based on comment from Kendall Clark.

Update: Virtuoso fixes: reasoning changed to rules, SPARQL Update support changed to partial. Also extended the clustering row. All based on comments from Kingsley Idehen.

Update: Added a column for Fuseki with the TDB backend, contributed by Andy Seaborne via email.

Update: Added a note that cloud-only products are not considered, based on a comment below from Martynas.

Update: Changed value for Virtuoso access control, based on information from vendor.

Update: Updated Oracle column based on comment from Bill Beauregard.

Update: Added a definition of triple store to clear up the Jena questions and simultaneously clarify that all products provide SPARQL support.

Update: OWLIM is embeddable, as per comment from Borislav Popov.

Update: Sesame is embeddable, as per comment from Laszlo Török.

Update: Virtuoso is embeddable, as per comment from Kingsley Idehen.

Update: Added LMF, based on email from Sergio Fernandez. Added Tinkerpop with Neo4J backend, as suggested by turnguard.

Update: Virtuoso SPARUL is non-standard, not partial.

Update: Stardog 1.1 release adds SPARQL 1.1 support and reasoning with rules. Also added link to Kendall Clark's piece.

Update: Noted that OWLIM Enterprise now supports live backup as of version 5.3. Also replaced "Yes" on reasoning with details. Both thanks to comment from Atanas Kiryakov below.

Update: Added Urika, based on comment from Jerven Bolleman below.

Update: Updated for Stardog 2.0 release, which adds SPARQL Update support.

Update: Updated for Stardog 2.1 release, which improves scalability dramatically.

Update: Updated for Stardog 3.0 release.

Similar posts

Semantic Web adoption and the users

A hot topic at ESWC 2013, and many other places besides, was the issue of Semantic Web adoption, which after a decade and a half is still less than it should be

Read | 2013-10-18 15:43

Implementing SPARQL with tolog

I realized quite a while ago (a year ago, maybe) that it's possible to implement SPARQL on top of tolog without too much effort

Read | 2005-12-15 23:03

How stone beer was brewed

It's only the last few centuries that metal kettles have become something that most people could afford to own

Read | 2016-12-18 12:47

Comments

Add a comment

Name required
Email optional, not published
URL optional, published
Comment
Spam don't check this if you want to be posted
Not spam do check this if you want to be posted