Il World Wide Web program. Linguaggi e tecnologie per il Semantic Web. Armando Stellato. Tecnologie attualmente disponibili per il Web



Documenti analoghi
RDF. Resource Description Framework

RDF. Resource Description Framework

Linguaggi e tecnologie per il Semantic Web

Informatica Applicata 3.3 OWL. Antonella Poggi. Anno Accademico DIPARTIMENTO DI SCIENZE DOCUMENTARIE LINGUISTICO FILOLOGICHE E GEOGRAFICHE

Introduzione al Semantic Web

Il World Wide Web program. Linguaggi e tecnologie per il Semantic Web. Armando Stellato. Tecnologie attualmente disponibili per il Web

APPENDICE C extensible Markup Language

Semantic Web. Semantic Web. Il Semantic Web: una semplice estensione. Il Web oggi. Il Semantic Web. Semantic Web

RDF RDFS RDF/XML. Dott.sa Vincenza Anna Leano Basi di Dati II mod. B Prof. F. Cutugno A.A. 2010/2011

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

Semantic Web: linguaggi e tecnologie

Le ontologie nell integrazione dei dati

Informatica per la comunicazione" - lezione 10 -

Enrico Fagnoni BOTK IN A NUTSHELL

2 Reti di Calcolatori XML

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

Introduzione ai Web Services Alberto Polzonetti

Simple & Efficient.

Organizzazione degli archivi

EXPLOit Content Management Data Base per documenti SGML/XML

La struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it

Problema del naming. Modello di Naming

Reti di Calcolatori. Il Livello delle Applicazioni

Database. Si ringrazia Marco Bertini per le slides

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

MODELLO RELAZIONALE. Introduzione

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

extensible Markup Language

Laboratorio di RETI DI CALCOLATORI

3.1 Introduzione al Web Semantico

MODA-ML: Esempi di XSL (Extensible Stylesheet Language) Vocabolario di supporto alla creazione di un set di Schemi di documenti XML

Introduzione a XML: Document Type Definition; parser XML; XML-schema; extensible Stylesheet Language. a.a. 2004/05 Tecnologie Web 1

Un portale semantico per i Beni Culturali

2.1 Introduzione ai linguaggi di marcatura

Creare ontologie ONTOLOGIE, DESCRIPTION LOGIC, PROTÉGÉ STEFANO DE LUCA

Introduzione all Information Retrieval

Capitolo 4 Pianificazione e Sviluppo di Web Part

Laboratorio Matematico Informatico 2

Ontologie e World Wide Web: la diffusione della conoscenza.

Lezione 4. Modello EER

Linguaggi per il web oltre HTML: XML

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

Introduzione a RDF (Resource Description Framework)

HTML il linguaggio per creare le pagine per il web

Librerie digitali. Introduzione. Cos è una libreria digitale?

(anno accademico )

G I O R D A N I A L E S S A N D R A I T T S E R A L E G. M A R C O N I

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

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

/XML ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 XML

Web applications for geographical data. Alberto Belussi maggio 2007

Modellazione e Gestione di Informazioni non Strutturate

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

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

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri.

Working Draft 0.5 (Telefonia)

Progettazione di Basi di Dati

Alessandra Raffaetà. Basi di Dati

DATABASE RELAZIONALI

Lezione V. Aula Multimediale - sabato 29/03/2008

PROCESSO DI INDICIZZAZIONE SEMANTICA

Creare un Ipertesto. 1

Linguaggi e Paradigmi di Programmazione

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

XML. XML è contemporaneamente: XML non è:

Integrazione di tecnologie XML nella realizzazione di siti Web

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

I database relazionali (Access)

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Gestione delle tabelle

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

Reti di Telecomunicazione Lezione 6

Volumi di riferimento

Protocolli applicativi: FTP

1. BASI DI DATI: GENERALITÀ

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Piano di gestione della qualità

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

19. LA PROGRAMMAZIONE LATO SERVER

Dati Semistrutturati: il linguaggio RDF Esempi ed esercitazioni

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

4 3 4 = 4 x x x 10 0 aaa

Dispensa di database Access

Guida all uso del web service SDMX

Definire linguaggi XML XSchema

Architettura client-server

Lezione 1. Introduzione e Modellazione Concettuale

Presentazione di Cedac Software

Strumenti di modellazione. Gabriella Trucco

Sistemi Informativi e Basi di Dati

XSL: extensible Stylesheet Language

Ontologie integrate da lessici per indicizzazione e ricerca nel Semantic Web

Modellazione dei dati in UML

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Access. P a r t e p r i m a

