Elaborato Palumbo Francesco n46000140

Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Elaborato finale in basi di dati
RDF Triplestore Systems
Anno Accademico 2013-2014
Candidato
Francesco Palumbo
Matr. N46000140
RDF Triplestore Systems
______________________________________________________________________________________
_______________________________________________________________________________________
Dedica
_______________________________________________________________________________________
1
RDF Triplestore Systems
______________________________________________________________________________________
2
RDF Triplestore Systems
______________________________________________________________________________________
Indice:
Introduzione..........................................................................................................................................5
Capitolo 1:
•
Web semantico..............................................................................................................................7
•
L'architettura del web semantico..........................................................................................8
•
Rdf.......................................................................................................................................................10
•
Rdf/schema.....................................................................................................................................12
•
OWL....................................................................................................................................................12
•
Linked Open Data.........................................................................................................................14
Capitolo 2:
•
Stato dell'arte.................................................................................................................................16
•
DBpedia.............................................................................................................................................16
•
Estrazione dati da Wikipedia...................................................................................................17
•
Creazione della base di conoscenza......................................................................................19
•
Creazione di punti di accesso alla base di conoscenza.................................................20
•
I triplestore......................................................................................................................................21
•
Triplestore benchmark...............................................................................................................22
Capitolo 3
•
OWLIM...............................................................................................................................................24
•
Virtuoso.............................................................................................................................................26
•
Mulgara..............................................................................................................................................28
•
Confronto .........................................................................................................................................30
Conclusioni .............................................................................................................................................37
3
RDF Triplestore Systems
______________________________________________________________________________________
4
RDF Triplestore Systems
______________________________________________________________________________________
Introduzione
Al giorno d'oggi grazie all'enorme sviluppo avuto dall'informatica, dell'elettronica e al costo,
fondamentalmente, contenuto di apparecchi capaci di collegarsi a internet, l'espressione "lo cerco
sul web" è diventata abituale. Ciò ci fa riflettere anche su cosa sia diventato il web negli anni: un
serbatoio di conoscenza. Attraverso la rete, infatti, è possibile fare svariate cose, come consultare
gli orari dei treni, trasmettere dati, chattare, fare acquisti online, e tutto ciò è in continua e rapida
evoluzione. Basta pensare che negli anni '90 il web era composto da poche pagine testuali, con il
tempo al testo si sono aggiunti contenuti multimediali che hanno dato alle pagine una grafica più
ricca. Il contenuto, memorizzato su poche migliaia di macchine e sviluppato da pochi "specialisti",
ha iniziato a crescere in quantità smisurata. Se ciò da un lato ha ampliato le possibilità del web
rendendolo una sorta di enciclopedia universale multimediale, un gestore di servizi da remoto e
un centro di comunicazione mondiale, dall'altro ha reso le ricerche più complesse all'utente finale
che è sempre più obbligato a terminare la ricerca "manualmente" scegliendo il risultato desiderato
tra tutti quelli restituiti da un motore di ricerca. Ciò avviene perché i tradizionali motori di ricerca
effettuano ricerche di tipo sintattico restituendo, infatti, le pagine che contengono 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à. Per
venire incontro a tale problema, 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 in maniera simile a come succede tra essere umani. Il loro
obiettivo è quello di creare sistemi d'information retrival capaci di estrarre e indicizzare i concetti
5
RDF Triplestore Systems
______________________________________________________________________________________
più significativi dei testi in modo da rendere le ricerche effettuate tramite i loro portali sempre più
precise.
6
RDF Triplestore Systems
______________________________________________________________________________________
Capitolo1_____________________________________________________
Web semantico
Nei primi dieci anni il web è stato fondamentalmente un medium di sola lettura, una sorta di
grande libreria dalla quale ricevere informazioni. Nel successivo decennio invece si è assistito alla
diffusione di servizi che permettevano all'utente medio oltre che di leggere anche di scrivere.
Attraverso i social network e i blog i navigatori da semplici spettatori si sono trasformati in attori,
iniziando a pubblicare informazioni, opinioni e idee: è il cosiddetto web 2.0, il web della
partecipazione. Negli ultimi anni le informazioni disponibili on-line stanno diventando
comprensibili anche ai calcolatori, in modo da poter essere collegate tra di loro e riutilizzate,
dando vita a nuove informazioni, in maniera automatica senza l'intervento umano. Tale processo
è reso possibile grazie a svariate tecnologie comunemente chiamate "semantiche" ossia in grado
di estrarre significati da informazioni. Grazie al web semantico, la ricerca non sarà più basata sulle
parole ma sul significato di un concetto o di più concetti collegati tra di loro.
Con il termine Web Semantico si intende, quindi, la trasformazione del web in un ambiente dove è
possibile pubblicare non più solo documenti ma anche informazioni relative ai documenti stessi
(metadati) in un formato adatto all'interrogazione, l'interpretazione e, più in generale,
all’elaborazione automatica.
Così facendo sarà possibile un’interpretazione più significativa del contenuto dei documenti stessi
e quindi la possibilità di effettuare ricerche altamente precise.
7
RDF Triplestore Systems
______________________________________________________________________________________
L'architettura del web semantico
Nello sviluppo di applicazioni basate sui principi del web semantico implica la necessità di definire
una pila di protocolli che stabilisca un insieme di linguaggi e tecnologie con l’obiettivo di
“modularizzare” il problema, in maniera tale che a ogni livello venga associato uno standard
specifico. Il livello più alto della pila ovviamente è rappresentato dalla "fiducia". Essendo i dati del
web collocati in una dimensione globale provenienti da sorgenti differenti, è necessario che
l'utente sia in grado di distinguere le fonti affidabili da quelle che non lo sono. Un'applicazione
basata sul web semantico deve essere in grado di derivare automaticamente se i risultati sono
giusti. Per poter quantizzare in che modo viene calcolato il livello di "fiducia" occorre una "prova"
che fornisca indicazioni in merito alla logica sottesa al ragionamento. La “prova” consiste dunque
di un insieme di informazioni inferite, ognuna delle quali viene sfruttata dal motore inferenziale
per derivare un determinato risultato, in relazione ai valori di “fiducia” che hanno permesso di
controllare la veridicità di ciascuna deduzione.
Naturalmente, la solidità del livello “Prova” si fonda sulla base della cosiddetta “Unifying Logic”: la
logica matematica rappresenta,
infatti, il mezzo più adeguato per
consentire a una macchina di
processare una determinata
informazione e svolgere un insieme
di operazioni di ragionamento per
riuscire a derivarne di nuove. La
logica deve essere perciò in grado
di rispondere a due esigenze
8
RDF Triplestore Systems
______________________________________________________________________________________
specifiche: da un lato rendere efficace la prova e dall’altro descrivere l’informazione stessa. La
parte superiore della pila quindi è costituita da tutti gli elementi necessari ad abilitare operazioni
di ragionamento.
La parte inferiore ingloba un insieme di tecnologie e linguaggi per formalizzare la conoscenza in
maniera da rendere abituali tali operazioni.
Come prima cosa, è necessario un sistema in grado di identificare e accedere alle risorse. Quindi
uno dei blocchi fondamentali è quello degli URI (Uniform Resource Identifier), cioè le stringhe che
identificano in maniera univoca le risorse. Subito sopra il livello di URI c'è XML (l’eXtensible
Markup Language), che è un linguaggio di marcatura che consente di costruire e utilizzare i propri
tag, al fine di garantire interoperabilità sintattica, che consente a sistemi diversi di interpretare la
struttura e la sintassi dei documenti scambiati. Per avere interoperabilità semantica occorre
risalire al livello successivo della pila: RDF (Resource Description Framework). Esso è lo strumento
base proposto dal W3C per la codifica, lo scambio e il riutilizzo di metadati strutturati per
l’interscambio di informazioni sul Web. Il data model RDF permette di esprimere asserzioni
elementari costituite da tre elementi: il soggetto che identifica l’entità, il predicato che specifica
determinate proprietà e l’oggetto che fornisce un valore per tali proprietà. RDF però, pur
consentendo interoperabilità semantica, non è abbastanza espressivo tale da poter gestire alcune
situazioni particolari, come ad esempio due sistemi che identificano la stessa risorsa con URI
differenti. Per rispondere a tale esigenza, si utilizzano le cosiddette ontologie, ovvero
rappresentazioni della conoscenza di un insieme di concetti appartenenti a un dominio, che
specificano la natura delle relazioni che intercorrono tra questi stessi concetti. I linguaggi
ontologici prevalentemente adottati da parte della comunità del SW sono RDF Schema e OWL
(Web Ontology Language). Esistono inoltre dei meccanismi che permettono di potenziare le
capacità delle macchine di elaborare conoscenza, ossia i sistemi a regole. Poiché sono già
9
RDF Triplestore Systems
______________________________________________________________________________________
largamente diffusi ed utilizzati all’interno della comunità scientifica, la proposta da parte del W3C
è stata quella di standardizzare RIF, un metodo che consente ai sistemi a regole esistenti di
interagire tra di loro. Al fine di interrogare data source che esprimono i propri dati in RDF, è
necessario trovare uno strumento che da un lato permetta di realizzare delle query sui dati e
dall’altro definisca un protocollo che consenta di effettuare tali query sul Web. Entrambi i requisiti
vengono soddisfatti da SPARQL attraverso cui è possibile estrarre informazioni dalle basi di
conoscenza distribuite sulla rete. Infine, una componente importante è rappresentata dalla
“Crittografia” (che indica crittografia e firma digitale) che pur non essendo direttamente legata alle
tecnologie del web semantico, costituisce un elemento fondamentale per raggiungere la
cosiddetta “Fiducia” e determinare dunque l’affidabilità dei dati.
RDF
Il Resource Description Framework (RDF) è uno standard descritto dal W3C concepito per
supportare il Web Semantico più o meno allo stesso modo in cui l’HTML ha contribuito ad avviare
il Web originale. L’RDF permette la rappresentazione di dati e metadati sul Web.
Il Data Model RDF è basato su 3 concetti fondamentali:
•
Risorsa: indica qualunque cosa venga descritta da una espressione RDF. Ogni risorsa è
indentificata da un URI, può essere una pagina web, una sua parte ma anche un oggetto non
direttamente accessibile via web;
•
Proprietà: descrive un aspetto specifico, un attributo o una relazione usata per descrivere
una risorsa. Ogni proprietà definisce i valori ammissibili, i tipi di risorse che può descrivere e le
sue relazioni con le altre proprietà;
•
Asserzioni (statement): una asserzione è costituita dall'insieme di una risorsa, una
10
RDF Triplestore Systems
______________________________________________________________________________________
proprietà e uno specifico valore per quella proprietà. Descrive le caratteristiche di una risorsa e
le relazioni con altre risorse.
Ogni asserzione è formata, quindi, da: soggetto, predicato e oggetto. Il soggetto di una tripla è
l'URI che identifica la risorsa descritta. L'oggetto può essere un semplice valore letterale (come
una stringa, un numero, o data) o l'URI di un'altra risorsa che è in qualche modo legata al
soggetto. Il predicato, nel mezzo, indica il tipo di relazione esiste tra il soggetto e l’oggetto. Ogni
tripla soggetto-predicato-oggetto viene detta statement. Una delle possibili rappresentazioni di
statement RDF è data dall’uso di reti semantiche, ovvero da grafi in cui il soggetto e l’oggetto sono
rappresentati da nodi e il predicato è l’arco diretto che parte dal primo e arriva al secondo.
Un grafo RDF è rappresentato fisicamente mediante una serializzazione. Le principali
serializzazioni adottabili per un grafo RDF sono:
•
RDF/XML: in cui le risorse vengono descritte mediante l’uso di tag RDF;
•
N-Triples: il grafo viene serializzato come insieme di triple soggetto-predicato-oggetto
•
Notation3 (N3): il grafo viene serializzato descrivendo, una per volta, una risorsa e tutte le
sue proprieta.
11
RDF Triplestore Systems
______________________________________________________________________________________
RDF/SCHEMA
Il limite di un documento RDF è che si preoccupa soltanto di descrivere le proprietà di un oggetto,
non fornisce nessun meccanismo per dichiarare queste proprietà, né per definire le relazioni tra
queste proprietà ed altre risorse. RDF Schema (RDFS) permette invece di definire dei vocabolari,
quindi significato, caratteristiche e relazioni di un insieme di proprietà (compresi eventuali vincoli).
Inoltre consente di definire gerarchie di classi implementando il concetto transitivo di classe e
sottoclasse. 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.
OWL
Anche RDFS però non è sufficientemente espressivo in quanto non permetter di definire vincoli di
esistenza e cardinalità e, inoltre, non permette di definire proprietà transitive, inverse,
simmetriche. Per tali motivi si presta a modellazioni piuttosto semplici, mentre diventa impossibile
usarlo in contesti complessi.
OWL (Web Ontology Language) è l’evoluzione di RDF e RDF Schema, dei quali arricchisce 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. Dato questo tipo di Ontologia, la semantica formale di OWL
specifica come derivare le sue conseguenze logiche, ovvero i fatti che non sono presenti
letteralmente nell’ontologia, ma derivati logicamente dalla semantica. Tali derivazioni logiche
12
RDF Triplestore Systems
______________________________________________________________________________________
possono essere basate su un solo documento o su più documenti distribuiti che sono stati
combinati fra loro usando dei meccanismi OWL predefiniti.
OWL fornisce ben tre tipologie di sottolinguaggi che si differenziano tra di loro per la capacità
espressiva:
•
OWL Lite è la versione più semplice e meno espressiva di OWL, che supporta le funzioni
necessarie a definire una tassonomia di classi e semplici vincoli; esso supporta per esempio la
cardinalità, ma solo con valori pari a uno e zero. OWL Lite è il sottolinguaggio di più facile
implementazione e inoltre consente una veloce migrazione da vocabolari o altre tassonomie.
•
OWL DL (OWL Description Logic) permette più espressione e mantiene la completezza
computazionale e la decidibilità; esso supporta gli utenti che desiderano la massima
espressività senza mancare di completezza computazionale e di decidibilità (è cioè garantito
che tutte le implicazioni siano elaborate in un tempo finito). OWL DL comprende tutti i costrutti
OWL, ma con alcune restrizioni.
•
OWL Full permette la massima espressività senza però garanzie sulla completezza e
decidibilità; ad esempio una classe può essere allo stesso tempo vista come una collezione di
entità (individui) e come una entità a se stante. OWL Full permette ad una ontologia di
aumentare il significato di un vocabolario già definito; tuttavia è molto difficile, data la
complessità del linguaggio, che un ragionatore supporti appieno tutte la potenzialità di OWL
FULL.
Una caratteristica importante dei sottolinguaggi
OWL è che ogni versione include tutte le
funzionalità del sottolinguaggio al livello
precedente mantenendo la piena compatibilità.
13
RDF Triplestore Systems
______________________________________________________________________________________
Ciò vuol dire che un ontologia espressa in OWL Lite è gestibile con OWL DL, ed in entrambi i casi le
conclusioni sono le stesse, ovviamente la relazione in versa non vale.
Linked Open Data
Sono stati fino ad ora descritti i principi e le tecnologie che sono alla base del Semantic Web. In
particolare si è visto come queste tecnologie possano essere usate per mettere in risalto ed
esprimere il significato e la conoscenza presente nelle informazioni. L'obiettivo principale di
questa evoluzione, tuttavia, non è solo quello di esporre la semantica dei dati attraverso modi e
formati nuovi, ma anche quello di renderli fruibili in maniera più intelligente e diretta,
valorizzandoli e permettendo di utilizzarli in applicazioni e modalità sempre più interessanti. Alla
base di questa evoluzione si collocano infatti una serie di pratiche e principi relativi alla
pubblicazione e connessione di dati strutturati nel Web che danno vita a ciò che viene chiamato
Linked Data.
Il termine Linked Data, creato da Tim Berners-Lee, viene spesso utilizzato quasi come sinonimo di
Semantic Web, quando si vuole però mettere in evidenza una vera e propria rete di dati che
connette informazioni appartenenti ai più disparati domini e permette la creazione di nuove
applicazioni che possano accederci, creandone liberamente un valore aggiunto. Il presupposto che
sta alla base di questa idea si fonda sul principio che il valore e l'utilità dei dati cresce quanto più
questi sono interconnessi tra loro.
In sintesi quindi il Linked Data non è altro che l'utilizzo del Web per creare degli specifici
collegamenti tra i dati di diverse sorgenti, alle quali si fa spesso riferimento con il nome di silos. I
dogmi di tale approccio consistono nell'utilizzare l'RDF come modello per la pubblicazione di dati
strutturati nel Web e i collegamenti che l'RDF mette a disposizione per interconnettere i dati dei
14
RDF Triplestore Systems
______________________________________________________________________________________
diversi silos, nonché l'utilizzo del protocollo HTTP per effettuarne l'accesso. Affinché i dati
possano essere pubblicati e riutilizzabili, occorre che venga definito un insieme di regole che ne
favorisca l’interoperabilità. Nel 2006 Tim Berners-Lee propose alcune linee guida per fare in modo
che i dati entrassero a far parte di uno spazio globale complesso:
•
Utilizzare gli URI per l’identificazione delle risorse;
•
Utilizzare gli URI in conformità al protocollo HTTP, in modo che possano essere consultati;
•
Utilizzare standard come RDF e SPARQL per esplorare un URI e reperire informazioni utili;
•
Creare collegamenti tra i vari URI al fine di scoprire nuove risorse.
Tuttavia, in una presentazione tenuta nel 2009 all’interno del ciclo di conferenze TED lo stesso
Berners-Lee rivisita e sintetizza i principi del Linked Data all’interno di tre regole di base:
•
ogni risorsa riconducibile a un oggetto del mondo reale è contraddistinto da un
identificativo che comincia con HTTP;
•
lo scopo principale per il quale vengono utilizzati i Linked Data è quello di ottenere
informazioni. Per questi motivi, i dati devono essere espressi in formato standard, affinché
possano essere utili e riutilizzabili dagli utenti;
•
l’informazione da ottenere non è legata, ad esempio al peso, all’altezza o alla data di
nascita di una persona, ma riguarda l’insieme di relazioni che essa ha instaurato con tutti gli
altri elementi del mondo reale. Inoltre, nel momento in cui tali relazioni vengono definite e
dichiarate in maniera esplicita, alle risorse (o oggetti) collocate tra queste relazioni va attribuito
un identificativo che comincia con HTTP.
15
RDF Triplestore Systems
______________________________________________________________________________________
Capitolo1_____________________________________________________
1_____________________________________________________
Stato dell'arte
Per analizzare lo stato attuale dei Linked Open Data si osservano alcuni dataset che raccolgono un
gran numero di collegamenti, formando una sorta di fulcro di raccolta dei vari link. I più evidenti
casi di questo genere sono rappresentati dai dataset di DBpedia, che raccoglie triple RDF estratte
dalle informazioni
mazioni presenti negli articoli di Wikipedia, e di Geonames, che fornisce invece
descrizioni RDF relative a milioni di locazioni geografiche. La ragione dell'importanza attribuita a
queste sorgenti di dati consiste nel fatto che, oltre ad essere state tra le prime ad essere inserite
nel progetto, raccolgono e forniscono URI e descrizioni RDF relative a moltissime entità o concetti
molto comuni, e vengono pertanto referenziati molto frequentemente da altri dataset che
raccolgono, invece, informazioni più specializzate.
spe
DBpedia
DBpedia rappresenta uno dei dataset più importanti del Lincked Open Data, analizzando gli
algoritmi che hanno permesso di convertire tutte le informazioni
presenti in Wikipedia in dati legati ad una ontologia e con una
semantica associata.
Fino a una decina di anni fa, la creazione di conoscenza di base è stata
appannaggio di gruppi di scienziati impegnati all’interno di settori specifici. A partire dal 2001, con
la nascita di Wikipedia, al lavoro degli esperti si è affiancata una conoscenza
conoscenza creata e mantenuta
16
RDF Triplestore Systems
______________________________________________________________________________________
da migliaia di collaboratori provenienti da tutto il mondo, che ha contribuito a migliorare
l’intelligenza del Web.
Il progetto DBpedia sfrutta questa enorme risorsa informativa estraendo da essa informazione
semanticamente strutturata.
Il processo di trasformazione consta fondamentalmente di tre elementi:
•
Estrazione dati da Wikipedia: è stato sviluppato un sistema per l’estrazione dei dati di
Wikipedia che convertisse il suo contenuto in una base di conoscenza multi-dominio.
•
Creazione della base di conoscenza: sono state elaborate le informazioni ottenute nella
fase di estrazione, fornendo loro una semantica e definendo un’ontologia in cui sono mappate
le informazioni.
•
Creazione di punti di accesso alla base di conoscenza: sono stati resi disponibili diversi
mezzi per poter accedere ai dati di DBpedia come ad esempio i link RDF che puntano da
DBpedia ad altri dataset.
Estrazione dei dati da Wikipedia
Il sistema di estrazione dei dati è formato da più componenti tra cui quelli che si occupano di
recuperare gli articoli (PageCollections), quelli che memorizzano e serializzano le triple RDF
(Destinations), quelli che stabiliscono come marcare le triple (Extractors).
Il nucleo centrale è costituito però dall’Extraction Manager che gestisce il processo di passaggio
degli articoli di Wikipedia agli estrattori e li consegna a destinazione. Gli estrattori sono 11 tra cui
Label che identifica ogni articolo indicandone la risorsa con rdfs:label oppure Interlanguage links
17
RDF Triplestore Systems
______________________________________________________________________________________
che estrae i link che collegano fra loro articoli in lingue diverse che però trattano lo stesso
argomento per assegnare risorse diverse per ogni lingua.
Il sistema è in grado di eseguire due tipo di estrazione:
•
Estrazione dump-based: la Wikimedia Foundation, che detiene la proprietà di Wikipedia,
pubblica ogni mese i dump SQL di tutte le versioni di Wikipedia ed in seguito la base della
conoscenza di DBpedia viene aggiornata tramite questi dump.
•
Estrazione live: la stessa Wikimedia Foundation ha fornito a DBpedia la possibilità di
accedere ai feed di Wikipedia che in tempo reale riportano tutti i cambiamenti avvenuti. Un
sistema di estrazione live quindi permette di aggiornare ed estrarre nuove triple RDF non
appena un articolo viene modificato ed una procedura di UPDATE SPARQL permette di
eliminare la voce già esistente sostituendola con la nuova.
18
RDF Triplestore Systems
______________________________________________________________________________________
Creazione della base di conoscenza
Dopo aver estratto le informazioni è necessario rielaborarle per fornire loro una semantica. È stato
quindi generata una base di conoscenza che permette di memorizzare e classificare le diverse
entità presenti in Wikipedia. La base di conoscenza di DBpedia è composta da circa 1 miliardo di
triple RDF estratte dalle edizioni di Wikipedia in ben 35 lingue diverse. Per creare gli identificatori
di DBpedia vengono utilizzati i nomi inglesi degli articoli, l’URI delle risorse viene generato secondo
la sintassi http://dbpedia.org/resource/Name dove Name è ottenuto dall’URL dell’articolo che ha
la sintassi http://en.wikipedia.org/wiki/Name. In questo modo gli URI di DBpedia comprenderanno
un ampio spettro di argomenti e saranno definiti col consenso della comunità. Ogni entità viene
descritta da un insieme di proprietà generali e da un insieme di proprietà specifiche delle
InfoBoxes, se essi sono presenti. Le proprietà generali includono un’etichetta, due abstract
dell’articolo in inglese, uno più breve e uno più lungo, un link all’articolo di Wikipedia
corrispondente, le coordinate geografiche qualora siano disponibili, un link ad un’immagine che
raffigura il soggetto, un insieme di link a pagine web esterne e, qualora esistessero, i due abstract
per ognuna delle versioni in altre lingue della pagina. Le proprietà specifiche delle InfoBoxes,
invece, possono essere ottenute sia attraverso un’estrazione generica dei dati sulle InfoBoxes sia
attraverso un’estrazione mapping-based sulla base delle ontologie costruite sulle InfoBoxes.
19
RDF Triplestore Systems
______________________________________________________________________________________
Creazione di punti di accesso alla base della conoscenza
Per accedere alla base della conoscenza di DBpedia da diversi client è possibile usare quattro
meccanismi differenti:
•
Linked Data: metodo per pubblicare gli RDF sul Web che si basa su URI HTTP come
identificatori e sul protocollo HTTP per recuperare le descrizioni delle risorse. Gli identificatori
di DBpedia sono configurati per restituire descrizioni RDF quando ad accedervi sono degli
agenti semantici e versioni HTML quando invece vi accedono i browser tradizionali.
•
SPARQL Endpoint: che permette di interrogare la base di conoscenza attraverso delle
query in SPARQL tramite l’endpoint http://dbpedia.org/sparql.
•
RDF Dumps: che si basa sulla stratificazione della base di conoscenza, offrendo una
serializzazione N-Triple di questi strati di cui è possibile effettuare il download direttamente dal
sito web di DBpedia.
•
Lookup Index: che rende più semplice il rinvenimento degli URI di DBpedia a cui collegarsi,
sfruttando un servizio lookup che restituisce gli URI in base ad una data etichetta effettuando
una ricerca basata su similarità fra stringhe e rilevanza della pagina ricercata.
Per consentire agli utenti e agli agenti software di rinvenire le informazioni contenute in DBpedia,
la base della conoscenza è collegata a molti altri dataset sul Web seguendo i principi del Linked
Data. La base della conoscenza di DBpedia attualmente contiene 4,9 milioni di link RDF in uscita,
che puntano ad informazioni complementari rispetto a quelle contenute in DBpedia.
20
RDF Triplestore Systems
______________________________________________________________________________________
I triplestore
I triplestore sono dei database realizzati appositamente per la memorizzazione
ed il recupero di triple RDF. Proprio come un database relazionale, è possibile
memorizzare le informazioni in un triplestore e poi le recuperarle attraverso un
linguaggio di query, in questo caso SPARQL. A differenza di un database relazionale, un triplestore
è ottimizzato per lo stoccaggio ed il recupero di triple.
Si distinguono i seguenti triplestore in base alla loro architettura:
•
In-memory: essi memorizzano il grafo RDF nella memoria principale. Memorizzare tutto in
memoria principale 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.
•
Native: una seconda categoria ora dominante è quella dei triplestore nativi. Essi
implementano un database engine completo, 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.
•
Non-native non-memory: tali triplestore sono impostati per essere eseguiti su database di
terze parti, usufruiscono delle funzionalità di archiviazione e recupero dei DBMS esistenti. È
possibile dividere questo modello in:
o
“Generic Schemas” in cui i dati RDF vengono memorizzati a prescindere da qualsiasi
ontologia in una tabella simile alla struttura tripla di un RDF, ossia in una tabella a tre colonne
(soggetto-predicato-oggetto). Il vantaggio di tale approccio è chiaramente la flessibilità
21
RDF Triplestore Systems
______________________________________________________________________________________
ottenuta dalla rappresentazione dei dati, il principale svantaggio è l’elevato numero di selfjoins che sono necessari per rispondere alle query non banali.
“Ontology-specific Schemas” in cui i dati RDF non vengono memorizzati in una singola
o
tabella ma viene creato uno schema che rifletta le proprietà strutturali delle ontologie in atto.
Si possono distinguere tre sottomodelli:
1)
“Horizontal representation” oppure “one-table-per-class schema”: ogni classe
dell’ontologia si riflette in una tabella del database che contiene tutte le istanze di tale
classe. 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à.
2)
”Decomposition storage model” oppure “one-table-per-property schema”: ogni
proprietà si riflette in una tabella composta da due colonne (soggetto e oggetto). Lo
svantaggio di questo modello è l’inefficienza delle query quando si tratta di query
complesse perché genera molti join tra le tabelle proprietà. Tuttavia può fornire prestazioni
superiori di un fattore pari a 2 rispetto a database con uno schema singolo.
3)
“Hybrid Schemas”: sono più comuni e combinano i vantaggi di entrambi i modelli.
Triplestore benchmark
Oltre allo sviluppo dei database RDF e di linguaggi di interrogazione adeguati ai triplestore, sono
state realizzate anche appropriate tecniche di valutazione (benchmark). I benchmark principali
messi a disposizione e quelli più usati sono:
22
RDF Triplestore Systems
______________________________________________________________________________________
•
SPARQL Performance Benchmark, SP2Bench (SP2): è costituito da due component
principali. Il primo è un generatore di dati arbitrariamente grandi che si basa sul ben noto
scenario DBLP (Computer Science Library), creando così uno scenario simile alla realtà. Il
secondo componente è costituito da 14 query specificamente progettate per il caso d’uso
DBLP.
•
Lehigh University Benchmark (LUBM): è stato sviluppato per facilitare la valutazione dei
repository del Semantic Web in modo standard e sistematico. Il benchmark ha lo scopo di
valutare le prestazioni di tali archivi su un set di dati di grandi dimensioni. L’ontologia utilizzata
dal benchmark è chiamata Univ-Bench, descrive le università e i dipartimenti e le attività che si
verificano in esse. Il benchmark è formato da 14 query, scritte in SPARQL, scelte affinché
fossero più realistiche possibili e tenessero conto di fattori come la dimensione dell’input, la
selettività, la complessità ecc..
•
Berlin SPARQL Benchmark (BSBM): fornisce un benchmark sulle prestazioni delle query
utilizzando SPARQL. Il BSBM è composto da 12 query che vengono eseguite a frequenze
diverse, nel contesto di un caso d'uso e-commerce. Il caso d’uso di e-commerce è realizzato
eseguendo più volte variazioni delle 12 query in un “mix query” composto da 25 query che
simulano una ricerca di prodotti da parte di un singolo consumatore. Questo benchmark
include un generatore di dati e un test suit. Il generatore di dati è in grado di costruire una
quantità scalabile di dati in formato RDF/XML basati su un caso d’uso di e-commerce. Il
funzionamento del test suite, invece, si basa su un caso d’uso preso dalla vita reale,
l’esecuzione delle varie query imitano il comportamento degli operatori umani. Nella sua ultima
versione sono stati aggiunti altri due casi d’uso uno ‘Explore and Update’, in cui si simulano
operazioni di scrittura/lettura con l’aggiunta di update query, e l’altro ‘Intelligence Business’, in
cui si simula l’escuzione di domande analitiche sui dataset.
23
RDF Triplestore Systems
______________________________________________________________________________________
Capitolo3_____________________________________________________
OWLIM
OWLIM è implementato in Java e confezionato come un "Storage and Inference Layer" (SAIL) per
il database RDF Sesame, fa ampio uso delle caratteristiche e delle infrastrutture di Sesame, in
particolare l’RDF model, l’RDF parser e il query engine.
Architettura OWLIM
OWLIM implementa l'interfaccia Sesame SAIL in modo che possa essere integrato con il resto del
framework Sesame, ad esempio il query engine e l'interfaccia utente web. Un'applicazione utente
può essere progettato per utilizzare OWLIM direttamente attraverso l'API SAIL di sesame o
tramite le interfacce funzionali di livello superiore. OWLIM può essere utilizzato anche con il
framework Jena attraverso un adattatore.
OWLIM è disponibile in tre edizioni principali: OWLIM-Lite, OWLIM-SE (Standard Edition) e
OWLIM-Enterprise. OWLIM-Lite e OWLIM-SE sono identici in termini di utilizzo e di integrazione. A
24
RDF Triplestore Systems
______________________________________________________________________________________
parte alcune differenze nei parametri di configurazione, queste edizioni hanno la stessa
funzionalità e implementano le stesse API di Sesame. Tuttavia, essi usano una diversa
indicizzazione, inferenza e valutazione delle query, che si traduce in differenti prestazioni, requisiti
di memoria e scalabilità.
OWLIM-Lite è stato progettato per volumi di dati normali (sotto i 100 milioni di dichiarazioni). Le
sue caratteristiche principali sono le seguenti:
•
Il ragionamento e la valutazione della query viene eseguita nella memoria principale;
•
impiega una strategia di persistenza che garantisce la conservazione dei dati e la coerenza;
•
il caricamento di dati, incluso il ragionamento, è estremamente veloce;
•
ha una facile configurazione.
OWLIM-SE è adatto per la gestione di grandi volumi di dati e per attività di interrogazione molto
intensi. È stato progettato come un enterprise-grade database management system . Ciò è stato
reso possibile attraverso:
•
indici file-based, che consentono di scalare a miliardi di dichiarazioni anche su computer
desktop;
•
indici special-purpose e tecniche di ottimizzazione delle query, per garantire una
valutazione rapida della query su grandi volumi di dati;
•
gestione ottimizzata di owl:sameAs per aumentare l'efficienza per le attività di
integrazione dei dati;
•
efficiente retroazione delle dichiarazioni esplicite e le loro inferenze, che consente
efficienti operazioni di eliminazione.
OWLIM-Enterprise è un componente in grado di gestire e sincronizzare più istanze OWLIM in una
configurazione cluster flessibile e scalabile.
OWLIM si basa sul "Triple Reasoning and Rule Entailment Engine" di ontotext (TRREE), un RDF
25
RDF Triplestore Systems
______________________________________________________________________________________
engine nativo. La semantica supportata può essere configurata attraverso la definizione di set di
regole. Il più espressivo set di regole combina RDFS non vincolati e OWL-Lite. È possibile realizzare
set di regole personalizzati per ottenere prestazioni ottimali ed migliore espressività. OWLIM
supporta RDFS, OWL DLP, OWL Horst, la maggior parte di OWL Lite e OWL2 RL.
OWLIM è in uso per un gran numero di applicazioni del Semantic Web e del Data linked, tra cui
BBC's Olympics 2012 website, il BBC World Cup 2010 Website e LinkedLifeData platform.
Virtuoso
Openlink Virtuoso è un innovativo data server multi-modello, esso offre una impareggiabile
soluzione, indipendente dalla piattaforma, per la gestione dei dati, l'accesso e l’integrazione.
Figura: Architettura Virtuoso
26
RDF Triplestore Systems
______________________________________________________________________________________
L’architettura ibrida del server Virtuoso consente di offrire le funzionalità del server tradizionale
all’interno di un offerta unica che copre le seguenti aree:
•
Relational Data Management
•
RDF Data Management
•
XML Data Management
•
Free Text Content Management & Full Text Indexing
•
Document Web Server
•
Linked Data Server
•
Web Application Server
•
Web Services Deployment (SOAP or REST)
Virtuoso è quindi un database ibrido che combina in un unico sistema le funzionalità di un
tradizionale RDBMS, ORDBMS, virtual database, RDF, XML, web application server e file server.
Piuttosto che avere server dedicati per ogni funzionalità sopra elencate Virtuoso fornisce un
accesso trasparente alle fonti di dati esistenti, che sono in genere banche dati di fornitori di
database diversi.
Come DBMS relazionale offre un po' tutte le caratteristiche che offrono gli RDBMS tipici come
MySQL e simili. Ovviamente supporta il linguaggio SQL, inoltre mette a disposizione molte funzioni
utili. Per quanto riguarda invece le sue funzionalità come Triple Store, il modello di dati utilizzato è
il modello a grafo, che è quello utilizzato dalla maggior parte dei Triple Store che non si basano su
database relazionali.
E' possibile interrogarlo tramite il linguaggio SPARQL , eseguire update tramite SPARUL ed è
possibile importare ed esportare dati in formato RDF. I formati di serializzazione RDF supportati
sono HTML+RDFa, RDF-JSON, N3, Turtle, TriG, TriX e RDF/XML.
Virtuoso ha guadagnato un notevole interesse in quanto è utilizzato per ospitare molti importanti
27
RDF Triplestore Systems
______________________________________________________________________________________
Linked open Date (ad esempio, DBpedia). Virtuoso viene offerto sia in una versione open-source
che in una commerciale.
Mulgara
•
Mulgara è un sistema open source, altamente scalabile, un database puramente java-based
costruito appositamente per la memorizzazione e il recupero di metadati. Mulgara è un database
completamente nuovo iniziato nel luglio del 2006 come un fork del progetto Kowari, concesso in
licenza sotto la Open License v3.0 Software e la Licenza Apache 2.0, che si applica ai nuovi
contributi del codice.
•
Le caratteristiche ed i vantaggi di Mulgara sono descritti nelle sezioni seguenti:
•
Generale:
•
Supporto nativo a RDF
•
Database multiplo per server
•
Semplice linguaggio per query
•
Ricerca ful text
•
Supporta le caratteristiche e le linee guida del W3C
•
Prestazioni e scalabilità:
•
Capacità di memorizzazione di dataset di grandi dimensioni
•
Ottimizzata archiviazione e recupero dei metadati
•
Supporto multiprocessore
•
Ricerca ful text
•
Configurazione indipendente sia per architetture a 32 che 64 bit
•
Affidabilità:
28
RDF Triplestore Systems
______________________________________________________________________________________
•
Supporto full transaction
•
Clustering
•
Archivio livello fail-over
•
Integrità permanente
•
Connettività:
•
Jena
•
JDRF
•
SOAP
•
Software Developers Kit (SDK)
•
Proprio come un database relazionale, Mulgara può essere utilizzato come un repository di
dati per le applicazioni software. Mulgara ha un open API che supporta molti standard di linguaggi
di programmazione e protocolli.
•
Gli utenti possono utilizzare ed interagire con Mulgara in modi diversi a secondo delle loro
esigenze:
•
Gli utenti finali possono interagire con Mulgara indirettamente tramite le applicazioni che
utilizzano Mulgara come archivio dati sottostante.
•
Gli amministratori di sistema utilizzano ITQL per caricare metadati in Mulgara, controllarne lo
stato, fare il backup delle informazioni detenute ed amministrare i database Mulgara.
•
I programmatori effettuano l'integrazione tra le proprie applicazioni e Mulgara. Le query ai
database Mulgara possono essere effettuate attraverso uno dei seguenti standard: ITQL shell,
SOAP, ITQL JavaBean, Mulgara driver
•
Mulgara è in grado di interrogare qualsiasi tipo di sorgente dati tramite resolver. I resolver
accettano ed elaborano delle query sui dati contenuti in un file, in un database o in un'altra fonte
di dati.
29
RDF Triplestore Systems
______________________________________________________________________________________
•
Mulgara fornisce resolver per l'interrogazione di diversi tipi di archivi di dati, tra cui:
•
Local and remote TKS data stores
•
file: and HTTP: protocol files
•
JRDF files
•
MP3 files
•
RDF/XML files
•
MBox files
Confronto
Per rendersi conto delle differenze prestazionali dei tre triplestore presentati è stato effettuato un
test con tramite il benchmark BSBM (Berlin SPARQL Benchmark), poiché esso si concentra
principalmente sull’efficienza dei triplestore, mentre altri ben noti benchmark si concentrano più
sull’inferenza e la scalabilità.
Il BSBM version 3 è suddiviso in 3 scenari:
•
Explore Use Case: di sola lettura, simula la ricerca di un prodotto da parte di un
consumatore;
•
Explore and Update Use Case: di lettura e scrittura, in cui update query vengono aggiunte
a quelle dell’Explorer Use Case;
•
Business Intelligence Use Case: simula l’utilizzo di query analitiche sui dati.
In questo lavoro è stato preso in considerazione solo il primo caso d’uso, e sono stati valutate per
ogni triplestore le seguenti metriche:
•
Query al Secondo (QpS): tale metrica misura il numero di una specifica query che il sistema
sotto test ha risposto in un secondo;
30
RDF Triplestore Systems
______________________________________________________________________________________
•
Query Mixes all’ora (QMpH): tale metrica misura il numero di query mixes complete che
sono risposte da un sistema in un’ora.
L’Explore Use Case simula la ricerca di un prodotto da parte di un consumatore. Esso è composto
da 12 query che vengono eseguite nel contesto di un "mix query" formato a sua volta da 25
query. Le query sono di sola lettura ed hanno lo scopo di simulare un caso d'uso di e-commerce. Il
test driver ed il sistema erano in esecuzione sulla stessa macchina al fine di ridurre l’influenza
della latenza della rete.
Per ogni triplestore sono stati valutati:
•
Il numero di query che il sistema è riuscito ad eseguire in un secondo, valutato per ogni
singola query;
•
Il numero di “mix query” che il sistema è riuscito ad eseguire in un ora.
•
Nelle figure sottostanti si vedono i risultati ottenuti e sono stati marcati mostrando in
grassetto i risultati migliori.
Risultati Query 1
31
RDF Triplestore Systems
______________________________________________________________________________________
Risultati query 2
Risultati query 3
Risultati query 4
32
RDF Triplestore Systems
______________________________________________________________________________________
Risultati query 5
Risultati query 6
Risultati query 7
33
RDF Triplestore Systems
______________________________________________________________________________________
Risultati query 8
Risultati query 9
Risultati query 10
34
RDF Triplestore Systems
______________________________________________________________________________________
Risultati query 11
Risultati query 12
Risultati “query mix” all’ora
35
RDF Triplestore Systems
______________________________________________________________________________________
Come si può notare dai grafici OWLIM è risultato quello più efficiente seguito da Virtuoso ed
infine da Mulgara. In quasi tutte le query del test OWLIM era davanti ai suoi concorrenti, ed in
quelle in cui non lo era ha mostrato ugualmente di essere molto competitivo.
36
RDF Triplestore Systems
______________________________________________________________________________________
Conclusioni___________________________________________________________________
Nonostante il web sia uno strumento utile per il recupero, l'elaborazione e la trasmissione delle
informazioni e della conoscenza, rimane, ancora e soprattutto, una gigantesca biblioteca di pagine
HTML (statiche e dinamiche) online. I motori di ricerca attuali sono in grado, secondo ben precise
istruzioni, di disporre e visualizzare le informazioni in una certa maniera, ma non hanno capacità di
riconoscerle o attribuire loro un particolare significato per elaborarle, questo poiché effettuano solo
ricerche di tipo sintattico basate su insieme di parole chiave. Trovare informazioni usando i
tradizionali motori si rivela fruttuoso solo in presenza di argomenti di una certa notorietà e
importanza e di query molto precise, se invece fossero in grado di comprendere il significato dei
contenuti di una pagina, potrebbero fornire risposte efficaci a domande anche più complesse.
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
37
RDF Triplestore Systems
______________________________________________________________________________________
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. Aggiungere la semantica ai contenuti
del Web richiede però la creazione di linguaggi e tecnologie in grado di estrarre significati da
informazioni.
Il linguaggio, proposto dal W3C, per la rappresentazione delle informazioni riguardo le risorse del
Web è RDF (Resource Description Framework). L’RDF ci permette di effettuare semplici
affermazioni sulle risorse, tali affermazioni sono costituite da una tripla soggetto-predicato-oggetto
in cui il soggetto è la parte che identifica ciò che l'affermazione descrive, il predicato è la parte che
identifica la proprietà o le caratteristiche del soggetto e l’oggetto è la parte che identifica il valore
della proprietà.
Nascono così i primi database realizzati appositamente per la memorizzazione ed il recupero di
triple RDF, i cosidetti triplestore.
In questo lavoro di tesi è stato effettuato un confronto tra alcuni triplestore in commercio al fine di
individuare quello più efficiente. Per la valutazione dei triplestore è stato scelto il benchmark
BSBM (Berlin SPARQL Benchmark) e sono stati testati i seguenti triplestore: OWLIM, Virtuoso e
Mulgara. Analizzando i risultati dei test effettuati il triplestore più efficiente è risultato essere
OWLIM.
38