IMPLEMENTAZIONE DI UN MOTORE INFERENZIALE PER LA LOGICA ETICHETTATA SU UN REPOSITORY RDF



Documenti analoghi
Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Strutturazione logica dei dati: i file

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Database. Si ringrazia Marco Bertini per le slides

RICERCA DELL INFORMAZIONE

Introduzione al Semantic Web

Informatica per la comunicazione" - lezione 10 -

Reti di Telecomunicazione Lezione 6

Capitolo 4 Pianificazione e Sviluppo di Web Part

Il database management system Access

Strumenti di modellazione. Gabriella Trucco

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Reti di Calcolatori. Il Livello delle Applicazioni

Alessandra Raffaetà. Basi di Dati

La Metodologia adottata nel Corso

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

EXPLOit Content Management Data Base per documenti SGML/XML

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Cercare documenti Web

Progettaz. e sviluppo Data Base

PROCESSO DI INDICIZZAZIONE SEMANTICA

1. BASI DI DATI: GENERALITÀ

Soluzione dell esercizio del 2 Febbraio 2004

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Lezione 1. Introduzione e Modellazione Concettuale

Generazione Automatica di Asserzioni da Modelli di Specifica

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Lezione 8. La macchina universale

Università Politecnica delle Marche. Progetto Didattico

Linguaggi e Paradigmi di Programmazione

Capitolo 5. Cercare informazioni sul Web

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Organizzazione degli archivi

HTML il linguaggio per creare le pagine per il web

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

ALGEBRA DELLE PROPOSIZIONI

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Siti web centrati sui dati (Data-centric web applications)

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Database 1 biblioteca universitaria. Testo del quesito

lem logic enterprise manager

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

1- OBIETTIVI DEL DOCUMENTO 2- INTRODUZIONE

4.5 CONTROLLO DEI DOCUMENTI E DEI DATI

Esercitazione di Basi di Dati

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Architettura client-server

Applicazioni web centrati sui dati (Data-centric web applications)

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Appunti di Sistemi Distribuiti

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

Manuale Utente Albo Pretorio GA

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di PHP. Prerequisiti. 1 - Introduzione

InterNet: rete di reti

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

ESERCITAZIONE Semplice creazione di un sito Internet

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a

GRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo

URI. Introduzione. Pag. 1

Enrico Fagnoni BOTK IN A NUTSHELL

Laboratorio Matematico Informatico 2

La progettazione centrata sull utente nei bandi di gara

Attività federale di marketing

STAMPA DI UNA PAGINA SEMPLICE

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Portale Multicanale delle PA del territorio della Regione Emilia-Romagna: un inizio di rete semantica di informazioni

Concetti di base di ingegneria del software

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Guida Compilazione Piani di Studio on-line

Capitolo 2. Operazione di limite

Sistemi Informativi e Sistemi ERP

Rappresentazione della Conoscenza. Lezione 10. Rappresentazione della conoscenza, D. Nardi, 2004, Lezione 10 0

Creare un Ipertesto. 1

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

Organizzazione delle informazioni: Database

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

Corso di Informatica (Basi di Dati)

Corso di Informatica

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

Progettaz. e sviluppo Data Base

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Lezione 8. Motori di Ricerca

BASI DI DATI - : I modelli di database

Comprendere cosa è Internet e sapere quali sono i suoi principali impieghi. 25/09/2011 prof. Antonio Santoro

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Una piattaforma per la negoziazione di servizi business to business attraverso la rete Internet

sito web sito Internet

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Transcript:

UNIVERSITA' POLITECNICA DELLE MARCHE FACOLTA' DI INGEGNERIA Dipartimento di Ingegneria Informatica, Gestionale e dell'automazione Corso di Laurea in Ingegneria Informatica e dell'automazione IMPLEMENTAZIONE DI UN MOTORE INFERENZIALE PER LA LOGICA ETICHETTATA SU UN REPOSITORY RDF Tesi di Laurea di: Matteo Rossi Relatore: Prof. Aldo Franco Dragoni Correlatore: Ing. Mauro Mazzieri Sessione DICEMBRE 2010 Anno Accademico 2009 2010

INDICE Introduzione...3 1 Il Semantic Web...6 1.1 La nascita del Web...6 1.2 Dal Web attuale......7 1.3...al Semantic Web...9 1.3.1 L'architettura del Semantic Web...11 1.3.2 I principi del Semantic Web...15 2 RDF...18 2.1Introduzione a RDF...18 2.2 Il modello e la sintassi RDF...21 2.3 Altre proprietà RDF...28 2.4 Semantica RDF...31 3 RDF Schema...37 3.1 Semantica RDF Schema...40 4 RDF etichettata...43 4.1 La logica Fuzzy e la logica etichettata...43 4.2 Sintassi RDF etichettata...46 4.3 Semantica RDF etichettata...47 5 Sesame 2...50 5.1Architettura di Sesame 2...50 5.1.1 RDF Model...51 5.1.2 Sail API...52 5.1.3 Repository API...53 5.2 Motore inferenziale di Sesame 2...55 6 Labeled Sesame...56 6.1 Strategia e tecnologie utilizzate...56 6.2 Estensione del motore inferenziale...59 6.3 Realizzazione del comparatore di contesti...61 6.4 Valutazione delle prestazioni...73 Riferimenti...74 2

INTRODUZIONE Il Web è uno dei più potenti mezzi di comunicazione. Nato al CERN fu prima adottato solo dai fisici del centro di ricerca per la condivisione di documenti in forma elettronica, poi dal resto dell'ambito accademico, poi dalle piccole fino alle grandi aziende, per diffondersi infine in tutto il resto del Mondo. Con l'avvento del Web è stato quindi possibile realizzare il principio di accesso universale all'informazione che permette di accedere al documento da ogni computer localizzato ovunque, da parte di qualsiasi utente autorizzato. Il Web ormai non è più uno strumento per appassionati, ma è diventato parte integrante della vita comune dell'essere umano: tutti ne fanno uso con scopi più svariati ma il principale è quello della trasmissione, del recupero e l'elaborazione dell'informazione e della conoscenza. Nonostante questo il web rimane, ancora e soprattutto, una gigantesca biblioteca di pagine HTML (statiche e dinamiche) online. La maggior parte dei contenuti del Web infatti sono attualmente rappresentati affinché possano essere letti ed elaborati da utenti umani e non sono progettati per essere compresi da agenti software. Il Semantic Web o Web Semantico nasce proprio in questo contesto e permette di introdurre una struttura semantica nei contenuti del Web. Non separato dal Web tradizionale, ma introducendo il significato dei dati, ne è un estensione che aggiunge una nuova funzionalità alle macchine, le quali diventano in grado di comprendere i dati, che fino ad ora semplicemente visualizzavano. Aggiungere la semantica ai contenuti del Web richiede però la creazione di linguaggi e tecnologie in grado di estrarre significati da informazioni. In particolare, per lo sviluppo di un Web in versione semantica risulta necessario un linguaggio che permetta di esprimere dati e regole per i ragionamenti. Questo linguaggio deve ovviamente poter coesistere con i diversi sistemi di rappresentazione della conoscenza esistenti e deve essere sufficientemente espressivo da abilitare il ragionamento su scala Web. Uno dei linguaggi per la rappresentazione delle informazioni riguardo le risorse del Web è RDF (Resource Description Framework). È particolarmente utile per rappresentare i meta dati riguardanti risorse Web, come il titolo, l'autore, la data di modifica di una pagina Web, il copyright di un documento Web o altre informazioni condivisibili. Comunque, generalizzando il concetto di risorsa Web, il linguaggio RDF può essere usato per rappresentare informazioni su oggetti che 3

possono essere identificati sul Web, anche quando essi non possono essere direttamente reperiti sul Web stesso. Ogni risorsa è identificata da un URI, un identificatore univoco di risorse. Questo permette a RDF di rappresentare semplici affermazioni sulle risorse. Tali affermazioni sono costituite da un soggetto, cioè la parte che identifica ciò che l'affermazione descrive, da un predicato che identifica la proprietà o delle caratteristiche del soggetto, e da un oggetto che identifica il valore della proprietà. Utilizzando la logica fuzzy per estendere RDF è possibile aggiungere un grado di verità ad ogni affermazione RDF. Il grado di verità viene espresso, secondo la logica fuzzy, da un numero appartenente all'intervallo [0,1] il quale rappresenta il grado di appartenenza di un elemento ad un insieme. Applicando questo concetto a RDF e definendone una nuova semantica è possibile trattare il tipo di incertezza causata dalla vaghezza delle informazioni. Purtroppo però quando un valore logico aggiuntivo viene applicato ad un affermazione per esprimere la provenienza, un valore numerico risulta difficile da interpretare. A questo punto risulta utile introdurre la logica etichettata; l'idea di base è che la logica fuzzy può essere vista come una forma di logica etichettata in cui l'appartenenza di un elemento ad un insieme viene indicata da un'etichetta, la quale può assumere i valori nell'intervallo [0, 1], il quale viene definito dominio delle etichette. Ora, se un valore logico fuzzy viene visto come un'etichetta in un'affermazione logica, possiamo generalizzare ed estendere il dominio delle etichette dall'intervallo [0, 1] ad ogni altro insieme. Alcuni domini potrebbero essere l'insieme delle etichette di contesto, l'insieme delle etichette che esprimono rilevanza o l'insieme delle etichette che esprimono intervalli di tempo. Utilizzando la logica etichettata è possibile estendere ulteriormente RDF fornendo delle etichette alle affermazioni RDF, che esprimono esplicitamente la provenienza di un'affermazione, ossia il suo contesto. Scopo della tesi è l'implementazione di un'estensione in un sistema inferenziale che consente di effettuare inferenze logiche sulla base della provenienza delle affermazioni memorizzate. Il sistema inferenziale scelto per realizzare l'estensione è Sesame. Sesame è un framework open source per la memorizzazione, e interrogazione di dati RDF. In origine, è stato sviluppato da Aduna (allora conosciuta come Aidministrator) come prototipo per un progetto di ricerca dell'ue On To Knowledge. Successivamente è stato ulteriormente sviluppato e mantenuto da Aduna in collaborazione con Fondazione NLnet, gli sviluppatori di Ontotext, e un 4

certo numero di sviluppatori volontari che contribuiscono con idee, segnalazioni di bug e correzioni. Sesame è stato progettato per garantire flessibilità. Può essere schierato sulla cima di una varietà di sistemi di storage (database relazionali, in memoria, file system, ecc), e offre un gran numero di strumenti che permettono accessi sia locali che remoti e diversi linguaggi di interrogazione. Le motivazioni che ci hanno portato a scegliere questo framework per realizzare il motore inferenziale sono: data l'architettura di Sesame 2, è particolarmente adatto per sviluppare delle estensioni e supporta Java 6; inoltre in questa versione è stata introdotta la gestione dei contesti che permettono di tener traccia della provenienza di alcune unità RDF. Per realizzare questa estensione sono stati seguiti due fasi fondamentali: implementazione di un motore inferenziale che tenga conto anche dei contesti delle affermazioni secondo un approccio minimalistico; ciò significa che si è utilizzato, ove possibile, il codice sorgente di Sesame 2 modificando solo le classi relative al motore inferenziale realizzazione di un comparatore di contesti utile per gestire un ordinamento parziale tra di essi e una funzione in grado di fornire il minimo tra due contesti dati che sia indipendente dal motore inferenziale. Grazie a questa scelta è stato possibile sviluppare la classe del comparatore di contesti al di fuori di Sesame ed eseguire dei test per verificare il corretto funzionamento dell'algoritmo di ordinamento parziale tra contesti. Questa scelta permetterà inoltre di migliorare, in futuro, il comparatore di contesti il quale potrebbe anche essere utilizzato da applicazioni differenti da Sesame. 5

1 IL SEMANTIC WEB 1.1 LA NASCITA DEL WEB Il World Wide Web (nome di origine inglese), in sigla WWW o W3, più spesso abbreviato in Web, è stato inizialmente implementato da Tim Berners Lee, mentre era ricercatore al CERN (Conseil Européen pour la Recherche Nucléaire) di Ginevra. L'idea di Berners Lee era quella di fornire uno strumento per la condivisione, tra i ricercatori, di documenti in forma elettronica. Il 13 Marzo 1989 Tim Berners Lee presentò infatti al proprio supervisore il documento Information Management: A Proposal [1] (Fig. 1.1). Fig. 2 Frontespizio della proposta. 6

