Triplestore

From Wikipedia, the free encyclopedia
  (Redirected from Triple Store)
Jump to: navigation, search

A triplestore is a purpose-built database for the storage and retrieval of triples,[1] a triple being a data entity composed of subject-predicate-object, like "Bob is 35" or "Bob knows Fred".

Much like a relational database, one stores information in a triplestore and retrieves it via a query language. Unlike a relational database, a triplestore is optimized for the storage and retrieval of triples. In addition to queries, triples can usually be imported/exported using Resource Description Framework (RDF) and other formats.

Some triplestores can store billions of triples.[2] The performance of a particular triplestore can be measured with the Lehigh University Benchmark (LUBM),[3] or with real data from UniProt.

Contents

[edit] Implementation

Some triplestores have been built as database engines from scratch, while others have been built on top of existing commercial relational database engines (i.e. SQL-based).[4] Like the early development of online analytical processing (OLAP) databases, this intermediate approach allowed large and powerful database engines to be constructed for little programming effort in the initial phases of triplestore development. Long-term though it seems likely that native triplestores will have the advantage for performance. A difficulty with implementing triplestores over SQL is that although triples may thus be stored, implementing efficient querying of a graph-based RDF model (i.e. mapping from SPARQL) onto SQL queries is difficult.[5]

[edit] List of implementations

Name Language Homepage Licence
3store C www.aktors.org/technologies/3store
4store C www.4store.org GPL v3
5store C 4store.org/trac/wiki/5store
AllegroGraph Common Lisp www.franz.com/agraph/allegrograph
ARC PHP arc.semsol.org
Ariadne Genomics Java www.ariadnegenomics.com
Bigdata Java www.bigdata.com
BigOWLIM Java www.ontotext.com/owlim
Dydra Common Lisp, C www.dydra.com
Jena Java jena.sourceforge.net
Mulgara Java www.mulgara.org
OpenAnzo Java www.openanzo.org
OntoBroker Java www.ontoprise.de/en/home/products/ontobroker
Oracle Java, PL/SQL, SQL http:/http://www.oracle.com/technetwork/database/options/semantic-tech/whatsnew}}
Meronymy SPARQL Database Server C++ www.meronymy.com
Parliament Java, C++ parliament.semwebcentral.org
Pointrel System Java, Python sourceforge.net/projects/pointrel
RAP PHP www4.wiwiss.fu-berlin.de/bizer/rdfapi
RDF::Core Perl search.cpan.org/dist/RDF-Core
RDF::Trine Perl www.perlrdf.org
RDF-3X C++ www.mpi-inf.mpg.de/~neumann/rdf3x
RDFBroker Java rdfbroker.opendfki.de
Redland C librdf.org
RedStore C www.aelius.com/njh/redstore
Semantics Platform C# www.intellidimension.com
SemWeb-DotNet C# razor.occams.info/code/semweb
Sesame Java www.openrdf.org
Soprano C++ soprano.sourceforge.net
Stardog Java stardog.com
StrixDB C++, Lua www.strixdb.com
SwiftOWLIM Java www.ontotext.com/owlim
Virtuoso C virtuoso.openlinksw.com
YARS Java sw.deri.org/2004/06/yars
Smart-M3 Python, Java, C, C# sourceforge.net/projects/smart-m3

[edit] Technical overview

The following table is an overview triplestores, their technical implementation, support for the SPARQL World Wide Web Consortium (W3C) recommendations, and available application programming interfaces (API).

Solution Name Internal storage method SPARQL support SPARQL/Update support SPARQL Protocol Endpoint Supported API's
AllegroGraph Graph For most modern programming languages
RDF API for PHP 3rd party PHP
ARQ 3rd party Java
Sesame 2 3rd party Java
RDF::Query 3rd party Perl
Twinql 3rd party Lisp
SPARQL Engine 3rd party Java
KAON2 3rd party Java
Pellet 3rd party Java
Corese 3rd party Java
OpenLink Virtuoso Relational For most modern programming languages
Ontotext OWLIM 3rd party Java
ARC2 3rd party PHP
D2R Server 3rd party Java
Open Anzo 3rd party Java, JavaScript, .NET Framework
BrightstarDB Graph data model in Heap file .NET Framework or Web Service
Hercules Stored in web browser JavaScript
4store Triplestore Command line only
StrixDB Triplestore Lua
OntoBroker Triplestore Java
BigData Triplestore Java
Dydra Graph database in the cloud SaaS REST API
Jena Tuple store Java
Mulgara 3rd party Java or REST API
Oracle DB Enterprise Ed. Object-relational For most modern programming languages
Parliament Triplestore Java or C++
Pointrel Triplestore Python
RAP In-memory triplestore or heap file PHP
RDF-3X Triplestore Command line only
RDFBroker 3rd party Java
Redland, Redstore 3rd party C
Intellidimension Semantics Platform 2.0 3rd party .NET Framework
SemWeb.NET 3rd party .NET Framework
Soprano 3rd party C++
Stardog 3rd party Java, Groovy
YARS 3rd party HTTP, JDBC

[edit] See also

[edit] References

  1. ^ TripleStore, Jack Rusher, Semantic Web Advanced Development for Europe (SWAD-Europe), Workshop on Semantic Web Storage and Retrieval - Position Papers
  2. ^ Tom Ilube (2007-11-30), Semantic Technologies Really Do Pay Off, Semantic Universe, http://www.semanticuniverse.com/articles-semantic-technologies-really-do-pay.html 
  3. ^ Lehigh University Triplestore Benchmark
  4. ^ US 2003145022  Storage and Management of Semi-structured Data (Use of SQL relational databases as an RDF triple store), 2003
  5. ^ Broekstra, Jeen (19 September, 2007). "The importance of SPARQL can not be overestimated". http://www.semantic-web.at/1.36.resource.90.jeen-broekstra-x22-the-importance-of-sparql-can-not-be-overestimated-x22.htm. 
  6. ^ "a-brief-tour-of-graphd". http://blog.freebase.com/2008/04/09/a-brief-tour-of-graphd/. Retrieved 2009-07-08. 

[edit] External links

Personal tools
Namespaces

Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages