35
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

RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

Embed Size (px)

Citation preview

Page 1: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 2: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"
Page 3: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 4: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 5: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 6: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 7: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 8: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 9: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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à.

Page 10: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 11: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 12: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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à),

Page 13: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 14: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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,

Page 15: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 16: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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ù

Page 17: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 18: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 19: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 20: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 21: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 22: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 23: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 24: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 25: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 26: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 27: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 28: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 29: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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 .

}

Page 30: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 31: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 32: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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.

Page 33: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 34: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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

Page 35: RDF (Triplestore) Database - Facoltà di Ingegneria · Negli ultimi anni le aziende proprietarie dei motori di ricerca stanno ... dalle reti neurali del ... questi link "semantici"

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