Atriplestore orRDF store is a purpose-builtdatabase for the storage and retrieval oftriples[1] throughsemantic queries. A triple is a data entity composed ofsubject–predicate–object, like "Bob is 35" (i.e., Bob's age measured in years is 35) or "Bob knows Fred".
Much like arelational database, information in a triplestore is stored and retrieved via aquery 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 theResource 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 (such asSQL-based)[2] or NoSQLdocument-oriented database engines.[3] Like the early development ofonline 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 fromSPARQL) onto SQL queries is difficult.[4]
Adding a name to the triple makes a "quad store" ornamed graph.
Agraph 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 andnetwork databases.