Semantic Web e gestione collaborativa della conoscenza di dominio: prospettive, vantaggi e casi d'uso. Ing. Christian Morbidoni, Ph.

Informatica (Basi di Dati)

Il Modello Relazionale

INTRODUZIONE. Data Base Management Systems evoluzione tecniche gestione dati

Transcript:

Il World Wide Web program Linguaggi e tecnologie per il Semantic Web stellato@info.uniroma2.it Nascita e obiettivi Sviluppato nel 1990 da Tim Berners-Lee, nei laboratori del CERN Due innovazioni fondamentali: Porre il concetto di ipertesto come base per l organizzazione di un sistema documentale distribuito Applicare tale meccanismo sul larga scala, escludendo ogni sorta di centralizzazione/coordinazione dell informazione Il WWW program trovò un suo naturale terreno di sviluppo in Internet Manifesto del WWW: distributed hypermedia paradigm Hypertext Distribution Multimedia stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 2 Tecnologie attualmente disponibili per il Web WWW: 3 tecnologie fondazionali: URI (Uniform Resource Identifier) Identificano risorse sul WEB Gli ormai noti URL (Uniform Resource Locator) sono un tipo specifico di URI che forniscono informazioni di tipo locazionale per trovare le risorse sul Web HTTP Protocollo statico per lo scambio di documenti sul Web Può essere (ed è stato) esteso al fine di adattarlo a diversi fini (name servers, distributed object management systems...) HTML Rappresentazione dei dati sul Web Basato su SGML, un linguaggio basato su tag per la strutturazione di informazione Tecnologie attualmente disponibili per il Web Localizzazione del testo Encoding: charset locali; charset globali: Unicode e sue implementazioni (UTF-8, UTF-16 ) Tecnologie per la gestione di informazione XML: extensible Markup Language una sintassi per la strutturazione di dati sul web DTD (Document Type Definition) e XML Schema: due linguaggi per la specifica di linguaggi per la rappresentazione di informazione basati su XML. XSL: Xml Stylesheet Language (Family) XSLT (XSL Transformations): un linguaggio per la manipolazione di strutture XML. XPath: per accedere a sezioni di un documento XML XSL-FO un vocabolario per esprimere la formattazione di un documento Tecnologie per un Web Dinamico: Web Services UDDI: identificano servizi sul Web WSDL: descrive il comportamento di Servizi Web SOAP: protocollo di interazione con Servizi Web stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 3 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 4

XML (cenni) Approccio XML: wrappare tutte le informazioni in una struttura a TAG Necessità di rappresentare e strutturare dati sul Web in documenti che siano accessibili e interscambiabili da diverse applicazioni Es. Collezione di informazioni su un aereoplano: medium-altitude, long-endurance unmanned aerial vehicle 512 kilograms 14.7 meters 70 knots 400 nautical miles <Aircraft> <wingspan unit= meters >14.8</wingspan> <weight unit= kilograms >512</weight> <cruise-speed unit = knots >70</cruise-speed> <range unit= nautical miles >400</range> <description> medium-altitude, long-endurance unmanned aerial vehicle </description> </Aircraft> stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 5 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 6 Terminologia XML Perchè XML? <wingspan unit= meters >14.8</wingspan> Start tag Attributo End tag Valore attributo Dato Elemento È uno standard universalmente accettato per la strutturazione dei dati È una W3C recommendation (W3C = World Wide Web Consortium) È disponibile sia sul mercato sia gratuitamente un ampia gamma di prodotti per il trattamento di dati organizzati secondo la sintassi XML e/o per l editing di documenti XML Esistono librerie per quasi ogni linguaggio di programmazione che permettono la gestione di informazione codificata in XML stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 7 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 8