Vague but exciting... ( vago ma interessante), con questo scarno commento, annotato manualmente su una copia del documento, Mike Sendall, che era il diretto superiore di Berners Lee, ha fatto storia, permettendo al progetto di continuare e, in retrospettiva, di cambiare il mondo. Nel documento discusse dei problemi di perdita di informazioni sui sistemi complessi in evoluzione (in particolare al CERN) e propose una possibile soluzione basata su un sistema ipertestuale distribuito. Le esigenze pratiche del CERN erano quelle di creare un sistema distribuito che permettesse l'accesso da macchine remote, l'eterogeneità, cioè la possibilità di accesso ai dati da sistemi differenti (VM / CMS, Macintosh, VAX / VMS, Unix), la non centralizzazione, l'accesso ai dati esistenti, come ad esempio la ricerca, e la possibilità di aggiungere collegamenti privati per arricchire l'informazione pubblica. Da queste esigenze nacque l'idea di elaborare un software per la condivisione di documentazione scientifica in formato elettronico indipendentemente dalla piattaforma informatica utilizzata, con il fine di migliorare la comunicazione, e quindi la cooperazione, tra i ricercatori dell'istituto. A lato della creazione del software, iniziò anche la definizione di standard e protocolli per scambiare documenti su reti di calcolatori: il linguaggio HTML e il protocollo di rete HTTP. La nascita effettiva del Web viene comunemente indicata nel 6 agosto 1991, giorno in cui Berners Lee mise on line il primo sito Web. Inizialmente utilizzato solo dalla comunità scientifica, il 30 aprile 1993 il CERN decide di rendere pubblica la tecnologia alla base del Web. A tale decisione fa seguito un immediato e ampio successo del Web in virtù della possibilità offerta a chiunque di diventare editore della propria conoscenza. La semplicità della tecnologia decretò un immediato successo: in pochi anni il WWW divenne la modalità più diffusa al mondo per inviare e ricevere dati su Internet, facendo nascere quella che oggi è nota come "era del web". 1.2 DAL WEB ATTUALE... Per definire il WWW è utile far riferimento a [2] in cui il WWW viene descritto come un sistema informativo multimediale, distribuito, eterogeneo e collaborativo. Con l'avvento del Web è stato possibile realizzare il principio di accesso universale all'informazione che permette di accedere al documento, se esso disponibile, da ogni computer localizzato ovunque, 7

da parte di qualsiasi utente autorizzato attraverso l'utilizzo di un unico software chiamato Browser. La realizzazione di tale principio si basa sulla rappresentazione ipertestuale dei documenti (evoluti verso gli ipermedia), sulla disponibilità di efficaci meccanismi di ricerca, sul modello Client Server e sulla negoziazione del formato dei documenti. Il Web è inoltre un insieme di protocolli (URL, HTTP, HTML), un insieme di applicazioni (Web Servers,Web Browsers) ed insieme di informazioni di vario tipo. Oggi l'ente che si occupa di migliorare gli esistenti protocolli e linguaggi per il WWW e di aiutare il web a sviluppare tutte le sue potenzialità è il World Wide Web Consortium (W3C) [3]. Il W3C comprende circa 350 membri, tra i quali: aziende informatiche di primaria importanza: Adobe, Apple, Cisco System, Google, IBM, Intel, Microsoft, Sun Microsystem ed altri ancora; compagnie telefoniche Nokia; società di grandi dimensioni appartenenti ai più svariati settori, ma strategicamente interessate alla crescita del Web: American Express; organizzazioni non profit come la Mozilla Foundation; università e istituzioni per la ricerca. L'importanza dei suoi membri fa del W3C un organismo di grande autorevolezza e molti sono portati a chiamarlo il Consorzio, per antonomasia. Nonostante questo 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. Infatti, lo standard HTML se da un lato con la sua semplicità ha contribuito all'affermazione del Web permettendo di rendere documenti scritti da essere umani accessibili e navigabili da altri esseri umani, dall'altro ha la grossa limitazione di occuparsi solo ed esclusivamente della formattazione dei documenti, tralasciando del tutto il significato del contenuto. Un motore di ricerca è in grado, secondo ben precise istruzioni, di disporre e visualizzare le informazione in una certa maniera, ma non hanno capacità di riconoscerle o attribuire loro un particolare significato per elaborarle. Ad esempio, analizzando i risultati forniti da un motore di ricerca come Google in risposta alla parole chiave rossi, riusciamo a capire come esso non sia in grado di distinguere se la parola si riferisca al colore o al famoso pilota di moto (lo stesso vale, a maggior ragione, per i contenuti non testuali come le immagini o gli elementi multimediali). Un 8

attuale motore di ricerca può tentare di ricavare i significati dal contesto della pagina, utilizzare sinonimi per espandere le ricerche ma fondamentalmente esegue delle ricerche da un archivio, certamente molto ben organizzato, di parole chiave. Se invece fosse in grado di comprendere il significato dei contenuti di una pagina, potrebbe fornire un unica risposta complessa ed efficace a domande anche più complesse del precedente esempio. Il Semantic Web o Web Semantico nasce proprio in questo contesto e permette di introdurre una struttura semantica nei contenuti del Web. 1.3...AL SEMANTIC WEB Il termine Web Semantico è stato proposto da Tim Berners Lee nel 2001: The Semantic Web is not a separate Web but an extension of the current one, in which information is given well defined meaning, better enabling computers and people to work in cooperation.... In the near future, these developments will usher in significant new functionality as machines become much better able to process and "understand" the data that they merely display at present. Da questa citazione presente nell'articolo [5] si capisce come l ideatore del WWW voglia proporre una evoluzione del Web attuale, che non sostituisca quello esistente, ma che riesca a traslare il concetto di Web dal machine readable al machine understandable, ovvero rendere le informazioni processabili e comprensibili direttamente alle macchine, con l'obiettivo di creare un ambiente in cui l informazione sia prodotta come una cooperazione efficace tra computer e persone. Affinché il significato dei dati veicolati sul Web sia compreso dai computer, è necessario che ad essi siano associate meta informazioni che ne descrivano il contenuto semantico in una forma comprensibile ai computer. In questo senso i meta dati sono informazioni, strutturate per essere elaborate da una macchina, che descrivono una risorsa Web. In particolare, i meta dati sono scritti con una sintassi che li rende comprensibili alle macchine e queste ultime devono essere in grado non solo di accedere a collezioni strutturate di meta dati ma di portare a termine operazioni di ragionamento e comprensione automatici attraverso l utilizzo di regole di inferenza logica e semantica. 9

