INTRODUZIONE
su ogni livello ed ampiamente su RDFGrowth, l’algoritmo di apprendimen-
to di DBin, e sul linguaggio di interrogazione SeRQL, del quale si descrive
ampiamente la sintassi.
Sono analizzati e valutati i possibili approcci per la progettazione di un
browser per il Semantic Web, nonche´ una presentazione e valutazione dei
progetti esistenti, sia in merito a browser universali, sia in merito a browser
di dominio.
Infine esponiamo l’architettura e giustifichiamo alcune scelte implemen-
tative del nostro progetto, il cui obbiettivo e` stato di realizzare uno stru-
mento per creare browser di dominio per DBin. Sono illustrati il modello
BrainLet, che permette la creazione guidata di browser di dominio, e il mo-
dello Annotation, che permette di creare tipi di Annotazioni specifiche di
dominio.
6
Capitolo 2
Semantic Web
2.1 Scenario
2.1.1 Il Web attuale. Ragioni storiche
Si puo` far risalire la nascita del Web attuale al 1989, quando Tim Berners Lee,
del CERN di Ginevra, ideo` una infrastruttura che permettesse ai ricercatori
dell’istituto e a tutti i collaboratori, sparsi in tutto il mondo, di condividere
documenti che potessero essere collegati ad altri, in modo da creare riferi-
menti da un documento all’altro[12]. Il formato utilizzato per rappresentare i
documenti e` stato chiamato HTML (HyperText Markup Language). Il Web
e` nato dunque per rendere documenti scritti da esseri umani accessibili e
navigabili da altri esseri umani. Questo era gia` un enorme progresso, ma
oggi, lo sforzo di automazione, intrapreso per i motivi piu` diversi, mostra i
limiti di tale approccio. Allo stato attuale, la ricerca nel Web puo` essere un
compito arduo, a seconda delle situazioni: i sistemi basati su indicizzazioni,
sono, oltre che poco efficienti, semanticamente poco espressivi.
L’architettura del World Wide Web fornisce agli utenti una sem-
plice interfaccia ipertesto ad una varieta` di risorse remote, da
documenti statici fatti per gli esseri umani a servizi interattivi
per i dati. HTML, il formato che ha facilitato il grande sviluppo
7
SEMANTIC WEB
del Web ha iniziato aggiungendo collegamenti basati su URI ad
uno stile di scrittura rich text per dare una globale funzionalita`
di base all’ipertesto. L’uso di HTML ha dato all’utente una mi-
nimale ma funzionale interfaccia utente ai servizi interattivi. Pur
avendo questa infrastruttura facilitato una rivoluzione nell’infor-
mation technology globale, soffre di inevitabili limitazioni: il con-
tenuto si confonde con la forma e viceversa; il costo di tradurre
una struttura di dati ricca e` pagato in efficienza e integrita`.[16]
Allo scopo di dare al WEB una struttura di dati piu` ordinata ma flessi-
bile e` stato introdotto XML (Extensible Markup Language). XML ha il
vantaggio di essere leggibile da un essere umano e nel contempo di essere
compreso e scambiato da macchine e servizi automatici. Il passo successivo
e` stato di includere HTML in XML, e a tale scopo e` stato introdotto il for-
mato XHTML[13], ossia una riformulazione di HTML, utilizzando XML. Le
necessita` di utilizzare XHTML sono fondamentalmente:
• la possibilita` di creare nuovi elementi (tag), come richiesto da molti
sviluppatori;
• l’aumento di modi di accedere ad internet, che richiede la trasforma-
zione di documenti in modo da essere accessibili dal maggior numero
di utenti.
XHTML rimane pero` ancora una tecnologia finalizzata alla visualizzazione,
non al contenuto, ossia ai dati.
2.1.2 Il Semantic Web
Una definizione
La definizione comunemente accettata di Semantic Web e` data dalla W3C:
The Semantic Web is an extension of the current web in whi-
ch information is given well-defined meaning, better enabling
computers and people to work in cooperation.[15]
8
SEMANTIC WEB
Piu` precisamente:
Il Semantic Web e` una estensione del Web attuale in cui l’in-
formazione e` data con una significato ben definito, per meglio
sfruttare la cooperazione tra uomo e macchina. Si basa sull’idea
di avere dati sul Web definiti e collegati in modo tale da esse-
re usati per una migliorare ricerca, automazione, integrazione e
riutilizzo attraverso varie applicazioni. Il Web, per raggiungere il
suo pieno potenziale, deve evolvere nel Semantic Web, fornendo
una piattaforma universalmente accessibile che permetta ai dati
di essere condivisi e processati da sistemi automatici bene come
dalle persone. [14]
Dunque gli obbiettivi del Semantic Web sono:
1. ricerca basata sul significato;
2. interoperabilita` tra macchine.
Questi obbiettivi si raggiungono estendendo il Web attuale (nel Web attuale
non e` possibile, per la sua natura intrinseca, raggiungerli), fornendo una
infrastruttura per attribuire significati ben definiti alle risorse (ossia le cose
di cui si parla) e collegarle.
9
SEMANTIC WEB
2.2 Tecnologie del SW
Il Semantic Web deve fornire una struttura dati per collegare una qualsiasi
risorsa a qualsiasi altra, per avere la massima flessibilita` ed espressivita`. In
una base di dati relazionale, si puo` sempre assumere lo stato di consistenza
e ad ogni interrogazione, si puo` sempre assumere di possedere tutta la ne-
cessaria conoscenza per rispondere. In una base di dati relazionale, come in
un file XML, la conoscenza e` finita, mentre il Web, in considerazione delle
attuali capacita` computazionali, e` infinito. Nel web non e` garantito lo stato
di consistenza (un link puo` puntare ad una risorsa inesistente): il singolo si
fa carico di mantenere il proprio stato consistente, ma nessuno puo` assumere
che il Web lo sia. Quindi il Semantic Web deve garantire il trattamento della
conoscenza incompleta. Essendo un’estensione del Web attuale, il Semantic
Web deve inglobare il Web attuale e le sue strutture. Il Semantic Web deve
inoltre fornire uno strumento che permetta alle applicazioni di domani di
processare e condividere dati anche qualora queste applicazioni siano state
realizzate in modo totalmente indipendente.
I piu` grandi sforzi per creare un mezzo universale per scambiare dati sono
stati fatti dal consorzio W3C (World Wide Web Consortium).
Le principali tecnologie del Semantic Web sono: Resource Description
Framework (RDF), RDF Schema, e Web Ontology Language (OWL). Con
queste e con altre componenti Tim Berners-Lee ha proposto una struttura
stratificata illustrata in figura 2.1, che analizziamo livello per livello.
2.2.1 URI: Uniform Resource Identifier
Sono usate per puntare a risorse, ossia a “qualcosa” che puo` essere “da qual-
che parte”, e che ha un identificatore unico, la URI appunto. Si e` discusso
molto su cosa fosse un URI e sulle sue sotto-classi ma oggi possiamo dire
che una URI ha uno schema (come “http:”, “ftp:”, “isbn:”) che definisce
uno spazio dei nomi(namespace). Esistono diversi schemi registrati presso
l’autorita` IANA (Internet Assigned Numbers Authority). La classica suddi-
10
SEMANTIC WEB
Figura 2.1: Semantic Web — Struttura secondo Berners-Lee
visione delle URI in URL e URN (le prime raggiungibili, le altre no) e` stata
rimpiazzata dal concetto utile ma informale che una URL e` una URI che
identifica una risorsa con il suo meccanismo primario di accesso[6].
Opacita` Un importante assioma riguarda l’opacita` delle URI. Per una ap-
plicazione del Semantic Web l’URI deve essere totalmente opaca, ossia nes-
suna informazione sulla risorsa identificata dalla URI deve essere ottenuta
analizzando l’URI stessa. Questo assioma in realta` esprime l’imperativo
che le informazioni riguardo una risorsa siano espresse nel grafo RDF. La
stringa che forma l’URI dovrebbe essere analizzata eventualmente solo per
permettere, se e` possibile, la localizzazione della risorsa in rete1.
1La struttura della URI e, prima ancora, della URL, e` stata concepita affinche´ ogni
parte della stessa sia opaca ad un certo livello: lo schema (il protocollo della URL: http,
ftp...) ha lo scopo di identificare il tipo di servizio necessario alla localizzazione della
risorsa: quindi per il livello piu` alto, tutto cio` che non e` protocollo deve essere opaco;
l’host e` necessario per il risolutore; la porta per il servizio che deve effettuare fisicamente
la connessione e il nome del file per l’applicazione che si occupa di scaricare eventualmente
il file. Tutto cio` che non e` necessario per un livello dovrebbe essere opaco a quel livello.
11
SEMANTIC WEB
2.2.2 Unicode
Lo standard Unicode e` lo standard universale di codifica dei caratteri per la
rappresentazione di testo. Gia` usata in XML, garantisce che la tecnologia
possa essere usata per ogni tipo di conoscenza umana scritta.
2.2.3 XML
Lo standard di codifica di dati strutturati. Dal punto di vista logico una base
di dati XML e` un albero, ma in realta`, tramite i riferimenti, al Semantic
Web fornisce il supporto necessario alla rappresentazione di grafi in modo
serializzato. Una serializzazione RDF/XML e` molto difficilmente leggibile
da un essere umano, ma e` il modo privilegiato con cui gli applicativi possono
scambiarsi informazioni sotto forma di grafo.
Si noti la differenza, che sara` ancor piu` chiara in seguito, tra RDF e XML:
il secondo e` un formato, RDF e` un modello per descrivere un grafo. Il termine
RDF/XML si riferisce ad uno standard di codifica del grafo RDF utilizzan-
te XML, peraltro non l’unico; altri tipi di serializzazioni, storicamente piu`
vecchie, ma a volte ancora molto utili, sono NTRIPLE, la semplice scrittura
delle triple in modo sequenziale, ed N3.
2.2.4 RDF: Resource Description Framework
Fornisce un modo di esprimere la conoscenza in forma di grafo. RDF e` una
rete di nodi connessi da archi diretti ed etichettati. Gli archi sono le proprieta`
delle risorse.
Modello di grafo RDF[2]
La struttura alla base di un grafo RDF e` una collezione di triple (State-
ment), ognuna delle quali consiste in un soggetto, un predicato e un oggetto.
Semanticamente[3] una tripla coincide con una proposizione ed i termini sog-
getto, predicato, oggetto hanno lo stesso significato che hanno nella logica
12
SEMANTIC WEB
Figura 2.2: Esempio di grafo RDF[1].
tradizionale; inoltre dire che un grafo e` formato da una serie di triple equivale
ad affermare una serie di proposizioni collegate tra loro con AND logico.
La figura 2.2 mostra un esempio di grafo RDF: gli archi del grafo sono le
proprieta`, mentre soggetti e oggetti sono i nodi del grafo. RDF definisce tre
tipi di nodi:
URIRef Una URI con un identificatore opzionale detto fragment ; iden-
tifica un oggetto, che si vuole descrivere. A volte tra gli sviluppatori del Se-
mantic Web si dice URI per dire URIRef, essendo il significato praticamente
lo stesso. Vale sempre il discorso dell’opacita` delle URI: le informazioni sono
codificate nel grafo, non nella stringa che compone la URI o la URIRef. In
figura 2.2, le URIRef sono evidenziate in verde.
13
SEMANTIC WEB
Letterali (Literal) I letterali sono dati che sono relativi ad un oggetto,
ad esempio l’eta` o il nome della via dell’indirizzo. Possono essere tipizzati
(RDF supporta i tipi definiti da XMLSchema[10], ossia stringhe, booleani,
data e numerosi formati numerici). In figura 2.2 sono rappresentati con
sfondo arancione.
Blank Node Sono nodi che non hanno un nome intrinseco. I Blank
Node sono utili per descrivere oggetti la cui esistenza e` motivata solo dall’e-
sistenza di un altro oggetto. Ad esempio l’indirizzo (figura 2.3) puo` essere
visto come un Blank Node: in certi contesti puo` esistere solo in relazione
all’esistenza di una persona che ha tale indirizzo. Un indirizzo non deve ave-
re necessariamente un nome. Affinche´ un Blank Node venga identificato, in
modo che piu` triple possano riferirvisi, puo` avere un identificatore, ma tale
identificatore non ha assolutamente valore universale.
Figura 2.3: Esempio di grafo RDF con Blank Node[1].
Le proprieta` invece possono essere solo delle URIRef, ed in tal caso la
URIRef non rappresenta un oggetto ma una relazione tra due nodi.
14