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 have been built as database engines from scratch, while others have been built on top of existing commercial relational database engines (e.g., SQL-based).[2] 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 (e.g., mapping from SPARQL) onto SQL queries is difficult.[3]

List of implementations[edit]

Name Developed in language Homepage Licence
3store C, GPL
4store C GPL v3
5store C
Algebraix Data C++
AllegroGraph Common Lisp
ARC2 PHP W3C Software License or GPL
Bigdata Java GPL v2 or Commercial or Research
BrightstarDB C# MIT
Cayley Go Apache 2
ClioPatria SWI-Prolog, C GPL v2
Dydra Common Lisp, C++ Commercial
Apache Jena Java Apache 2
KiWi (Apache Marmotta) Java Apache 2
MarkLogic C++ Commercial
Mulgara Java OSL, moving to Apache 2
OntoBroker Java
OntoQuad RDF Server C++
OpenAnzo Java EPL
OpenLink Virtuoso C GPL v2 or Commercial
Oracle Java, PL/SQL, SQL
SparkleDB C++
Parliament Java, C++ BSD license
Pointrel System Java, Python LGPLv3[4]
Profium Sense Java
RDF::Core Perl
RDF::Trine Perl Same as Perl
RDF-3X C++ CC-BY-NC-SA 3.0
RDFBroker Java
RDFLib Python BSD
Redland C Apache or LGPL or GPL[5]
RedStore C GPL v3
Saffron Memory Base Java
Semantics Platform C#
SemWeb-DotNet C#
Sesame Java BSD-style license
Soprano C++ LGPLv2 [6]
Stardog Java
StrixDB C++, Lua
Nitrosbase C++
Smart-M3 Python, Java, C, C# BSD License [7]

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 City Triplestore Command Line, Web Interface
SPARQL Engine 3rd party Java
Stardog Triplestore Java, Groovy
StrixDB Triplestore Lua
Twinql 3rd party Lisp
YARS 3rd party HTTP, JDBC

See also[edit]


  1. ^ TripleStore, Jack Rusher, Semantic Web Advanced Development for Europe (SWAD-Europe), Workshop on Semantic Web Storage and Retrieval - Position Papers
  2. ^ US 2003145022  Storage and Management of Semi-structured Data (Use of SQL relational databases as an RDF triple store), 2003
  3. ^ Broekstra, Jeen (19 September 2007). "The importance of SPARQL can not be overestimated". 
  4. ^
  5. ^
  6. ^
  7. ^

External links[edit]