La sfida del Web Semantico, in definitiva, è quella di trovare un linguaggio logico adatto ad esprimere sia i dati che le regole per il ragionamento automatico sui dati. Questo linguaggio deve ovviamente poter coesistere con i diversi sistemi di rappresentazione della conoscenza esistenti e deve essere sufficientemente espressivo da abilitare il ragionamento su scala Web. In risposta a questo è stato sviluppato, nel 1998 da Tim Berners Lee, lo standard XML (extensible Markup Language), un metalinguaggio che consente la creazione di nuovi linguaggi di marcatura (ad es. lo stesso HTML è stato ridefinito in XML come XHTML). Sua caratteristica innovativa è la possibilità di aggiungere informazioni semantiche sui contenuti attraverso la definizione di opportuni tag. I principali obiettivi di XML, dichiarati nella prima specifica ufficiale [4], sono pochi ed espliciti: utilizzo del linguaggio su Internet, facilità di creazione dei documenti, supporto di più applicazioni, chiarezza e comprensibilità per un essere umano, e contemporaneamente per le macchine. Con queste semplici caratteristiche l'xml fornisce un modo comune di rappresentare i dati, cosicché i programmi software sono in grado di eseguire meglio ricerche, visualizzare e manipolare informazioni. Un altro problema legato alla natura stessa del Web, come mostrato in precedenza attraverso un esempio, è che dati concettualmente diversi possano essere rappresentati con lo stesso nome: un programma dovrebbe essere in grado di risolvere tali ambiguità e quindi elaborare le informazioni in maniera appropriata. Perché questo possa avvenire, si devono creare delle ontologie. Il termine ontologia, preso in prestito dal linguaggio filosofico, indica un documento che contiene la descrizione formale dei concetti di un dato dominio; identifica le classi più importanti, le organizza in una gerarchia, specifica le loro proprietà (che caratterizzano anche gli oggetti appartenenti alla classe) e descrive anche le relazioni più significative, che legano queste classi. Le ontologie sono in grado di migliorare le potenzialità del Web: i programmi di ricerca, basandosi su un preciso concetto, cercano e trovano le pagine che effettivamente si riferiscono a quel concetto, anziché quelle che contengono parola chiave ambigue o generiche. 10

1.3.1 L'architettura del Semantic Web L'architettura che caratterizza il Semantic Web, teorizzata da Tim Berners Lee, prevede una struttura a livelli riportati in Fig 1.2. L'utilizzo di questa struttura permette lo sviluppo indipendentemente ed autonomo dei diversi livelli purché si tenga conto di due principi fondamentali: il software di un certo livello deve essere in grado di usufruire di informazioni e servizi fornita dai livelli sottostanti. il software di livello più basso deve comunque poter interpretare parzialmente dati di livello superiore. Fig. 1.2 Architettura del Web Semantico: il layer cake (Koivunen, Miller, 2001) UNICODE Per immagazzinare nella memoria di un computer lettere, simboli o segni è necessario che a ciascun carattere venga assegnata un numero che lo identifica. Esistono differenti sistemi di codifica che associano numeri identificativi ai caratteri, attraverso identificativi tecniche e processi differenti. Questi sistemi di codifica, oltre a non comprendere un numero di caratteri sufficiente per tutte le circostanze, sono in contraddizione l'uno con l'altro, nel senso che due codifiche possono utilizzare lo stesso numero per identificare due caratteri diversi o che, viceversa, associno identificatori diversi per lo stesso carattere. Inoltre, qualsiasi elaboratore necessita di utilizzare codifiche diverse. Il problema è che, quando i dati passano da una codifica ad un'altra, o da una piattaforma ad 11

un'altra, si corre il rischio di perdere informazioni. All'interno di questo contesto si inserisce lo standard Unicode, che attribuisce un numero univoco a ciascun carattere, indipendentemente dalla lingua, dalla piattaforma informatica e dal programma utilizzati. Lo piattaforma, standard Unicode è alla base di molti linguaggi come XML e Java ed è supportato da molti sistemi operativi, oltre che da quasi tutti i Web browser. A partire dall'ascii esteso o ASCII a 8 bit(iso8859) che consentiva di rappresentare 256 simboli, lo standard Unicode codifica qualsiasi altro carattere di lingue vive e di lingue morte, di simboli matematici e altro ancora. URI L'URI (Uniform Resource Identifiers) è lo standard utilizzato per la definizione univoca di risorse on line, come documenti, file e indirizzi Internet. È possibile definire un URI per un qualsiasi documento, programma o contenuto on line; in particolare un URI indica al computer il meccanismo da attivare per accedere ad una determinata risorsa, in quale computer trovare la risorsa e attraverso quale percorso interno. Gli URI possono essere creati inoltre per indicare cose che non sono network accessible, come un essere umano e società o associazioni di essi, e concetti astratti che non esistono fisicamente come ad esempio il concetto di creatore di un qualcosa. Il tipo di URI più utilizzato è l'url (Uniform Resource Locator) definito in [RFC1738]. Esso è costituito da una stringa composta da tre parti: metodo di accesso o protocollo (utilizzato per accedere alla risorsa), il nome dell'host che detiene la risorsa nella rete e l'identità della risorsa (costituita dal nome del file e dal percorso per raggiungerlo). Per ulteriori informazioni riguardo le URI si può fare riferimento a [RFC2396]. XML, NS, XML Schema XML è un linguaggio pensato per progettare file di testo che descrivono dati strutturati, in un modo che produca file che siano facili da generare e da leggere per una macchina, che non siano ambigui e indipendenti dalla piattaforma. L acronimo significa extensible Markup Language e indica un linguaggio di marcatura che permette agli individui di creare, definire e utilizzare i propri tag, quindi rappresenta una sorta di metalinguaggio per definire altri linguaggi per specifiche applicazioni. Costituisce il linguaggio per raggiungere l interoperabilità sintattica, ovvero la capacità dei sistemi di riuscire ad interpretare la sintassi e la struttura dei documenti scambiati, ma 12

anche l interoperabilità strutturale, seppur in via parziale, cioè la possibilità di interpretare le strutture dei documenti di schemi logici differenti, conoscendo le regole di traduzione differenti, tra tali schemi. XML, però, non consente di soddisfare la cosiddetta interoperabilità semantica, ovvero la capacità di più sistemi di scambiarsi dati e informazioni in modo che il loro significato sia accettato e interpretato automaticamente dal sistema ricevente. Per questo, vengono in soccorso altre tecnologie, prima fra tutte RDF. RDF, RDF Schema RDF è un modello di base per la descrizione, lo scambio e il riutilizzo di meta dati strutturati e consente l interoperabilità tra applicazioni che si scambiano sul Web informazioni machine understandable. RDF è il modello relazionale dei dati definito e promosso dal W3C per l interscambio di dati sul Web. In RDF il significato dell informazione è codificato in un insieme di triple che corrispondono a frasi elementari costituite da tre elementi, soggetto, predicato e complemento, identificabili attraverso le URI. RDF Schema fornisce primitive per organizzare le risorse Web in gerarchie. Le primitive chiave sono: i concetti di classe e proprietà, i legami di sottoclasse e sottoproprietà e le restrizioni di Domain e Range. RDF è caratterizzato da una serie di limiti che necessitano dell adozione di ulteriori tecnologie in grado di rendere effettivamente concreta l interoperabilità tra le varie applicazioni. Due sistemi, per esempio, potrebbero utilizzare URI diverse per identificare la stessa risorsa e pertanto le asserzioni fatte in un sistema non sarebbero confrontabili o integrabili con le asserzioni della stessa risorsa di un altro sistema. Per ottenere ciò, invece, occorre un modo per affermare che due identificatori abbiano lo stesso significato e quindi rappresentino due identificatori per riferirsi alla stessa risorsa. Ecco che entrano in gioco le ontologie. Ontology vocabulary Sopra il livello RDF e RDF Schema si trova il livello ontologico. In questo si trovano gli strumenti dedicati alla definizione di ontologie. Le ontologie costituiscono la tecnologia più importante alla base di tutta la concezione del Web Semantico, ma probabilmente anche la più complessa. Nel corso degli anni sono state proposte diverse definizioni, sia da parte dalla comunità dell intelligenza artificiale che della comunità stessa 13

