Linguaggi per il Web Semantico Corso di Metodi di Estrazione delle Informazioni dal Web Roberto Navigli 02/01/2019.

Slides:



Advertisements
Presentazioni simili
1 OWL Mario Arrigoni Neri. 2 OWL – Web Ontology Language Estende RDF[S] con costrutti aggiuntivi per modellare realtà più complesse Contemporaneamente.
Advertisements

1 Introduzione ad XML. 2 Problemi con SGML Complesso da comprendere ed utilizzare Non è pensato per la rete: mancano link ipertestuali e specifiche grafiche.
Ontologie: RDF e OWL UNIVERSITA’ DI CAMERINO
Il Sistema MOMIS Il progetto MOMIS (Mediator EnvirOnment for Multiple Information Sources) consiste nella realizzazione di un sistema intelligente d integrazione.
Università degli Studi di Modena e Reggio Emilia
Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, La rappresentazione dellinformazione testuale e i linguaggi di codifica.
XML Prof. Alfredo Pulvirenti. XML XML (eXtensible Markup Language) è un meta linguaggio. Può essere definito come un insieme di regole e convenzioni che.
Introduzione ai Web Services. E' un nuovo meccanismo RPC ottimizzato per l'uso in Internet Un qualunque Client su una generica piattaforma deve poter.
Seminari di ingegneria del software
“Seminari di Ingegneria del software”
1 OWL: Ontology Web Language Pierluigi DAmadio a.a.2003/2004.
1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,
DAL WEB AL SEMANTIC WEB Aspetti teorici e tecnologici Carmagnola Francesca Dipartimento Informatica C.so Svizzera 185, Torino
Sapienza Università di Roma Sapienza Università di Roma Laurea specialistica in Ingegneria Informatica Seminari di Ingegneria del Software Traduzione di.
Metamodellazione in RDF Tesina del corso di Seminari di Ingegneria del Software Alberto Cerullo.
Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi.
L’Elaborazione del Linguaggio Naturale e i Linguaggi di Markup - dalla struttura al contenuto -
Ingegneria del software Modulo 3 -Tecniche di implementazione Unità didattica 1 -Ingegneria dei componenti Ernesto Damiani Università degli Studi di Milano.
WWW Metadati: RDF e RDFS Riccardo Gentilucci Marco Pirruccio.
Prof. Massimo Ruffolo Ing. Maurizio Colica. Capitolo 4 RDF: Resource Description Framework  Introduzione  Classi e Istanze  Proprietà.
Web semantico. il Web Semantico si basa sullo standard URI (Uniform Resource Identifiers), per la definizione univoca di indirizzi Internet al livello.
Prof. Massimo Ruffolo Ing. Ermelinda Oro. Capitolo 4 RDF: Resource Description Framework RDFS: RDF Schema.
2 Indice Un esempio Che cosa è A cosa serve Confronto con HTML Punti di forza La sua struttura.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
CORSO elementare su DATABASE Applicativo utilizzato OpenOffice 3.0.
Oltre il web 2.0: il web semantico Seminario. World Wide Web ● Nasce nel 1991 al CERN di Ginevra Evoluzione: web dinamico ● Si basa su ● URL ● HTTP ●
H T M L Hyper Text Markup Language L' HTML è un linguaggio di markup usato per la creazione di documenti ipertestuali sotto forma di pagine web.
Privacy e fiducia nel social network IGF Italia Oreste Signore.
Il modello logico Il modello logico.
La progettazione concettuale
Sistemi e Applicazioni per l’Amministrazione Digitale
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Progettazione di una base di dati relazionale
L’ ORGANIZZAZIONE DEI DATI IN AZIENDA
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rileaborato da M. Lenzerini - Basi di dati
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Dott. Fabio Massimo Zanzotto a.a
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
Il modello relazionale
UML Creato da: Enrico Tarantino Alessandro Vilucchi Roberta Barcella.
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
DTD Document Type Definition per XML
Progettazione logica: Il modello relazionale
OWL: Ontology Web Language
Corso di Ingegneria del Web A A Domenico Rosaci 1
Semantizzare la rete Web 3.0 ed Ontologie Dott. Michele Stingo
Dael Maselli Tutorial INFN-AAI
OBJECT ORIENTED DATABASE
Progettazione concettuale
Definizione di linguaggio di programmazione
Referente per il progetto: Roberto Navigli
OpenLayers Client di mappe “non solo” WMS
Il modello relazionale
UML Diagramma statico di una classe
Array e Stringhe Linguaggio C.
Il questionario: progettazione e redazione II Modulo
Competenze Informatiche Avanzate
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

