Large graphs are increasingly common in many applications, which creates a tendency for distributed systems and faster extraction of data than the relational databases. Technologies that supports these systems are RDF, a general proposition language for the Web that unifies data from diverse sources, and SPARQL, a query language for RDF that can join data from different databases, documents, inference engines, or anything else that might express its knowledge as a directed labeled graph. In RDF, all data is declared in the form of subject-predicate-object, represented as graph’s nodes and relationships. In practice, RDF graphs can be large, which is demanding in terms of memory and not applicable on centralized systems. The need to process graphs at large scale motivates our work, and our engine is based on Pregel - the programming abstraction that allows processing of large-scale graphs. A Pregel computation consists of a sequence of iterations, each called a superstep. Within each superstep the vertices compute in parallel, each executing the same user-defined function that expresses the logic of a given algorithm. Our engine, NeX, allows accessing distributed data in RDF graphs, pursuing scalability in parallel queries’ executions. Furthermore, NeX is evidently a faster engine than Apache Jena - a Java framework for building semantic web and Linked Data applications.
I grafi di grandi dimensioni stanno diventando sempre più comuni in molte applicazioni, il che crea una tendenza per sistemi distribuiti e un'estrazione di dati più veloce rispetto ai database relazionali. Le tecnologie che supportano questi sistemi sono RDF, un linguaggio di proposizione generale per il Web che unifica i dati provenienti da fonti diverse, e SPARQL, un linguaggio di query per RDF che può unire dati da diversi database, documenti, motori di inferenza, o qualsiasi altra cosa che possa esprimere la sua conoscenza come un grafo diretto etichettato. In RDF, tutti i dati sono dichiarati nella forma di soggetto-predicato-oggetto, rappresentati come nodi e relazioni del grafo. In pratica, i grafi RDF possono essere grandi, il che è impegnativo in termini di memoria e non applicabile su sistemi centralizzati. La necessità di elaborare grafi su larga scala motiva il nostro lavoro, e il nostro motore è basato su Pregel - l'astrazione di programmazione che permette l'elaborazione di grafi su larga scala. Un calcolo Pregel consiste in una sequenza di iterazioni, ognuna chiamata superstep. All'interno di ogni superstep i vertici calcolano in parallelo, ognuno eseguendo la stessa funzione definita dall'utente che esprime la logica di un dato algoritmo. Il nostro motore, NeX, permette di accedere a dati distribuiti in grafi RDF, perseguendo la scalabilità nell'esecuzione di query parallele. Inoltre, NeX è evidentemente un motore più veloce di Apache Jena - un framework Java per costruire applicazioni di web semantico e Linked Data.
NeX : a vertex-centric SPARQL engine
KOTLAJA, NEVENA
2020/2021
Abstract
Large graphs are increasingly common in many applications, which creates a tendency for distributed systems and faster extraction of data than the relational databases. Technologies that supports these systems are RDF, a general proposition language for the Web that unifies data from diverse sources, and SPARQL, a query language for RDF that can join data from different databases, documents, inference engines, or anything else that might express its knowledge as a directed labeled graph. In RDF, all data is declared in the form of subject-predicate-object, represented as graph’s nodes and relationships. In practice, RDF graphs can be large, which is demanding in terms of memory and not applicable on centralized systems. The need to process graphs at large scale motivates our work, and our engine is based on Pregel - the programming abstraction that allows processing of large-scale graphs. A Pregel computation consists of a sequence of iterations, each called a superstep. Within each superstep the vertices compute in parallel, each executing the same user-defined function that expresses the logic of a given algorithm. Our engine, NeX, allows accessing distributed data in RDF graphs, pursuing scalability in parallel queries’ executions. Furthermore, NeX is evidently a faster engine than Apache Jena - a Java framework for building semantic web and Linked Data applications.File | Dimensione | Formato | |
---|---|---|---|
2021_06_Kotlaja.pdf
accessibile in internet per tutti
Dimensione
1.63 MB
Formato
Adobe PDF
|
1.63 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/176215