Capitolo 4
Studi a
ffini e confronti
Franconi e Tessaris presentano una semantica [8] in cui si definiscono per basic graph pattern (un grafo RDF con delle variabili) un insieme di funzioni parziali e una serie di operatori che agiscono sugli insiemi di mapping. Possiamo considerarlo un documento non rilevante in quanto incompleto rispetto alle esigenze di questo studio.
Al contrario Pérez, Arenas, Gutierrez [16] propongono una semanti-ca interessante approvata dal W3C. Essa copre solo un frammento del linguaggio. Viene definito un mapping µ : V → T come una funzione par-ziale che data una variabile rende un termine del grafo. Dall’esecuzione di un graph pattern su un grafo si ottiene un insieme di mapping. Un graph pattern complesso specifica operazioni su insiemi di mapping. Si consi-dera l’esecuzione del pattern su un singolo grafo, non vengono dunque considerate le clausole che modificano la scelta dei grafi prima dell’ese-cuzione di una query. Le forme di risultato analizzate sono solamente la Select e la Construct che manipolano l’insieme di mapping per ottenere il risultato.
Questo lavoro è molto simile a quello che presentato in questa tesi. La semantica proposta in questa tesi introduce l’ambiente e la sua manipola-zione tramite le DatasetClauses in cui la query verrà eseguita, il risultato dell’esecuzione del graph pattern viene visto come una tabella composta da un insieme di record e i pattern complessi eseguiti come operazioni re-lazionali tra tabelle. Mentre nel [16] la query viene eseguita in un singolo
CAPITOLO 4. STUDI AFFINI E CONFRONTI 63
grafo, il risultato è un insieme di mapping e i pattern complessi si tradu-cono in operazioni su tali insiemi. Le due soluzioni riguardanti il risultato della query sono praticamente identiche. Infine in [16] si considerano so-lo le forma del risultato select e construct mentre nel lavoro proposto si analizza anche la ask, mentre la describe è stata scartata.
Un altro lavoro è quello proposto da De Bruijn, Franconi e Tessaris [6] che vedono la definizione di mapping da un punto di vista logico. Esso differisce leggermente dalle specifiche W3C riguardo ai blank nodes in quanto non vengono usati i blank nodes nei pattern in quanto vengono visti come delle variabili senza nome non presentate nella domanda.
In riferimento al linguaggio SPARQL Cyganiak [5] che presenta un modello relazionale per SPARQL. Vengono usati gli operatori dell’algebra relazionale su un modello della query select SPARQL. L’idea di base è quel-la di creare una corrispondenza tra le query SPARQL e le query espresse in algebra relazionale mediante una singola relazione.
Sempre Pérez, Arenas, Gutierrez [14] propongono un’estensione inte-ressante del linguaggio SPARQL che interroga grafi RDF contenenti schemi RDF. L’estensione comprende il calcolo della chiusura di un grafo RDF ov-vero della creazione di un nuovo grafo RDF con triple che specificano le asserzioni implicite nella definizione di sottoproprietà e sottoclassi. Questo calcolo ovviamente ha un costo che viene aggiunto al costo di esecuzione della query.
Il lavoro di Colazzo, Ghelli, Manghi e Sartiani [2] propone un sistema di tipi complesso per µQL, un semplice linguaggio di interrogazione di dati XML basato su linguaggi come Lorel, XQuery, UnQL e altri. Lo scopo di questo sistema di tipi è sia quello di definire il tipo del risultato di una query che definire una nozione di correttezza della query basata sul fatto che una query è corretta se esiste almeno un’istanza dei dati coerente con lo schema per la quale la query da un risultato non vuoto. Quest’ultimo obiettivo non è stato analizzato nel sistema di tipi proposto da questa tesi. Entrambi invece definiscono la proprietà di upper bound mentre in [2] viene definita e dimostrata la proprietà di lower bound per gli insiemi di tutti i possibili risultati delle query.