Triplestore
A triplestore or RDF store is a purpose-built database for the storage and retrieval of triples[1] through semantic queries. A triple is a data entity composed of subject–predicate–object, like "Bob is 35" (i.e., Bob's age measured in years is 35) or "Bob knows Fred".
Much like a relational database, information in a triplestore is stored and retrieved 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 and exported using the Resource Description Framework (RDF) and other formats.
Implementations
[edit | edit source]Some triplestores have been built as database engines from scratch, while others have been built on top of existing commercial relational database engines (such as SQL-based)[2] or NoSQL document-oriented database engines.[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. A difficulty with implementing triplestores over SQL is that although "triples" may thus be "stored", implementing efficient querying of a graph-based RDF model (such as mapping from SPARQL) onto SQL queries is difficult.[4]
Related database types
[edit | edit source]Adding a name to the triple makes a "quad store" or named graph.
A graph database has a more generalized structure than a triplestore, using graph structures with nodes, edges, and properties to represent and store data. Graph databases might provide index-free adjacency, meaning every element contains a direct pointer to its adjacent elements, and no index lookups are necessary. General graph databases that can store any graph are distinct from specialized graph databases such as triplestores and network databases.
See also
[edit | edit source]- Dataspaces
- Entity–relationship model
- Metadata § Syntax – The first two elements of the class-attribute-value triple (class, attribute) are pieces of some structural metadata having a defined semantic. The third element is a value, preferably from some controlled vocabulary.
- Outline of databases
- Semantic Integration
- Semantic MediaWiki — an example of subject-predicate-object support for wikis, advanced query support, and implementations by many large organizations
- SPARQL – W3C specification involving subject-predicate-object triples
- Entity–attribute–value model is a similar approach to data modeling.
References
[edit | edit source]- ^ TripleStore, Jack Rusher, Simple Knowledge Organization System § SWAD-Europe (2002–2004), Workshop on Semantic Web Storage and Retrieval – Position Papers.
- ^ GB 2384875, Dingley, Andrew Peter, "Storage and management of semi-structured data", published Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value)., assigned to Hewlett-Packard Co., now expired; use of SQL relational databases as an RDF triple store.
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
External links
[edit | edit source]- A list of large triplestores
- Lehigh University Benchmark (LUBM)
- How RDF Databases Differ from Other NoSQL Solutions
- W3C SPARQL Working Group was RDF Data Access Working Group
- SPARQL Query language
- SPARQL Protocol
- SPARQL 1.1 Update W3C Recommendation 21 March 2013