del Web Semantico. Probabilmente la definizione più accreditata è quella data da Gruber nel 1993 [6]; in questo articolo possiamo ritrovare tale definizione: An ontology is an explicit specification of a conceptualization. Una rappresentazione formale di conoscenza è basata su una concettualizzazione cioè l'insieme di concetti, degli oggetti e delle entità rilevanti alla descrizione del dominio in esame e le relazioni tra di essi. La concettualizzazione, infatti, è una vista astratta e semplificata del mondo o di quella parte di realtà che desideriamo rappresentare; ogni sistema di rappresentazione o gestione della conoscenza avrà sempre una qualche concettualizzazione esplicita o implicita del suo dominio. Un ontologia diventa a questo punto un'esplicita specificazione di una concettualizzazione. Un semplice caso di ontologia può essere dato da una tassonomia; ad esempio, le diverse categorie e sotto categorie utilizzate dai bibliotecari per catalogare libri formano una semplice ma efficace ontologia. Attualmente i maggiori candidati a formare il livello ontologico sono i linguaggi OIL e DAML (probabilmente nella forma del DAML+OIL) e l OWL messo a punto dal W3C. Logic, Proof and Trust Questi livelli non sono stati ancora formalizzati. Non sono stati creati infatti sistemi specifici, quindi si parlerà di concetti in generale che andranno a formare più sistemi. Gli elementi per ora a disposizione consentono di rappresentare in modo adeguato la conoscenza; ma come questa conoscenza sarà utilizzata è attualmente solo ipotizzabile e riconducibile a linee guida generiche che trattano di linguaggi logici, formule per la dimostrazione e reti della fiducia. L'obiettivo è però quello di realizzare dei sistemi in grado di formulare ogni principio logico e permettere ai computer di ragionare (per inferenza) e quindi dedurre nuova conoscenza a partire da affermazioni già note. Attraverso l'utilizzo del procedimento deduttivo di inferenza sarà possibile, partendo da una o più premesse, ricavare una conclusione. A questo punto entra in gioco il livello di Proof responsabile della verifica: le semplici informazioni ottenute saranno validate, nello strato della dimostrazione, tramite motori di validazione generici costituiti da sequenze di formule derivate da assiomi. In ultimo il livello Trust (o di fiducia ) restituirà solo quelle informazioni che secondo il richiedente proverranno da utenti di indubbia attendibilità. 14

Secondo Tim Berners Lee, il Trust deve basarsi sugli strati inferiori unitamente all'utilizzo della firma digitale. Basate su lavori in matematica e in crittografia, le firme digitali attestano che una determinata persona ha scritto (o ritiene veritiero) un determinato documento o un'istruzione. Quindi firmando digitalmente le istruzioni RDF, chi le incontrerà potrà essere sicuro della loro autenticità. Ogni utente fisserà il suo personale livello di fiducia e sarà il computer a decidere a cosa (e quanto) credere. È però difficile avere fiducia in un gran numero di persone e questo potrebbe limitare l'utilizzo del Web. Ecco perché si vuole costruire il Web of Trust: lo scenario che si vuole realizzare è che un utente comunica al suo computer che ha fiducia in una persona, a sua volta questa persona ha fiducia in altre persone e queste ultime in altre. Tutte queste relazioni di fiducia si aprono a ventaglio e formano il Web of Trust. Ognuna delle relazioni ha un grado di fiducia (o di sfiducia) associata con esso. 1.3.2 I principi del Semantic Web I principi alla base di questa rinnovata visione del Web sono descritti nell'articolo [7] presentato al seminario mondiale sul Semantic Web tenutosi in Finlandia nel 2002. Verranno di seguito brevemente riportati i sei principi fondamentali: 1. Ogni cosa può essere identificata attraverso una URI (per approfondimenti sugli URI si veda il paragrafo 1.3.1). 2. Le risorse e i link possono avere un tipo. Con il Web Semantico le risorse e i link acquistano un tipo (type), ovvero una meta informazione che associa un concetto a ciascuna risorsa e a ciascun link; concetto che può consentire ai computer di comprendere le relazioni logiche e semantiche tra le risorse, esplicitate attraverso link. Nella Fig. 1.3, alcuni link tra risorse evidenziano che un documento è una versione di un altro, che è scritto in riferimento ad altri documenti circa persone o luoghi, o che la risorsa contiene un software dipendente da altri software; 15

Fig. 1.3 I principi del Web Semantico Koivunen, Miller 2001 3. L'informazione parziale è tollerata. Il Semantic Web come l'attuale Web è senza confini né limiti: chiunque può affermare qualsiasi cosa e creare differenti tipi di link tra le risorse. Alcune delle risorse collegate da link possono cessare di esistere o gli indirizzi potrebbero essere riutilizzate per altre risorse; il Semantic Web metterà a disposizione strumenti e tecnologie che saranno in grado di tollerare parzialità e incompletezza delle informazioni e capaci, quindi, di garantire alle macchine di comprendere il significato delle relazioni, anche se incomplete e inesatte dal punto di vista logico e semantico; 4. Non c'è necessità della verità assoluta. La veridicità delle informazioni disponibili sul Web Semantico non sarà dimostrabile in assoluto, come già accade nel Web attuale. Tuttavia, il Web Semantico sarà basato su applicazioni potenzialmente in grado di creare una macchina della fiducia, così come definita da Berners Lee concetto in base al quale i computer e i software saranno capaci di verificare in automatico senza l'intervento degli utenti l affidabilità dei documenti e dei contenuti presenti on line attraverso interpretazioni e inferenze. 5. L'evoluzione è supportata. Come accade per il Web attuale, anche nel Web Semantico documenti, informazioni e contenuti, saranno sempre soggetti ad evoluzioni e mutamenti di significato, dal momento che il Web è inserito all'interno di un contesto sociale (ad esempio, un termine all'interno come rete sociale può assumere differenti significati a seconda del contesto e dell'epoca in cui è inserita). Inoltre, dal momento che il Web è decentralizzato, e lo sarà anche nella versione machine understandable, per una stessa risorsa possono esistere diversi significati; alcuni potrebbero prevalere su altri ma, in assenza di un autorità centrale che standardizzi definizioni e significati per ciascuna risorsa, il Web Semantico dovrà essere in grado di gestire tutti i differenti vocabolari messi in rete dalle diverse comunità. Ambiguità e incertezza circa i significati descritti per le varie risorse dovranno essere gestite 16