Linguaggi per il Web Semantico Corso di Metodi di Estrazione delle Informazioni dal Web Roberto Navigli 02/01/2019

Perché linguaggi per il WS Nuove esigenze vengono soddisfatte da linguaggi pensati per le nuove problematiche Nell’ambito del Web Semantico, si è giunti a un insieme di linguaggi standard (W3C), ciascuno costruito sul precedente: Description Logics, linguaggi logici OWL Livello logico (supporto al ragionamento) RDF+RDFS Livello ontologico (definizione di ontologie) ? Livello schema (definizione del vocabolario) XML+XMLS OWL RDF Livello dei dati (modello dei dati e sintassi per i metadati)

Panoramica Non distingue tra struttura del contenuto e rappresentazione del documento HTML Permette di definire i propri tag e di strutturare le informazioni indipendentemente dalla loro futura ed eventuale resa grafica XML Definisce la struttura sintattica di un documento XML XMLS Permette di esprimere relazioni esistenti tra istanze concettuali (es. Autore-di(Buzzati, Deserto dei tartari)) RDF Permette di definire relazioni e concetti (es. Autore-di è una relazione, Libro è un concetto) RDFS Poggia su RDFS e permette di esprimere pienamente classi, relazioni, istanze, vincoli, ecc. OWL

