An RDF store consists of multiple tables. These tables
contain metadata about the RDF store or user data.
Metadata tables
The following tables contain
metadata about the RDF store:
- One metadata table, which has the same name as the RDF store.
- The System Predicates metadata table, which stores information
about RDF predicates that you can use for further filtering results
of a SPARQL query.
- The Basic Statistics table, which stores statistics about the
data in the RDF store.
- The Top K Statistics table, which stores information about the
least selective RDF data in the store.
Data tables
The following tables store RDF
data if the value of the data does not exceed a particular character
length:
- The Direct Primary table stores RDF triples and the associated
graph, indexed by subject. Predicates and objects for a subject are
stored in pair columns in this table. A particular predicate can occur
in any one of three columns in this table. The object for that predicate
is stored in the corresponding object column of the predicate-object
pair.
- The Direct Secondary table stores RDF triples that share the subject
and predicate within an RDF graph. Such triples have only a placeholder
identifier in the Direct Primary table.
- The Reverse Primary table stores RDF triples and the associated
graph, indexed by object. Predicates and subjects for an object are
stored in pair columns in this table. A particular predicate can occur
in any one of three columns in this table and the subject for that
predicate can occur in the corresponding subject column of that pair.
- The Reverse Secondary table stores RDF triples that share the
object and predicate within an RDF graph. Such triples have a placeholder
identifier in the Reverse Primary table.
- The Datatypes table stores the mapping of internal integer values
for SPARQL data types, user-defined data types, and language tags.
If the value of an RDF subject, predicate, object, or graph exceeds
a particular character length, the previously mentioned five tables
store a placeholder identifier only. The actual value is stored in
the Long Strings table.