Upload
buikhuong
View
218
Download
0
Embed Size (px)
Citation preview
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in Basi Di Dati
RDF (Triplestore) Database
Anno Accademico 2012-2013 Candidato: Davide Basciano matr. N46/658
III
Indice
Introduzione 4
Capitolo 1. Web Semantico 6
1.1 L’architettura del Web Semantico 7
1.2 XML 10
1.3 RDF 12
1.4 RDF/Schema 14
1.5 OWL 15
Capitolo 2. Database Triplestore 18
2.1 Scalabilità e performance di un triplestore 22
2.2 RDF Middleware 23
2.2.1 Interrogazione dei dati 24
2.2.2 Aggiunta, cancellazione ed esportazione dei dati 25
2.3 Linguaggi di Query RDF 26
2.3.1 Perché non SQL? 27
2.3.2 Livelli di interrogazione 27
2.3.3 SPARQL 29
Conclusioni 31
Indice delle figure 33
Bibliografia 34
RDF (Triplestore) Database
4
Introduzione
Il Web è frequentemente utilizzato da una larga varietà di persone per usi e finalità diverse
e rappresenta attualmente il maggior contenitore di conoscenza.
Molteplici sono le tipiche interazioni Utente-Macchina: dalla classica ricerca ipertestuale
alla prenotazione di un volo aereo, dalla messaggistica tramite posta elettronica alla
comunicazione on-line, per finire con l’uso sempre più massiccio dei vari Social Network.
Dagli inizi degli anni ‘90 ad oggi, il crescente utilizzo del Web nel tessuto culturale e
sociale ha comportato un aumento esponenziale nel numero e nell’eterogeneità dei
contenuti in rete, passando dai semplici file in formato testuale a documenti multimediali.
Di fronte a questa moltitudine di informazioni, l’importanza dei motori di ricerca assume
un ruolo significativo. Per qualsiasi utente di Internet, utilizzare un motore di ricerca e non
trovare ciò che si sta cercando, può essere frustrante. È interessante, infatti, notare come,
di fronte alla notevole quantità di risultati pervenuti, un’altissima percentuale di utenti (il
30%) non superi mai la seconda/terza pagina di risultati.
Questa schematizzazione dei risultati è dovuta agli attuali algoritmi di ricerca basati
sull’aspetto sintattico dell’informazione, essi restituiscono le pagine contenenti le
keywords presenti nelle query degli utenti, indipendentemente dal contesto in cui esse
sono utilizzate oppure restituiscono pagine secondo algoritmi differenti, ad esempio basati
sulla popolarità. La fiducia del’utente verso la qualità di ricerca del motore è, e deve essere
dunque, totale, e affinchè esso soddisfi le sue aspettative è fondamentale assicurare la
bontà degli algoritmi di analisi.
RDF (Triplestore) Database
5
Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno investendo nello
sviluppo di nuove tecnologie che permettano alle macchine di interpretare il senso delle
parole similmente agli esseri umani. La loro aspirazione è quella di creare sistemi di
information retrieval capaci di estrarre ed indicizzare semanticamente i concetti più
significativi dei testi affinché le ricerche effettuate attraverso i loro portali risultino sempre
più precise.
Nella prima parte di questo lavoro di tesi focalizzeremo l’attenzione sullo studio degli
elementi chiave del Semantic Web, estensione del Web attuale che punta, attraverso la
creazione di dati elaborabili e comprensibili direttamente dalle macchine e attraverso l’uso
della logica e dei linguaggi di rappresentazione della conoscenza,a massimizzare
l’efficienza degli algoritmi di ricerca.
Grazie al Semantic Web, infatti, la ricerca di documenti non sarà più incentrata sul
significato lessicale della singola parola chiave come avveniva nella ricerca sintattica ma
sul significato che assumono più concetti legati tra loro (ricerca semantica).
A tal proposito verrà quindi introdotto un linguaggio di marcatura XML, eXtensible
Markup Language, per conferire un interoperabilità sintattica relativa all’interpretazione
dei documenti scambiati e un linguaggio di codifica RDF, Resource Description
Framework, per raggiungere la cosiddetta interoperabilità semantica.
Al di sopra di questo strato si pone il livello ontologico. Recentemente il termine
"ontologia" (formale) è entrato in uso nel campo dell'intelligenza artificiale e della
rappresentazione della conoscenza, per descrivere il modo in cui diversi schemi vengono
combinati in una struttura dati gerarchica che contiene tutte le entità rilevanti, le relazioni
esistenti fra di esse, le regole, gli assiomi ed i vincoli specifici del dominio[8].
Nel proseguio del lavoro effettueremo una panoramica sulle principali applicazioni
sviluppate in grado di memorizzare triple RDF, i cosiddetti triplestore e, tramite la scelta
di opportuni parametri prestazionali,verrà fornita poi una classificazione degli stessi.
A seguire una descrizione dello strato RDF Middleware con una breve trattazione delle
principali funzionalità offerte come supporto al database e una discussione sul noto
linguaggio di interrogazione SPARQL.
RDF (Triplestore) Database
6
Capitolo 1
Web Semantico
Già nel 1998 Tim Berners-Lee, professore di Computer Science alla Southampton
University e direttore del World Wide Web Consortium (il celebre W3C), si era reso conto
dei problemi che l’attuale struttura di Internet pone al reperimento dell’informazione
desiderata, scrivendo la sua “Semantic Web Road Map”.
Il termine Web Semantico è stato proposto per la prima volta nel 2001 da Berners-Lee. Da
allora il termine è stato associato all’idea di un Web nel quale agiscano agenti intelligenti
(creati senza ricorrere all’intelligenza artificiale ad alti livelli), cioè applicazioni in grado
di comprendere il significato dei testi presenti sulla rete e perciò in grado di guidare
l’utente direttamente verso l’informazione ricercata, oppure di sostituirsi a lui nello
svolgimento di alcune operazioni [10].
Nella prima decade della sua vita il Web è stato un medium di sola lettura: un grande
repository dal quale ricevere informazioni. La seconda decade ha visto invece la diffusione
di servizi che lo hanno trasformato in un medium di scrittura. Attraverso blog e social
network i navigatori si sono convertiti da spettatori in attori, iniziando a pubblicare
informazioni e opinioni: è il cosiddetto Web 2.0, il Web della partecipazione. Nella terza
decade, iniziata da poco, le informazioni disponibili on-line stanno diventando
comprensibili anche ai calcolatori, le cosiddette risorse “machine-understandable”, in
modo da poter essere collegate tra loro e riutilizzate sotto altre forme (dando vita a nuove
informazioni) tramite strumenti automatici.
RDF (Triplestore) Database
7
Con “passaggio al Web Semantico” Berners-Lee vuole intendere la trasformazione della
rete in un ambiente dove è possibile pubblicare non più solo documenti e dati ( pagine
HTML, immagini, file multimediali,documenti office, ecc…) ma anche quelle
informazioni che descrivono i dati stessi (metadati) fondamentali per determinarne il
risultato e racchiuderli in una rete semantica che li metta in relazione.
Il tutto in un formato standard adatto all’interrogazione, interpretazione e,più in generale,
all’elaborazione elettronica.
Lo scopo è, in pratica, creare un grande reticolato di dati, in fondo non molto dissimile
dalle reti neurali del cervello, dal quale è possibile desumere il legame semantico tra una
parola ed un’ altra, e reperire risorse e più in generale informazioni.
1.1 L’architettura del Web Semantico
Il Web Semantico, vista la necessità di garantire una visione sintetica ma allo stesso tempo
“modulare” del problema, può essere strutturato come un diagramma piramidale, dove
ciascun livello racchiude in sè le metodologie e i linguaggi che caratterizzano quel
particolare standard.
Analizzando il diagramma nel dettaglio, con una prospettiva dal basso, possiamo notare
l’esigenza di assicurare un meccanismo di identificazione e acceso univoco alle risorse
tramite una stringa compatta di caratteri, protocollo Internet chiamato URI (Uniform
Resource Identifier) [9] e l’impiego di un sistema di codifica,detto UNICODE, che
assegna un numero unico ad ogni carattere usato per la scrittura di testi indipendentemente
dalla lingua e dalla piattaforma informatica utilizzata [10].
Il passo successivo all’identificazione tramite URI è l’XML (eXtensible Markup
Language) , un linguaggio di marcatura che permette di esplicitare la struttura, quindi la
sintassi, di un documento in modo formale mediante marcatori (mark-up) che vanno
inclusi all’interno del testo, conferendo, quindi, quella proprietà di interoperabilità
sintattica che è alla base dello scambio dei dati tra diverse applicazioni [5].
Per definire la struttura di un documento XML, o più precisamente la grammatica che tale
RDF (Triplestore) Database
8
documento deve rispettare, esistono linguaggi come XML-Schema, i quali esprimono
vocabolari condivisi e strumenti per eseguire la validazione del documento XML
limitandosi a descrivere i dati, senza entrare nel merito della semantica contenuta.
Figura 1.1 : Architettura del Semantic Web
Per colmare le lacune che impediscono alla macchina di interpretare l’informazione
semantica, occorre risalire al livello successivo: RDF (Resource Description Framework).
RDF è lo strumento base per la codifica, lo scambio e il riutilizzo di metadati strutturati, e
consente l’ interoperabilità tra applicazioni che si scambiano sul Web informazioni
machine-understandable [13].
L'unità base per rappresentare un'informazione secondo il modello RDF è lo statement.
Uno statement è una tripla del tipo Soggetto – Predicato – Oggetto, dove il soggetto è una
risorsa, il predicato è una proprietà e l'oggetto è un valore (e quindi anche un URI che
punta ad un'altra risorsa).
Poichè RDF manca di una semantica formale e risulta troppo debole per descrivere in
sufficiente dettaglio le risorse, allo scopo di potenziarne l’espressività si utilizzano le
cosiddette ontologie.
RDF (Triplestore) Database
9
Le ontologie sono utilizzate nel Web Semantico per dare una formalizzazione ai dati
presenti su Internet in modo da garantirne l’interoperabilità e la comprensione da parte di
applicazioni diverse.
Essa è una sorta di “stadio preliminare” di una “base di conoscenza”, il cui obiettivo è la
descrizione dei concetti necessari a “parlare” di un certo dominio.
Nello specifico, in questo lavoro di tesi, approfondiremo l' OWL, un vocabolario XML
che consente di definire classi, proprietà e relazioni. A differenza dell’ RDF Schema, che
estende, OWL aumenta le inferenze che un software è in grado di compiere. Utilizzando
OWL è possibile riconoscere che due parti di un documento stanno descrivendo la stessa
realtà, utilizzando però una terminologia diversa.
Infine un accenno alle componenti del Web Semantico ancora in fase di sviluppo e
progettazione che nei prossimi anni potrebbero illustrare la via da seguire per la
rappresentazione della conoscenza on-line, in modo ordinato ed efficiente, attraverso:
- Linguaggi logici universali, linguaggi universali fatti di euristiche - vale a dire di
procedimenti che consentono di prevedere dei risultati – mediante i quali le asserzioni
esistenti sul Web potranno essere utilizzate per derivare nuova conoscenza. Persone in
tutto il mondo possono scrivere istruzioni logiche, quindi la macchina può seguire
questi link "semantici" per costruire dimostrazioni. Tuttavia, si tratta di un fattore
ancora in fase embrionale, dal momento che tale linguaggio universale ancora non
esiste.
- Firma Digitale, basata su lavori in matematica e in crittografia,rappresenta il
meccanismo alla base dell’ autenticazione dei documenti digitali, componente di
rilievo che interessa diversi strati dell’architettura del Web Semantico. La Firma
Digitale consentirebbe di accertare la provenienza delle ontologie e delle deduzioni,
oltre che dei dati RDF presenti sul Web garantendo, ad esempio, che una determinata
persona ha scritto un determinato documento o un’istruzione; in questo modo, gli
utenti che reperiranno tali documenti o istruzioni potranno essere sicuri della loro
autenticità.
RDF (Triplestore) Database
10
- Trust (Fiducia) e Proof (Dimostrazioni), vista l’enorme mole di informazioni
presente sul Web, risulta fondamentale che l’utente stesso possieda i meccanismi
necessari per distinguere i dati affidabili da quelli inattendibili stabilendo il suo
personale livello di fiducia. L’informazione sul livello di fiducia o Trust dei dati può
assumere una forma esplicita (questo dato viene dalla fonte x e x fa parte dell’elenco
delle fonti che io considero attendibili), oppure può essere ricavata in modo
automatico attraverso Smarts Agents basati sulle tecnologie del Semantic Web (questo
dato viene dalla fonte x,x non fa parte dell’elenco delle fonti che io ritengo attendibili,
però si trova nell’elenco delle fonti attendibili dalla persona y, che io considero
fidata).
Questa deduzione o inferenza può essere più o meno complessa e non facilmente
prevedibile a priori. Tale risultato potrà essere raggiunto soltanto attraverso il livello
Proof, ovvero la dimostrazione della logica inferenziale che sottende al ragionamento
dell’agente.
1.2 XML
Attualmente il Web è un enorme contenitore di informazioni e l’utilizzo del linguaggio
HTML ne ha facilitato sicuramente lo sviluppo.
Si tratta tuttavia di un linguaggio che ha come unico obiettivo quello di curare la
formattazione grafica dei documenti del Web e non fornisce nessun supporto per
strutturare e descrivere le informazioni in esse contenute, dal punto di vista semantico.
Insieme al protocollo HTTP (HyperText Transport Protocol), HTML ha rivoluzionato
il modo in cui le persone inviano e ricevono informazioni, ma lo scopo principale per
cui è stato realizzato è la visualizzazione dei dati.
Negli ultimi anni, tuttavia, il notevole sviluppo del Web ha portato la necessità di
avere dei linguaggi e degli strumenti che permettano il recupero intelligente dei dati e
di organizzarli efficientemente,dal punto di vista logico e semantico.
In questa prospettiva si inserisce XML - Extensible Markup Language –
metalinguaggio che permette di creare e di definire sintatticamente dei linguaggi
RDF (Triplestore) Database
11
personalizzati di markup.
Si tratta di un linguaggio aperto e basato su testo, che in termini pratici consente di
esplicitare la struttura di un documento dal punto di vista sintattico attraverso
marcatori all’interno del testo, rendendolo,quindi, comprensibile alle macchine oltre
che all’uomo.
Un documento XML è organizzato secondo una struttura logica ad albero e non
presenta un insieme predefinito di elementi, ma permette di crearne dei nuovi a
seconda delle esigenze.
Esiste un elemento radice che deve essere necessariamente presente, ogni elemento
può avere dei figli, è composto da un tag di apertura e da un tag di chiusura, gli
attributi vengono elencati all’interno del tag di apertura,sono opzionali e non si ha un
limite massimo nella loro quantità.
La definizione della sintassi di un documento XML passa anche dalla definizione dei
suoi due componenti principali:
- XML Schema: permette di definire la struttura, il contenuto e la semantica
di documenti XML. Consente una tipizzazione dei dati sistematica,ovvero
permette di definire un vocabolario XML che può essere utilizzato per
descrivere documenti XML facendo ricorso sempre alla stessa sintassi.
Documenti conformi allo standard possono essere covalidati come schemi validi
- Namespace XML: è una raccolta di nomi identificati da un’ URI, utilizzata
nel documento XML, nel momento in cui ci si riferisce ad un certo
elemento,eliminando il rischio di ambiguità.
Il linguaggio XML può anche essere utilizzato come mezzo di trasmissione dei dati
tra differenti applicazioni che supportano l’accesso ad un database.
Attualmente XML si configura come il linguaggio padre di molti linguaggi di Markup,
come ad esempio RDF e OWL, le due componenti centrali dell’architettura del Web
Semantico che illustreremo in seguito.
RDF (Triplestore) Database
12
1.3 RDF
RDF – Resource Description Framework – è un formalismo figlio di XML progettato con
l’obiettivo di aggiungere meta-informazioni ai documenti Web e in generale alle risorse
on line. In questa direzione, RDF permette l’aggiunta di semantica ai contenuti e ai
documenti del Web, senza fare alcuna assunzione sulla sua struttura.
RDF contribuisce alla costruzione della struttura semantica all’interno dei documenti,
superando il limite maggiore di XML che, pur essendo un linguaggio potentissimo per la
strutturazione dei documenti e per la creazione di applicazioni, permette soltanto
l’organizzazione delle informazioni all’interno di un documento e non dice nulla sul
significato del relativo contenuto.
In linea generale, Resource Description Framework è una cornice, un framework che
stabilisce in che modo l’informazione possa essere rappresentata sul Web : “RDF is a
foundation for processing metadata; it provides interoperability between applications that
exchange machine-processable information on the web. Basically RDF defines a data
model for describing machine-processable semantics in data” [14].
RDF fornisce un modello molto semplice, detto RDF Data Model and Sintax, basato su tre
tipi di oggetti o elementi costitutivi:
- Risorsa (Resource): ogni oggetto è sempre identificato attraverso un URI,
eventualmente con un anchor ID. Questo include pagine o siti web, elementi XML
all’interno del documento sorgente, potrebbe anche essere un oggetto non direttamente
accessibile via Web (per es. un libro, un dipinto, etc.).
- Proprietà (Property): descrive un aspetto specifico, caratteristica, attributo o
relazione utilizzata per descrivere una risorsa. Ogni proprietà possiede un proprio
significato, definisce i valori ammissibili, il tipo di risorse che può descrivere e le
relazioni che possono instaurarsi con altre proprietà.
- Asserzioni (Statement): ogni risorsa specifica con una proprietà ed il valore che atale
proprietà assume, costituisce un’asserzione RDF.
Un’asserzione è basata su triple: soggetto (risorsa da descrivere), predicato (proprietà),
RDF (Triplestore) Database
13
oggetto (affermazione).
In altre parole un oggetto O ha proprietà P con valore V e tale situazione può essere
sintetizzata nella relazione P(O)=V oppure P(O,V).
Graficamente, ognuna delle triple costituenti la struttura di base di ogni espressione RDF
viene rappresentata mediante grafo etichettato e orientato, in cui le risorse vengono
identificate come nodi (graficamente delle ellissi), le proprietà come archi orientati
etichettati, e i valori corrispondenti a sequenze di caratteri come rettangoli.
Ogni tripla rappresenta una dichiarazione di relazione tra gli elementi denotati tra i nodi
che sono collegati nella tripla.
Figura 1.2 : Rappresentazione grafica triple RDF
Un grafo RDF è comprensibile all’uomo, ma non alle macchine. Per questo ogni grafo
necessita di un processo di serializzazione.
La serializzazione è il processo di conversione di un oggetto in un form che può essere
immediatamente trasportato. È possibile, ad esempio, serializzare un oggetto e trasportarlo
in Internet mediante HTTP tra un client e un server. Il processo inverso, la
deserializzazione, invece, ricostruisce l'oggetto dal flusso.
Le principali serializzazioni adottabili per un grafo RDF sono:
- XML: il grafo RDF è serializzato con sintassi XML
RDF (Triplestore) Database
14
- N-TRIPLE: si serializza il grafo come un insieme di triple
soggetto - predicato - oggetto
- N3: si serializza il grafo descrivendo, una per volta, una
risorsa e tutte le sue proprietà
1.4 RDF Schema
Il data model RDF permette di definire un modello semplice per descrivere le
relazioni tra le risorse, in termini di proprietà identificate da un nome e relativi valori.
Tuttavia, RDF data model non fornisce nessun meccanismo per dichiarare queste
proprietà, né per definire le relazioni tra queste proprietà ed altre risorse.
RDF Schema permette di definire dei vocabolari, quindi significato, caratteristiche e
relazioni di un insieme di proprietà, compresi eventuali vincoli sul dominio e sui valori
delle singole proprietà.
Inoltre, implementando il concetto (transitivo) di classe e sottoclasse,consente di
definire gerarchie di classi, con il conseguente vantaggio che agenti software
intelligenti possono utilizzare queste relazioni per svolgere i loro compiti.
In RDFS il sistema delle classi e delle proprietà è simile a quello dei linguaggi di
programmazione orientati agli oggetti, come Java o C++, dai quali differisce nel fatto che
invece di definire le classi in termini delle proprietà che le istanze possono avere, descrive
le proprietà in termini delle classi delle risorse a cui si applicano.
Le classi e le proprietà definite sono le seguenti:
- rdf:Resource: rappresenta una risorsa generale, cioè tutto ciò che può essere
referenziato univocamente (tramite una URI).
- rdf:property: sono risorse usate come predicati in una tripla. RDF considera una
proprietà come una classe, e non come un semplice attributo ad essa.
- rdf:Statement: uno statement rappresenta la concretizzazione di una tripla. È necessario
che una risorsa abbia le proprietà rdf:subject, rdf:object e rdf:predicate istanziate con le
corrispondenti risorse, e la proprietà rdf:type istanziata con il filler rdf:Statement.
- rdfs:subPropertyOf: serve ad indicare che una proprietà è sottoproprietà di un’altra,
RDF (Triplestore) Database
15
vale a dire che se la risorsa X è legata alla risorsa Y attraverso una proprietà P che è una
subPropertyOf di una proprietà Q, allora vale la tripla T(X, Q, Y).
- rdfs:Class, rdf:type, rdfs:subClassOf: le classi sono risorse che individuano insiemi
di risorse per mezzo del costrutto rdf:type (con filler corrispondente ad una classe).
Tutte le proprietà, al contrario, utilizzano il costrutto rdf:type con filler rdf:Property.
Il costrutto rdfs:subClassOf esprime la possibilità di definire delle gerarchie di
proprietà o di classi.
- rdfs:domain, rdfs:range: tali proprietà sono utilizzate per restringere l’insieme delle
risorse che possono avere una certa proprietà (dominio delle proprietà) e l’insieme dei
valori ammissibili (codominio della proprietà).
- rdfs:Literal: indica un insieme di literal, ossia di valori (stringhe, interi, ecc) che
possono essere assegnati ad una risorsa tramite una proprietà.
- rdfs:Container: serve per definire un contenitore di risorse, e prevede l’utilizzo di una
delle tre diverse sottoclassi, rdfs:Bag, rdfs:Seq e rdf:Alt.
- rdfs:ConstraintResource, rdfs:ContraintProperty: rappresentano i vincoli connessi
alle risorse e le proprietà.
- rdfs:seeAlso, rdfs:isDefinedBy: indicano rispettivamente il riferimento ad un ulteriore
luogo in cui la risorsa è descritta e i riferimenti alle informazioni di authoring della
risorsa.
- rdfs:label, rdfs:comment: questi costruttori servono a descrivere una risorsa in un
formato di facile comprensione per gli esseri umani.
1.5 OWL
Mentre il linguaggio XML ha rappresentato un passaggio fondamentale in direzione della
interoperabilità sintattica, assicurando una sintassi di superfice per la rappresentazione di
dati anche molto diversi tra loro, RDF ha assicurato una maggiore interoperabilità
semantica,tale da permettere che il significato di un documento RDF , processabile dalla
macchina, sia indipendente dal software.
RDF (Triplestore) Database
16
Tra i vantaggi di RDF, quello più rilevante consiste nella possibilità di consentire la
costruzione e l’impiego delle ontologie,quindi di vocabolari in grado di descrivere
formalmente il significato della terminologia utilizzata nei documenti web,necessari alle
macchine per l’eleaborazione delle informazioni.
Se si prevedono macchine per eseguire compiti di ragionamento utili su questi documenti,
il linguaggio deve andare oltre la semantica di base di RDF Schema.
L’ontologia in ambito informatico è stata definita ufficialmente da Gruber nel 1993 in
questo modo :
“an explicit specification of a conceptualization” [7].
“una specializzazione esplicita di una concettualizzazione”
L’ontologia, quindi, descrive il modo in cui diversi concetti vengono combinati in una
struttura dati contenente tutte le entità rilevanti e le loro relazioni all’interno di un
dominio.
Il ruolo svolto dal linguaggio ontologico OWL (Web Ontology Language) è quello di
arricchire ulteriormente il vocabolario per descrivere proprietà e classi, relazioni tra classi
(ad es. disgiunzione), cardinalità (ad es. “esattamente uno”), uguaglianza, tipi più ricchi
delle proprietà, caratteristiche di proprietà (ad es. simmetria) e classi enumerate[7].
OWL fornisce tre sottolinguaggi sempre più espressivi progettati per l'utilizzo da parte di
determinate comunità di sviluppatori e utenti.
- OWL Lite: supporta quegli utenti che necessitano in primo luogo di una gerarchia di
classificazione e di vincoli semplici ,ad esempio esso consente solo valori di
cardinalità 0 o 1 e non permette di utilizzare contemporaneamente la sintassi OWL e la
sintassi RDF. Una nuova classe può essere definita da zero oppure partendo da altre
due classi, ma solamente con il costrutto IntersectionOf.
- OWL DL: supporta quegli utenti che vogliono la massima espressività, pur
mantenendo la completezza e la decidibilità. OWL DL comprende tutti i costrutti del
linguaggio OWL, ma può essere utilizzato solo in determinate restrizioni (per esempio,
mentre una classe può essere una sottoclasse di molte classi, una classe non può essere
un'istanza di un'altra classe). OWL DL permette di definire le classi in maniera più
RDF (Triplestore) Database
17
complessa utilizzando i costrutti quali UnionOf, ComplementOf, IntersectionOf e
inoltre non esistono limiti sulla cardinalità delle proprietà.
- OWL Full : è pensato per gli utenti che vogliono la massima espressività e la libertà
sintattica di RDF senza le garanzie computazionali. Per esempio, in OWL Full una
classe può essere trattata contemporaneamente come un insieme di individui e come
un individuo a sé stante. OWL Full permette un'ontologia di aumentare il significato
del vocabolario predefinito (RDF o OWL). E 'improbabile che qualsiasi software di
ragionamento sarà in grado di sostenere un ragionamento completo per ogni
caratteristica di OWL Full
Figura 1.3: Vista insiemistica OWL
RDF (Triplestore) Database
18
Capitolo 2
Database Triplestore
Un Triplestore è un database impiegato per la memorizzazione e il recupero di dati RDF.
A differenza di un database relazionale, esso fornisce un meccanismo per uno stoccaggio
persistente dei dati rappresentati mediante triple RDF, quindi nella forma soggetto-
predicato-oggetto, e metodi di accesso e recupero basati su dei linguaggi di interrogazione,
nel nostro caso SPARQL.
Dal punto di vista architetturale, i triplestore possono essere divisi in 3 categorie:
- In-memory: memorizzano il grafo RDF nella memoria principale. Memorizzare tutto
in memoria centrale non può essere un metodo serio per memorizzare volumi di dati
estremamente elevati.Tuttavia, essi possono agire come un utile punto di riferimento e
possono essere utilizzati per eseguire alcune operazioni come il “caching data” da siti
remoti o per eseguire inferenze.
La maggior parte dei triplestore in-memory sono ragionatori efficienti, di grande aiuto nel
risolvere il problema di come eseguire inferenze nei database RDF persistenti, che
altrimenti può risultare molto difficile da eseguire.
- Native: una seconda categoria ora dominante è quella dei triplestore nativi. Essi
implementano un database engine completo partendo da zero, ottimizzato per
l’elaborazione di dati RDF ed opera indipendentemente da ogni altro Database
Management System (DBMS). I dati sono memorizzati direttamente sul file system.
Recentemente, i triplestore nativi, grazie ai lori tempi di caricamento e ad
un’ottimizzazione sempre più efficiente dei dati RDF stanno vedendo incrementata la loro
RDF (Triplestore) Database
19
popolarità.
- Non-native, non-memory: triplestore impostati per essere eseguiti su database di terze
parti (Jena SDB), usufruiscono delle funzionalità di archiviazione e recupero dei DBMS
esistenti. In questo modello, infatti, la memorizzazione di dati RDF in un database
relazionale richiede un’appropriata tabella di design, che può avere due forme:
- “Generic Schemas” : triplestore con una sola tabella richiesta nel database contenente tre
colonne denominate soggetto, predicato e oggetto, riflettendo in questo modo la triplice
natura degli statement RDF e mettendo quindi in risalto una rappresentazione verticale per
la memorizzazione di oggetti in una tabella.
Il più grande vantaggio di questo schema è che non è richiesta alcuna ristrutturazione
se cambia l’ontologia. L'aggiunta di nuove classi e proprietà per l'ontologia può essere
realizzato tramite un semplice comando INSERT nella tabella. D'altro canto, l'esecuzione
di una query non banale comporta una ricerca nell’intero database e quindi un numero
elevato di self-joins necessarie per soddisfare la richiesta. Un ulteriore aspetto negativo
risiede nel fatto che la strutturazione gerarchica delle classi non può essere modellata, di
conseguenza il lavoro di interrogazione interesserà tutte le istanze di una classe diventando
piuttosto oneroso.
- “Ontology-specific Schemas”: uno schema che riflette le proprietà strutturali delle
ontologie in atto e i loro cambiamenti. Seguendo una prospettiva orizzontale, anche detta
“one-table-for-class schema”, lo schema di base consiste di una tabella con una colonna
per l’identificativo dell’istanza, una colonna per il nome della classe corrispondente e una
per ciascuna proprietà dell’ontologia. In questo modo ogni riga della tabella corrisponde
ad un’istanza.Lo svantaggio principale di tale approccio è quello di ristrutturare le tabelle
del database ogni volta che cambia l’ontologia e, inoltre, manca il sostegno per valori
multipli della proprietà.
Un altro approccio consiste in una visione verticale dello schema, che si traduce nel
modello “one-table-for-property schema”, detto anche “Decomposition storage model”.
In questo schema per ogni proprietà viene creata una tabella con due colonne (soggetto e
oggetto). Anche altre proprietà di RDF sono memorizzate in queste tabelle, ad esempio, la
RDF (Triplestore) Database
20
tabella per “rdf: type” contiene le relazioni tra le istanze e le loro classi.
Lo svantaggio di questo modello è l’inefficienza delle query quando si tratta di query
complesse perché richiede molti join tra le tabelle proprietà.
- “Hybrid Schemas”: sono più comuni e combinano i vantaggi di entrambi i modelli.
Figura 2.1: Principali Triplestore esistenti
Name Developed
in language
Homepage Licence
4store C www.4store.org GPLv3
AllegroGraph Common
Lisp
www.franz.com/agraph/allegrograph Commercial
Free
BigData Java www.bigdata.com GPLv2
Commercial
BigOwlim Java www.ontotext.com/owlim Commercial
GNU LGPL
Apache Jena Java jena.apache.org Apache2
Mulgara Java www.mulgara.org Open
Software
OpenLink
Virtuoso
C virtuoso.openlinksw.com GPLv2
Commercial
Oracle Java
PL/SQL
www.oracle.com/technetwork/database-
options/spatialandgraph/overview/rdfsemant
ic-graph-1902016.htm
Commercial
Free
Parliament Java,C++ parliament.semwebcentral.org BSD license
Redland C librdf.org Apache
LGPL
Sesame Java www.openrdf.org BSD-style
license
RDF (Triplestore) Database
21
Nella figura 2.2 vengono invece evidenziate le specifiche tecniche dei triplestore,
il supporto a SPARQL e le application programming interface (API) disponibili.
Figura 2.2: Specifiche Tecniche dei Triplestore
Nome
Native
Storage
Native
SPARQL
support
Native
SPARQL/Update
support
Native
SPARQL
Protocol
Endpoint
Native
API’s
4store Triplestore √ √ √ Command line
only
AllegroGraph Graph √ √ For most modern
programming
languages
BigData Triplestore √ √ √ Java
Jena Tuplestore √ √ √ Java
Mulgara 3rd party √ Java or Rest
API
Ontotext
OWLIM
3rd party √ √ √ Java
Open Link
Virtuoso
Relational √ √ For most modern
programming
languages
Oracle DB
Enterprise Ed
Object-
Relational
For most modern
programming
languages
Parliament 3rd party √ √ √ Java or C++
Sesame 3rd party √ Java
RDF (Triplestore) Database
22
2.1 Scalabilità e performance di un triplestore
La commercializzazione di ogni sistema, in termini di archiviazione e recupero dei dati, si
focalizza maggiormente sulla scalabilità del database, come metrica principale di
valutazione e sui tempi di caricamento.
Le prestazioni di un triplestore RDF dipendono da diversi fattori: l’architettura di database
sottostante essendo spesso costruiti su architetture distribuite o cluster, la rappresentazione
nel database di uno schema RDF con le sue istanze, l'efficienza del motore di ricerca e le
prestazioni del motore di inferenza. Effettuando una panoramica dettagliata dei vari
triplestore in commercio possiamo notare alcuni spunti interessanti.
L’enfasi attuale sullo sviluppo dei triplestore nativi può essere giustificata dalle
performance superiori in termini di scalabilità che contraddistinguono triplestore come
Mulgara,Virtuoso e Sesame.
La mancanza di una API appropriata mette in risalto l’incapacità di Mulgara e Virtuoso di
caricare grandi dataset (>1Milione di triple), il problema non è tanto nell’assenza di
scalabilità , ma nell’impossibilità per le API di maneggiare grandi set di dati.
Queste API lavorano in maniera efficace quando usate per funzioni di accesso ed
interrogazione di database già esistenti ma conducono ad errori di memoria quando
utilizzate per caricare dati.
La documentazione relativa a Mulgara e Virtuoso evidenzia come la modalità preferita per
caricare grandi dataset sia quella di utilizzare appositi caricatori, attraverso i quali,
secondo ricerche effettuate, Mulgara può arrivare a memorizzare circa 500 milioni di triple
mentre Virtuoso all’incirca 15 miliardi di triple.
Il database nativo Sesame garantisce prestazioni migliori, grazie alla disponibilità di
un’API insita nel pacchetto e, utilizzando il Lehigh University Benchmark (LUBM), si è
riusciti ad aggiungere un dataset costituito da circa 70 milioni di triple RDF.
L’ultimo caso che trattiamo è quello di Jena SDB, componente di Jena che permette lo
storage e il recupero di triple RDF su database convenzionale SQL o altri database
supportati, sia open source che privati. Jena SDB è in grado di caricare grosse mole di dati,
dell’ordine dei 650 milioni di triple, ma è molto più lento. Può essere acceduto e gestito
RDF (Triplestore) Database
23
con uno script a linea di comando e può essere visto come un semplice caricatore che
realizza,per terze parti, funzioni di caricamento.
Per quanto riguarda il tempo di caricamento,in linea generale, ci accorgiamo che uno
specifico schema onotologico nella sua forma ibrida si comporta meglio per quanto
riguarda i tempi di esecuzione delle query rispetto a delle query tassonomiche con uno
schema generico, dimostrando tutta la debolezza degli schemi generici. Tuttavia, vi è
sempre un trade-off tra i tempi di esecuzione delle query e le spese generali dovute
all'evoluzione dell’ontologia e alla gestione delle tabelle: schemi ontologici specifici
soffrono di un numero potenzialmente elevato di tabelle, e della necessità di modificare lo
schema del database ogniqualvolta aggiungiamo o eliminiamo una classe o una proprietà
in un’ontologia.
Un metodologia appropriata e un set di strumenti efficaci per la valutazione del Semantic
repository Web nel suo complesso, è il Lehigh University Benchmark (LUBM). Sebbene
stia focalizzando l’attenzione maggiormente sulle applicazioni OWL, il LUBM può essere
applicato alla maggior parte dei triplestore.
LUBM fornisce i mezzi per generare un insieme di dati di test di grandi dimensioni, 14
query scritte in SPARQL, un supporto per i diversi gradi di ragionamento, nonché
molteplici metriche di performance per i tempi di caricamento, dimensione del repository,
tempo di risposta alle query,completezza e solidità della query.
2.2 RDF Middleware
Ciò che chiamiamo RDF middleware è lo strato d’implementazione relativo all'accesso
all’archivio fisico dei dati RDF. Oltre ad un meccanismo di inferenza, il livello di accesso
dovrebbe fornire funzioni per la creazione, l'esecuzione di query, l’esportazione di dati in
un file di scambio e la cancellazione dei dati in archivio.
Mentre l'aggiunta di dati richiede l'analisi e, idealmente, una convalida degli statement
RDF in arrivo, l’interrogazione del triplesore necessita dell’implementazione di qualche
tipo di linguaggio di interrogazione, nonché di una interpretazione e una traduzione di
questo linguaggio di query in chiamate al database RDF fisico.
RDF (Triplestore) Database
24
2.2.1 Interrogazione dei dati
Per formulare una query ad un triplestore ci sono diversi approcci:
- Implementazione di una API di interrogazione proprietaria
- Implementazione di un linguaggio di query
Le API proprietarie di query stanno definendo un formato proprio per le query dove la
costruzione di una query SQL viene fatta attraverso algoritmi di traduzione dei vari campi
di una tabella.
Un'altra possibilità è quella di creare un proprio linguaggio di query, ad esempio, RQL,
RDQL o SPARQL adoperati dalla maggior parte dei database RDF.
Questo comporta quindi l'implementazione di un dispositivo detto “Parser” che analizza la
sintassi di questo linguaggio di interrogazione, attua una separazione della query nelle sue
componenti, verificandone la correttezza, e ogni singolo “pezzo” della query viene
identificato e memorizzato in una strttura interna.
Quindi tramite un passaggio intermedio viene tradotta la query analizzata in un calcolo
relazionale, un grafico o in un modello a oggetti per catturare la semantica della query.
Dopo di che, la query SQL è formalizzata e inviata al database.
La sintassi della query SQL creata di solito dipende fortemente dall’architettura DBMS
sottostante. Questo è il motivo per cui è opportuna la realizzazione di uno strato
intermedio aggiuntivo che vada a risolvere l’eterogeneità implementando il meccanismo
della memorizzazione effettiva e le relative funzioni di recupero e di stoccaggio.
Un aspetto importante per l'accesso ai dati è l'ottimizzazione delle query.
Lo scopo del processo di ottimizzazione della query e' produrre un "piano di esecuzione"
il piu' possibile efficiente, basandosi su quanto e' specificato nella struttura interna al
motore di database contenente le varie componenti della query in esame.
Può essere lasciata al sistema di database, considerata la sofisticata valutazione e i
meccanismi di ottimizzazione dei moderni RDBMS, e risulta una caratteristica
particolarmente interessante nel caso in cui il motore di query deve essere indipendente
dall’architettura di archiviazione sottostante come nel caso di Sesame.
RDF (Triplestore) Database
25
2.2.2 Aggiunta, cancellazione ed esportazione dei dati
Aggiungere dati in un triplestore può essere realizzato grazie alla creazione di nuovi
concetti, proprietà o istanze in memoria principale utilizzando le cosiddette API e
chiamando quindi una funzione per memorizzarli nella base di conoscenza.
Un'altra possibilità è la lettura di dati RDF da un file o da una fonte on line, peculiarità
utilizzata da tutti i triplestore in quanto è una caratteristica fondamentale per il
caricamento di un'ontologia. La lettura di dati RDF richiede un dispositivo RDF per la
lettura degli statement e per la loro mappatura su un modello a oggetti o direttamente in
uno schema del database.
La maggior parte dei sistemi utilizza un analizzatore sintattico che legge la notazione
RDF/XML, ad esempio, ARP (Another Parser RDF), che è parte del toolkit Jena, o
Raptor RDF.
Facoltativamente, un validatore RDF può essere utilizzato per controllare i dati in entrata
ai fini di una correttezza e di una corrispondenza con gli schemi già caricati. In questo
caso, gli schemi dovrebbero essere caricati prima delle istanze.
Le operazioni di eliminazione nei triplestore devono essere maneggiate con molta
attenzione. Mentre la pulizia completa del negozio è una pratica abbastanza semplice,
eliminare dichiarazioni singole può comportare la cancellazione di altri prospetti correlati.
Ciò richiede, quindi, non solo un ricalcolo e una chiusura deduttiva per il triplestore, ma
anche un meccanismo per la manutenzione della correttezza.
Per scambiare dati con altri sistemi è necessario un meccanismo di esportazione.
La maggior parte degli RDF store implementa tale funzione di esportazione la quale
permette di serializzare l'ontologia e l'istanza di dati dall'archivio RDF in un file. I formati
comuni per la serializzazione di RDF sono N-Triple, N3 e la notazione RDF/XML.
RDF (Triplestore) Database
26
2.3 Linguaggi di Query RDF
Come accennato nel paragrafo precedente, l'uso di linguaggi di query è il modo più
comune di interagire con un triplestore. In questa sezione, analizzeremo quali sono le
proprietà che un linguaggio di query dovrebbe avere per interrogare dati semistrutturati, e
in particolare per RDF, e ciò che lo differenzia dai metodi esistenti, come SQL. Tra le
varie proposte di linguaggi di interrogazione, in particolare, descriveremo il linguaggio di
query SPARQL più nel dettaglio.
Siamo in grado di identificare diverse proprietà generali con cui si possono caratterizzare i
linguaggi di interrogazione. Qui, esaminiamo sei di queste proprietà.
- Espressività: l’espressività quantifica come delle query complesse possono essere
formulate in una specifico linguaggio. Idealmente, un linguaggio di query dovrebbe essere
espressivo a sufficienza da consentire il recupero di qualsiasi combinazione arbitraria di
valori dal modello interrogato risultando quindi conforme al suo modello dei dati.
Solitamente, l’espressività si limita a controllare altre proprietà, come la sicurezza, e a
consentire una efficiente (e ottimizzabile) esecuzione di query.
- Chiusura: la proprietà di chiusura richiede che i risultati di un'operazione di query
siano ancora elementi in linea con il modello dei dati. Ciò significa che se un linguaggio di
query opera su un modello di dati grafico, i risultati della query dovrebbero ancora una
volta essere dei grafici.
- Adeguatezza: un linguaggio di query è detto adeguato se usa tutti i concetti del
modello dei dati sottostante. Questa proprietà va a completare pertanto la proprietà di
chiusura: per chiusura, intendiamo che un risultato della query non deve essere al di fuori
di un determinato modello dei dati, per adeguatezza,invece, la necessita di utilizzare
l'intero modello di dati.
- Ortogonalità: l'ortogonalità di un linguaggio di query richiede che tutte le operazioni
possono essere utilizzate indipendentemente dal contesto d'uso.
- Sicurezza: un linguaggio di query è considerato sicuro, se ogni query,sintatticamente
corretta, ritorna un insieme finito di risultati. Classici concetti che denotano dei rischi
nell’uso dei linguaggi di interrogazione sono la ricorsione e la negazione.
RDF (Triplestore) Database
27
2.3.1 Perché non SQL?
Per dati strettamente relazionali (al contrario dei dati semistrutturati), SQL è di gran lunga
il linguaggio di query maggiormente utilizzato, caratterizzato da un supporto per la
memorizzazione dei dati di grandi dimensioni, schemi di indicizzazione efficienti,
ottimizzazione delle query,etc. Sarebbe quindi interessante l’ipotesi di poter impiegare
questa tecnologia robusta e ampiamente disponibile per i nostri scopi di interrogazione di
dati semistrutturati. Sfortunatamente, questo può essere fatto solo a costo di un grande
divario tra il modello di dati nel repository (es. RDF) e il modello di dati sul quale si basa
il linguaggio di interrogazione (modello relazionale).
Questo perchè, come primo passo, dovremmo codificare il modello dei dati XML nel
modello relazionale assegnando ad ogni nodo dell’ albero XML un identificatore univoco
nel database relazionale che va a collegare tale nodo con tutti i suoi discendenti e attributi.
Successivamente, le maggiori difficoltà le troviamo quando interroghiamo la struttura
XML: ogni query XML deve essere compilata in una query SQL sulle tabelle relazionali
sottostanti. In genere, una singola query XML (ad esempio: 'restituire tutti i discendenti di
un dato nodo') viene tradotta in un insieme complesso di più query SQL dove non è
nemmeno chiaro se questo insieme sia finito o meno. Anche se, forse, attraente come
soluzione a breve termine, riteniamo che la soluzione più adeguata sia fornire quelle
determinate funzionalità per il modello di dati nativo (sia esso XML o RDF), invece di
basarsi su tecniche relative ad un modello di dati completamente diverso.
2.3.2 Livelli di Interrogazione
I documenti RDF e lo schema RDF possono essere considerati a tre livelli diversi di
astrazione:
1. A livello sintattico essi sono documenti XML
2. A livello strutturale si presentano come un insieme di triple RDF
3. A livello semantico sono costituiti da uno più grafi con una semantica parzialmente
predefinita.
RDF (Triplestore) Database
28
Nelle prossime sezioni analizzeremo brevemente pro e contro delle procedure di
interrogazione ad ogni livello.
Interrogazione al livello sintattico.
Come abbiamo visto in precedenza, i modelli RDF possono essere scritti su una notazione
XML. Sembra quindi ragionevole pensare di poter interrogare RDF utilizzando un
linguaggio di query XML (ad esempio XQuery5).
Tuttavia, questo approccio non tiene conto del fatto che RDF non ha solo una notazione
XML, ma ha una propria struttura dati che è diversa dalla struttura ad albero XML: mentre
XML è una struttura ad albero ordinata con etichettatura dei nodi, RDF è una struttura
grafica non ordinata e non etichettata.
Le tecniche di interrogazione XML non supportano funzionalità per trattare con una
differenziazione tra nodi ed etichette o con un’assenza di ordine.
Interrogazione a livello strutturale.
Estrando dalla sintassi, qualsiasi documento RDF si presenta come un insieme di
Triple dove ciascuna tripla rappresenta una dichiarazione nella forma soggetto-predicato-
oggetto. Sono stati proposti e implementati diversi linguaggi di query per l’interrogazione
di documenti RDF come insiemi di tali triple, che consentono di interagire con una
deternimata tripla ignorando le sue caretteristiche formali (ad esempio la relazione
transitiva rdfs:subClassOf).
Interrogazione a livello semantico.
Quando consideriamo i modelli RDF al livello semantico interroghiamo la piena
conoscenza di tutto ciò che il modello RDF comporta, e non solo quei fatti specifici
rappresentati in maniera esplicita.
Ci sono almeno due possibilità per raggiungere questo obiettivo:
1. Calcolare e memorizzare la chiusura deduttiva di un grafico come base per
l'interrogazione.
2. Lasciare che un processore di query deduca nuovi statement.
Resta il fatto che la maggior parte dei linguaggi di query RDF non hanno alcuna
funzionalità o semantica specifica per estrarre informazioni tra i dati e dallo schema.
RDF (Triplestore) Database
29
2.3.3 SPARQL
SPARQL (Simple Protocol And RDF Query Language) è un linguaggio per
l'interrogazione e il recupero dei dati espressi in RDF nonché un protocollo di accesso ai
dati per il Web Semantico, e il 15 gennaio 2008 è stato standardizzato dallo SPARQL
Working Group del W3C. SPARQL consiste di tre specifiche:
- SPARQL Query Language specification che costituisce il nucleo.
- SPARQL Query Results Format specification che descrive un formato XML per
serializzare il risultato di una query.
-SPARQL Protocol for RDF specification che definisce protocolli semplici HTTP e SOAP
per fare le query in remoto su basi di dati RDF: permette a un generico cliente di
interrogare uno o più endpoint SPARQL (interfaccia per gli utenti nella forma di
un’applicazione stand-alone oppure web-based) inviando una richiesta espresa nel
linguaggio di interrogazione e ricevendo come risposta il risultato in un formato XML.
Di fronte ad una grande quantità di documenti RDF pubblicata in rete, inizia a prendere
forma un Web leggibile per le macchine. In questo contesto è necessario disporre di un
meccanismo per individuare informazioni specifiche nel Web di Dati.
È in questo contesto che si colloca SPARQL.
I vantaggi principali di avere un linguaggio come SPARQL sono:
- fare le query a dei grafici RDF per ricevere informazioni specifiche.
- fare le query ad un server remoto RDF e ricevere indietro i risultati in streaming.
- eseguire delle query in automatico verso insiemi di dati RDF per generare resoconti.
Entrando più nell’aspetto sintattico,consideriamo a titolo di esempio, una semplice query
SPARQL:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?c
WHERE
{
?c rdf:type rdfs:Class .
}
RDF (Triplestore) Database
30
Questa query recupera tutti i modelli di triple in cui la proprietà è rdf: type e l'oggetto
è rdfs: Class. In altre parole, questa query, una volta eseguita, recupera tutte le classi.
Si noti che, come abbiamo visto in precedenza il meccanismo dei namespace per scrivere
RDF in XML, SPARQL ci permette di definire dei prefissi per i namespace e utilizzare
questi nel modello di query, per rendere le query più breve e più leggibile.
SPARQL non assume alcun impegno esplicito per supportare la semantica RDFS.
Pertanto, il risultato di una query dipende dall’opportunità o meno che il sistema
che sta rispondendo alla query supporti la semantica RDFS.
Le query SPARQL hanno una struttura del tipo SELECT-FROM-WHERE:
- SELECT specifica la proiezione: il numero e l'ordine dei dati recuperati.
- FROM viene utilizzata per specificare la risorsa interrogata, questa clausola è
facoltativa, quando non specificata possiamo semplicemente assumere che stiamo
interrogando la base di conoscenza di un particolare sistema.
- WHERE impone limitazioni sulle possibili soluzioni nella forma di template grafici e
vincoli booleani (in SPARQL usando una condizione di filtro).
Oltre a prevedere la clausola SELECT come in SQL, offre anche altri costrutti. E’
possibile infatti prevedere che:
- non si conosce a priori lo schema dei dati. Per risolvere questo problema SPARQL ha
la clausola DESCRIBE, che permette di ottenere una descrizione della risorsa cercata.
- si presenti la necessità di sapere se un certo enunciato o un certo pattern di dati
sia presente nella sorgente dati. Per questo motivo SPARQL propone la clausola ASK.
RDF (Triplestore) Database
31
Conclusioni
Il nostro lavoro è iniziato con l'idea di un Web come piattaforma in continuo
miglioramento,espressione della comunità di utenti che contribuisce a svilupparla e a
migliorarla. La partecipazione “libera” e attiva degli utenti ha portato a un ingrossamento
spropositato dei dati presenti in Rete che si è ben presto tradotto in un problema di
reperimento dei dati stessi. Le difficoltà nell'estrarre informazioni in maniera efficace e
agevole hanno portato il WC3 a concepire il progetto di Web Semantico. L'idea
consisterebbe nel definire un sistema di (ri)organizzazione semantica della Rete, dotato di
agenti Web intelligenti in grado di interpretare i dati, i qualisi sobbarcherebbero per noi
utenti il gravoso compito del reperimento. Nel corso della nostra analisi abbiamo rilevato
come il sogno di un Web machine under-standable venga incontro a due problemi tecnici
fondamentali e tra loro interconnessi: la formalizzazione e la semidecidibilità.
Abbiamo ritenuto opportuno procedere con un'analisi delle varie tecnologie del W3C
(XML,RDF,RDFS,OWL,SPARQL), considerandoli come lo snodo indispensabile per
comprendere se e come l'idea di Web Semantico possa effettivamente rispecchiare e
rispettare la realtà delle cose.
In definitiva si può dire che, finora, si è riusciti a rappresentare ambiti ben definiti di
conoscenza, ma non ad elaborarli in maniera automatica.
Per i prossimi anni, ci si aspetta un ulteriore raffinamento ed incremento dei metadati,
utilizzati per esprimere quantità di dati sempre più vaste, delle ontologie che illustrano le
relazioni tra questi ed altri dati e delle regole che permettono di aumentare il grado di
inferenza possibili.
RDF (Triplestore) Database
32
Spostandoci nel campo dei database, dopo aver esaminato una serie di sistemi esistenti di
recupero e memorizzazione di dati RDF, possiamo trarre alcune conclusioni sullo stato
dell’arte.
A livello generale, si può dire che vi è una forte convergenza sullo sviluppo di tecnologie
caratterizzate dall’unione di SPARQL come linguaggio di query standard e di funzionalità
e standard comuni a diversi sistemi.
Possiamo osservare come la maggior parte dei triplestore in commercio non sono sistemi
di database specializzati per dati RDF, spesso si basano su database relazionali che
forniscono un supporto molto limitato rispetto al modello dei dati e del ragionamento,
quindi possiamo immaginare il triplestore, piuttosto, come un middleware intelligente,
collocato nei livelli più alti, che avvolge tecnologie di database esistenti.
Oltre a fornire un supporto speciale per il modello grafico dei dati che è caratteristico per
dati RDF, la funzionalità principale fornita da questo middleware è il supporto per il
ragionamento ontologico. Per quanto riguarda l'ulteriore sviluppo delle tecnologie di RDF,
possiamo individuare due tendenze.
La prima consiste in un'estensione dei sistemi esistenti verso linguaggi di rappresentazione
più espressivi. In questo contesto, i linguaggi di regole sono i candidati più promettenti in
quanto è stato dimostrato che il ragionamento basato su regole ha il potenziale di scalare
grandi insiemi di dati, mentre il ragionamento ontologico basato su logiche descrittive
mostra seri limiti quando un gran numero di casi sono coinvolti.
L'altra principale direzione di sviluppo riguarda la scalabilità delle infrastrutture RDF.
Entrambi gli aspetti, linguaggi espressivi di rappresentazione e distribuzione, risultano
quindi essenziali rispetto alla realizzazione della visione del web semantico e
rappresentano step importanti verso reali applicazioni del web semantico.
RDF (Triplestore) Database
33
Indice delle figure
1.1 Architettura del Semantic Web 8 1.2 Rappresentazione grafica Triple RDF 13 1.3 Vista insiemistica OWL 17 2.1 Principali Triplestore esistenti 20 2.2 Specifiche tecniche dei triplestore 21
RDF (Triplestore) Database
34
Bibliografia
[1] T. Berners-Lee, J. Hendler, O. Lassila, May 2001 “The Semantic Web”,
Scientific American
[2] AA. VV. Semantic Web W3C URL: http://www.w3.org/2001/sw/
[3] Resource Description Framework, http://www.w3.org/RDF/
[4] RDF Schema, http://semanticworld.altervista.org/blog/2010/10/rdf-schema/
[5] L. Quin, eXtensible Markup Language (XML), http://www.w3.org/XML/
[6] SPARQL Query Language for RDF, http://www.w3.org/TR/sparql11-query/
[7] Thomas Gruber, “A translation approach to portable ontology specifications”,1993
[8] Ontologia, http://it.wikipedia.org/wiki/Ontologia_(informatica)
[9] OWL, http://www.w3.org/TR/owl-features/
[10] Semantic Web, http://www.websemantico.org/articoli/approcciwebsemantico.php
[11] Uniform Resource Identifier, http://www.ietf.org/rfc/rfc2396.txt
[12] Unicode, http://it.wikipedia.org/wiki/Unicode
[13] Tesi di Laurea Specialistica: “Semantica: un sistema per l’indicizzazione, il
retrieval semantico di learning objects e la generazione automatica di corsi
didattici”, Ficetola Francesco, AA 2007-2008, Università degli Studi di
Napoli “Federico II”
(Relatori: prof. A. Chianese – Ing. V. Moscato).
[14] Tesi di Laurea Specialistica: “Indici per ricerca semantica testuale: un confronto”,
Vincenzo Bernardo, AA 2011-2012, Università degli Studi di Napoli “Federico II”
(Relatori: prof. A. Chianese – Ing. V. Moscato).
[15] “RDF per la rappresentazione della conoscenza”, Oreste Signore, Ufficio
RDF (Triplestore) Database
35
Italiano W3C1 presso il C.N.R. - Istituto CNUCE - Area della Ricerca di Pisa San
Cataldo
[16] Tesi di Laurea Specialistica: “Applicazioni e tecnologie semantiche: prospettive
per lo sviluppo di una rete intelligente”, Natalino Fiacco, AA 2008-2009
[17] J. Broekstra, “Enabling knowledge representation on the web by extending RDF
Schema”, 2002, su http://www.sciencedirect.com
[18] LargeTriplestore, http://www.w3.org/wiki/LargeTripleStores
[19] Triplestore, http://en.wikipedia.org/wiki/Triplestore
[20] Alice Hertel, Jeen Broekstra and Heiner Stuckenschmidt,
“RDF Storage and Retrieval Systems”,
http://publications.wim.uni-mannheim.de/informatik/lski/Hertel08RDFStorage.pdf
[21] Panoramica sul Web Semantico,
http://www.expertsystem.net/documenti/pdf_newsmedia/924_login_nov- dic_2005.pdf