nel migliore dei modi dalle tecnologie e applicazioni del Web Semantico. L infrastruttura del Web definito 3.0, dunque, dovrà essere in grado di gestire il processo di evoluzione e aggiornamento delle informazioni in rete e dei relativi significati, non sostituendo quelli nuovi a quelli vecchi, ma integrandoli e coordinandoli. 6. Design minimalista. Il Semantic Web rende semplici le cose semplici e possibili le cose complesse. Lo scopo del W3C è quello standardizzare solo quello strettamente necessario, con l'obiettivo di facilitare lo sviluppo di uno spazio aperto alle innovazioni e alle nuove applicazioni on line. Come già evidenziato, tale infrastruttura fa riferimento ai quattro livelli (dati, schema, ontologico e logico), che disegnano un'architettura minimalista del Web Semantico. 17

2 RDF 2.1 INTRODUZIONE A RDF RDF (Resource Description Framework) è un linguaggio per la rappresentazione di informazione riguardo le risorse del Web, [8]. È particolarmente utile per rappresentare i meta dati riguardanti risorse Web, come il titolo, l'autore, la data di modifica di una pagina Web, il copyright di un documento Web o altre informazioni condivisibili. Comunque, generalizzando il concetto di risorsa Web, il linguaggio RDF può essere usato per rappresentare informazioni su oggetti che possono essere identificate sul Web, anche quando esse non possono essere direttamente reperite sul Web. RDF fornisce un semplice framework per esprimere queste informazioni cosicché possano essere scambiate tra applicazioni senza perdita di significato. La capacità di scambiare informazioni tra applicazioni significa che le informazioni devono essere strutturate in modo tale da essere comprensibili anche da applicazioni differenti da quella per cui furono originariamente create. RDF è basato sull'idea di identificare gli oggetti utilizzando degli identificatori chiamati URI (per un approfondimento si veda il paragrafo 1.3.1) e descrivere le risorse in termini di semplici proprietà e valori di esse. Questo permette a RDF di rappresentare semplici statement (affermazioni) sulle risorse come un grafo di nodi e archi contenente le risorse e le loro proprietà con i relativi valori. Per capire bene il concetto è utile fare un semplice esempio. Si immagini di dichiarare che qualcuno di nome John Smith abbia creato una particolare pagina Web. Un semplice modo per dichiarare questo in un linguaggio naturale come l'inglese potrebbe essere nella forma di una semplice affermazione del tipo: http://www.example.org/index.html has a creator whose value is John Smith In questa affermazione sono state enfatizzate le seguenti cose: l'oggetto che l'affermazione descrive (la pagina Web, in questo caso) una specifica proprietà (il creatore, in questo caso) dell'oggetto che l'affermazione descrive 18

il valore della proprietà (John Smith) In questa affermazione, l'url (Uniform Resource Locator) della pagina Web è stato usato per identificarla; inoltre la parola creatore è stata usata per identificare la proprietà, e le due parole John Smith per identificare l'oggetto (una persona, in questo caso) che è il valore della proprietà. Altre informazioni su questa pagina possono essere descritte scrivendo delle ulteriori affermazioni nella stessa forma, usando l'url per identificare la pagina e delle parole per identificare le proprietà e i loro valori. Per esempio, la data di creazione della pagina e la lingua con cui è stata scritta possono essere descritte aggiungendo le seguenti affermazioni: http://www.example.org/index.html has a creation date whose value is August 16,1999 http://www.example.org/index.html has a language whose value is English RDF è basato sull'idea che gli oggetti descritti hanno delle proprietà, le quali hanno un valore, e che le risorse possono essere descritte formulando affermazioni, in maniera simile a quanto fatto sopra. RDF usa una particolare terminologia per indicare le parti delle affermazioni: la parte che identifica ciò che l'affermazione descrive (la pagina Web, in questo caso) è chiamato soggetto; la parte che identifica la proprietà o delle caratteristiche del soggetto (creatore, data di creazione o linguaggio in questi esempi) è chiamata predicato, e la parte che identifica il valore della proprietà è chiamata oggetto. Quindi, prendendo l'affermazione in linguaggio naturale http://www.example.org/index.html has a creator whose value is John Smith i termini RDF per le varie parti dell'affermazione sono: il soggetto è l'url http://www.example.org/index.html il predicato è la parola creator l'oggetto è John Smith Tuttavia, mentre il linguaggio naturale è adatto per comunicazioni tra umani, il linguaggio RDF è utile per manipolare affermazioni che siano machine processable. Al fine di creare questo tipo di affermazioni adatte per l'elaborazione da parte delle macchine, sono necessarie due cose: un sistema di identificatori di tipo machine processable per indicare un soggetto, predicato o oggetto in un'affermazione senza nessuna possibilità di confusione 19

un linguaggio di tipo machine processable per rappresentare e trasmettere le affermazioni tra diverse macchine. Fortunatamente l'attuale architettura Web permette la realizzazione di entrambe le necessità. La prima necessità viene risolta utilizzando gli URI (Uniform Resource Identifier). Più precisamente RDF usa delle referenze URI (URI reference). Una URI reference o URIref è un URI unito ad un fragment identifier alla fine. Per esempio, l'uri reference http://www.example.org/index.html#section2 consiste di un URI http://www.example.org/index.html e (separato dal carattere '#') il fragment identifier Section2. La seconda necessità viene risolta utilizzando il linguaggio XML per rappresentare le affermazioni RDF. 20

2.2 IL MODELLO E LA SINTASSI RDF Nell'introduzione si è visto come un idea può essere rappresentata esprimendo semplici affermazioni, dove ogni affermazione consiste di un soggetto, un predicato e un oggetto. Nel linguaggio RDF l'affermazione espressa in linguaggio naturale http://www.example.org/index.html has a creator whose value is John Smith può essere rappresentata da un'affermazione RDF avente: un soggetto http://www.example.org/index.html un predicato http://purl.org/dc/elements/1.1/creator un oggetto http://ww.example.org/staffid/85740 Si noti come gli URIref sono usati non solo per identificare il soggetto, ma anche il predicato e l'oggetto, invece di usare rispettivamente le parole creatore e John Smith. Il linguaggio RDF permette di rappresentare le affermazioni come nodi e archi di un grafo; in questa notazione un'affermazione è rappresentata da: un nodo per il soggetto un nodo per l'oggetto un arco per il predicato, diretto dal nodo soggetto al nodo oggetto. Quindi l'affermazione RDF citata sopra può essere rappresentata dal grafo di Fig. 2.1: Fig. 2.1: Una semplice affermazione RDF. Tale rappresentazione è valida anche per un gruppo di affermazioni; quindi aggiungendo le affermazioni aggiuntive citate nel capitolo precedente http://www.example.org/index.html has a creation date whose value is August 16,1999 21

