Triplestore

From Wikipedia, the free encyclopedia
  (Redirected from RDF Database)
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]

Implementation[edit]

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).[3] 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.[4]

List of implementations[edit]

Name Developed in language Homepage Licence
3store C www.aktors.org/technologies/3store, sourceforge.net/projects/threestore/ GPL
4store C www.4store.org GPL v3
5store C 4store.org/trac/wiki/5store
Algebraix Data C++ algebraixdata.com
AllegroGraph Common Lisp www.franz.com/agraph/allegrograph
ARC2 PHP github.com/semsol/arc2/wiki W3C Software License or GPL
Bigdata Java www.bigdata.com GPL v2 or Commercial or Research
BigOWLIM Java www.ontotext.com/owlim
BrightstarDB C# brightstardb.com
Cayley Go cayley.io Apache 2
ClioPatria SWI-Prolog, C cliopatria.swi-prolog.org GPL v2
Dydra Common Lisp, C++ dydra.com Commercial
IBM DB2 Java, SQL pic.dhe.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.swg.im.dbclient.rdf.doc/doc/c0059661.html
Apache Jena Java jena.apache.org Apache 2
KiWi (Apache Marmotta) Java marmotta.apache.org/kiwi Apache 2
MarkLogic C++ www.marklogic.com Commercial
Mulgara Java www.mulgara.org OSL, moving to Apache 2
OntoBroker Java www.semafora-systems.com/en/products/ontobroker/
OntoQuad RDF Server C++ www.ontos.com/products/ontoquad/
OpenAnzo Java www.openanzo.org EPL
OpenLink Virtuoso C virtuoso.openlinksw.com GPL v2 or Commercial
Oracle Java, PL/SQL, SQL www.oracle.com/technetwork/database-options/spatialandgraph/overview/rdfsemantic-graph-1902016.html
OWLIM Java www.ontotext.com/owlim
SparkleDB C++ sparkledb.net
Parliament Java, C++ parliament.semwebcentral.org BSD license
Pointrel System Java, Python sourceforge.net/projects/pointrel LGPLv3[5]
Profium Sense Java www.profium.com/technologies/profium-sense
RAP PHP www4.wiwiss.fu-berlin.de/bizer/rdfapi
RDF::Core Perl metacpan.org/module/RDF::Core
RDF::Trine Perl www.perlrdf.org Same as Perl
RDF-3X C++ www.mpi-inf.mpg.de/~neumann/rdf3x CC-BY-NC-SA 3.0
RDFBroker Java rdfbroker.opendfki.de
RDFLib Python github.com/RDFLib/rdflib BSD
Redland C librdf.org Apache or LGPL or GPL[6]
RedStore C www.aelius.com/njh/redstore
Saffron Memory Base Java www.saffrontech.com
Semantics Platform C# www.intellidimension.com
SemWeb-DotNet C# razor.occams.info/code/semweb
Sesame Java www.openrdf.org BSD-style license
Soprano C++ soprano.sourceforge.net LGPLv2 [7]
Stardog Java stardog.com
StrixDB C++, Lua www.strixdb.com
YARS Java sw.deri.org/2004/06/yars
Nitrosbase C++ nitrosbase.com
Smart-M3 Python, Java, C, C# sourceforge.net/projects/smart-m3 BSD License [8]

Technical overview[edit]

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

Solution Name Native storage Native SPARQL support Native SPARQL/Update support Native SPARQL Protocol Endpoint Native APIs
4store Triplestore Command line only
AllegroGraph Graph For most modern programming languages
ARC2 3rd party PHP
ARQ 3rd party Java
BigData Triplestore Java
BrightstarDB Graph data model in Heap file .NET Framework or Web Service
Corese 3rd party Java
D2R Server 3rd party Java
Dydra Graph database in the cloud SaaS REST API
IBM DB2 Object-relational Java
Intellidimension Semantics Platform 2.0 3rd party .NET Framework
Jena Tuple store Java
KAON2 3rd party Java
SparkleDB Triplestore / Quadstore For most modern programming languages
MarkLogic Triplestore / Quadstore REST API, SPARQL Endpoint, Graph Protocol Endpoint, Java API, XQuery, SQL/ODBC
Mulgara 3rd party Java or REST API
OntoBroker Triplestore Java
OntoQuad RDF Server Triplestore / Quadstore Java, SPARQL Endpoint or REST API
Ontotext OWLIM 3rd party Java
Open Anzo 3rd party Java, JavaScript, .NET Framework
OpenLink Virtuoso Hybrid (Relational Tables and Relational Property Graphs) ODBC, JDBC, ADO.NET, OLE DB, XMLA, HTTP, etc., serving most modern programming languages including C, PHP, Perl, Python, Ruby, Java, JavaScript, .NET Framework, etc.
Oracle DB Enterprise Ed. Object-relational For most modern programming languages
Parliament 3rd party Java or C++
Pellet 3rd party Java
Pointrel Triplestore Python
Profium Sense In-memory triplestore Java
RAP In-memory triplestore or heap file PHP
RDF API for PHP 3rd party PHP
RDF::Query 3rd party Perl
RDF-3X Triplestore Command line only
RDFBroker 3rd party Java
Redland, Redstore 3rd party C
SemWeb.NET 3rd party .NET Framework
Sesame 3rd party Java
Soprano 3rd party C++
SPARQL Engine 3rd party Java
Stardog Triplestore Java, Groovy
StrixDB Triplestore Lua
Twinql 3rd party Lisp
YARS 3rd party HTTP, JDBC

See also[edit]

References[edit]

  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 [dead link]
  3. ^ US 2003145022  Storage and Management of Semi-structured Data (Use of SQL relational databases as an RDF triple store), 2003
  4. ^ Broekstra, Jeen (19 September 2007). "The importance of SPARQL can not be overestimated". 
  5. ^ sourceforge.net/projects/smart-m3
  6. ^ http://librdf.org/LICENSE.html
  7. ^ http://sourceforge.net/projects/soprano/
  8. ^ sourceforge.net/projects/smart-m3

External links[edit]