Resource Description Framework (RDF) graphs are widely used for representing semantically linked data in various domains. Many modern RDF specific storage, indexing, and query optimization systems internally represent the node and edge labels of the RDF graphs as integer IDs. Hence they require dictionaries for converting the strings in a SPARQL query into their corresponding IDs, and the SPARQL query results in the ID form into their corresponding strings. Most of the SPARQL query processing systems have focused on the techniques for indexing of RDF graphs and the optimization of the joins in the SPARQL Basic Graph Pattern (BGP) queries, but the dictionaries that map RDF graph string labels to the IDs and back have remained a neglected component. Dictionaries are important for an "end-to-end user experience" of SPARQL query processing over large RDF graphs. Hence, in this paper, we have specifically focused on building efficient RDF dictionaries using B+ trees. Our key contributions are - (a) building an ensemble of B+ trees, instead of one giant B+ tree, to maintain a low average height across the ensemble, (b) a hashing technique for storing the string labels as search-keys to reduce the space consumption, maintain a higher B+ tree order, and more uniform search-key distribution across memory pages, (c) using multi-core parallel processing for fast dictionary construction, and (d) novel bulk reverse lookup methods. We have also presented an extensive experimental evaluation of our techniques over a set of 126,444,964 labels of a real-life DBPedia RDF graph.
[1]
A. Bernstein,et al.
B + Hash Tree : Optimizing query execution times for on-Disk Semantic Web data structures
,
2010
.
[2]
Hai Jin,et al.
TripleBit: a Fast and Compact System for Large Scale RDF Data
,
2013,
Proc. VLDB Endow..
[3]
Richard Cyganiak,et al.
A relational algebra for SPARQL
,
2005
.
[4]
Gerhard Weikum,et al.
Scalable join processing on very large RDF graphs
,
2009,
SIGMOD Conference.
[5]
James A. Hendler,et al.
BitMat: A Main-memory Bit Matrix of RDF Triples for Conjunctive Triple Pattern Queries
,
2008,
SEMWEB.
[6]
James A. Hendler,et al.
Matrix "Bit" loaded: a scalable lightweight join query processor for RDF data
,
2010,
WWW '10.
[7]
Medha Atre,et al.
For the DISTINCT Clause of SPARQL Queries
,
2016,
WWW.
[8]
Miguel A. Martínez-Prieto,et al.
Querying RDF dictionaries in compressed space
,
2012,
SIAP.
[9]
Medha Atre,et al.
Left Bit Right: For SPARQL Join Queries with OPTIONAL Patterns (Left-outer-joins)
,
2013,
SIGMOD Conference.
[10]
Martin L. Kersten,et al.
Column-store support for RDF data management: not all swans are white
,
2008,
Proc. VLDB Endow..