http://www.example.org/index.html has a language whose value is English si ottiene il grafo mostrato in Fig. 2.2. Fig. 2.2 Diverse affermazioni sulla stessa risorsa. Spesso quando si trattano affermazioni RDF non è conveniente utilizzare i grafi, ma un modo alternativo di rappresentarle, chiamate triple; nella notazione a triple ogni affermazione nel grafo viene scritta come una semplice tripla di soggetto, predicato e oggetto. Per esempio, le tre affermazioni mostrate in Fig2.2, generano le seguenti tre triple: <http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/staffid/85740>. <http://www.example.org/index.html> <http://www.example.org/terms/creation date> "August 16, 1999". <http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/language> "en". Ogni tripla corrisponde ad un singolo arco nel grafo, compresi il nodo d'origine e il nodo d'arrivo, perciò le triple rappresentano esattamente le stesse informazioni del modello grafico. Questo è un concetto chiave: ciò che è fondamentale nel linguaggio RDF è infatti la rappresentazione a grafo (graph model) delle affermazioni mentre la notazione usata per descrivere il grafo è una scelta secondaria. Nella notazione a triple completa gli URIref devono essere scritti per intero, tra parentesi acute e ciò comporta, come nell'esempio sopra illustrato, una scarsa leggibilità dovuta all'eccessivo numero di caratteri negli URIref, in special modo se questi sono URL. Per convenienza spesso vengono utilizzati dei QName (dall'inglese qualified name), senza parentesi acute, come abbreviazione di un 22

URIref completo. I QName contengono un prefisso, per indicare un namespace URI, seguito dai due punti e infine da un local name. L'URIref completo si ottiene dal QName aggiungendo il local name al namespace URI assegnato al prefisso. Alcuni prefissi utilizzati in questo ambito sono prefissi detti well known, definiti nel modo seguente: prefisso rdf:, namespace URI: http://www.w3.org/1999/02/22 rdf syntax ns# prefisso rdfs:, namespace URI: http://www.w3.org/2000/01/rdf schema# prefisso dc:, namespace URI: http://purl.org/dc/elements/1.1/ prefisso owl:, namespace URI: http://www.w3.org/2002/07/owl# prefisso ex:, namespace URI: http://www.example.org/ (or http://www.example.com/) prefisso xsd:, namespace URI: http://www.w3.org/2001/xmlschema# Le affermazioni precedenti descritte utilizzando i QName avranno la seguente forma: ex:index.html dc:creator exstaff:85740. ex:index.html exterms:creation date "August 16, 1999". ex:index.html dc:language "en". dove exterms e exstaff indicano rispettivamente le seguenti variazioni del prefisso ex: prefisso exterms:, namespace URI: http://www.example.org/terms/ (per i termini usati da un esempio di organizzazione), prefisso exstaff:, namespace URI: http://www.example.org/staffid/ (per identificare lo staff dell'esempio di organizzazione). L'insieme di URIref utilizzati per affermazioni RDF è chiamato vocabolario. Spesso, gli URIref contenuti nel vocabolario sono organizzati in modo che possano essere rappresentati con dei QName aventi prefisso comune; in questo modo viene scelto un comune namespace URI per tutti i termini nel vocabolario e tipicamente questo ulitmo è sotto il controllo di chiunque stia definendo il vocabolario. Gli URIref contenuti nel vocabolario potranno essere perciò ottenuti aggiungendo il local name alla fine dell'uriref comune. 23

Lo stesso approccio viene utilizzato per definire il vocabolario contenente i termini con significato speciale in RDF. Gli URIref in questo vocabolario RDF iniziano tutti con http://www.w3.org/1999/02/22 rdf syntax ns#, al quale per convenzione viene associato il prefisso rdf:. Un ulteriore vocabolario definito è quello dei termini utilizzati nel RDF Schema i quali iniziano con http://www.w3.org/2000/01/rdf schema#, al quale per convenzione viene associato il prefisso rdfs:. Per approfondimenti su RDF Schema si rimanda al paragrafo 2.4. I Blank Nodes Nel modello a grafo i blank node sono dei nodi che non necessitano di un URIref perché indicano un concetto descritto implicitamente da altre affermazioni. Per capire questo concetto è utile riportare un semplice esempio: si supponga di voler esprimere che John Smith risiede all'indirizzo 1501 Grant Avenue della città di Bedford che si trova nello stato del Massachusetts con codice postale 01730. La rappresentazione di questo concetto con una tripla risulterebbe questa: exstaff:85740 exterms:address 1501 Grant Avenue, Bedford, Massachusetts, 01730. Ma supponendo che l'indirizzo di John Smith venga memorizzato in una struttura in cui la via, la città, lo stato e il codice postale debbano essere separati come può essere rappresentato? Una possibile rappresentazione con il modello a grafo risulterebbe quella di Fig. 2.3 Fig. 2.3 Modello a grafo dell'indirizzo di John Smith 24

mentre utilizzando una notazione a triple: exstaff:85740 exterms:address exaddressid:85740. exaddressid:85740 exterms:street 1501 Grant Avenue. exaddressid:85740 exterms:city Bedford. exaddressid:85740 exterms:state Massachusetts. exaddressid:85740 exterms:postalcode 01730. È facile notare come questa notazione generi numerose ripetizioni del termine exaddressid:85740 per rappresentare il concetto di indirizzo di John Smith. A questo punto entrano in gioco i blank node: non c'è infatti bisogno di rappresentare il concetto di indirizzo di John Smith espresso dal termine exaddressid:85740 in quanto viene implicitamente descritto dalle altre affermazioni. Il modello a grafo utilizzando un blank node risulterebbe quello di Fig. 2.4 Fig. 2.4 Modello a grafo usando un blank node. Per ciò che riguarda la notazione a triple, i blank node vengono indicati con un nome identificativo, avente la forma _:nome. In questo esempio viene utilizzato il seguente identificatore di blank node _:johnaddress per indicare il concetto di indirizzo di John Smith : exstaff:85740 exterms:address _:johnaddress. _:johnaddress exterms:street 1501 Grant Avenue. _:johnaddress exterms:city Bedford. 25

