Jump to content

Triplestore: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Line 56: Line 56:
| [[Virtuoso Universal Server|OpenLink Virtuoso]] || C || {{URL|virtuoso.openlinksw.com}} || GPL v2 '''''or''''' Commercial
| [[Virtuoso Universal Server|OpenLink Virtuoso]] || C || {{URL|virtuoso.openlinksw.com}} || GPL v2 '''''or''''' Commercial
|-
|-
| [[Oracle Database|Oracle]] || Java, [[PL/SQL]], [[SQL]] || {{URL|http://www.oracle.com/technetwork/database/options/semantic-tech/whatsnew}} ||
| [[Oracle Database|Oracle]] || Java, [[PL/SQL]], [[SQL]] || {{URL|http://www.oracle.com/technetwork/database-options/spatialandgraph/overview/rdfsemantic-graph-1902016.html}} ||
|-
|-
| OWLIM || Java || {{URL|www.ontotext.com/owlim}} ||
| OWLIM || Java || {{URL|www.ontotext.com/owlim}} ||

Revision as of 16:47, 5 June 2013

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

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

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
AllegroGraph Common Lisp www.franz.com/agraph/allegrograph
ARC PHP arc.semsol.org 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
Dydra Common Lisp, C www.dydra.com
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
Mulgara Java www.mulgara.org
OntoBroker Java www.semafora-systems.com/en/products/ontobroker/
OpenAnzo Java www.openanzo.org
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
Meronymy SPARQL Database Server C++ www.meronymy.com
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 search.cpan.org/dist/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
Redland C librdf.org Apache or LGPL or GPL[6]
RedStore C www.aelius.com/njh/redstore
Saffron Memory Base Java www.saffrontech.con
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
Smart-M3 Python, Java, C, C# sourceforge.net/projects/smart-m3 BSD License [8]

Technical overview

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
Hercules Stored in web browser JavaScript
IBM DB2 Object-relational Java
Intellidimension Semantics Platform 2.0 3rd party .NET Framework
Jena Tuple store Java
KAON2 3rd party Java
Meronymy SPARQL Database Server Triplestore / Quadstore For most modern programming languages
Mulgara 3rd party Java or REST API
OntoBroker Triplestore Java
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 2 3rd party Java
Soprano 3rd party C++
SPARQL Engine 3rd party Java
Stardog 3rd party Java, Groovy
StrixDB Triplestore Lua
Twinql 3rd party Lisp
YARS 3rd party HTTP, JDBC

See also

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
  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