Versioned Datasets and Queries in Rdf/Sparql
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN VERSIONED DATASETS AND QUERIES IN RDF/SPARQL TESIS PARA OPTAR AL GRADO DE MAGISTER EN CIENCIAS, MENCION COMPUTACION MEMORIA PARA OPTAR AL TITULO DE INGENIERO CIVIL EN COMPUTACION IGNACIO IVAN CUEVAS ROJAS PROFESOR GUÍA: AIDAN HOGAN MIEMBROS DE LA COMISIÓN: BENJAMIN BUSTOS CARDENAS BARBARA POBLETE LABRA CARLOS BUIL ARANDA Este trabajo ha sido parcialmente financiado por el Instituto Milenio Fundamentos de los Datos SANTIAGO DE CHILE 2020 Resumen Hoy en día, una gran cantidad de datasets están basados en RDF, dada su denominación como estándar de la Web. Wikidata [19] es uno los más importantes y masivos datasets RDF, conteniendo más de 84 millones de items1, y tiene por función estructurar y estandarizar el contenido de datos de Wikipedia. Wikidata – al igual que muchos otros datasets RDF publicados como Linked Data [12] – está en constante cambio, debido a que corresponde a un dataset abierto y colaborativo que puede ser editado por sus usuarios. Además, datos adicionales son importados desde fuente externas constantemente, lo cual convierte a Wikidata en un dataset muy dinámico en ciertos aspectos. Dadas estas circunstancias, se puede decir que Wikidata tiene distintas “versiones” en el tiempo, donde los datos disponibles son distintos dependiendo del periodo de tiempo donde se consulten. Este hecho hace posible analizar una componente temporal de Wikidata y, por lo tanto, sería relevante estudiar la posibilidad de desarrollar un sistema de versionamiento y una metodología para construir consultas usando sólamente SPARQL base junto a un modelo RDF que sea capaz de representar datos versionados, manteniéndose abierto a recibir consultar sin utilizar herramientas o software especializado. En este trabajo proponemos y analizamos un sistema que permite, de manera eficiente, almacenar y realizar consultas sobre grafos RDF que mantienen un historial de cambios en el tiempo. Algunos sistemas que llevan a cabo objetivos similares ya existen. Sin embargo, dichos sistemas utilizan extensiones, índices especializados y herramientas fuera del estándar. Teniendo esto en mente, se añade la meta de construir un sistema que logre nuestro objetivo usando sólamente RDF y SPARQL base, con la intención de dar al problema una solución estándar y lista para usar en cualquier ambiente. Se hacen pruebas con varias alternativas para representar el dataset versionado. Cada una requiere su propio método para convertir consultas SPARQL, permitiendo la compati- bilidad con los datasets construidos. Se mantiene una versión sin compresión para comparar los resultados obtenidos. Junto a ésta, se construyen representaciones basadas de deltas e intervalos. Se definen dos tipos de deltas: absolutos, donde cada versión del grafo se compara con la versión base (puede ser la más antigua o la más reciente), y secuenciales, donde cada versión se compara con la versión anterior a sí misma, manteniendo así una representación “paso a paso” de los cambios a través del tiempo. En general, la representación basada en intervalos tiene el mejor desempeño, excepto por el tiempo que toma su construcción. Sin embargo, dichos tiempos de construcción se pueden mejorar con pequeñas optimizaciones. Además, la representación de intervalos es la única que ofrece soporte parcial para property paths, mientras que el resto de las representaciones son completamente incompatibles con éstos dado que no posible aplicar un property path sobre múltiples named graphs. 1 https://www.wikidata.org/wiki/Wikidata:Statistics i Abstract Currently, a large number of existing datasets are based on RDF due to its status as a Web standard, with Wikidata being one of the most notable. Wikidata [19] is a massive RDF dataset, with over 84 million items2, which is meant to serve as a way to structure and standarize the data content of Wikipedia. Wikidata – like many other RDF datasets published as Linked Data [12] – is in constant change, due to it being an open dataset that can be edited by users. Furthermore, data is being imported from external sources constantly, which makes Wikidata very dynamic in some areas. Given these circumstances, it can be said that Wikidata has many “versions” over time, where different data is available at different time intervals, making it possible to analyze its time component. As such, it would be relevant to study the possibility of developing a versioning system and methodology for queries using only base SPARQL with an RDF model capable of representing versioned data and open to be queried without needing specialized tools or software. In this work we propose and evaluate a system that allows for efficiently storing and querying versioned RDF graphs that track changes over time. A few systems that achieve similar goals currently exist. These systems, however, employ extensions, specialized indices and other custom tools in their implementations. Considering this, the goal of building a system that achieves our objetive using only base RDF and SPARQL is added, aiming to serve as an “off-the-shelf” solution to the problem presented. Several alternatives to represent the versioned data are tested, each requiring a different method of conversion for SPARQL queries in order to ensure compatibility with the versioned datasets created. A version without compression is kept to compare the results obtained. Alongside it, versioned representations based on intervals are deltas are built. Two types of deltas are defined: absolute deltas that take each version of the graph and compare it to the base version (either oldest or most recent), and sequential deltas, where each version is compared against the previous one to keep a “step by step” representation of the changes in the graph through time. Overall, the interval-based representation has the most competitive results, with the ex- ception of build times. These times could be easily be improved upon with small optimizations to the construction method. Moreover, the interval-based representation is the only one that partially supports property paths, while the rest of the representations are fully incompatible with them as property paths cannot be evaluated across different named graphs. 2 https://www.wikidata.org/wiki/Wikidata:Statistics ii A mi familia, a mis amigos y a mi Mikkita. Muchas gracias iii Agradecimientos Quisiera en primer lugar darle las gracias a mi profesor guía Aidan Hogan por la infinita pa- ciencia que tuvo conmigo durante este trabajo de tesis, además de siempre tener la disposición a contestar dudas y ayudarme con las partes más difíciles del trabajo. A mis padres, Miriam e Iván, les agradezco también por asegurarse que nunca me faltara nada y por todo el cariño que me entregan día a día. Y a mi hermano Sebastián y mi sobrina Millaray les doy las gracias porque sé que a la distancia siempre me envian ánimos y buenos deseos. A mis amigos les agradezco por la companía, las risas y todo el cariño que me entregan con sólo su presencia. Son muchos como para nombrarlos a todos, pero sé que van a entender que me refiero a ellos y ellas. Finalmente, a mi Mikkita le doy las gracias porque sin ella probablemente no hubiese completado esta tesis. Ella me dio el ánimo para seguir adelante en los momentos donde ya casi no me quedaba energía. Muchas gracias a todos por ser parte de este viaje junto a mí. iv Contents 1. Introduction1 1.1. Motivation..................................... 1 1.2. Main Challenge.................................. 2 1.3. Proposed Solution................................. 3 1.4. Hypothesis..................................... 3 1.4.1. What representations of a versioned dataset allow for better compres- sion, more efficient indexing, and/or more efficient updates?..... 4 1.4.2. How should queries be rewritten to be compatible with a versioned dataset?.................................. 4 1.4.3. How large is the performance cost of implementing a versioned dataset and query system? ............................ 5 1.4.4. Which of the representation alternatives will have the most well-rounded performance? ............................... 5 1.5. Objectives..................................... 5 1.5.1. General Objectives............................ 5 1.5.2. Specific Objectives ............................ 6 2. Related Work7 2.1. Semantic Web................................... 7 2.1.1. RDF.................................... 7 2.1.2. SPARQL.................................. 8 2.1.3. Linked Data................................ 9 2.2. Wikidata...................................... 11 2.3. Versioning of RDF ................................ 12 3. Preliminaries 15 3.1. RDF........................................ 15 3.1.1. RDF terms ................................ 15 3.1.2. RDF triple................................. 16 3.1.3. RDF graph and dataset ......................... 16 3.2. SPARQL...................................... 16 3.2.1. Basic Concepts .............................. 16 3.2.2. Basic Graph Pattern........................... 17 3.2.3. SPARQL query.............................. 17 3.2.4. Solution mapping............................. 18 3.2.5. SPARQL 1.1 ............................... 20 v 4. Native RDF Versioning 22 4.1. Preliminary Concepts............................... 22 4.1.1. Versioned Graph ............................. 22 4.1.2. Graph Deltas ............................... 23 4.1.3. Temporal Query ............................. 23 4.1.3.1. Single Version query...................... 23 4.1.3.2.