_:johnaddress exterms:state Massachusetts. _:johnaddress exterms:postalcode 01730. Nella rappresentazione a triple di un grafo, ad ogni singolo blank node del grafo viene associato un differente identificativo. Questi ultimi non sono da considerarsi però parte del modello a grafo infatti essi rappresentano solo un modo per distinguere un blank node piuttosto che un altro quando il grafo viene rappresentato con la notazione a triple. Inoltre dato che i blank node rappresentano solo dei nodi, e non degli archi, gli identificatori di blank node possono apparire nel soggetto e nell'oggetto ma non nel predicato di una tripla. I letterali Un letterale viene usato per identificare valori costanti attraverso una rappresentazione lessicale. Nel modello a grafo essi vengono rappresentati all'interno di rettangoli e possono essere distinti in letterali puri (plain or untyped literal) e letterali con tipo o tipizzati (typed literal). I primi vengono utilizzati prevalentemente per indicare valori numerici costanti come una data o l'età come illustrato nell'esempio di Fig. 2.5 Fig. 2.5 Esempio di un plain literal In questo caso il letterale 27 verrà interpretato, dalla società esempio example.org, come un numero intero e non come una stringa costituita dai caratteri 2 e 7. Comunque non ci sono informazioni nel grafo che indichino esplicitamente che 27 dovrà essere interpretato come un numero. Allo stesso modo non c'è indicazione sul fatto che 27 sia un numero decimale piuttosto che un numero del sistema ottale. È perciò utile fornire un'informazione aggiuntiva su come interpretare un letterale, associando ad esso un tipo (datatype); in questo caso un tipo come decimal o integer. Nascono in questo modo i typed literal. In RDF essi sono formati da una stringa accoppiata con un URIref che identifica un particolare datatype. Per esempio utilizzando un typed literal l'età di John Smith può essere così descritta utilizzando un tripla 26

<http://www.example.org/staffid/85740> <http://www.example.org/terms/age> "27"^^<http://www.w3.org/2001/XMLSchema#integer>. o, usando i QName: exstaff:85740 exterms:age "27"^^xsd:integer. Va specificato però che a differenza dei tipici linguaggi di programmazione e DBMS, RDF non ha un insieme di datatype predefiniti. Piuttosto, RDF fornisce semplicemente un modo esplicito che indichi, dato un letterale, quale datatype usare per interpretarlo. Lo scopo di una sintassi è definire una rappresentazione, ovvero una relazione tra costrutti di un linguaggio e le entità del mondo reale. Per RDF sono state proposte diverse sintassi, comunque va ricordato che il modello concettuale è completamente indipendente dalla sintassi scelta. La W3C consiglia quella basata su XML che viene anche detta RDF/XML [9]. A differenza delle triple questa è una sintassi normativa per scrivere affermazioni RDF. In questo ambito non verranno illustrati i principi del RDF/XML e si rimandano gli interessati all'articolo. 27

2.3 ALTRE PROPRIETÀ RDF RDF fornisce un numero di proprietà aggiuntive per rappresentare gruppi di risorse e informazioni aggiuntive sulle affermazioni RDF. Contenitori Spesso c'è la necessità di descrivere gruppi di oggetti : ad esempio per affermare che un libro è stato scritto da diversi autori, o la lista di studenti in un corso. RDF fornisce alcune proprietà che possono essere usati per descrivere tali gruppi. RDF mette a disposizione una risorsa definita contenitore il quale contiene oggetti i quali vengono chiamati elementi. Gli membri di un contenitore possono essere risorse o letterali. RDF definisce tre tipi di contenitori: rdf:bag rdf:seq rdf:alt Un rdf:bag rappresenta un gruppo di risorse o letterali non ordinati che ammette duplicati. Un rdf:seq rappresenta un gruppo di risorse o letterali ordinate che ammette duplicati. UN rdf:alt rappresenta un gruppo di risorse o letterali che sono alternative (tipicamente per un singolo valore di proprietà). Per esempio un rdf:alt potrebbe essere usato per descrivere traduzioni in lingue diverse per il titolo di uno stesso libro o siti Web differenti ai quali una stessa risorsa può essere trovata. Una risorsa può essere definita come contenitore attraverso la proprietà rdf:type il quale valore è una risorsa tra rdf:bag, rdf:seq o rdf:alt; gli elementi di un contenitore possono essere descritti definendo una proprietà di appartenenza al contenitore la quale ha la seguente forma rdf:_n, dove n è un intero decimale maggiore di zero come ad esempio rdf_1, rdf_2, rdf_3. Un esempio può chiarire meglio l'uso dei contenitori se per esempio abbiamo che un certo documento è stato approvato da un comitato composto da Fred, Wilma, Dino allora possiamo esprimerlo come segue: ex:resolution exterms:approvedby ex:rulescommittee. ex:rulescommittee rdf:type rdf:bag. ex:rulescommittee rdf:_1 ex:fred. 28

ex:rulescommittee rdf:_2 ex:wilma. ex:rulescommittee rdf:_3 ex:dino. RDF non definisce condizioni semantiche aggiuntive. Collezioni Una limitazione dei contenitori è che essi indicano solo quali elementi appartengono al contenitore e non escludono il fatto che ce ne siano altri che potrebbero appartenere ad esso. Per risolvere una situazione del genere sono utili le collezioni. Una collezione RDF è un gruppo di oggetti rappresentati come una lista strutturata in un grafo RDF. RDF possiede un vocabolario per descrivere delle collezioni di oggetti tramite proprietà predefinite quali rdf:list, rdf:first, rdf:rest, rdf:nil, utilizzati rispettivamente per indicare il tipo lista, la testa, la coda e il marcatore di fine lista. L'unica condizione semantica imposta è che rdf:nil sia di tipo rdf:list. Reificazione Alcune volte le applicazioni RDF hanno la necessità di descrivere affermazioni RDF utilizzando a sua volta affermazioni RDF, per esempio per memorizzare informazioni su quando l'affermazione è stata creata, da chi è stata creata o simili informazioni. RDF fornisce un vocabolario per descrivere affermazioni RDF. Una descrizione di un'affermazione usando questo vocabolario è chiamata reificazione dell'affermazione. Il vocabolario RDF per la reificazione è costituito dal tipo rdf:statement e delle proprietà rdf:subject, rdf:predicate e rdf:object. Un esempio può servire per fare chiarezza: supponiamo di avere la seguente tripla exproducts:item10245 exterms:weight "2.4"^^xsd:decimal. la quale esprime il peso di oggetto della società example.org. Una reificazione che descriva l'affermazione precedente sempre utilizzando delle affermazioni potrebbe essere la seguente exproducts:triple12345 rdf:type rdf:statement. 29