XML: eXtensible Markup Language Linguaggio di markup Standard del W3C Semplicità di HTML (HyperText Markup Language Flessibilità di SGML (Standard Generalized Markup Language) Permette una strutturazione dei documenti Permette di separare la struttura dalla rappresentazione (al contrario di HTML)

Markup con XML Rex Stout è l’autore di molti romanzi gialli aventi come protagonisti il famoso Nero Wolfe e il suo aiutante e narratore Archie Goodwin <?xml version=“1.0”?> <autore>Rex Stout</autore> è l’autore di molti <genere>romanzi gialli</genere> aventi come protagonisti il famoso <protagonista>Nero Wolfe</protagonista> e il suo aiutante e narratore <narratore><protagonista> Archie Goodwin </protagonista></narratore>

Documenti XML Un documento XML è un insieme correttamente annidato di tag aperti e chiusi (elementi): <autore>Rex Stout</autore> Gli elementi possono avere un numero arbitrario di coppie attributo-valore: <libro rilegatura=“brossura”>La Divina Commedia</libro> Un documento XML sintatticamente corretto è detto ben formato.

Struttura di un documento XML Permettendo l’annidamento, un documento XML può essere rappresentato mediante una struttura ad albero. Ad esempio: <?xml version=“1.0”?> <autore><nome>Rex</nome><cognome>Stout</cognome></autore> è l’autore di molti <genere>romanzi gialli</genere> aventi come protagonisti il famoso <protagonista attributo=“famoso”><nome>Nero</nome> <cognome>Wolfe</cognome></protagonista> e il suo aiutante e narratore <narratore> <protagonista mansione=“aiutante”> <nome>Archie</nome> <cognome>Goodwin</cognome> </protagonista> </narratore>

Struttura di un documento XML Permettendo l’annidamento, un documento XML può essere rappresentato mediante una struttura ad albero. Ad esempio: radice documento autore genere protagonista narratore nome cognome Romanzo giallo nome cognome protagonista Rex Stout Nero Wolfe nome cognome Archie Goodwin

Alcuni utilizzi di XML Come sintassi di serializzazione per altri linguaggi Esempio: Java  XML class Hello { static public void main(String[] args) System.out.println(“Hello world!”); } Come markup per risorse (documenti, pagine web, configurazioni ecc.) Come formato uniforme per lo scambio dei dati

Alcuni utilizzi di XML Come sintassi di serializzazione per altri linguaggi Esempio: Java  XML <?xml version=“1.0” ?> <class name=“Hello”> <method name=“main” static=“true” scope=“public” returnType=“void” input=“String[]”> System.out.println(“Hello world!”); </method> </class> Come markup per risorse (documenti, pagine web, configurazioni ecc.) Come formato uniforme per lo scambio dei dati

Alcuni utilizzi di XML Come sintassi di serializzazione per altri linguaggi Come markup per risorse (documenti, pagine web, configurazioni ecc.) Es. classificazione delle istanze di un documento: Tra i precursori del genere giallo troviamo <autore>Edgar Allan Poe</autore>, con <romanzo genere=“giallo”>I delitti della Rue Morgue</romanzo>, e <autore>Arthur Conan Doyle</autore> con il suo <personaggio>Sherlock Holmes</personaggio>. Come formato uniforme per lo scambio dei dati

Alcuni utilizzi di XML Come sintassi di serializzazione per altri linguaggi Come markup per risorse (documenti, pagine web, configurazioni ecc.) Come formato uniforme per lo scambio dei dati Es. SOAP (Simple Object Access Protocol) <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.stock.org/stock"> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope>

Namespace in XML Namespace = collezione di nomi identificati da URI (Uniform Resource Identifier) Associati a elementi e attributi all’interno di documenti XML Permettono la visibilità al di fuori del singolo documento

Esempio: una libreria online books.org ecommerce.org /schema <author>Dino Buzzati</author> <title>Il deserto dei Tartari</title> <isbn>88-06-13848-4</isbn> XML <author> </author> <title> </title> <isbn> </isbn> XML isbn.org XML

Esempio: una libreria online <?xml version=‘1.0’ xmlns:books=’http://www.books.org/’ xmlns:store=’http://ecommerce.org/schema’ xmlns:isbn=’http://www.isbn.org/’ ?> <store:bookstore> <books:book> <books:title>Il deserto dei Tartari</books:title> <books:author>Dino Buzzati</books:author> <isbn:number>88-06-13848-4</isbn:number> </books:book> <books:title>L’isola di Arturo</books:title> <books:author>Elsa Morante</books:author> <isbn:number>88-06-13838-3</isbn:number> </store:bookstore>

Schemi sintattici per XML DTD (Document Type Definition) Specifica annidamenti e combinazioni permesse di elementi, attributi ecc. Un doc XML conforme a DTD = valido XML Schema Definisce lo schema sintattico con la stessa sintassi XML Fa uso di namespace e definizione di tipi Un doc XML conforme a XML Schema = schema valido

XML Schema Definizioni di tipo Dichiarazioni di elementi e attributi Roma,Londra, Parigi,Lisbona,Madrid Definizioni di tipo Semplici <simpleType name=‘stringlist’ base=‘string’ derivedBy=‘list’ /> Complessi <complexType name=‘indirizzo’> <sequence> <element name=‘nome’ type=‘string’ /> <element name=‘via’ type=‘string’ /> <element name=‘cap’ type=‘decimal’ /> <element name=‘citta’ type=‘string’ /> </sequence> </complexType> Dichiarazioni di elementi e attributi <element name=‘elenco’ type=‘stringlist’> <nome>...</nome> <via>...</via> <cap>00100</cap> <citta>Roma</citta>

Esempio di XML Schema Schema Istanza schema-valida <schema xmlns=’http://www.w3.org/1999/XMLSchema’ targetNamespace=’http://lazoo.org’> <simpleType name=’comment’ base=’string’> <maxLength value=’1024’> </simpleType> <element name=’about’ type=’comment’> <element name=’autore’ type=’string’> </schema> Istanza schema-valida <?xml version=‘1.0’ xmlns=‘http://lazoo.org’ ?> <autore>Luigi Pirandello</autore> <about>romanziere e commediografo</about>

Rappresentazione di Ontologie Cosa vogliamo esprimere: Classi (Personaggio, Autore, ecc.) Istanze (Sherlock Holmes, Arthur Conan Doyle) Relazioni (indaga-su, ha-scritto) Azioni e processi (aspetti dinamici)

Linguaggi ontologici Linguaggi logici Linguaggi basati su frame Logica del prim’ordine Logica basata su regole Description logics Linguaggi basati su frame Simili ai database relazionali Linguaggi basati su grafi Reti semantiche Linguaggi per il Web Semantico

RDF: Resource Description Framework Standard del W3C E’ un modello di dati che lavora con tre tipi di elementi fondamentali: Risorse: entità riferite attraverso URI Proprietà: relazioni binarie tra risorse e/o valori atomici di tipo primitivo Affermazioni (o proposizioni): specificano il valore di una certa proprietà relativa a una risorsa

RDF: un semplice esempio affermazione Autore(http://www.mywebsite.com)=JohnDoe Si può esprimere come tripla del tipo (soggetto, predicato, oggetto): (http://www.mywebsite.com, Autore, JohnDoe) proprietà risorsa soggetto risorsa oggetto

RDF: un secondo esempio autoreDi(“http://www.pincopallino.com”, “http://www.books.org/ISBN0012515866”) haPrezzo(“http://www.books.org/ISBN0012515866”, “10 euro”) autoreDi haPrezzo http://www.books.org/ ISBN0012515866 10 euro http://www.pincopallino.com

Serializzazione di RDF RDF, essendo un modello di dati, può essere serializzato in modi diversi. Ad esempio, come sequenza di triple oppure in XML: (http://www.mario.it, http://description.org/schema/creatore, “Mario”) <?xml version=“1.0”?> <rdf:RDF xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”> <rdf:Description> <rdf:subject resource=”http://www.mario.it” /> <rdf:predicate resource=”http://description.org/schema/creatore” /> <rdf:object>Mario</rdf:object> </rdf:Description> </rdf:RDF>

RDF Schema RDF non fornisce meccanismi per dichiarare classi o proprietà né per definire relazioni tra proprietà e risorse RDF Schema Permette la definizione di un vocabolario per le proprietà RDF e la specifica dei tipi di oggetti cui possono essere applicate

RDFS: classi base Sono definite le seguenti classi (risorse di tipo rdfs:Class): rdfs:Resource: rappresenta tutto ciò che viene descritto in RDF (corrispondente di Object in Java) rdfs:Property: rappresenta il sottoinsieme di risorse che sono proprietà rdfs:Class: corrisponde al concetto di tipo (corrispondente alla nozione di classe nei linguaggi OO) Albero subclassOf Platano type Platano1 in viale Gorizia

RDFS: proprietà base RDFS definisce le proprietà (ovvero risorse di tipo rdfs:Property): rdfs:type: indica che una risorsa è istanza di una classe (1 risorsa, molti tipi) rdfs:subClassOf: relazione “sottoinsieme - sovrainsieme” tra classi (una classe può essere sottoclasse di molte classi) rdfs:subPropertyOf: una proprietà è una specializzazione di un’altra (1 proprietà, 0-n specializzazioni) rdfs:seeAlso: una risorsa contiene informazioni su un’altra risorsa rdfs:isDefinedBy: sottoproprietà di rfds:seeAlso, indica quale risorsa definisce un’altra risorsa (es. quale schema?)

RDFS: vincoli rdfs:ConstraintProperty è una sottoclasse di rdf:Property. Le sue istanze sono proprietà utilizzate all’interno di vincoli. RDF Schema permette di imporre: Vincoli di dominio (rdfs:domain) Istanze di rdfs:ConstraintProperty Vincolano l’applicazione di una proprietà a una o più classi Vincoli di intervallo (rdfs:range) Vincolano il valore di una proprietà a un determinato intervallo scelto su istanze di classi

RDFS: esempio di vincoli <rdf:Description ID=”appartieneA”> <rdf:type resource=”http://www.w3.org/1999/02/22-rdf-syntax-ns#Property”/> <rdfs:domain rdf:resource=”Oggetto”/> <rdfs:range rdf:resource=”Persona”/> </rdf:Description> Vincola la proprietà appartieneA: All’applicazione su istanze della classe Oggetto Ad assumere valori che siano istanze della classe Persona

RDFS: classi, sottoclassi, risorse sottoclasse classe definisce la classe risorsa

RDFS: classi, sottoclassi e tipi

I livelli successivi Il livello ontologico Il livello logico Fornisce gli strumenti per la definizione e l’uso di ontologie Si fonda su RDF e RDF Schema per definire le primitive di modellazione delle ontologie Il livello logico Fa uso della logica per rispondere a interrogazioni, mediante regole di inferenza e altre tecniche logiche e non Non specifica le euristiche di un particolare motore di inferenza

OWL: Ontology Web Language Standard del W3C Si basa su RDF (per le istanze) e RDFS (per classi e proprietà) e ne estende l’espressività Unifica tre aspetti importanti: Semantica formale e supporto al ragionamento efficiente (Description Logic) Ricche primitive di modellazione (Frame) Proposte standard per notazioni sintattiche (W3C, comunità Web)

Principali caratteristiche di OWL Classi subClassOf, intersectionOf, unionOf, complementOf, enumeration, equivalence, disjoint Proprietà symmetric, transitive, functional, inverse Functional range, domain, subPropertyOf, inverseOf, equivalentProperty Affermazioni sulle istanze sameIndividualAs, differentFrom, AllDifferent

Classi in OWL E’ possibile esprimere una classe come sottoclasse: <owl:Class rdf:ID=“Fiume"> <rdfs:subClassOf rdf:resource="#CorsoDAcqua"/> </owl:Class> E’ possibile definire una sottoclasse esprimendo delle restrizioni rispetto a un’altra classe: <rdfs:subClassOf rdf:ID=“Fiume”> <owl:Restriction> <owl:onProperty rdf:resource="#sfocia"/> <owl:allValuesFrom rdf:resource="#Mare"/> </owl:Restriction> </rdfs:subClassOf>

Altri modi di definire una classe (1) intersectionOf: <owl:Class rdf:ID=“Pinguino"> <rdfs:subclassOf> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Uccello"/> <owl:Class rdf:about="#EsseriCheNonVolano"/> </owl:intersectionOf> </rdfs:subclassOf> </owl:Class> equivalentClass: <owl:Class rdf:ID=“BacinoDAcqua"> <owl:equivalentClass rdf:resource="http://www.other.org#Bacino"/> disjointWith: <owl:Class rdf:ID=“Fiume"> <rdfs:subClassOf rdf:resource="#CorsoDAcqua"/> <owl:disjointWith rdf:resource="#Ruscello"/> <owl:disjointWith rdf:resource="#Rivolo"/> <owl:disjointWith rdf:resource="#Torrente"/> Uccello EsseriChe NonVolano Pinguino Bacino D’Acqua Bacino CorsoDAcqua Fiume Ruscello

Altri modi di definire una classe (2) unionOf: <owl:Class rdf:ID=“Organismo"> <rdfs:subclassOf> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Animale"/> <owl:Class rdf:about="#Vegetale"/> </owl:intersectionOf> </rdfs:subclassOf> </owl:Class> oneOf (definizione estensionale di classe): <owl:Class rdf:ID=“Continente"> <rdfs:subClassOf rdf:resource="#Regione"/> <owl:oneOf rdf:parseType="Collection"> <geo:Continente rdf:about="http://www.asia.org"/> <geo:Continente rdf:about="http://www.australia.org"/> <geo:Continente rdf:about="http://www.europa.org"/> <geo:Continente rdf:about="http://www.america.org"/> <geo:Continente rdf:about="http://www.africa.org"/> </owl:oneOf> complementOf: <owl:Class rdf:ID=“Artefatto"> <rdfs:subClassOf rdf:resource="#Oggetto"/> <owl:complementOf rdf:resource="#OggettoNaturale"/> Organismo Animale Vegetale  Continente Asia … Europa Oggetto Oggetto Naturale Artefatto

Proprietà in OWL Due tipi di proprietà: owl:ObjectProperty è la classe di proprietà che hanno come valore un oggetto istanza di una classe owl:DatatypeProperty è la classe di proprietà che hanno come valore un dato di tipo semplice o strutturato (rdfs:Literal o XML Schema built-in datatype) Ruota parte-di Automobile Autore nome xsd:String

Cardinalità delle proprietà E’ possibile restringere la cardinalità delle proprietà con: owl:minCardinality owl:maxCardinality Esempio: <owl:Class rdf:ID=“Automobile"> <rdfs:subClassOf rdf:resource=“Veicolo"/><rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#ha-parte"/> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">4</owl:minCardinality> <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">4</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>

Istanze in OWL Si istanzia creando un tag con il nome della classe: <Fiume rdf:ID="Tevere"/> Si lega l’istanza ad altre istanze mediante le ObjectProperty definite: <Ruota rdf:ID=“ruota1”> <Automobile rdf:ID=“auto1”> <ha-parte rdf:resource="#ruota1”/> </Automobile> 1 4 Automobile ha-parte Ruota auto1 ruota1

Tre livelli di espressività OWL Full: piena espressività OWL DL: la stessa espressività delle Description Logics No metaclassi (classe di una classe) Non è possibile restringere la cardinalità di proprietà transitive OWL Lite: owl:minCardinality o owl:maxCardinality. I soli valori consentiti sono per owl:cardinality sono 0 e 1. Non sono disponibili owl:hasValue, owl:disjointWith, owl:one of, owl:complementOf, owl:unionOf. OWL Full OWL DL OWL Lite

Riferimenti sul Web OWL Guide fornisce una buona descrizione di OWL con molti esempi: http://www.w3.org/TR/owl-guide/ OWL Reference è una guida completa e dettagliata: http://www.w3.org/TR/owl-ref/ Per tutti gli altri documenti OWL, e informazioni su Semantic Web: http://www.w3.org/2001/sw