XML Schema e DTD: Obiettivi Specificare: la struttura dei documenti l elemento A è sempre contenuto nell elemento B, è seguito dall elemento C etc " il tipo di dato di ogni elemento/attributo questo elemento conterrà un numero intero tra 0 e 12000" (le DTD hanno un potere espressivo minore rispetto agli schemi e non possono esprimere tutti i vincoli sui tipi di dato che è possibile specificare in XML Schema) Esempio <location> <latitude>32.904237</latitude> <longitude>73.620290</longitude> <uncertainty units="meters">2</uncertainty> </location> Questi dati sono stati espresso in modo corretto? (documento valido) Per essere valido, il documento deve soddisfare questi vincoli: 1. La locazione (location) deve contenere una latitudine, seguita da una longitudine, seguita da una indicazione di incertezza sulla misurazione lat/lon. 2. La latitudine deve essere espressa da un decimale tra -90 e +90 3. La longitudine deve essere espressa da un decimale tra -180 e +180 4. Le presione decimale sia della latidutine che della longitudine deve essere si sei cifre 5. Il valore di incertezza deve essere un interno non negativo 6. L unità di misura per l incertezza della misurazione deve essere o in metri o in piedi Possiamo esprimere tutte queste informazioni attraverso DTD/Schemi XML stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 9 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 10 Validazione dei dati Esempio di DTD: BookStore.dtd <location> <latitude>32.904237</latitude> <longitude>73.620290</longitude> <uncertainty units="meters">2</uncertainty> </location> controlla che la latitudine sia tra -90 and +90 controlla che la longitudine sia tra -180 e +180 Controlla che parte decimale sia per lat che per lol contenga 6 cifre... XML Document validator Il doc è valido! <!ELEMENT BookStore (Book+)> <!ELEMENT Book (Title, Author, Date, ISBN, Publisher)> <!ELEMENT Title (#PCDATA)> <!ELEMENT Author (#PCDATA)> <!ELEMENT Date (#PCDATA)> <!ELEMENT ISBN (#PCDATA)> <!ELEMENT Publisher (#PCDATA)> XML Schema stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 11 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 12

Esempio di documento basato sulla DTD BookStore.dtd <?xml version="1.0" encoding="utf-8"?> <BookStore > <Book> <Title>Illusions: The Adventures of a Reluctant Messiah</Title> <Author>Richard Bach</Author> <Date>1977</Date> <ISBN>0-440-34319-4</ISBN> <Publisher>Dell Publishing Co.</Publisher> </Book> <Magazine> <Title>Natural Health</Title> <Date>1999</Date> </Magazine> <Book> <Title>The First and Last Freedom</Title> <Author>J. Krishnamurti</Author> <Date>1954</Date> <ISBN>0-06-064831-7</ISBN> <Publisher>Harper & Row</Publisher> </Book> </BookStore> stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 13 XML Schema per lo stesso documento: BookStore.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.books.org" xmlns="http://www.books.org" elementformdefault="qualified"> <xsd:element name="bookstore"> <xsd:element ref="book" minoccurs="1" maxoccurs="unbounded"/> <xsd:element name="book"> <xsd:element ref="title" minoccurs="1" maxoccurs="1"/> <xsd:element ref="author" minoccurs="1" maxoccurs="1"/> <xsd:element ref="date" minoccurs="1" maxoccurs="1"/> <xsd:element ref="isbn" minoccurs="1" maxoccurs="1"/> <xsd:element ref="publisher" minoccurs="1" maxoccurs="1"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="author" type="xsd:string"/> <xsd:element name="date" type="xsd:string"/> <xsd:element name="isbn" type="xsd:string"/> <xsd:element name="publisher" type="xsd:string"/> </xsd:schema> 14 XML Schema per lo stesso documento: BookStore.xsd XML Schema per lo stesso documento: BookStore.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.books.org" xmlns="http://www.books.org" elementformdefault="qualified"> <xsd:element name="bookstore"> <xsd:element ref="book" minoccurs="1" maxoccurs="unbounded"/> <xsd:element name="book"> <xsd:element ref="title" minoccurs="1" maxoccurs="1"/> <xsd:element ref="author" minoccurs="1" maxoccurs="1"/> <xsd:element ref="date" minoccurs="1" maxoccurs="1"/> <xsd:element ref="isbn" minoccurs="1" maxoccurs="1"/> <xsd:element ref="publisher" minoccurs="1" maxoccurs="1"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="author" type="xsd:string"/> <xsd:element name="date" type="xsd:string"/> <xsd:element name="isbn" type="xsd:string"/> <xsd:element name="publisher" type="xsd:string"/> </xsd:schema> <!ELEMENT BookStore (Book+)> <!ELEMENT Book (Title, Author, Date, ISBN, Publisher)> <!ELEMENT Title (#PCDATA)> <!ELEMENT Author (#PCDATA)> <!ELEMENT Date (#PCDATA)> <!ELEMENT ISBN (#PCDATA)> <!ELEMENT Publisher (#PCDATA)> 15 <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.books.org" xmlns="http://www.books.org" elementformdefault="qualified"> <xsd:element name="bookstore"> <xsd:element ref="book" minoccurs="1" maxoccurs="unbounded"/> <xsd:element name="book"> <xsd:element ref="title" minoccurs="1" maxoccurs="1"/> <xsd:element ref="author" minoccurs="1" maxoccurs="1"/> <xsd:element ref="date" minoccurs="1" maxoccurs="1"/> <xsd:element ref="isbn" minoccurs="1" maxoccurs="1"/> <xsd:element ref="publisher" minoccurs="1" maxoccurs="1"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="author" type="xsd:string"/> <xsd:element name="date" type="xsd:string"/> <xsd:element name="isbn" type="xsd:string"/> <xsd:element name="publisher" type="xsd:string"/> </xsd:schema> xsd:schema è sempre l elemento radice 16

XML Schema per lo stesso documento: BookStore.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.books.org" xmlns="http://www.books.org" elementformdefault="qualified"> <xsd:element name="bookstore"> <xsd:element ref="book" minoccurs="1" maxoccurs="unbounded"/> <xsd:element name="book"> <xsd:element ref="title" minoccurs="1" maxoccurs="1"/> <xsd:element ref="author" minoccurs="1" maxoccurs="1"/> <xsd:element ref="date" minoccurs="1" maxoccurs="1"/> <xsd:element ref="isbn" minoccurs="1" maxoccurs="1"/> <xsd:element ref="publisher" minoccurs="1" maxoccurs="1"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="author" type="xsd:string"/> <xsd:element name="date" type="xsd:string"/> <xsd:element name="isbn" type="xsd:string"/> <xsd:element name="publisher" type="xsd:string"/> </xsd:schema> XML Schema per lo stesso documento: BookStore.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.books.org" xmlns="http://www.books.org" elementformdefault="qualified"> <xsd:element name="bookstore"> <xsd:element ref="book" minoccurs="1" maxoccurs="unbounded"/> <xsd:element name="book"> <xsd:element ref="title" minoccurs="1" maxoccurs="1"/> <xsd:element ref="author" minoccurs="1" maxoccurs="1"/> <xsd:element ref="date" minoccurs="1" maxoccurs="1"/> <xsd:element ref="isbn" minoccurs="1" maxoccurs="1"/> <xsd:element ref="publisher" minoccurs="1" maxoccurs="1"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="author" type="xsd:string"/> <xsd:element name="date" type="xsd:string"/> <xsd:element name="isbn" type="xsd:string"/> <xsd:element name="publisher" type="xsd:string"/> </xsd:schema> Gli elementi e i tipi di dato usati per costruire lo schema: - schema -element - complextype - sequence - string provengono dal namespace: http:// /XMLSchema Indica che gli elementi definit da questo schema: - BookStore -Book - Title -Author -Date -ISBN -Publisher devono essere assegnati al namespace: http:// /books.org 17 19 XML Schema Namespace http://www.w3.org/2001/xmlschema element schema complextype sequence string integer boolean stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 18 Book Namespace (target Namespace) http://www.books.org (targetnamespace) BookStore Author Book Title Publisher ISBN Date stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 20

Far riferimento ad uno schema XML da una istanza di documento Limiti di XML <?xml version="1.0"?> 1 <BookStore xmlns ="http://www.books.org" 3 xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.books.org BookStore.xsd"> <Book> <Title>My Life and Times</Title> <Author>Paul McCartney</Author> <Date>July, 1998</Date> <ISBN>94303-12021-43892</ISBN> <Publisher>McMillin Publishing</Publisher> </Book>... </BookStore> 1. Attraverso una dichiarazione di namespace, si afferma che tutti gli elementi provenienti da questo documento sono definiti in http://www.books.org 2. schemalocation informa lo schema-validator che il namespace http://www.books.org è definito fisicamente in BookStore.xsd (i.e., schemalocation contiene una coppia di valori). 3. Informare lo schema-validator che l attributo schemalocation che stiamo usando è quello definito nello XMLSchema-instance namespace. 2 Sintassi VS Semantica Sintassi: specifica la modalità con cui vengono espressi i dati E.g. XML impone delle rigide regole su come l informazione debba essere strutturata "wrapping" di ogni dato tra uno start tag e un end tag ogni end tag deve essere preceduto da uno / ed entrambi i tag dalle parentesi angolari < >. ogni end tag deve chiudere strutturalmente uno start tag di pari livello Semantica: riguarda il significato dei dati ma cosa significa significato per una macchina? stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 21 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 22 Cosa significa significato? Predator quale significato? Facciamo un esempio: cosa vuole dire questa coppia di tag, espressa in XML? ovvero Cos è un Predator? <Predator> </Predator> Innanzitutto, occorrerebbe sapere per un umano cosa significa predator: La lettura di un vocabolario ci fornisce le seguenti definizioni: Predator: a medium-altitude, long-endurance unmanned aerial vehicle system. Predator: one that victimizes, plunders, or destroys, especially for one's own gain. Predator: an organism that lives by preying on other organisms. Predator: a company which specializes in camouflage attire. Predator: a video game. Predator: software for machine networking. Predator: a chain of paintball stores. stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 23 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 24

Il significato per una macchina Il significato per una macchina Una macchina non ha coscienza di ciò che la circonda, nel nostro caso, predator potrebbe voler assumere il primo dei significati espressi nella slide precedente, ma non avremmo comunque modo di spiegarlo ad una macchina! Per una applicazione (agente) è tuttavia sufficiente che a quel tag siano associate univocamente delle azioni da intraprendere a seconda del contesto e dello stato in cui si trova. <Predator> </Predator> application Semantics: A Predator is type of Aircraft. Actions: These actions must be performed on the Predator data: - identify ground control station. - determine onboard sensors. - determine ordnance. Per una applicazione, la semantica di un dato è quindi il codice necessario a interpretare un determinarlo e a capire come trattare la sua informazione (o come reagire alla sua presenza) app#1 Semantica: Codice per interpretare il dato Azione: Codice per processare il dato app#1 Semantica: Codice per interpretare il dato Azione: Codice per processare il dato stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 25 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 26 Conviene mantenere la semantica cablata nelle applicazioni? Semantiche Distribuite nel Web application Semantics: Code to interpret the data Action: Code to process the data Un contesto distribuito come quello del Web richiede quindi che non solo il dato sia reso indipendente dall applicazione, ma che il suo significato sia altrettanto reso esplicito e quindi condivisibile Conviene codificare i processi interpretativi in ogni singola applicazione? - Duplicazione dell effort - Ogni applicazione deve esprimere la propria interpretazione dei dati - Ambiguità - Applicazioni diverse potrebbero catturare diverse interpretazioni - esempio: la caduta della sonda su Marte una applicazione ha interpretato i dati in pollici, un altra in centimetri - Bassa Interoperabilità - Se la semantica è già codificata nelle applicazioni risulta più difficile processare e nuovi dati e/o aggiornare se necessario delle applicazioni al trattamento di nuovi dati. 1. Miglioramento della qualità dei risultati dei motori di ricerca, in termini di precisione rispetto alle intenzioni dell utente a di completezza rispetto alla disponibilità di informazioni sul Web 2. Realizzazione di web locali di documenti logicamente connessi, più facilmente navigabili e raggiungibili 3. Più immediato scambio e condivisione di informazione da parte di agenti software, i quali possono così collaborare in un ambiente più aperto al fine di soddisfare le richieste degli utenti Come??? stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 27 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 28

Semantic Web Semantic Web Recupera in parte la visione originale del Web fornita da Tim Berners-Lee a plan for achieving a set of connected applications for data on the Web in such a way as to form a consistent logical web of data an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 29 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 30 Semantic Web: obiettivi Query complesse che richiedono conoscenza pregressa Trova informazioni sugli animali che usano ultrasuoni ma non sono ne pipistrelli ne delfini Accesso a informazione memorizzata in repository di dati Informazioni su voli, prenotazioni alberghiere etc Prezzi di prodotti e servizi Codifica di grandi quantità di dati: genoma umano etc Discovery e utilizzo di servizi web Visualizza l andamento di un esperimento in tempo reale Delegare task complessi a agenti software Prenotami una vacanza per la prossima settimana in qualche posto caldo, non troppo lontano e dove si parla Italiano o Inglese RDF Resource Description Framework stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 31

Caratteristiche RDF Data Model Independenza Condivisibilità Scalabilità Ogni cosa è una risorsa Le proprietà sono risorse I valori possono essere risorse Le asserzioni possono essere risorse Un modello è un insieme di asserzioni (statements, in inglese) Asserzione: = (soggetto, predicato, oggetto) Il predicato è una proprietà del soggetto Il soggetto è una risorsa L oggetto è una valore (o una risorsa a sua volta) stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 33 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 34 RDF Data Model RDF: potere espressivo RDF può essere visto come un grafo diretto etichettato, in cui ogni asserzione assume la seguente forma: predicate subject object Sia i nodi/entità che gli archi/proprietà sono identificate da degli URI Il significato di un grafo RDF è la congiunzione di tutte le sue asserzioni RDF corrisponde al sottoinsieme esistenziale-congiuntivo (EC) della logica del primo ordine Non ammette la negazione (NOT) Non ammette la disgiunzione (OR) Cosa inusuale per un linguaggio che rappresenti una restrizione della logica del primo ordine, RDF permette asserzioni riguardanti relazioni: es: type(loves, social_relationship) loves(tom, Mary) stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 35 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 36

RDF: notazione RDF/XML : Un piccolo esempio Esistono diverse sintassi per rappresentare dei grafi RDF: N-Triples La notazione più prossima alla forma astratta, una serie di triple del tipo soggetto-predicato-oggetto, identificate da URI index.html creator Notation 3 (N3) Contiene numerose abbreviazioni sintattiche che agevolano la lettura mascherando la rigorosa struttura a triple che contraddistingue ogni documento RDF. Questa caratteristica unita a forme sintattiche elementari molto semplici (diverse dal pesante XML) ne fa il tipo di serializzazione più compatta tra quelli esistenti. Come XML, fa utilizzo dei namespace per aumentare la modularità. RDF/XML È un tipo di notazione completamente XML compliant. Come per N3, la struttura a triple può essere mascherata attraverso costrutti sintattici più complessi. <rdf:rdf xmlns:rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:dc = http://purl.oclc.org/dc > <rdf:description rdf:about = http://ai-nlp.info.uniroma2.it/stellato/index.html > <dc:creator></dc:creator> </rdf:rdf> stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 37 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 38 RDF : Un esempio più complesso RDF : Un esempio più complesso Robin employedby Batman E la relativa serializzazione RDF/XML <rdf:rdf xmlns:rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:myschema = http://www.batman.org/myschema/ > HQ Email <rdf:description rdf:about = http://www.batman.org/robin/ > <myschema:employedby rdf:resource = #Batman /> Batcaverna Name boss@batman.org <rdf:description id = Batman > <myschema:hq>batcave</myschema:hq> <myschema:name>bruce Wayne</mySchema:Name> <myschema:email rdf:resource = mailto:boss@batman.org /> </rdf:rdf> Bruce Wayne stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 39 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 40

RDF: variabili Relazioni n-arien Gli statement RDF possono anche contenere variabili: love(?x, Mary) ci informa che qualcuno ama Mary, o, ancora meglio, qualcosa ama Mary La sola presenza di sole relazioni binarie esplicite non impedisce la rappresentazione di relazioni di arità arbitraria. Es: bollea(water,100c,1atm) ebollizione La combinazione di diverse asserzioni, tramite unificazione delle variabili, ci permette di esprimere conoscenza complessa, ma non completamente istanziata: bollea temp Press 1 atm gender(?x, male) AND loves(?x, Mary) water ci informa che Mary è amata da un maschio 100 C stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 41 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 42 XML vs RDF XML vs RDF (2) I detrattori di RDF hanno spesso sostenuto la sua inutilità rispetto a quanto già fornito da XML e XML Schema Esempio: unione di due frammenti RDF RDF is seen by some as an overly complex technology, trying to solve a problem XML and HTTP already solve (Van Dijck, 2003) RDF aggiunge però, pur attraverso un modello estremamente semplice, una semantica condivisa per interpretare i dati Human hemoglobin Human hemoglobin has_sequence GenBank + is_a aagccgcacctgcgagtctaga gctatagccgcacctgcgagtct agaagctatagccgcacctgcgagtct agaagct Oxygen transport protein has_sequence Human hemoglobin is_a aagccgcacctgcgagtctaga gctatagccgcacctgcgagtct agaagctatagccgcacctgcgagtct agaagct Oxygen Human transport hemoglobin protein Vantaggi: Minore ambiguità sintattica (e.g. attributo o elemento annidato?): una volta definito un grafo RDF, la sua serializzazione XML è univoca La presenza di semantica esplicita implica un più immediato processo di integrazione di diverse risorse Human hemoglobin Gene Ontology + Has 3D Structure PDB Has 3D Structure stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 43 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 44

XML vs RDF (3) RDFS: RDF Schema Esempio: unione di due frammenti XML <sequence id= abc123 >atagccgtacctgcgagtct </sequence> Generic Sequence XML <is-a><object>human-hemoglobin</object><type>oxygen-transferprotein</type></is-a> Generic Gene Ontology XML <structure><protein name= hh434 /><atom x= -30 y= 40 elem= H /> </structure> + + Generic protein structure xml La integrazione richiede una profonda conoscenza degli schemi sorgenti, al fine di produrre delle complesse trasformazioni XSLT verso uno schema comune. RDF manca di: Possibilità di specificare differenti livelli di astrazione Organizzazione delle risorse in categorie esplicite Restrizioni sulle proprietà RDFS estende RDF con un vocabolario per definire schemi, e.g.: Class, Property type, subclassof, subpropertyof range, domain Con tale estensione, RDF(S) può essere considerato a tutti gli effetti un linguaggio per la rappresentazione della conoscenza stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 45 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 46 RDFS : Vocabolario principale RDFS : Vocabolario principale Core Classes Core Properties rdfs:resource rdfs:literal rdfs:xmlliteral rdfs:class rdfs:property rdfs:datatype rdfs:type rdfs:subclassof rdfs:subpropertyof rdfs:domain rdfs:range rdfs:label rdfs:comment rdfs:resource Tutte le cose descritte da espressioni RDF sono risorse e sono considerate istanze della classe rdfs:resource rdfs:class rappresenta il generico concetto di tipo o categoria. Può quindi essere definito per rappresentare qualsiasi cosa, e.g. pagine Web, persone, tipi di documento rdfs:type lega delle risorse alle categorie (Classi) cui appartengono. È analogo al costrutto instance-of dell OO design stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 47 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 48

RDFS : Vocabolario principale RDFS : Vocabolario principale rdfs:property rappresenta il sottoinsieme di tutte le risorse RDFS che sono proprietà rdfs:range definisce da a quale classe appartengono i valori che una determninata proprietà può assumere rdfs:domain specifica che ogni risorsa che possiede una certa proprietà è istanza rdfs:subclassof questa proprietà definisce una relazione di super/sottoinsieme tra classi. Questa proprietà è transitiva rdfs:subpropertyof Questa proprietà è usata per indicare che una proprietà è una specializzazione di un altra proprietà di una o più classi comment properties non giocano alcun ruole nella semantica del linguaggio ma forniscono un utile mezzo per commentare un repository di dati rdfs:comment: la proprietà di comment più generale. In genere fornisce una descrizione in linguaggio naturale della risorsa che la contiene rdfs:label: fornisce nomi alternativi per indicare una risorsa. Con l attributo xml:lang è possibile specificare il linguaggio in cui tale commento è inserito rdfs:seealso: contiene un puntatore ad un altra risorsa che contiene ulteriori informazioni circa il soggetto di tale proprietà rdfs:isdefinedby: è una sottoproprietà di rdfs:seealso e indica la risorsa che definisce la risorsa soggetto, stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 49 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 50 Esempio di Schema RDF RDF-Schema : Esempio di Schema Resource Class Property Upper Layer subclassof <rdfs:class rdf:id= Provider > <rdfs:subclassof rdf:resource= #Person /> Vehicle subclassof producedby </rdfs:class> subclassof LandVehicle subclassof SeaVehicle Company Lower Layer subclassof subclassof Hovercraft NumberOfEngines Number stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 51 52

RDF-Schema : Esempio di Schema RDF-Schema : Esempio di Schema <rdf:rdf xmlns:rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:rdfs = http://www.w3.org/2000/01/rdf-schema# <rdf:description id= Vehicle > <rdf:type resource= http://www.w3.org/2000/01/rdf-schema#class /> <rdfs:subclassof rdf:resource= http://www.w3.org/2000/01/rdf-schema#resource /> <rdf:description id= LandVehicle > <rdf:type resource= http://www.w3.org/2000/01/rdf-schema#class /> <rdfs:subclassof rdf:resource= #Vehicle /> <rdf:description id= SeaVehicle > <rdf:type resource= http://www.w3.org/2000/01/rdf-schema#class /> <rdfs:subclassof rdf:resource= #Vehicle /> <rdf:description id= Hovercraft > <rdf:type resource= http://www.w3.org/2000/01/rdf-schema#class /> <rdfs:subclassof rdf:resource= #LandVehicle /> <rdfs:subclassof rdf:resource= #SeaVehicle /> <rdf:description id= Company > <rdf:type resource= http://www.w3.org/2000/01/rdf-schema#class /> <rdfs:subclassof rdf:resource= http://www.w3.org/2000/01/rdf-schema#resource /> <rdf:description id= producedby > <rdf:type resource= http://www.w3.org/1999/02/22-rdf-syntax-ns#property /> <rdfs:domain rdf:resource= #Vehicle /> <rdfs:range rdf:resource= #Company /> <rdfs:label xml:lang="en">vehicle Producer</rdfs:label> <rdf:description id= NumberOfEngines > <rdf:type resource= http://www.w3.org/1999/02/22-rdf-syntax-ns#property /> <rdfs:domain rdf:resource= #Hovercraft /> <rdfs:range rdf:resource= http://www.w3.org/1999/02/22-rdf-syntax-nx#number /> <rdfs:comment xml:lang="en">this property states how many engines the hovercraft has</rdfs:comment> </rdf:rdf> Continua dalla pagine precedente stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 53 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 54 Limiti di RDFS From RDF to OWL RDFS troppo debole per descrivere risorse con sufficiente dettaglio Nessun vincolo di range e/o domain contestualizzato Non si può limitare il range di haschild a person quando è applicato a persone e a elephant quando applicato a elefanti Nessun vincolo di esistenza/cardinalità Non si può dire che tutte le istanze di person hanno una madre che è anche una person, o che le persone hanno esattamente 2 genitori Nessuna proprietà transitiva, inversa or simmetrica Non si può affermare che ispartof è una proprietà transitiva, che haspart è l inversa di ispartof o che touches èsimmetrica Two languages developed by extending (part of) RDF OIL: developed by group of (largely) European researchers (several from EU OntoKnowledge project) DAML-ONT: developed by group of (largely) US researchers (in DARPA DAML programme) Efforts merged to produce DAML+OIL Development was carried out by Joint EU/US Committee on Agent Markup Languages Extends ( DL subset of) RDF DAML+OIL submitted to W3C as basis for standardisation Web-Ontology (WebOnt) Working Group formed WebOnt group developed OWL language based on DAML+OIL OWL language now a W3C Proposed Recommendation stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 55 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 56

RDFS/OWL: Semantica OWL Reasoning La semantica di RDFS/OWL, contrariamente a precedenti approcci nella rappresentazione della conoscenza, come i frame, basati su controllo di vincoli (constraint checking), è di tipo inferenziale. Data quindi una teoria del mondo, invece di verificare esclusivamente che gli oggetti della nostra base di conoscenza (instance data) soddisfino i vincoli imposti da tale teoria, sarà possibile aggiungere (inferire) nuova informazione (in modo rigorosamente monotono, cioè senza contraddire asserzioni precedenti) alla teoria e/o alla descrizione degli oggetti per far sì che questi siano ancora un modello per la teoria Caratteristiche della semantica RDFS/OWL: Open World Assumption (OWA) No Unique Name Assumption L interpretazione di OWL, contrariamente a precedenti approcci nella rappresentazione della conoscenza, come i frame, basati su controllo di vincoli (constraint checking), è di tipo inferenziale. Qualche esempio: eg:document rdf:type owl:class; rdfs:subclassof [ a owl:restriction; owl:onproperty dc:author; owl:mincardinality 1^^xsd:integer]. eg:mydoc rdf:type eg:document. La descrizione di mydoc non è incompleta anche se la mincard per author è 1, perchè l autore potrebbe essere definito somewhere else in the world (Open World Assumption) stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 57 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 58 OWL Reasoning OWL Reasoning L interpretazione di OWL, contrariamente a precedenti approcci nella rappresentazione della conoscenza, come i frame, basati su controllo di vincoli (constraint checking), è di tipo inferenziale. Qualche esempio: L interpretazione di OWL, contrariamente a precedenti approcci nella rappresentazione della conoscenza, come i frame, basati su controllo di vincoli (constraint checking), è di tipo inferenziale. Qualche esempio: eg:document rdf:type owl:class; rdfs:subclassof [ a owl:restriction; owl:onproperty eg:copyrightholder; owl:maxcardinality 1^^xsd:integer]. eg:mydoc rdf:type eg:document ; eg:copyrightholder eg:institute1 ; eg:copyrightholder eg:institute2. I due valori su for eg:copyrighthoder destano problemi? No, potrebbero esistere due nomi per indicare la stessa cosa, quindi si suppone che institute1 e institute2 denotino la stessa cosa eg:document rdf:type owl:class; owl:equivalentclass [a owl:restriction; owl:onproperty eg:author ; owl:allvaluesfrom eg:person ]. eg:mydoc rdf:type eg:document ; eg:author eg:daffy. eg:daffy rdf:type eg:duck. eg:mydoc2 eg:author eg:dave. eg:dave rdf:type eg:person. Duck è inferita essere una Person (a causa dell asserzione di equivalentclass sulla restriction allvaluesfrom Person) mydoc2 è un Document? Non possiamo saperlo, perché nel mondo potrebbero esserci altri autori di questi libro che non di tipo Person stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 59 stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 60

Semantica di OWL Approfondite i precedenti argomenti su: 2 capitolo dell handbook on description logics Guida W3C su OWL stellato@info.uniroma2.it ai-nlp.info.uniroma2.it/stellato 61