Introduzione
L’evoluzione delle tecnologie Web ha portato ad un aumento dei dati disponibili in rete. Questi dati vengono principalmente usati per la co- municazione tra esseri umani ma una buona parte di essi partecipano allo scambio di informazioni tra applicazioni distribuite.
Il web semantico è nato dall’idea di fornire una struttura adeguata al- lo scambio di informazioni tra applicazioni. Ogni dato disponibile viene affiancato da altri dati chiamati metadati utili alla definizione delle cor- relazioni semantiche tra i dati. Questi descrivono i dati, contengono cioè informazioni aggiuntive. Un esempio tipico di metadati è lo schema di una tabella: i dati sono i record della tabella e i metadati sono i nomi dei campi.
Un formalismo per esprimere i metadati è il Resource Description Fra- mework (RDF), uno standard proposto dal W3C. È un linguaggio per il web semantico, strumento base per la codifica, lo scambio, il riutilizzo di dati e l’interoperabilità tra applicazioni.
È un linguaggio di asserzioni per descrivere in modo semplice le risorse (reperibili o no dal web), le proprietà e le relazioni tra esse.
I dati e i metadati espressi in RDF sono in genere dati semi-strutturati ossia dati la cui struttura è irregolare e varia nel tempo.
I modelli relazionali e object-oriented non sono adatti alla gestione dei dati semi-strutturati in quanto non si può stabilire a priori un singolo schema valido per l’arco di vita dei dati. Pongono dunque delle forti limitazioni. La gestione di questo tipo di dati sarebbe inefficiente e sarebbe necessaria una continua riprogettazione per tener fronte alle variazioni dello schema nel tempo.
1
INTRODUZIONE 2
Per l’interrogazione di dati RDF sono stati proposti diversi linguaggi.
Tra questi vi è SPARQL, un linguaggio standard proposto dal W3C.
SPARQL è un elemento del web semantico e consente di estrarre infor- mazioni da fonti distribuite sul web. È tuttavia un linguaggio incompleto in confronto ad altri linguaggi di interrogazione ma ciò è dovuto al fatto che è ancora in fase di sviluppo.
Una query SPARQL si basa sul graph matching e si compone di quattro parti. L’RDF dataset che permette di scegliere il grafo su cui eseguire la query. Il graph pattern che applica il graph matching e crea la soluzione parziale della query. I modificatori di soluzione che applicati alla soluzione parziale manipolano il risultato. Infine la forma del risultato in cui si può scegliere l’output della query.
SPARQL è oggetto di questo studio, che propone una semantica formale e un sistema di tipi per il linguaggio.
Il W3C non ha pubblicato una semantica ufficiale per SPARQL e pochi studi hanno affrontato questo argomento. A partire da questi studi è stato possibile definire una semantica più completa per il linguaggio.
Un sistema di tipi per un linguaggio ha come obiettivi primari quello di prevenire il verificarsi di errori durante l’esecuzione del programma e descrivere il tipo del risultato di espressioni e comandi.
La parte fondamentale di questo studio è proprio la proposta di un sistema di tipi con l’obiettivo di definire il tipo del risultato di una query.
La tesi è organizzata in questo modo: nel capitolo 1 viene approfondito l’RDF e SPARQL, nel capitolo 2 viene presentata la sintassi e la semantica di SPARQL, nel capitolo 3 viene esposto il sistema di tipi con le varie componenti e proprietà e infine il capitolo 4 elenca alcuni studi fatti sul linguaggio e sulla sua semantica.