Introduzione Web2.0 XML ...dawsec.dicom.uninsubria.it/blogs/web2/wp-content/uploads/2008/11/... ·...
Transcript of Introduzione Web2.0 XML ...dawsec.dicom.uninsubria.it/blogs/web2/wp-content/uploads/2008/11/... ·...
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLLinguaggi a regole per il Semantic Web
Fonte: World Wide Web Consortium
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Indice
1 Introduzione
2 Web 2.0
3 Semantic WebIntroduzioneXML: un formato standard per la rappresentazione di dati
Il linguaggio XMLDefinire strutture dati con l’XML: DTD e XML SchemaXML Namespace: diversi vocabolari nello stesso documento XMLXPath: selezionare porzioni di documenti XMLXSLT: trasformare documenti XML
Da RDF(S) a OWLRDFSPARQLRDF SchemaOWL
Regole e Semantic Web
4 Semantic Web e Web 2.0
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Indice
1 Introduzione
2 Web 2.0
3 Semantic WebIntroduzioneXML: un formato standard per la rappresentazione di dati
Il linguaggio XMLDefinire strutture dati con l’XML: DTD e XML SchemaXML Namespace: diversi vocabolari nello stesso documento XMLXPath: selezionare porzioni di documenti XMLXSLT: trasformare documenti XML
Da RDF(S) a OWLRDFSPARQLRDF SchemaOWL
Regole e Semantic Web
4 Semantic Web e Web 2.0
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Cos’è il Semantic Web
The Semantic Web is not a separate Web but anextension of the current one, in which information is givenwell-defined meaning, better enabling computers andpeople to work in cooperation. The first steps in weavingthe Semantic Web into the structure of the existing Webare already under way. In the near future, thesedevelopments will usher in significant new functionality asmachines become much better able to process and“understand” the data that they merely display atpresent.1
1Tim Berners-Lee, James Hendler, Ora Lassila. The Semantic Web. Scientific American, May 2001
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Caratteristiche
Il Semantic Web nasce dalla volontà di creare un insieme distrumenti standard per una descrizione delle risorse che siaprocessabile dalle macchine, così da automatizzare il processodi reperimento e scelta di informazioni e servizi
Lo scopo è la costruzione di un framework di servizi che puòessere integrato all’interno del Web attuale
Come la maggior parte degli standard adottati nel Web, ibuilding block del Semantic Web sono definiti dalle specifichetecniche del World Wide Web Consortium
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Cosa vedremo
Linguaggio XML e tecnologie correlate
RDF, SPARQL, RDFS e OWL quali strumenti per ladescrizione di risorse
I linguaggi a regole come strumento per l’estensione dellefunzionalità fornite da RDF, RDFS e OWL
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Indice
1 Introduzione
2 Web 2.0
3 Semantic WebIntroduzioneXML: un formato standard per la rappresentazione di dati
Il linguaggio XMLDefinire strutture dati con l’XML: DTD e XML SchemaXML Namespace: diversi vocabolari nello stesso documento XMLXPath: selezionare porzioni di documenti XMLXSLT: trasformare documenti XML
Da RDF(S) a OWLRDFSPARQLRDF SchemaOWL
Regole e Semantic Web
4 Semantic Web e Web 2.0
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Cos’è l’XML I
L’XML (Extensible Markup Language)[Bray et al., 2008, Bray et al., 2006c] nasce nel 1996 con loscopo di fornire un formato standard per la rappresentazione diinformazioni all’interno del Web
L’idea è di applicare a livello applicativo lo stesso principio diInternet: le applicazioni Web possono essere sviluppate conlinguaggi diversi e utilizzare strutture dati incompatibili, madevono poter essere in grado di comunicare tra loro escambiare informazioni utilizzando un linguaggio standard
Il motivo per cui l’XML è considerato una delle componentibase del Semantic Web è che l’interoperabilità dei dati è ilrequisito essenziale perché il Semantic Web possa esistere
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Cos’è l’XML II
Non è quindi un caso che l’XML costituisca la sintassistandard per buona parte delle altre tecnologie del SemanticWeb (ad es., RDF(S) e OWL)
Attualmente l’XML è ampiamente utilizzato in ambito Web(ma non solo) come formato standard per importare edesportare dati e, in misura minore, è stato adottato anche perla rappresentazione dei dati impiegata da applicazioni software
L’XML è stato inoltre utilizzato per definire il formato nativodi tecnologie Web sviluppato negli ultimi anni (ad es., le Webfeed)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Cos’è l’XML III
Le versioni dell’XML ora disponibili sono la 1.0[Bray et al., 2008] e la 1.1 [Bray et al., 2006c]
La versione 1.1 prevede estensioni alla sintassi dell’XML 1.0relative, sostanzialmente, all’uso di caratteri Unicode
Per una descrizione dettagliata delle differenze tra XML 1.0 e1.1 si rimanda a [Bray et al., 2006c]:http://www.w3.org/TR/xml11/#sec-xml11
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Estensioni dell’XML I
In una fase successiva alla pubblicazione delle specifichedell’XML come W3C Recommendation (1998) sono statisviluppati altri linguaggi per permettere la definizione emanipolazione di documenti XML
Anche in questo caso, lo scopo è fornire tecnologie standard einteroperabili per l’uso di documenti XML
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Estensioni dell’XML II
Alcuni esempi sono:
XML Schema Un linguaggo che usa la stessa sintassi dell’XMLper definire documenti XML
XPath Un linguaggio che permette di denotarespecifiche porzioni di un documento XMLindicando un percorso attraverso le componentistrutturali del documento stesso
XQuery Un linguaggio che permette di interrogaredocumenti XML
XSL(T) Un linguaggio che permette di convertiredocumenti XML in altri formati (ad es., HTML)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Sintassi I
Come tutti i linguaggi derivati dall’SGML, l’XML prevede trecomponenti sintattiche principali: elementi, attributi deglielementi e character data
Gli elementi definiscono le caratteristiche strutturali di undocumento XML: in sostanza determinano la struttura dautilizzare per rappresentare e interpretare un insieme di dati
Gli attributi denotano caratteristiche degli elementi utili per lacorretta interpretazione del loro contenuto
Con character data si intendono stringhe di caratteri, dilunghezza variabile, che costituiscono il valore degli attributi ei dati rappresentati dagli elementi
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Sintassi II
Un elemento può avere 0 o più attributi, e contenere dati, altrielementi, oppure può essere vuoto (empty)
Elemento con un attributo e contenente character data:
<elemento a t t r i b u t o=" v a l o r e ">d a t i</ e lemento>
Elemento vuoto con un attributo:
<elemento a t t r i b u t o=" v a l o r e " />
Elemento con un attributo e contenente un altro elemento:
1 <elemento1 a t t r i b u t o=" v a l o r e ">2 <elemento2>d a t i</ e lemento2>3 </ elemento1>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Struttura di un documento XML
Un documento XML prevede un insieme di elementi nidificatirappresentabile come un albero, i cui nodi sono costituiti daelementi e attributi, mentre le foglie sono rappresentate daicharacter data
Questa struttura deve essere preceduta dalla XML declaration,che indica la versione del linguaggio XML utilizzata più,eventualmente, la codifica di caratteri impiegata:
<? xml v e r s i o n=" 1.0 " encod ing=" ut f−8"?>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di documento XML. . .
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <r s s v e r s i o n=" 2 .0 ">3 <channe l>4 < t i t l e>Pu b l i c a t i o n s @ DaWSec</ t i t l e>5 <l i n k>h t t p : //www. dicom . u n i n s u b r i a . i t /dawsec /? se c=pubs</ l i n k>6 <l a s tBu i l dDa t e>Mon , 08 Sep 2008 10 : 0 6 : 3 0 +0200</ l a s tBu i l dD a t e>7 <i tem>8 < t i t l e>Barbara Carminat i , E l ena F e r r a r i , Andrea Perego . S e c u r i t y
and Pr i v a c y i n S o c i a l Networks (2008) . I n : Ency c l oped i a o fI n f o rma t i o n Sc i enc e and Technology , 2nd Ed i t i o n . IG IPub l i s h i n g , pp . 3369−3376 , 2008.</ t i t l e>
9 <ca t ego r y>Book ch ap t e r s</ ca t ego r y>10 <l i n k>h t t p : //www. dicom . u n i n s u b r i a . i t / dawsec /pubs/ IST3369 . pdf</ l i n k>11 </ i tem>12 </ channe l>13 </ r s s>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
. . . e la sua rappresentazione ad albero
2.0
Pub. . . http:. . . Mon, 08. . .
Barbara. . . Book. . . http:. . .
rss
@versionchannel
title link lastBuildDate item
title category link
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Definire strutture dati con l’XML
È importante notare che l’XML non definisce un insieme dielementi e attributi da utilizzare in documenti XML, ma solouna sintassi
A questo principio fanno eccezione alcuni attributi di caratteregenerale, definiti per una questione di compatibilità (ad es.,xml:lang e xml:base)
Comunque, l’idea è che chiunque, in base alle sue esigenze,può definire un insieme di elementi e attributi a rappresentare idati di uno specifico dominio applicativo
A tal scopo esistono due diverse tecnologie: Document TypeDefinition (DTD) e XML Schema (XSD)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Document Type Definition (DTD)
Il DTD è un linguaggio, diverso dall’XML, che permette didefinire un insieme di elementi e attributi, assieme alle lorocaratteristiche
Il DTD non è stato sviluppato funzionalmente all’XML, ma è illinguaggio che viene utilizzato per la definizione di linguaggicompatibili con l’SGML (di cui l’XML è un sottoinsieme)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di DTD (RSS 2.0) I
1 <!ELEMENT r s s ( channe l )>2 <!ATTLIST r s s v e r s i o n CDATA #FIXED " 2 .0 ">3 <!ELEMENT channe l ( ( i t em+) | ( t i t l e , l i n k , d e s c r i p t i o n , ( l anguage |
c o p y r i g h t | manag ingEd i tor | webMaster | pubDate | l a s tBu i l dD a t e |c a t ego r y | g en e r a t o r | docs | c l oud | t t l | image | t e x t I n p u t |s k i pHou r s | sk ipDays ) ∗) )>
4 <!ELEMENT i t em ( ( t i t l e | d e s c r i p t i o n )+, l i n k ? , ( author | c a t ego r y |comments | e n c l o s u r e | gu id | pubDate | sou r c e ) ∗)>
5 <!ELEMENT author (#PCDATA)>6 <!ELEMENT ca t ego r y (#PCDATA)>7 <!ATTLIST ca t ego r y domain CDATA #IMPLIED>8 <!ELEMENT c l oud (#PCDATA)>9 <!ATTLIST c l oud domain CDATA #IMPLIED po r t CDATA #IMPLIED path CDATA
#IMPLIED r e g i s t e r P r o c e d u r e CDATA #IMPLIED p r o t o c o l CDATA #IMPLIED>10 <!ELEMENT comments (#PCDATA)>11 <!ELEMENT c o p y r i g h t (#PCDATA)>12 <!ELEMENT d e s c r i p t i o n (#PCDATA)>13 <!ELEMENT docs (#PCDATA)>14 <!ELEMENT e n c l o s u r e (#PCDATA)>15 <!ATTLIST e n c l o s u r e u r l CDATA #REQUIRED l e ng t h CDATA #REQUIRED type
CDATA #REQUIRED>16 <!ELEMENT g en e r a t o r (#PCDATA)>17 <!ELEMENT gu id (#PCDATA)>18 <!ATTLIST gu id i sPermaLink ( t r u e | f a l s e ) " t r u e ">19 <!ELEMENT he i gh t (#PCDATA)>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di DTD (RSS 2.0) II
20 <!ELEMENT image ( u r l , t i t l e , l i n k , ( w idth | h e i g h t | d e s c r i p t i o n ) ∗)>21 <!ELEMENT l anguage (#PCDATA)>22 <!ELEMENT l a s t Bu i l dDa t e (#PCDATA)>23 <!ELEMENT l i n k (#PCDATA)>24 <!ELEMENT manag ingEd i tor (#PCDATA)>25 <!ELEMENT name (#PCDATA)>26 <!ELEMENT pubDate (#PCDATA)>27 <!ELEMENT sk ipDays (#PCDATA)>28 <!ELEMENT sk i pHou r s (#PCDATA)>29 <!ELEMENT sou r c e (#PCDATA)>30 <!ATTLIST sou r c e u r l CDATA #REQUIRED>31 <!ELEMENT t e x t I n p u t ( t i t l e , d e s c r i p t i o n , name , l i n k )>32 <!ELEMENT t i t l e (#PCDATA)>33 <!ELEMENT t t l (#PCDATA)>34 <!ELEMENT u r l (#PCDATA)>35 <!ELEMENT webMaster (#PCDATA)>36 <!ELEMENT width (#PCDATA)>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Document Type Declaration
L’URI del DTD che definisce elementi e attributi usati in undocumento XML deve essere specificato nella document typedeclaration, specificata subito dopo la XML declaration:
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE mydoc SYSTEM " h t t p : //www. example . o rg /mydoc . dtd ">3 <mydoc>4 . . .5 </mydoc>
Un DTD può essere contenuto direttamente nella documenttype declaration:
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE mydoc [3 . . .4 ]>5 <mydoc>6 . . .7 </mydoc>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Entity Reference I
Il DTD permette anche la definizione di un costruttoparticolare, denominato entity reference
Una entity reference, per come è utilizzata all’interno di undocumento XML, è assimilabile a una costante, ed è quindicaratterizzata da un nome e da un valore (che può essere unastringa, o anche codice XML)
È utile per vari motivi: ad es., nel caso la stessa stringa debbaessere ripetuta più volte all’interno del documento o percodificare stringhe che non possono essere modificate quandoutilizzate nel documento
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Entity Reference II
Un entity reference è definita da una dichiarazione (entityreference declaration), che ha la seguente forma:
<!ENTITY nome " v a l o r e ">
Tale definizione può essere associata a un documento XMLcon gli stessi metodi illustrati per il DTD
Per far riferimento a esso all’interno di un documento si usa lasintassi: &nome;
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di definizione e uso di entity reference
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE mydoc [3 <!ENTITY t i t l e " P ub l i c a t i o n s ␣@␣DaWSec">4 ]>5 <r s s v e r s i o n=" 2 .0 ">6 <channe l>7 < t i t l e>&t i t l e ;</ t i t l e>8 <l i n k>h t t p : //www. dicom . u n i n s u b r i a . i t /dawsec /? se c=pubs</ l i n k>9 <l a s tBu i l dDa t e>Mon , 08 Sep 2008 10 : 0 6 : 3 0 +0200</ l a s tBu i l dD a t e>10 <i tem>11 < t i t l e>Barbara Carminat i , E l ena F e r r a r i , Andrea Perego . S e c u r i t y
and Pr i v a c y i n S o c i a l Networks (2008) . I n : Ency c l oped i a o fI n f o rma t i o n Sc i enc e and Technology , 2nd Ed i t i o n . IG IPub l i s h i n g , pp . 3369−3376 , 2008.</ t i t l e>
12 <ca t ego r y>Book ch ap t e r s</ ca t ego r y>13 <l i n k>h t t p : //www. dicom . u n i n s u b r i a . i t / dawsec /pubs/ IST3369 . pdf</ l i n k>14 </ i tem>15 </ channe l>16 </ r s s>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Character Entity Reference I
Esiste un particolare tipo di entity reference che sonopredefinite in XML: i character entity reference
Sono usati esclusivamente per denotare singoli caratteriutilizzando il codice numerico che li identifica all’interno dellacodifica Unicode
La loro sintassi:
CharRef : := ’&#’ [0−9]+ ’ ; ’ | ’&#x ’ [0−9a−fA−F]+ ’ ; ’
dove [0-9]+ denota un numero decimale, mentre [0-9a-fA-F]+un numero esadecimale
Ad es.: & e & corrispondono entrambi alcarattere &
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Character Entity Reference II
L’XML prevede una denominazione simbolica, e non numerica,per alcuni caratteri (i.e., quelli che hanno un valore sintatticospecifico):
& corrisponde a &< corrisponde a <> corrisponde a >' corrisponde a ’" corrisponde a ”
Il vantaggio dei character entity reference è che è possibileincludere in un documento XML caratteri non appartenentiall’insieme ASCII utilizzando solo caratteri ASCII
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Character Entity Reference III
A parte i vantaggi di codificare in ASCII (relativamente alladimensione finale del file) dato che tutte le codifiche deicaratteri esistenti sono soprainsiemi dell’ASCII, questogarantisce che i caratteri contenuti in un documento sianorappresentati sempre correttamente
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XML Schema (XSD) I
In una fase successiva alla pubblicazione delle specifichedell’XML fu deciso di sviluppare un nuovo linguaggio per ladefinizione di documenti XML, chiamato XML Schema (XSD)[Thompson et al., 2004, Biron and Malhotra, 2004], a suavolta basato sull’XML
Il motivo di questa scelta si basa su alcune considerazioni
Ad es., i DTD non forniscono strumenti sufficientementeflessibili per la definizione di documenti XML. In particolare, idati contenuti in un documento XML possono esserecaratterizzati solo come testo
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XML Schema (XSD) II
Se però l’XML deve essere utilizzato come formato standardper la rappresentazione di informazioni è necessario poterqualificare nel modo più preciso possibile il tipo di dato di uncerto valore (numero, data, valore booleano, etc.)
Inoltre i DTD utilizzano un linguaggio diverso dall’XML, equindi è necessario avere a disposizione specifiche applicazioniin grado di comprenderlo
Al contrario, se la definizione di un documento XML vieneeffettuata utilizzando un linguaggio basato sull’XML, èpossibile utilizzare le stesse applicazioni per processaredocumenti XML e verificare che rispettino la definizione che neè stata fatta
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XML Schema (XSD) III
L’XSD si presenta quindi come uno strumento in grado didescrivere i dati con la stessa espressività di linguaggi comel’SQL, e garantisce l’interoperabilità di tali definizioniutilizzando la sintassi XML
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XSD: componenti principali I
I costrutti di base forniti dall’XSD permettono di definire:elementiattributi
tipi di dato (datatype)
L’XSD mette a disposizione un insieme predefinito di tipi didato (built-in datatypes), che possono essere utilizzati perdefinire nuovi tipi di dato
I tipi di dato vengono utilizzati per denotare sia il contenutodegli elementi che i valori degli attributi
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XSD: componenti principali II
Ecco alcuni degli elementi XSD utilizzati per definire unoschema XML:
element: definise un elemento
attribute: definisce un attributo
complexType: definisce la struttura di un elemento (qualisono i suoi elementi figli, gli attributi, etc.)
simpleType: definisce tipi di dato personalizzati a partire daquelli supportati di default dall’XSD
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Tipo di dato definiti da XML Schema
Fonte: http://www.w3.org/TR/xmlschema-2/#built-in-datatypes [Biron and Malhotra, 2004]
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di XML Schema (RSS 2.0) I
1 <? xml v e r s i o n=" 1 .0 " encod ing="UTF−8"?>2 <xs: schema xm ln s : x s=" h t t p : //www.w3 . org /2001/XMLSchema"
e l ementFormDefau l t=" u n q u a l i f i e d " v e r s i o n=" 2 . 0 . 2 . 1 6 ">3 <x s : e l emen t name=" r s s ">4 <xs:complexType>5 <x s : s e qu e nc e>6 <xs : e l emen t name=" channe l " type="RssChanne l"/>7 <xs : an y namespace="##othe r " p r oc e s sCon t en t s=" l a x " minOccurs="0"
maxOccurs="unbounded "/>8 </ x s : s e qu e n ce>9 <x s : a t t r i b u t e name=" v e r s i o n " type=" x s : d e c im a l " use=" r e q u i r e d "
f i x e d=" 2 .0 "/>10 <x s : a n yA t t r i b u t e namespace="##any"/>11 </ xs :complexType>12 </ x s : e l emen t>13 <xs :complexType name="Rss I tem">14 <x s : s eq u e nc e>15 <x s : c h o i c e maxOccurs="unbounded ">16 <xs : e l emen t name=" t i t l e " type=" x s : s t r i n g " minOccurs="0" />17 <xs : e l emen t name=" d e s c r i p t i o n " type=" x s : s t r i n g " minOccurs="0" />18 <xs : e l emen t name=" l i n k " type=" xs :anyURI " minOccurs="0" />19 <xs : e l emen t name=" author " type="Emai lAddress " minOccurs="0" />20 <xs : e l emen t name=" ca t ego r y " type="Category " minOccurs="0" />21 <xs : e l emen t name="comments" type=" xs :anyURI " minOccurs="0" />22 <xs : e l emen t name=" en c l o s u r e " type=" Enc l o su r e " minOccurs="0" />
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di XML Schema (RSS 2.0) II
23 <xs : e l emen t name=" gu id " type="Guid " minOccurs="0" />24 <xs : e l emen t name="pubDate" type="Rfc822FormatDate"
minOccurs="0" />25 <xs : e l emen t name=" sou r c e " type="Source" minOccurs="0" />26 <xs : an y namespace="##othe r " p r oc e s sCon t en t s=" l a x " minOccurs="0"
maxOccurs="unbounded " />27 </ x s : c h o i c e>28 </ x s : s eq u e nc e>29 <x s : a n yA t t r i b u t e namespace="##any "/>30 </ xs :complexType>31 <xs :complexType name="RssChanne l">32 <x s : s eq u e nc e>33 <x s : c h o i c e maxOccurs="unbounded ">34 <xs : e l emen t name=" t i t l e " type=" x s : s t r i n g " />35 <xs : e l emen t name=" l i n k " type=" xs :anyURI " />36 <xs : e l emen t name=" d e s c r i p t i o n " type=" x s : s t r i n g " />37 <xs : e l emen t name=" language " type=" x s : l a n g u a g e " minOccurs="0" />38 <xs : e l emen t name=" co p y r i g h t " type=" x s : s t r i n g " minOccurs="0" />39 <xs : e l emen t name="manag ingEd i tor " type=" Emai lAddress "
minOccurs="0" />40 <xs : e l emen t name="webMaster " type="Emai lAddress " minOccurs="0"
/>41 <xs : e l emen t name="pubDate" type="Rfc822FormatDate"
minOccurs="0" />42 <xs : e l emen t name=" l a s tBu i l dDa t e " type="Rfc822FormatDate"
minOccurs="0" />
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di XML Schema (RSS 2.0) III
43 <xs : e l emen t name=" ca t ego r y " type="Category " minOccurs="0" />44 <xs : e l emen t name=" g ene r a t o r " type=" x s : s t r i n g " minOccurs="0" />45 <xs : e l emen t name=" docs " type=" xs :anyURI " minOccurs="0" />46 <xs : e l emen t name=" c l oud " type="Cloud" minOccurs="0" />47 <xs : e l emen t name=" t t l " type=" x s : n o nNe g a t i v e I n t e g e r "
minOccurs="0" />48 <xs : e l emen t name=" image " type=" Image" minOccurs="0" />49 <xs : e l emen t name=" r a t i n g " type=" x s : s t r i n g " minOccurs="0" />50 <xs : e l emen t name=" t e x t I n p u t " type="Text Input " minOccurs="0" />51 <xs : e l emen t name=" sk i pHou r s " type=" Sk i pHou r sL i s t " minOccurs="0"
/>52 <xs : e l emen t name=" sk ipDays " type=" Sk i pDay sL i s t " minOccurs="0" />53 <xs : an y namespace="##othe r " p r oc e s sCon t en t s=" l a x " minOccurs="0"
maxOccurs="unbounded " />54 </ x s : c h o i c e>55 <xs : e l emen t name=" i tem" type="Rss I tem" minOccurs="1"
maxOccurs="unbounded " />56 <x s : an y namespace="##othe r " p r oc e s sCon t en t s=" l a x " minOccurs="0"
maxOccurs="unbounded " />57 </ x s : an y>58 </ x s : s eq u e nc e>59 <x s : a n yA t t r i b u t e namespace="##any "/>60 </ xs :complexType>61 <xs : s imp l eType name="SkipHour ">62 <x s : r e s t r i c t i o n base=" x s : n o nNe g a t i v e I n t e g e r ">63 <x s : m i n I n c l u s i v e v a l u e="0"/>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di XML Schema (RSS 2.0) IV
64 <x s :m a x I n c l u s i v e v a l u e="23"/>65 </ x s : r e s t r i c t i o n>66 </ x s : s imp l eType>67 <xs :complexType name=" Sk i pHou r s L i s t ">68 <x s : s eq u e nc e>69 <xs : e l emen t name=" hour " type="SkipHour " minOccurs="0"
maxOccurs="24"/>70 </ x s : s eq u e nc e>71 </ xs :complexType>72 <xs : s imp l eType name="SkipDay ">73 <x s : r e s t r i c t i o n base=" x s : s t r i n g ">74 <xs : enume ra t i o n va l u e="Monday"/>75 <xs : enume ra t i o n va l u e="Tuesday "/>76 <xs : enume ra t i o n va l u e="Wednesday "/>77 <xs : enume ra t i o n va l u e="Thursday"/>78 <xs : enume ra t i o n va l u e=" Fr i day "/>79 <xs : enume ra t i o n va l u e=" Saturday "/>80 <xs : enume ra t i o n va l u e="Sunday"/>81 </ x s : r e s t r i c t i o n>82 </ x s : s imp l eType>83 <xs :complexType name=" Sk i pDay sL i s t ">84 <x s : s eq u e nc e>85 <xs : e l emen t name="day " type="SkipDay " minOccurs="0" maxOccurs="7"
/>86 </ x s : s eq u e nc e>87 </ xs :complexType>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di XML Schema (RSS 2.0) V
88 <xs :complexType name="Category ">89 <x s : s imp l eCon t e n t>90 <x s : e x t e n s i o n base=" x s : s t r i n g ">91 <x s : a t t r i b u t e name="domain" type=" x s : s t r i n g " use=" o p t i o n a l "/>92 </ x s : e x t e n s i o n>93 </ x s : s imp l eCon t e n t>94 </ xs :complexType>95 <xs :complexType name=" Image ">96 <x s : a l l>97 <xs : e l emen t name=" u r l " type=" xs :anyURI " />98 <xs : e l emen t name=" t i t l e " type=" x s : s t r i n g " />99 <xs : e l emen t name=" l i n k " type=" xs :anyURI " />
100 <xs : e l emen t name="width " type=" ImageWidth" d e f a u l t="88"minOccurs="0" />
101 <xs : e l emen t name=" h e i g h t " type=" ImageHe ight" d e f a u l t="31"minOccurs="0" />
102 <xs : e l emen t name=" d e s c r i p t i o n " type=" x s : s t r i n g " minOccurs="0" />103 </ x s : a l l>104 </ xs :complexType>105 <xs : s imp l eType name=" ImageHe ight">106 <x s : r e s t r i c t i o n base=" x s : p o s i t i v e I n t e g e r ">107 <x s :m a x I n c l u s i v e v a l u e="400"/>108 </ x s : r e s t r i c t i o n>109 </ x s : s imp l eType>110 <xs : s imp l eType name=" ImageWidth ">111 <x s : r e s t r i c t i o n base=" x s : p o s i t i v e I n t e g e r ">
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di XML Schema (RSS 2.0) VI
112 <x s :m a x I n c l u s i v e v a l u e="144"/>113 </ x s : r e s t r i c t i o n>114 </ x s : s imp l eType>115 <xs :complexType name="Cloud ">116 <x s : a t t r i b u t e name="domain" type=" x s : s t r i n g " use=" r e q u i r e d "/>117 <x s : a t t r i b u t e name=" po r t " type=" x s : p o s i t i v e I n t e g e r " use=" r e q u i r e d "/>118 <x s : a t t r i b u t e name=" path " type=" x s : s t r i n g " use=" r e q u i r e d "/>119 <x s : a t t r i b u t e name=" r e g i s t e r P r o c e d u r e " type=" x s : s t r i n g "
use=" r e q u i r e d "/>120 <x s : a t t r i b u t e name=" p r o t o c o l " type=" C l oudPro toco l " use=" r e q u i r e d "/>121 </ xs :complexType>122 <xs : s imp l eType name=" C l oudPro toco l ">123 <x s : r e s t r i c t i o n base=" x s : s t r i n g ">124 <xs : enume ra t i o n va l u e="xml−rpc "/>125 <xs : enume ra t i o n va l u e="http−post "/>126 <xs : enume ra t i o n va l u e=" soap "/>127 </ x s : r e s t r i c t i o n>128 </ x s : s imp l eType>129 <xs :complexType name="Text Input ">130 <x s : a l l>131 <xs : e l emen t name=" t i t l e " type=" x s : s t r i n g " />132 <xs : e l emen t name=" d e s c r i p t i o n " type=" x s : s t r i n g " />133 <xs : e l emen t name="name" type=" x s : s t r i n g " />134 <xs : e l emen t name=" l i n k " type=" xs :anyURI " />135 </ x s : a l l>136 </ xs :complexType>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di XML Schema (RSS 2.0) VII
137 <xs : s imp l eType name="Emai lAddress ">138 <x s : r e s t r i c t i o n base=" x s : s t r i n g ">139 <x s : p a t t e r n
va l u e=" ( [ a−zA−Z0−9_\−]) ( [ a−zA−Z0−9_\−\.]∗)@(\[( (25 [0 −5] |2 [0 −4] [0 −9] |1 [140 </ x s : r e s t r i c t i o n>141 </ x s : s imp l eType>142 <xs : s imp l eType name="Rfc822FormatDate">143 <x s : r e s t r i c t i o n base=" x s : s t r i n g ">144 <x s : p a t t e r n v a l u e=" ( ( (Mon) | ( Tue ) | (Wed) | ( Thu) | ( F r i ) | ( Sat ) | ( Sun ) ) , ␣
∗) ?\d\d?␣+(( Jan ) | ( Feb ) | ( Mar) | ( Apr ) | (May) | ( Jun ) | ( J u l ) | ( Aug) | ( Sep ) | ( Oct ) | ( Nov ) | (+\d\d(\ d\d ) ?␣+\d\ d : \d\d ( : \d\d ) ?␣+(([+\−]?\d\d\d\d ) | (UT) | (GMT) | ( EST) | (EDT) | (CST) | (CDT) | (MST) | (MDT) | ( PST
145 </ x s : r e s t r i c t i o n>146 </ x s : s imp l eType>147 <xs :complexType name="Source ">148 <x s : s imp l eCon t e n t>149 <x s : e x t e n s i o n base=" x s : s t r i n g ">150 <x s : a t t r i b u t e name=" u r l " type=" xs :anyURI "/>151 </ x s : e x t e n s i o n>152 </ x s : s imp l eCon t e n t>153 </ xs :complexType>154 <xs :complexType name=" Enc l o su r e ">155 <x s : s imp l eCon t e n t>156 <x s : e x t e n s i o n base=" x s : s t r i n g ">157 <x s : a t t r i b u t e name=" u r l " type=" xs :anyURI " use=" r e q u i r e d " />
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di XML Schema (RSS 2.0) VIII
158 <x s : a t t r i b u t e name=" l e ng t h " type=" x s : n o nNeg a t i v e I n t e g e r "use=" r e q u i r e d " 7>
159 <x s : a t t r i b u t e name=" type " type=" x s : s t r i n g " use=" r e q u i r e d " />160 </ x s : e x t e n s i o n>161 </ x s : s imp l eCon t e n t>162 </ xs :complexType>163 <xs :complexType name="Guid ">164 <x s : s imp l eCon t e n t>165 <x s : e x t e n s i o n base=" x s : s t r i n g ">166 <x s : a t t r i b u t e name=" i sPermaLink " type=" x s : b o o l e a n "
use=" o p t i o n a l " d e f a u l t=" t r u e "/>167 </ x s : e x t e n s i o n>168 </ x s : s imp l eCon t e n t>169 </ xs :complexType>170 </ xs : schema>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XML Namespace I
A un documento XML è possibile associare un solo DTD: ciòsignifica che tutti gli elementi e attributi e utilizzati in undocumento fanno parte dello stesso vocabolario XML
Il problema è che diversi DTD possono definireelementi/attributi diversi, ma con lo stesso nome: in tal caso,non è possibile individuare a priori quale sia il DTD che includela definizione di tali elementi/attributi
L’XML Schema permette invece di utilizzare nello stessodocumento XML più vocabolari XML attraverso il meccanismodei namespace [Bray et al., 2006a, Bray et al., 2006b]
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XML Namespace II
Un namespace permette di identificare univocamenteall’interno di un documento XML elementi/attributi con lostesso nome locale, associando loro un prefisso univoco, a suavolta associato a un URI/IRI
Tale URI/IRI, denominato namespace name, identificaunivocamente il vocabolario utilizzato
Un namespace name può eventualmente (ma nonnecessariamente) corrispondere all’URL di tale vocabolario(cioè, il namespace name potrebbe essere utilizzato perrecuperare il corrispondente schema XML via Internet)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Uso dei Namespace I
Elementi/attributi definiti in vocabolari con diverso namespacesono specificati attraverso un qualified name, ottenutoconcatenando il prefisso del namespace con il nome localedell’elemento/attributo, separati da “:” (ad es., html:table)
Il prefisso è omesso in caso di default namespace (vedremo piùtardi questa nozione)
Si deve dichiarare il prefisso degli attributi solo in caso il loronamespace sia diverso da quello dell’elemento che li contiene
L’expanded name di un elemento/attributo è invece unacoppia che contiene il namespace name e il nome locale di taleelemento/attributo
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Uso dei Namespace II
I namespace name degli elementi/attributi usati in undocumento XML devono essere tutti dichiarati esplicitamente
Fanno eccezione i namespace corrispondenti ai prefissi xml(usato per attributi quali xml:lang e xml:base) e xmlns: ilprimo può non essere dichiarato; il secondo non deve esseredichiarato
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Uso dei Namespace III
La dichiarazione di un namespace viene effettuata usandol’attributo xmlns
Deve essere effettuata prima di utilizzare elementi/attributiriferiti a tale namespace
Può essere specificata in qualunque elemento del documentoXML
L’elemento in cui è dichiarato un namespace name determinaanche la sua visibilità: cioè, un namespace name è visibile datutti gli elementi che sono figli dell’elemento in cui ilnamespace è stato dichiarato
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Uso dei Namespace IV
Per associare un prefisso a un namespace name, ladichiarazione ha la seguente forma:
xm l n s : p r e f i x="namespace␣name"
Ad es.:
xm ln s :h tm l=" h t t p : //www.w3 . org /1999/ xhtml "
Tutti gli elementi/attributi che fanno riferimento a talenamespace dovranno essere specificati con il prefisso. Ad es.:
1 <? xml v e r s i o n=" 1 .0 "?>2 <htm l : h tm l xm ln s : h tm l=’ h t t p : //www.w3 . org /1999/ xhtml ’>3 <html :head> . . .</ html :head>4 <html :body> . . .</ html :body>5 </ htm l : h tm l>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Uso dei Namespace V
La scelta del prefisso di un namespace name dipende solodall’autore del documento XML
In altre parole, possono esistere documenti XML che utilizzanogli stessi namespace name, associati però a prefissi diversi
Fanno eccezione i prefissi xml e xmlns, che sono associati didefault a specifici namespace name:
xm l : h t t p : //www.w3 . org /XML/1998/ namespacexm ln s : h t t p : //www.w3 . org /2000/ xmlns/
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Uso dei Namespace VI
È possibile omettere il prefisso nella dichiarazione delnamespace name
In tal caso si parla di default namespace (per il namespacename) e unprefixed name (per elementi/attributi)
Nell’esempio che segue, tutti gli elementi fanno riferimentoallo stesso default namespace:
1 <? xml v e r s i o n=" 1 .0 "?>2 <html xmlns=’ h t t p : //www.w3 . org /1999/ xhtml ’>3 <head> . . .</head>4 <body> . . .</body>5 </html>
NB: Non può esistere più di un default namespace nello stessodocumento XML
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XPath I
Se l’XML permette di rappresentare informazioni attraversostrutture dati standardizzate, il passo successivo è quello dipoter accedere in modo selettivo a tali informazioni
Dato che elementi e attributi XML forniscono un contestointerpretativo ai dati, accedere alle informazioni contenute inun documento XML si risolve nella possibilità di effettuareinterrogazioni sul contenuto di elementi e attributi
Tale principio è analogo a quello adottato, ad es., nellinguaggio SQL, che permette di effettuare interrogazioni surelazioni e attributi di un database
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XPath II
Il linguaggio XPath (XML Path Language)[Clark and DeRose, 1999] è stato sviluppato esattamente perpoter selezionare particolari porzioni di un documento XML
A tal scopo, e viene impiegato da altre tecnologie XML, comeXQuery e XSLT, che hanno bisogno di tale funzionalità
La sua utilità va comunque ben oltre: ad es., vienenormalmente impiegato per costruire mash-up di siti Web (unesempio sono i siti che recuperano informazioni sui voli lowcost di compagnie diverse)
Nel seguito forniremo una panoramica del linguaggio XPath.Per una completa descrizione delle sue funzionalità si rimandaa [Clark and DeRose, 1999]
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Caratteristiche di XPath I
XPath prevede varie classi di espressioni, tra le quali ha unarilevanza primaria quella denotata con location path, uncostrutto che permette di selezionare elementi/attributi di undocumento XML facendo riferimento al DOM
Un location path impiega una sintassi che, nella sua formabase, ricorda quella usata per indicare un percorso all’internodel filesystem di un sistema Unix
In base a questa analogia, gli elementi e gli attributi deldocumento XML sono assimilabili a directory
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Caratteristiche di XPath II
Un location path è quindi espresso elencando glielementi/attributi (i.e., i nodi del DOM) da attraversare perraggiungere il nodo di interesseCome in Unix,
il simbolo / è impiegato per separare i nomi dei nodi daattraversareil simbolo * denota qualsiasi nodoi simboli . e .. denotano, rispettivamente, il nodo corrente e ilsuo genitorein aggiunta, la stringa // denota un qualsiasi percorsiintermedio, di lunghezza indefinita, tra due nodi
Per gli elementi, si usa il loro nome (eventualmente completodi prefisso), mentre gli attributi sono indicati con il loro nome,preceduto da @
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Caratteristiche di XPath III
XPath estende inoltre la sintassi dei percorsi Unix attraverso:
parole chiave (axis) che specificano la relazione esistente tranodi all’interno del DOM (ad es., child, descendant, parent,ancestor, attribute, namespace)
operatori di confronto (=, !=, <, <=, >, >=)
operatori booleani (and, or)
predicati sui nodi (ad es.,chapter[child::title=’Introduction’])
funzioni; ad es.,
la funzione text() seleziona il contenuto testuale di un nodo
position() seleziona la posizione di un nodo rispetto alleoccorrenze di elementi/attributi con lo stesso nome
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Alcuni esempi di location path I
/ r s s / @ve r s i on / t e x t ( )
2.0
Pub. . . http:. . . Mon, 08. . .
Barbara. . . Book. . . http:. . .
rss
@versionchannel
title link lastBuildDate item
title category link
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Alcuni esempi di location path II
/ r s s / channe l / t i t l e or / r s s / channe l / l i n k
2.0
Pub. . . http:. . . Mon, 08. . .
Barbara. . . Book. . . http:. . .
rss
@versionchannel
title link lastBuildDate item
title category link
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Alcuni esempi di location path III
/ r s s / channe l /∗
2.0
Pub. . . http:. . . Mon, 08. . .
Barbara. . . Book. . . http:. . .
rss
@versionchannel
title link lastBuildDate item
title category link
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Alcuni esempi di location path IV
// t i t l e
2.0
Pub. . . http:. . . Mon, 08. . .
Barbara. . . Book. . . http:. . .
rss
@versionchannel
title link lastBuildDate item
title category link
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XSLT I
Con XSL (XML Stylesheet Language) si denota una famiglia dilinguaggi utilizzati per trasformare documenti XML in altriformati, e per definire come devono essere presentati
A parte l’XSL, utilizzato per definire la formattazione didocumenti XML, di questa famiglia fanno parte anche XPath,XQuery e XSLT, in quanto linguaggi che permettono diselezionare il contenuto di documenti XML e/o di trasformarloin altro formato, prima di applicare le regole di formattazionedefinite dall’XSL
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XSLT II
L’XSLT (XSL Transformations) [Clark, 1999] è una delletecnologie più interessanti tra quelle disponibili per lamanipolazione di documenti XML
Esso permette di estrarre specifiche porzioni di un documentoXML e/o di trasformare il documento XML in altri formati,che possono essere o testuali o adottare una sintassi XML (ades., XHTML, RDF/XML, OWL)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
XSLT III
È possibile individuare tre principali classi di costrutti:espressioni XPath per la selezione di porzioni di un documentoXMLregole di trasformazione, espresse attraverso un linguaggio ditipo procedurale, che utilizza la sintassi XMLle template rule, che determinano quali trasformazioni devonoessere effettuate su nodi che condividono certe caratteristiche
Per applicare uno XSLT su un documento XML esistono duemetodi:
Associare direttamente l’XSLT includendo l’istruzionexml-stylesheet direttamente nel documentoUtilizzare un processore XSL, che prende come argomenti ildocumento XML e l’XSLT da applicare
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di trasformazione XSLT I
Documento originario:
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <r s s v e r s i o n=" 2 .0 " xmlns=" h t t p : // cybe r . law . ha r v a r d . edu/ r s s / r s s . html ">3 <channe l>4 < t i t l e>Pu b l i c a t i o n s @ DaWSec</ t i t l e>5 <l i n k>h t t p : //www. dicom . u n i n s u b r i a . i t /dawsec /? se c=pubs</ l i n k>6 <l a s tBu i l dDa t e>Mon , 08 Sep 2008 10 : 0 6 : 3 0 +0200</ l a s tBu i l dD a t e>7 <i tem>8 < t i t l e>Barbara Carminat i , E l ena F e r r a r i , Andrea Perego . S e c u r i t y
and Pr i v a c y i n S o c i a l Networks (2008) . I n : Ency c l oped i a o fI n f o rma t i o n Sc i enc e and Technology , 2nd Ed i t i o n . IG IPub l i s h i n g , pp . 3369−3376 , 2008.</ t i t l e>
9 <ca t ego r y>Book ch ap t e r s</ ca t ego r y>10 <l i n k>h t t p : //www. dicom . u n i n s u b r i a . i t / dawsec /pubs/ IST3369 . pdf</ l i n k>11 </ i tem>12 </ channe l>13 </ r s s>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di trasformazione XSLT II
Cosa si “vede”?
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di trasformazione XSLT III
XSLT da applicare:
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8" ?>2 <x s l : t r a n s f o rm xm l n s : x s l=" h t t p : //www.w3 . org /1999/XSL/Transform "
xm l n s : r s s=" h t t p : // cybe r . law . ha r v a r d . edu/ r s s / r s s . html "v e r s i o n=" 1 .0 ">
3 <x s l : o u t p u t method="xml" i n de n t=" yes " encod ing=" ut f−8"doctype−system=" h t t p : //www.w3 . org /TR/xhtml1 /DTD/xhtml1−s t r i c t . dtd "doctype−pu b l i c="−//W3C//DTD␣XHTML␣ 1 .0 ␣ S t r i c t //EN" />
4 <x s l : t e mp l a t e match="/ r s s : r s s / r s s : c h a n n e l ">5 <html xmlns=" h t t p : //www.w3 . org /1999/ xhtml ">6 <head>7 < t i t l e><x s l : v a l u e −o f s e l e c t=" r s s : t i t l e " /></ t i t l e>8 <s t y l e type=" t e x t / c s s ">9 body { font−f a m i l y : Lucida , sans−s e r i f ; ma rg i n : 0 ; }10 h1 {background−c o l o r : #4444aa ; c o l o r : # f f f f f f ; ma rg i n : 0 ;
padd i ng : 1em}11 #con t en t {ma rg i n : 40 px ; }12 #f o o t { border−t o p : s o l i d 1px #4444aa ; padd i ng : 0 40px ; font−s i z e :
. 8 em;}13 </ s t y l e>14 </head>15 <body>16 <h1><x s l : v a l u e −o f s e l e c t=" r s s : t i t l e " /></h1>17 <d i v i d=" con t en t ">18 <d l>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di trasformazione XSLT IV
19 <x s l : a p p l y−t emp l a t e s s e l e c t=" r s s : i t em " />20 </ d l>21 </ d i v>22 <d i v i d=" fo o t ">23 <p>Last upda t e : <x s l : v a l u e −o f s e l e c t=" r s s : l a s t B u i l d D a t e " /></p>24 <p>URL: <a h r e f="{ r s s : l i n k }"><x s l : v a l u e −o f s e l e c t=" r s s : l i n k "
/></a></p>25 </ d i v>26 </body>27 </html>28 </ x s l : t e mp l a t e>29 <x s l : t e mp l a t e match=" r s s : i t em ">30 <dt><s t r o ng><x s l : v a l u e −o f s e l e c t=" r s s : t i t l e " /></ s t r o ng></dt>31 <dd>32 <p>Catego r y : <x s l : v a l u e −o f s e l e c t=" r s s : c a t e g o r y " /></p>33 <p>URL: <a h r e f="{ r s s : l i n k }"><x s l : v a l u e −o f s e l e c t=" r s s : l i n k "
/></a></p>34 </dd>35 </ x s l : t e mp l a t e>36 </ x s l : t r a n s f o rm>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di trasformazione XSLT V
Codice XHTML risultante:
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE html PUBLIC "−//W3C//DTD␣XHTML␣ 1 .0 ␣ S t r i c t //EN"
" h t t p : //www.w3 . org /TR/xhtml1 /DTD/xhtml1−s t r i c t . dtd ">3 <html xmlns=" h t t p : //www.w3 . org /1999/ xhtml "
xm l n s : r s s=" h t t p : // cybe r . law . ha r v a r d . edu/ r s s / r s s . html ">4 <head>5 <meta http−equ i v="Content−Type" con t en t=" t e x t / html ; ␣ c h a r s e t=ut f−8"
/>6 < t i t l e>Pu b l i c a t i o n s @ DaWSec</ t i t l e>7 <s t y l e type=" t e x t / c s s ">8 body { font−f a m i l y : Lucida , sans−s e r i f ; ma rg i n : 40 px ; }9 </ s t y l e>10 </head>11 <body>12 <h1>Pub l i c a t i o n s @ DaWSec</h1>13 <d l>14 <dt xmlns="">15 <s t r o ng>Barbara Carminat i , E l ena F e r r a r i , Andrea Perego .
S e c u r i t y and Pr i v a c y i n S o c i a l Networks (2008) . I n :Ency c l oped i a o f I n f o rma t i o n Sc i enc e and Technology , 2ndEd i t i o n . IG I Pub l i s h i ng , pp . 3369−3376 , 2008.</ s t r o ng>
16 </dt>17 <dd xmlns="">18 <p>Catego r y : Book c ha p t e r s</p>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di trasformazione XSLT VI
19 <p>URL: <a h r e f=" . . . "> . . .</a></p>20 </dd>21 </ d l>22 <hr />23 <p>Last upda t e : Mon , 08 Sep 2008 10 : 0 6 : 3 0 +0200</p>24 <p>URL: <a h r e f=" . . . "> . . .</a></p>25 </body>26 </html>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di trasformazione XSLT VII
Cosa si vede?
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di trasformazione XSLT VIII
Come associare direttamente l’XSLT al documento RSS:
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <? xml−s t y l e s h e e t type=" t e x t / x s l " h r e f=" ./ r s s 2 h tm l . x s l "?>3 <r s s v e r s i o n=" 2 .0 " xmlns=" h t t p : // cybe r . law . ha r v a r d . edu/ r s s / r s s . html ">4 <channe l>5 < t i t l e>Pu b l i c a t i o n s @ DaWSec</ t i t l e>6 <l i n k>h t t p : //www. dicom . u n i n s u b r i a . i t /dawsec /? se c=pubs</ l i n k>7 <l a s tBu i l dDa t e>Mon , 08 Sep 2008 10 : 0 6 : 3 0 +0200</ l a s tBu i l dD a t e>8 <i tem>9 < t i t l e>Barbara Carminat i , E l ena F e r r a r i , Andrea Perego . S e c u r i t y
and Pr i v a c y i n S o c i a l Networks (2008) . I n : Ency c l oped i a o fI n f o rma t i o n Sc i enc e and Technology , 2nd Ed i t i o n . IG IPub l i s h i n g , pp . 3369−3376 , 2008.</ t i t l e>
10 <ca t ego r y>Book ch ap t e r s</ ca t ego r y>11 <l i n k>h t t p : //www. dicom . u n i n s u b r i a . i t / dawsec /pubs/ IST3369 . pdf</ l i n k>12 </ i tem>13 </ channe l>14 </ r s s>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di trasformazione XSLT IX
Come usare un processore XSL:
1 <?php
3 $xml = new DOMDocument ;4 $xml−>load ( " . / r s s . xml" ) ;5 $ x s l = new DOMDocument ;6 $x s l−>load ( " . / r s s 2 h tm l . x s l " ) ;7 $proc = new XSLTProcessor ;8 $proc−>impo r t S t y l e She e t ( $ x s l ) ;9 echo $proc−>transformToXML ( $xml ) ;
11 ?>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Indice
1 Introduzione
2 Web 2.0
3 Semantic WebIntroduzioneXML: un formato standard per la rappresentazione di dati
Il linguaggio XMLDefinire strutture dati con l’XML: DTD e XML SchemaXML Namespace: diversi vocabolari nello stesso documento XMLXPath: selezionare porzioni di documenti XMLXSLT: trasformare documenti XML
Da RDF(S) a OWLRDFSPARQLRDF SchemaOWL
Regole e Semantic Web
4 Semantic Web e Web 2.0
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Andando oltre l’XML I
L’XML e le tecnologie correlate forniscono strumenti standardper rappresentare e manipolare informazioni all’interno del Web
Quello che però XML non è in grado di fare (se non in manieralimitata) è collegare tali informazioni in una rete, grazie allaquale è possibile esplorare in maniera automatizzata le risorsedisponibili in modo da poter individuare quelle che soddisfanodai requisiti
In assenza di ciò, le informazioni disponibili sul Web sarebberosì rappresentate in modo uniforme, ma non sarebberoaccessibili se non conoscendo con esattezza la loro collocazione
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Andando oltre l’XML II
Per affrontare questo problema, il W3C ha sviluppato neglianni una serie di tecnologie, che forniscono strumenti semprepiù espressivi ed efficaci per integrare e processare leinformazioni disponibili sul Web all’interno di un network dirisorse collegate tra loro
La tecnologia base è fornita da RDF(S), che permette diassociare descrizioni a risorse e di specificare relazioni trarisorse. Non è un caso che la sintassi RDF adotti un modello agrafo, in cui i nodi denotano le risorse, mentre gli archidenotano le relazioni esistenti tra loro
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Andando oltre l’XML III
Per accedere e manipolare tali informazioni è stato sviluppatoun protocollo e linguaggio di interrogazione per RDF,denominato SPARQL, che è in grado non solo di estrarreinformazioni da grafi RDF, ma anche di costruire ulteriorinuovi grafi a partire da quelli esistenti
OWL è stato invece sviluppato per estendere l’espressività diRDF attraverso una più precisa definizione delle classi dirisorse e delle loro relazioni, e fornendo la possibilità dieffettuare inferenze su di esse
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Andando oltre l’XML IV
Infine, una delle più recenti iniziative del W3C è l’aggiuntaall’architettura del Semantic Web di un ulteriore layer, il RIF,che permette l’impiego di sistemi a regole per manipolare leinformazioni codificate in RDF/OWL, e per supportare regoledi inferenza non esprimibili in OWL
Semplificando, il rapporto tra sistemi a regole e OWL èanalogo tra quello tra SPARQL e RDF
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
RDF I
Come già detto, il linguaggio RDF permette di associaredescrizioni a risorse, e ad esprimere relazioni tra esse
A tal scopo, RDF adotta una sintassi astratta[Klyne and Carroll, 2004] secondo la quale ogni enunciato èuna tripla 〈soggetto, predicato , oggetto〉, dove soggetto eoggetto denotano due risorse, mentre predicato denota larelazione esistente tra esse
Per denotare univocamente soggetti, oggetti e predicati, aognuno di essi è associato come “nome” un URI/IRI (ci sonoperò alcune eccezioni, che vedremo)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
RDF II
In base a ciò, gli enunciati RDF possono essere modellati daun grafo etichettato e orientato, in cui i nodi denotano isoggetti e gli oggetti degli enunciati, mentre gli archi ipredicati (detti, in RDF, proprietà)
Nel seguito utilizzeremo il termine nodo per denotare,indifferentemente, soggetti e oggetti, e proprietà per indicare ipredicati (e quindi gli archi del grafo)
L’uso di URI/IRI per etichettare i nodi è il meccanismo chepermette di integrare in un unico grafo più grafi RDF
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La open world assumption I
Un punto importante è che RDF si basa sulla open worldassumption, in base alla quale l’assenza di un enunciato nonimplica necessariamente la sua falsità
Ciò implicitamente significa che un grafo RDF non fornisce maiuna descrizione esaustiva di una risorsa, e che un grafo RDFnon può essere chiuso (a parte alcune eccezioni, che vedremo)
Tale principio costituisce la base teorica grazie a cui diversigrafi RDF possono essere integrati tra loro
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La open world assumption II
In realtà, le implicazioni vanno ben oltre[Klyne and Carroll, 2004]:
To facilitate operation at Internet scale, RDF is an open-world
framework that allows anyone to make statements about any
resource.
In general, it is not assumed that complete information about any
resource is available. RDF does not prevent anyone from making
assertions that are nonsensical or inconsistent with other
statements, or the world as people see it. Designers of applications
that use RDF should be aware of this and may design their
applications to tolerate incomplete or inconsistent sources of
information.
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La open world assumption III
Il punto fondamentale è che il Semantic Web non è pensatocome uno sistema di classificazione normativa del Web usatoda una autorità (sia essa una o più organizzazioni), ma comestrumento collaborativo, aperto a tutti gli utenti del Web
Questo implica che la presenza di enunciati contraddittori nonsia uno svantaggio, ma al contrario arricchisca la base diconoscenza raccogliendo diversi punti di vista sullo stessoinsieme di risorse
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La open world assumption IV
In questo senso, la risoluzione di tali contraddizioni non deveessere necessariamente effettuata all’interno dei “layer” logicidel Semantic Web, ma piuttosto coinvolge il layer del trust,grazie al quale è possibile associare un peso agli enunciati,dipendentemente all’identità e/o alle caratteristiche di chi ne èl’autore
È, questo, uno degli aspetti che fa emergere la fecondità diun’integrazione tra Semantic Web e Web 2.0
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di due grafi RDF. . .
http://www.example.org
http://www.example.org/foaf.rdf#alice
“2007-12-14”ˆxsd:date
http://xmlns.com/foaf/0.1/maker
http://purl.org/dc/terms/0.1/issued
http://www.example.org/foaf.rdf#alice
“Alice Smith”
http://www.example.org
http://xmlns.com/foaf/0.1/name
http://xmlns.com/foaf/0.1/made
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
. . . e come possono essere integrati in un unico grafo
http://www.example.org
http://www.example.org/foaf.rdf#alice
“2007-12-14”ˆxsd:date
“Alice Smith”
http://xmlns.com/foaf/0.1/maker
http://purl.org/dc/terms/0.1/issued
http://xmlns.com/foaf/0.1/name
http://xmlns.com/foaf/0.1/made
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un altro esempio di due grafi RDF. . .
http://www.example.org
http://www.example.org/foaf.rdf#alice
“2007-12-14”ˆxsd:date
http://xmlns.com/foaf/0.1/maker
http://purl.org/dc/terms/0.1/issued
http://www.example.org
http://www.example.org/foaf.rdf#alice
“Welcome to Example.org”
http://xmlns.com/foaf/0.1/maker
http://purl.org/dc/terms/0.1/title
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
. . . e come possono essere integrati in un unico grafo
http://www.example.org
http://www.example.org/foaf.rdf#alice
“2007-12-14”ˆxsd:date
http://xmlns.com/foaf/0.1/maker
http://purl.org/dc/terms/0.1/issued
http://purl.org/dc/terms/0.1/title “Welcome to Example.org”@en
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un ultimo esempio di due grafi RDF. . .
http://www.example.org
http://www.example.org/foaf.rdf#alice
“2007-12-14”ˆxsd:date
http://xmlns.com/foaf/0.1/maker
http://purl.org/dc/terms/0.1/issued
http://www.example.org
http://www.example.org/foaf.rdf#bob
http://xmlns.com/foaf/0.1/maker
“2007-12-14”ˆxsd:date
http://purl.org/dc/terms/0.1/issued
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
. . . e come possono essere integrati in un unico grafo
http://www.example.org
http://www.example.org/foaf.rdf#alice
“2007-12-14”ˆxsd:date
http://xmlns.com/foaf/0.1/maker
http://purl.org/dc/terms/0.1/issued
http://xmlns.com/foaf/0.1/maker
http://www.example.org/foaf.rdf#bob
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Nodi e proprietà in RDF
Le proprietà RDF sono tutte denotate da un URI/IRI reference,i.e., una URI/IRI che denota univocamente una risorsaEsistono invece tre tipologie esclusive di nodi RDF:
1 un URI/IRI reference2 letterali (literal), i.e., valori quali stringhe, numeri, date3 nodi vuoti (blank node), i.e., nodi che non sono associati
esplicitamente ad alcun valore (o, meglio, hanno valoreindefinito, corrispondente al quantificatore esistenziale ∃)
È importante notare che il soggetto di un enunciato RDF nonpuò essere un letterale
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Letterali e tipi di dato in RDF I
I letterali RDF sono di due tipi:
Plain Una stringa non caratterizzata da alcunadichiarazione sul tipo di dato a cui appartiene.Vengono utilizzati principalmente perrappresentare contenuto testuale libero, epossono eventualmente essere associatiall’attributo xml:lang, che denota la lingua incui è scritto il testo
Typed Una stringa associata a una dichiarazione sultipo di dato a cui appartiene
L’RDF ha un unico tipo di dato predefinito, rdf:XMLLiteral,usato per includere codice XML in un grafo RDF
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Letterali e tipi di dato in RDF II
Non ha invece un meccanismo per la definizione di tipi di dato,ma fa riferimento a quelli definiti da XML Schema[Biron and Malhotra, 2004], ad eccezione di alcuni, non adattiad essere utilizzati in RDF per varie ragioniIn particolare, non possono essere utilizzati:
xsd:durationxsd:QNamexsd:ENTITY e xsd:ENTITIESxsd:IDxsd:IDREF e xsd:IDREFSxsd:NOTATIONxsd:NMTOKENS
Per la motivazione, si veda [Klyne and Carroll, 2004]:http://www.w3.org/TR/rdf-mt/#DTYPEINTERP
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di documento (grafo) RDF, con varie tipologie
di nodi
http://www.example.org
“2007-12-14”ˆxsd:date
“Alice Smith”
http://xmlns.com/foaf/0.1/maker
http://purl.org/dc/terms/0.1/issued
http://xmlns.com/foaf/0.1/name
http://purl.org/dc/terms/0.1/title “Welcome to Example.org”@en
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La sintassi RDF/XML I
Sebbene l’RDF preveda una sintassi astratta che adotta unmodello a grafo, i grafi RDF sono normalmente serializzati inXML
In tal caso si parla di sintassi RDF/XML [Beckett, 2004]
È importante notare che l’XML non fornisce l’unica possibileserializzazione di un grafo XML; d’altra parte è quella adottatatipicamente per rappresentare un grafo RDF
Il motivo è chiaro, in base a quanto detto finora: dato chel’XML fornisce una sintassi standard per la rappresentazionedei dati nel Web, qualsiasi processore XML sarà in grado diprocessare un grafo RDF, anche se non riesce a catturarne lasemantica
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La sintassi RDF/XML II
Un punto importante è inoltre che, utilizzando unaserializzazione XML, è possibile usare in RDF gli stessistrumenti forniti dall’XML, in particolare, l’XML Schema, inamespace e le entity reference
È però ugualmente importante notare che la sintassiRDF/XML è comunque legata alla semantica dell’RDF, e,come tale, pone dei vincoli su come deve essere usata
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Sintassi alternative a RDF/XML I
Nonostante i suoi vantaggi, la sintassi RDF/XML ha unoproblema: è estremamente prolissa, e difficile da leggere
Per questo motivo sono state definite sintassi alternative per laserializzazione di un grafo RDF, tra cui possiamo citare N3(Notation 3)[Berners-Lee et al., 2008, Berners-Lee and Connolly, 2008] eTurtle (Terse RDF Triple Language)[Beckett and Berners-Lee, 2008], relativamente ai quali il W3Cha pubblicato le specifiche
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Sintassi alternative a RDF/XML II
In realtà, molte delle serializzazioni alternative a RDF/XMLtentano anche di superare alcuni limiti dell’RDF
Ad es., N3 adotta un approccio diverso da quello dell’RDF perla reificazione di enunciati, e permette di esprimere regole (nevedremo degli esempi più avanti)
Al contrario, Turtle può essere considerato un sottoinsieme diN3, che include solo i costrutti esprimibili in RDF
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di grafo RDF, serializzato in XML, che impiega
tipi di dato dell’XML Schema, namespace e entity reference
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE rd f :RDF [3 <!ENTITY r d f " h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#">4 <!ENTITY xsd " h t t p : //www.w3 . org /2001/XMLSchema#">5 <!ENTITY f o a f " h t t p : // xmlns . com/ f o a f /0 .1/ ">6 <!ENTITY dcterms " h t t p : // p u r l . o rg /dc/ terms /0.1/ ">7 ]>8 <rd f :RDF x m l n s : r d f="&r d f ; " xm l n s : f o a f="&f o a f ; "
xm l n s : d c t e rms="&dcterms ; ">9 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">10 < f o a f :m a k e r>11 < r d f : D e s c r i p t i o n>12 <foa f : name>A l i c e Smith</ foa f : name>13 </ r d f : D e s c r i p t i o n>14 < f o a f :m a k e r>15 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−14</ d c t e r m s : i s s u e d>16 </ r d f : D e s c r i p t i o n>17 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Sempre lo stesso grafo, serializzato in N3/Turtle
1 @p r e f i x xsd : <ht tp : //www.w3 . org /2001/XMLSchema#> .2 @p r e f i x f o a f : <h t tp : // xmlns . com/ f o a f /0.1/> .3 @p r e f i x dcte rms : <ht tp : // p u r l . o rg /dc/ terms /0.1/> .
5 <ht tp : //www. example . org> f o a f : maker [ f o a f : name " A l i c e ␣Smith " ] ;dc te rms : i s s u e d "2007−12−14"^xsd : date .
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Soggetti, oggetti e predicati in RDF/XML I
In RDF/XML, soggetti, oggetti e predicati RDF sono espressida specifiche componenti sintattiche
I soggetti di un enunciato RDF sono espressi dardf:Description, a cui è associato l’attributo rdf:about, cheha come valore l’URI/IRI del soggetto
Un valore nullo per l’attributo rdf:about indica che il soggettoè il grafo stesso
Nel caso il soggetto sia un blank node, l’attributo rdf:aboutviene omesso
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Soggetti, oggetti e predicati in RDF/XML II
Gli oggetti di un enunciato RDF possono essere anch’essiespressi attraverso rdf:Description, nel caso siano URI/IRI oblank node
Se sono letterali, sono invece associati alla proprietà che puntaa essi come contenuto testuale
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Soggetti, oggetti e predicati in RDF/XML III
Le proprietà (cioè, i predicati) sono espresse utilizzando il loroqualified name XML, i.e., prefisso del namespace più nomelocale
La loro specifica tipica è quella di un elemento XML, figliodell’istanza di rdf:Description che denota il soggettodell’enunciato
Qualora l’oggetto a cui puntano sia un letterale, può essereloro associato l’attributo rdf:datatype, che ha come valorel’URI/IRI che denota uno specifico tipo di dato dell’XMLSchema
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Come “abbreviare” la sintassi RDF/XML
Dagli esempi, si nota che la sintassi XML è piuttosto prolissa,per cui sono state definite regole per ridurre (anche selimitatamente) questa sua poco invidiabile caratteristica
Ne vediamo alcune. Per una rassegna completa, si rimanda a[Beckett, 2004]
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Attributi invece di proprietà
Se l’oggetto a cui punta una proprietà è un plain literal, la proprietàpuò essere specificata come attributo dell’rdf:Description chedenota il soggetto dell’enunciatoAd esempio, l’enunciato:
< r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg "><d c e r m s : t i t l e>Welcome to Example . o rg !</ d c t e rm s : t i t l e>
</ r d f : D e s c r i p t i o n>
è equivalente a:
< r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg "d c e rm s : t i t l e="Welcome␣ to ␣Example . o rg ! " />
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
L’attributo rdf:resource
Nel caso un oggetto sia URI/IRI, e non sia soggetto di alcunenunciato, può essere specificata come valore dell’attributordf:resource, associato alla proprietà che punta a essoAd esempio, l’enunciato:
< r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">< f o a f :m a k e r>
< r d f : D e s c r i p t i o nr d f : a b o u t=" h t t p : // a u t h o r i t y . example . o rg / f o a f . r d f#a l i c e " />
</ f o a f :m a k e r></ r d f : D e s c r i p t i o n>
è equivalente a:
< r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">< f o a f :m a k e r
r d f : r e s o u r c e=" h t t p : // a u t h o r i t y . example . o rg / f o a f . r d f#a l i c e " /></ r d f : D e s c r i p t i o n>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Omettere rdf:Description I
Nel caso un oggetto O sia un blank node, e sia soggetto di uno opiù enunciati, rdf:Description può essere omesso: in tal caso,all’attributo che punta a esso deve essere associato l’attributordf:parseType con il valore “Resource”, e le proprietà neglienunciati che hanno O come soggetto diventano figlie di taleproprietà
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Omettere rdf:Description II
Ad esempio, gli enunciati:
< r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">< f o a f :m a k e r>
< r d f : D e s c r i p t i o n><foa f : name>A l i c e Smith</ foa f : name>
</ r d f : D e s c r i p t i o n></ f o a f :m a k e r>
</ r d f : D e s c r i p t i o n>
sono equivalenti a:
< r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">< f o a f :m a k e r r d f : p a r s eTy p e="Resource ">
<foa f : name>A l i c e Smith</ foa f : name></ f o a f :m a k e r>
</ r d f : D e s c r i p t i o n>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Come omettere occorrenze multiple della stessa proprietà I
Nel caso esista più di un occorrenza della stessa proprietàrelativamente a un dato soggetto S e a un dato insieme di oggettiO1, . . . ,On, è possibile specificare solo un volta tale proprietà, cheavrà come figli O1, . . . ,On. In tal caso, alla proprietà dovrà essereassociato l’attributo rdf:parseType con il valore “Collection”
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Come omettere occorrenze multiple della stessa proprietà II
Ad esempio, gli enunciati:
< r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">< f o a f :m a k e r>
< r d f : D e s c r i p t i o n><foa f : name>A l i c e Smith</ foa f : name>
</ r d f : D e s c r i p t i o n></ f o a f :m a k e r>< f o a f :m a k e r>
< r d f : D e s c r i p t i o n><foa f : name>Bob White</ foa f : name>
</ r d f : D e s c r i p t i o n></ f o a f :m a k e r>
</ r d f : D e s c r i p t i o n>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Come omettere occorrenze multiple della stessa proprietà III
sono equivalenti a:
< r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">< f o a f :m a k e r r d f : p a r s eTy p e=" Co l l e c t i o n ">
< r d f : D e s c r i p t i o n><foa f : name>A l i c e Smith</ foa f : name>
</ r d f : D e s c r i p t i o n>< r d f : D e s c r i p t i o n>
<foa f : name>Bob White</ foa f : name></ r d f : D e s c r i p t i o n>
</ f o a f :m a k e r></ r d f : D e s c r i p t i o n>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
rdf:RDF e namespace
La “radice” di un documento RDF/XML è normalmentecostituita da rdf:RDF, che normalmente viene impiegato perla dichiarazione dei namespace utilizzati negli enunciati
In teoria rdf:RDF è necessario solo nel caso in cui ildocumento contenga più di un’occorrenza di rdf:Description
In tal caso, i namespace dovranno essere dichiarati inrdf:Description, o in uno dei figli, secondo le regole viste per inamespace XML
Questo vale anche per il namespace dell’RDF, che non èimplicito:http://www.w3.org/1999/02/22-rdf-syntax-ns#
Come per ogni documento XML, non devono essere dichiarati inamespace relativi ai prefissi xml e xmlns
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
rdf:about, rdf:ID e rdf:nodeID
Finora abbiamo visto come associare una descrizione a unarisorsa utilizzando l’attributo rdf:about
Esistono tuttavia soluzioni alternative, da impiegare inparticolari contesti
In particolare, al posto di rdf:about, in particolari contestipossono essere utilizzati gli attributi rdf:ID e rdf:nodeID
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
xml:base e rdf:ID I
In XML esiste la nozione di base URI, utilizzato per larisoluzione di URI/IRI relativi
Il base URI è specificato attraverso l’attributo xml:base[Marsh, 2001]
Qualora manchi tale specifica, il base URI corrispondeall’URI/IRI del documento XML
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
xml:base e rdf:ID II
Questo principio è adottato anche in RDF/XML, e vieneimpiegato per abbreviare gli URI/IRI delle risorse descritte,quando le descrizioni si applicano a più porzioni di una datarisorsa, identificabili attraverso un fragment identifier (lacomponente degli URI/IRI preceduta da #)
Gli attributi che tengono in considerazione xml:base sono:rdf:about, rdf:resource, rdf:ID e rdf:datatype
La differenza tra questi attributi è che rdf:ID può avere comevalore solo un URI/IRI relativo, mentre le altre possono averecome valore un URI/IRI o assoluto o relativo
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
xml:base e rdf:ID III
D’altro canto, rdf:ID garantisce che non possano esistere,nello stesso documento RDF/XML, più occorrenze dirdf:Description relative alla stessa risorsa
Nel caso di rdf:ID: se più di una delle risorse descrittecondivide lo stesso URI/IRI, eccetto il fragment identifier,questo viene assegnato come valore all’attributo xml:lang,mentre il fragment identifier specifico di ogni risorsa vieneassegnato come valore all’attributo rdf:ID, omettendo #
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio dell’uso di rdf:ID
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE rd f :RDF [3 <!ENTITY r d f " h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#">4 <!ENTITY xsd " h t t p : //www.w3 . org /2001/XMLSchema#">5 <!ENTITY f o a f " h t t p : // xmlns . com/ f o a f /0 .1/ ">6 <!ENTITY dcterms " h t t p : // p u r l . o rg /dc/ terms /0.1/ ">7 ]>8 <rd f :RDF x m l n s : r d f="&r d f ; " xm l n s : f o a f="&f o a f ; "
xm l n s : d c t e rms="&dcterms ; " xm l : ba se=" h t t p : //www. example . o rg /">9 < r d f : D e s c r i p t i o n r d f : I D=" s p o r t ">10 < f o a f :m a k e r r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#a l i c e ">11 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2008−11−12</ d c t e r m s : i s s u e d>12 </ r d f : D e s c r i p t i o n>13 < r d f : D e s c r i p t i o n r d f : I D="news">14 < f o a f :m a k e r r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#bob">15 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2008−12−01</ d c t e r m s : i s s u e d>16 </ r d f : D e s c r i p t i o n>17 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
L’esempio precedente, usando rdf:about
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE rd f :RDF [3 <!ENTITY r d f " h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#">4 <!ENTITY xsd " h t t p : //www.w3 . org /2001/XMLSchema#">5 <!ENTITY f o a f " h t t p : // xmlns . com/ f o a f /0 .1/ ">6 <!ENTITY dcterms " h t t p : // p u r l . o rg /dc/ terms /0.1/ ">7 ]>8 <rd f :RDF x m l n s : r d f="&r d f ; " xm l n s : f o a f="&f o a f ; "
xm l n s : d c t e rms="&dcterms ; " xm l : ba se=" h t t p : //www. example . o rg /">9 < r d f : D e s c r i p t i o n r d f : a b o u t="#spo r t ">10 < f o a f :m a k e r r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#a l i c e ">11 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2008−11−12</ d c t e r m s : i s s u e d>12 </ r d f : D e s c r i p t i o n>13 < r d f : D e s c r i p t i o n r d f : a b o u t="#news">14 < f o a f :m a k e r r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#bob">15 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2008−12−01</ d c t e r m s : i s s u e d>16 </ r d f : D e s c r i p t i o n>17 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Blank node, rdf:nodeID e rdf:ID I
Abbiamo detto che un blank node è un soggetto/oggetto di ungrafo RDF che non è né un letterale, né è identificabile da unURI/IRI
Tuttavia più di un enunciato di un documento RDF/XMLfaccia riferimento allo stesso blank node
In tal caso, è utile evitare di ripetere in ogni enunciato taleblank node, e le proprietà di cui è soggetto
I motivi sono due:1 abbreviare la notazione2 esplicitare che tutti gli enunciati fanno riferimento allo stesso
blank node
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Blank node, rdf:nodeID e rdf:ID II
La soluzione adottata in RDF/XML è di associare al blanknode, attraverso l’attributo rdf:nodeID, un identificatore,visibile solo all’interno del documento RDF/XML, a cui vienefatto riferimento in ogni enunciato attraverso l’attributo rdf:ID
L’uso di rdf:nodeID e rdf:ID è una delle eccezioni alla openworld assumption adottata in RDF
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di blank node ripetuto
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE rd f :RDF [3 <!ENTITY r d f " h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#">4 <!ENTITY xsd " h t t p : //www.w3 . org /2001/XMLSchema#">5 <!ENTITY f o a f " h t t p : // xmlns . com/ f o a f /0 .1/ ">6 <!ENTITY dcterms " h t t p : // p u r l . o rg /dc/ terms /0.1/ ">7 ]>8 <rd f :RDF x m l n s : r d f="&r d f ; " xm l n s : f o a f="&f o a f ; "
xm l n s : d c t e rms="&dcterms ; ">9 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">10 < f o a f :m a k e r r d f : p a r s eT yp e="Resource ">11 <foa f : name>A l i c e Smith</ foa f : name>12 </ f o a f :m a k e r>13 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−14</ d c t e r m s : i s s u e d>14 </ r d f : D e s c r i p t i o n>15 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . net ">16 < f o a f :m a k e r r d f : p a r s eT yp e="Resource ">17 <foa f : name>A l i c e Smith</ foa f : name>18 </ f o a f :m a k e r>19 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2008−01−27</ d c t e r m s : i s s u e d>20 </ r d f : D e s c r i p t i o n>21 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
L’esempio precedente, usando rdf:nodeID
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE rd f :RDF [3 <!ENTITY r d f " h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#">4 <!ENTITY xsd " h t t p : //www.w3 . org /2001/XMLSchema#">5 <!ENTITY f o a f " h t t p : // xmlns . com/ f o a f /0 .1/ ">6 <!ENTITY dcterms " h t t p : // p u r l . o rg /dc/ terms /0.1/ ">7 ]>8 <rd f :RDF x m l n s : r d f="&r d f ; " xm l n s : f o a f="&f o a f ; "
xm l n s : d c t e rms="&dcterms ; ">9 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">10 < f o a f :m a k e r r d f : I D=" a l i c e ">11 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−14</ d c t e r m s : i s s u e d>12 </ r d f : D e s c r i p t i o n>13 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . net ">14 < f o a f :m a k e r r d f : I D=" a l i c e ">15 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2008−01−27</ d c t e r m s : i s s u e d>16 </ r d f : D e s c r i p t i o n>17 < r d f : D e s c r i p t i o n r d f : n o d e ID=" a l i c e ">18 <foa f : name>A l i c e Smith</ foa f : name>19 </ r d f : D e s c r i p t i o n>20 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Nodi tipizzati: rdf:type I
In RDF è possibile denotare una risorsa quale istanza di una opiù classi di risorse
In tal caso si parla di nodi tipizzati
A tal scopo viene impiegata la proprietà rdf:type, che ha comeoggetto la classe di cui il soggetto è istanza
In caso di nodi tipizzati, in RDF/XML è possibile utilizzare unasintassi abbreviata, in cui rdf:type viene omesso, e al posto dirdf:Description si usa il nome della classe
Nel caso vi siano occorrenze multiple di rdf:type (i.e., qualorala risorsa sia istanza di più classi), solo una di esse può essereomessa (quella che ha come oggetto la classe il cui nome èstato usato al posto di rdf:Description)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Nodi tipizzati: rdf:type II
In RDF esistono classi predefinite, usate per definire proprietà(rdf:Property) e gruppi di risorse (rdf:Bag, rdf:Seq,rdf:Alt): le vedremo più avanti
È però importante notare che l’RDF non permette di definireuna classe
A tal scopo è necessario usare RDF Schema
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio dell’uso di rdf:type
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE rd f :RDF [3 <!ENTITY r d f " h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#">4 <!ENTITY xsd " h t t p : //www.w3 . org /2001/XMLSchema#">5 <!ENTITY f o a f " h t t p : // xmlns . com/ f o a f /0 .1/ ">6 <!ENTITY dcterms " h t t p : // p u r l . o rg /dc/ terms /0.1/ ">7 <!ENTITY ex " h t t p : //www. example . o rg / voc/#">8 ]>9 <rd f :RDF x m l n s : r d f="&r d f ; " xm l n s : f o a f="&f o a f ; "
xm l n s : d c t e rms="&dcterms ; " xm l n s : e x="&ex ; ">10 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">11 < f o a f :m a k e r r d f : I D=" a l i c e ">12 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−14</ d c t e r m s : i s s u e d>13 </ r d f : D e s c r i p t i o n>14 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . net ">15 < f o a f :m a k e r r d f : I D=" a l i c e ">16 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2008−01−27</ d c t e r m s : i s s u e d>17 </ r d f : D e s c r i p t i o n>18 < r d f : D e s c r i p t i o n r d f : n o d e ID=" a l i c e ">19 <r d f : t y p e r d f : r e s o u r c e="&ex ; Person " />20 <r d f : t y p e r d f : r e s o u r c e="&ex ; Author " />21 <foa f : name>A l i c e Smith</ foa f : name>22 </ r d f : D e s c r i p t i o n>23 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
L’esempio precedente, usando la sintassi abbreviata
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE rd f :RDF [3 <!ENTITY r d f " h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#">4 <!ENTITY xsd " h t t p : //www.w3 . org /2001/XMLSchema#">5 <!ENTITY f o a f " h t t p : // xmlns . com/ f o a f /0 .1/ ">6 <!ENTITY dcterms " h t t p : // p u r l . o rg /dc/ terms /0.1/ ">7 <!ENTITY ex " h t t p : //www. example . o rg / voc/#">8 ]>9 <rd f :RDF x m l n s : r d f="&r d f ; " xm l n s : f o a f="&f o a f ; "
xm l n s : d c t e rms="&dcterms ; " xm l n s : e x="&ex ; ">10 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">11 < f o a f :m a k e r r d f : I D=" a l i c e ">12 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−14</ d c t e r m s : i s s u e d>13 </ r d f : D e s c r i p t i o n>14 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . net ">15 < f o a f :m a k e r r d f : I D=" a l i c e ">16 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2008−01−27</ d c t e r m s : i s s u e d>17 </ r d f : D e s c r i p t i o n>18 <ex :Pe r son r d f : n o d e ID=" a l i c e ">19 <r d f : t y p e r d f : r e s o u r c e="&ex ; Author " />20 <foa f : name>A l i c e Smith</ foa f : name>21 </ r d f : D e s c r i p t i o n>22 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Come definire proprietà: rdf:Property
Se l’RDF non permette di definire classi, può invece essereusato per definire proprietà
A tal scopo, si assegna un nome alla proprietà, e la si dichiaraessere istanza di rdf:Property. Ad es.:< r d f : D e s c r i p t i o n r d f : I D="name">
<r d f : t y p e r d f : r e s o u r c e="&r d f ; P r ope r t y "></ r d f : D e s c r i p t i o n>
È importante notare che l’RDF non permette di definire altroche il nome di una proprietà. Per la definizione delle suecaratteristiche è necessario usare RDF Schema
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Come descrivere gruppi di risorse
Sinora abbiamo visto enunciati in cui soggetti e oggetti sonocostituiti da singole risorse
Ma se dobbiamo descrivere gruppi di risorse?
A tal scopo l’RDF fornisce due classi di costrutti: contenitori ecollezioni
La differenza è che i contenitori sono aperti, mentre lecollezioni sono chiuse
In altre parole: è possibili aggiungere membri in un contenitoreattraverso enunciati esterni al contenitore stesso, mentre ciònon è permesso nelle collezioni
Le collezioni costituiscono un’altra eccezione alla open worldassumption adottata in RDF
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Contenitori RDF
L’RDF prevede tre tipologie di contenitori per denotare gruppidi risorse o letterali: rdf:Bag, rdf:Seq, rdf:Alt
L’rdf:Bag denota un gruppo in cui l’ordine dei membri non èimportante; permette la presenza di membri duplicati
L’rdf:Seq denota un gruppo in cui l’ordine dei membri èimportante; permette la presenza di membri duplicati
L’rdf:Alt denota un gruppo di membri alternativi (i.e., inXOR)
I membri dei gruppi sono denotati dalla proprietà rdf:li
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio dell’uso di rdf:Bag
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8" ?>2 <rd f :RDF x m l n s : r d f=" h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#"
xm ln s : s=" h t t p : // example . o rg / s t u de n t s / vocab#">3 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : // example . o rg / c o u r s e s /6 .001 ">4 <s : s t u d e n t s>5 <rd f :Bag>6 < r d f : l i r d f : r e s o u r c e=" h t t p : // example . o rg / s t u de n t s /Amy"/>7 < r d f : l i r d f : r e s o u r c e=" h t t p : // example . o rg / s t u de n t s /Mohamed"/>8 < r d f : l i r d f : r e s o u r c e=" h t t p : // example . o rg / s t u de n t s / Johann"/>9 < r d f : l i r d f : r e s o u r c e=" h t t p : // example . o rg / s t u de n t s /Mar ia"/>10 < r d f : l i r d f : r e s o u r c e=" h t t p : // example . o rg / s t u de n t s /Phuong "/>11 </ rd f :Bag>12 </ s : s t u d e n t s>13 </ r d f : D e s c r i p t i o n>14 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio dell’uso di rdf:Seq
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8" ?>2 <rd f :RDF x m l n s : r d f=" h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#"
xm ln s : s=" h t t p : // example . o rg / s t u de n t s / vocab#">3 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : // example . o rg / c o u r s e s /6 .001 ">4 <s : s t u d e n t s>5 <r d f : S e q>6 < r d f : l i r d f : r e s o u r c e=" h t t p : // example . o rg / s t u de n t s /Amy"/>7 < r d f : l i r d f : r e s o u r c e=" h t t p : // example . o rg / s t u de n t s / Johann"/>8 < r d f : l i r d f : r e s o u r c e=" h t t p : // example . o rg / s t u de n t s /Mar ia"/>9 < r d f : l i r d f : r e s o u r c e=" h t t p : // example . o rg / s t u de n t s /Mohamed"/>10 < r d f : l i r d f : r e s o u r c e=" h t t p : // example . o rg / s t u de n t s /Phuong "/>11 </ r d f : S e q>12 </ s : s t u d e n t s>13 </ r d f : D e s c r i p t i o n>14 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio dell’uso di rdf:Alt
1 <? xml v e r s i o n=" 1 .0 "?>2 <rd f :RDF x m l n s : r d f=" h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#"
xm ln s : s=" h t t p : // example . o rg / packages / vocab#">3 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : // example . o rg / packages /X11">4 <s : D i s t r i b u t i o n S i t e>5 <r d f : A l t>6 < r d f : l i r d f : r e s o u r c e=" f t p : // f t p . example . o rg "/>7 < r d f : l i r d f : r e s o u r c e=" f t p : // f t p1 . example . o rg "/>8 < r d f : l i r d f : r e s o u r c e=" f t p : // f t p2 . example . o rg "/>9 </ r d f : A l t>10 </ s : D i s t r i b u t i o n S i t e>11 </ r d f : D e s c r i p t i o n>12 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Collezioni RDF
Come si è detto, in RDF le collezioni permettono di definiregruppi chiusi di risorse o letterali
Una collezione è denotata da rdf:List, mentre per i suoimembri vengono usate le proprietà rdf:first (denota unmembro della collezione), rdf:rest (denota i rimanenti membridella collezione) e rdf:nil (chiude la collezione)
In RDF questi termini non vengono usati esplicitamente, ondeevitare una sintassi prolissa e prona agli errori (per cui non livedremo)
Si usa invece l’attributo rdf:parseType, con valore“Collection”, come visto precedentemente
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Enunciati su enunciati?
Si è ripetuto più volte che gli enunciati RDF descrivono risorse
Tuttavia può spesso essere necessario fornire descrizioni dienunciati (ad es., chi ha espresso un dato enunciato, quando,etc.)
Il problema è che il modello a grafo adottato da RDF non lopermette, a meno che si esprima un enunciato che ha persoggetto e/o oggetto un grafo RDF
In tal caso, il grafo RDF è trattato come una risorsa
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Come descrivere grafi RDF
Questo è esattamente quello che viene fatto quanto si utilizzardf:Description, associato a un attributo rdf:about convalore non specificato: secondo questa convenzione,rdf:Description descrive il documento RDF/XML in cui ècontenuta
L’alternativa, è specificare, in un altro documento RDF/XMLun’istanza di rdf:Description che ha come valore dell’attributordf:about l’URI/IRI del grafo RDF che si vuole descrivere
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Uso di rdf:about=“”
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE rd f :RDF [3 <!ENTITY r d f " h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#">4 <!ENTITY xsd " h t t p : //www.w3 . org /2001/XMLSchema#">5 <!ENTITY f o a f " h t t p : // xmlns . com/ f o a f /0 .1/ ">6 <!ENTITY dcterms " h t t p : // p u r l . o rg /dc/ terms /0.1/ ">7 <!ENTITY ex " h t t p : //www. example . o rg / voc/#">8 ]>9 <rd f :RDF x m l n s : r d f="&r d f ; " xm l n s : f o a f="&f o a f ; "
xm l n s : d c t e rms="&dcterms ; " xm l n s : e x="&ex ; ">10 < r d f : D e s c r i p t i o n r d f : a b o u t="">11 < f o a f :m a k e r r d f : I D=" a l i c e ">12 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2008−12−01</ d c t e r m s : i s s u e d>13 </ r d f : D e s c r i p t i o n>14 <ex :Pe r son r d f : n o d e ID=" a l i c e ">15 <r d f : t y p e r d f : r e s o u r c e="&ex ; Author " />16 <foa f : name>A l i c e Smith</ foa f : name>17 </ r d f : D e s c r i p t i o n>18 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Una descrizione di un grafo RDF esterna al grafo stesso
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <!DOCTYPE rd f :RDF [3 <!ENTITY r d f " h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#">4 <!ENTITY xsd " h t t p : //www.w3 . org /2001/XMLSchema#">5 <!ENTITY f o a f " h t t p : // xmlns . com/ f o a f /0 .1/ ">6 <!ENTITY dcterms " h t t p : // p u r l . o rg /dc/ terms /0.1/ ">7 <!ENTITY ex " h t t p : //www. example . o rg / voc/#">8 ]>9 <rd f :RDF x m l n s : r d f="&r d f ; " xm l n s : f o a f="&f o a f ; "
xm l n s : d c t e rms="&dcterms ; " xm l n s : e x="&ex ; ">10 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg /meta . r d f ">11 < f o a f :m a k e r r d f : I D=" a l i c e ">12 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2008−12−01</ d c t e r m s : i s s u e d>13 </ r d f : D e s c r i p t i o n>14 <ex :Pe r son r d f : n o d e ID=" a l i c e ">15 <r d f : t y p e r d f : r e s o u r c e="&ex ; Author " />16 <foa f : name>A l i c e Smith</ foa f : name>17 </ r d f : D e s c r i p t i o n>18 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Reificazione in RDF I
Queste soluzioni vanno bene per descrivere un intero grafoRDF. Ma se se ne vuole descrivere solo una parte?
La soluzione adottata in RDF è la reificazione
Operativamente, la soluzione è la seguente:L’enunciato è denotato da un nodo, istanza della classerdf:Statement, predefinita in RDFSoggetto, oggetto e predicato sono espressi, rispettivamente,dalle proprietà rdf:subject, rdf:object e rdf:predicate, chehanno come soggetto l’istanza di rdf:StatementLa descrizione dell’enunciato viene specificata associandoall’istanza di rdf:Statement ulteriori proprietà
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Reificazione in RDF II
Esiste un sintassi alternativa, meno prolissa, che consistenell’associare al predicato dell’enunciato da descriverel’attributo rdf:ID, e far riferimento a esso nell’istanza dirdf:Description che descrive l’enunciato
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un enunciato RDF. . .
1 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">2 < f o a f :m a k e r r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#a l i c e ">3 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−14</ d c t e r m s : i s s u e d>4 </ r d f : D e s c r i p t i o n>
Vogliamo dire che tale enunciato è stato espresso da Carol, il 15dicembre 2007. . .
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
. . . la sua reificazione usando rdf:Statement. . .
1 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">2 < f o a f :m a k e r r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#a l i c e ">3 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−14</ d c t e r m s : i s s u e d>4 </ r d f : D e s c r i p t i o n>5 <rd f : S t a t emen t r d f : a b o u t="#t r i p l e 1 ">6 <r d f : s u b j e c t r d f : r e s o u r c e=" h t t p : //www. example . o rg " />7 <r d f : p r e d i c a t e r d f : r e s o u r c e="&f o a f ; maker " />8 <r d f : o b j e c t r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#a l i c e " />9 < f o a f :m a k e r r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#c a r o l ">10 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−15</ d c t e r m s : i s s u e d>11 </ r d f : D e s c r i p t i o n>12 <rd f : S t a t emen t r d f : a b o u t="#t r i p l e 2 ">13 <r d f : s u b j e c t r d f : r e s o u r c e=" h t t p : //www. example . o rg " />14 <r d f : p r e d i c a t e r d f : r e s o u r c e="&dcterms ; i s s u e d " />15 <r d f : o b j e c t r d f : d a t a t y p e="&xsd ; date ">2007−12−14</ r d f : o b j e c t>16 < f o a f :m a k e r r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#c a r o l ">17 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−15</ d c t e r m s : i s s u e d>18 </ r d f : D e s c r i p t i o n>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
. . . e l’equivalente, con la sintassi abbreviata
1 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg ">2 < f o a f :m a k e r r d f : I D=" t r i p l e 1 "
r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#a l i c e ">3 <d c t e r m s : i s s u e d r d f : I D=" t r i p l e 2 "
r d f : d a t a t y p e="&xsd ; date ">2007−12−14</ d c t e r m s : i s s u e d>4 </ r d f : D e s c r i p t i o n>5 < r d f : D e s c r i p t i o n r d f : a b o u t="#t r i p l e 1 ">6 < f o a f :m a k e r r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#c a r o l ">7 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−15</ d c t e r m s : i s s u e d>8 </ r d f : D e s c r i p t i o n>9 < r d f : D e s c r i p t i o n r d f : a b o u t="#t r i p l e 2 ">10 < f o a f :m a k e r r d f : r e s o u r c e=" h t t p : //www. example . o rg / f o a f . r d f#c a r o l ">11 <d c t e r m s : i s s u e d r d f : d a t a t y p e="&xsd ; date ">2007−12−15</ d c t e r m s : i s s u e d>12 </ r d f : D e s c r i p t i o n>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Problemi della reificazione in RDF
La reificazione è una delle caratteristiche più controversedell’RDF
Un primo problema è che non è possibile specificare descrizionisu gruppi di enunciati: bisogna reificare ogni singolo enunciato
Secondo questo criterio, la reificazione di un’enunciato generacodice decisamente prolisso. Una situazione che peggioranotevolmente nel caso si voglia reificare la reificazione di unenunciato
Un secondo problema riguarda la semantica, che è poco chiara(si veda, al riguardo, [Klyne and Carroll, 2004])
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Semantica della reificazione I
La reificazione richiede un processo di interpretazione checonsiste di due passi: il primo interpreta il nodo reificato(quello denotato da rdf:subject) come un riferimento aun’altra tripla, il secondo interpreta tale tripla in modo daindividuare la sua reificazione
Il legame tra l’enunciato e la sua reificazione viene denotatocon un costrutto esterno alla sintassi RDF
Ad es., nella sintassi abbreviata, rdf:ID è associato a un arcodel grafo, e non a un suo nodo, diventando così soggetto di unenunciato – la reificazione. Ciò è in conflitto con il modello agrafo usato in RDF
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Semantica della reificazione II
La reificazione di un enunciato non implica l’enunciato, né èimplicata da esso
Multiple reificazioni dello stesso enunciato non possono essereintegrate
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Soluzioni alternative
Per questi motivi, negli ultimi anni sono state studiatealternative, che, in linea generale, adottano il principio secondocui la reificazione deve essere espressa come un meccanismo dicitazione (quoting mechanism)
In sostanza, lo scopo è permettere la coesistenza di più grafiall’interno dello stesso documento RDF/XML (o, dettodiversamente, permettere di denotare sottografi di un grafoRDF)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Named graph e N3
Nell’ambito del W3C, questo problema viene affrontato dallaSemantic Web Activity denominata Named Graphs(http://www.w3.org/2004/03/trix/)
L’obiettivo è sostanzialmente permettere di assegnare un nomea un insieme di enunciati RDF (quindi, a un grafo RDF), inmodo da utilizzarlo successivamente per esprimere enunciati sudi esso
Esistono tuttavia alternative già disponibili e operanti, comequella adottata da N3, in cui l’appartenenza di un insieme dienunciati a un grafo viene denotata mettendo tali enunciati traparentesi graffe
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La reificazione negli esempi precedenti espressa in N3
1 @p r e f i x xsd : <ht tp : //www.w3 . org /2001/XMLSchema#> .2 @p r e f i x f o a f : <h t tp : // xmlns . com/ f o a f /0.1/> .3 @p r e f i x p eop l e : <h t tp : //www. example . o rg / f o a f . r d f#> .
5 { <ht tp : //www. example . org> f o a f : maker peop l e : a l i c e ; dc te rms : i s s u e d"2007−12−14"^xsd : date . } f o a f : maker peop l e : c a r o l ; dc te rms : i s s u e d"2007−12−15"^xsd : date .
La reificazione può essere nidificata seguendo lo stesso principio:
1 @p r e f i x xsd : <ht tp : //www.w3 . org /2001/XMLSchema#> .2 @p r e f i x f o a f : <h t tp : // xmlns . com/ f o a f /0.1/> .3 @p r e f i x p eop l e : <h t tp : //www. example . o rg / f o a f . r d f#> .
5 { { <ht tp : //www. example . org> f o a f : maker peop l e : a l i c e ; dc te rms : i s s u e d"2007−12−14"^xsd : date . } f o a f : maker peop l e : c a r o l ; dc te rms : i s s u e d"2007−12−15"^xsd : date . } f o a f : maker peop l e : bob ; dcte rms : i s s u e d"2007−12−16"^xsd : date .
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Simple Protocol and RDF Query Language (SPARQL)
Una volta a disposizione sorgenti dati RDF è necessario unmeccanismo per poter estrarre le informazioni di interesse
A tal scopo è stato definito un protocollo e un linguaggio diinterrogazione denominato SPARQL, che permette di inviare aun dato servizio interrogazioni relative a una o più sorgentidati RDF
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Il protocollo SPARQL I
Il protocollo SPARQL [Clark et al., 2008] definisce contenuto estruttura dei messaggi inviati da un client a un servizio
A tal scopo, SPARQL utilizza l’architettura dei Web service, eviene descritto utilizzando WSDL 2.0 [Chinnici et al., 2007]
È importante notare che questa soluzione garantiscel’indipendenza tra l’interrogazione effettuata con SPARQL ecome i dati sono effettivamente rappresentati
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Il protocollo SPARQL II
Ad es., i dati potrebbero essere archiviati in un databaserelazionale: quando il Web service riceve una interrogazioneSPARQL può convertire l’interrogazione in SQL, trasformare ilresult set in RDF, e inviarlo al client
Ciò significa che, oltre a permettere l’interrogazione di fontidati RDF, SPARQL può costituire un linguaggio diinterrogazione indipendente dal modello dei dati usato perrappresentare informazioni
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Il linguaggio di interrogazione SPARQL I
Il linguaggio di interrogazione definito da SPARQL[Prud’hommeaux and Seaborne, 2008] adotta la sintassi diSQL, adattandola al modello di dati utilizzato in RDF
Vedremo brevemente le caratteristiche del linguaggio. Per unadescrizione dettagliata ri rimanda a[Prud’hommeaux and Seaborne, 2008]
Come in SQL, SPARQL usa la clausola SELECT per indicarele proprietà di interesse (attributi, in SQL)
In tal caso, come in SQL, il risultato dell’interrogazione vienerestituito in formato tabellare
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Il linguaggio di interrogazione SPARQL II
In aggiunta, SPARQL definisce due clausole:
CONSTRUCT Permette di costruire un grafo RDF a partiredal result set: in questo caso, il risultatodell’interrogazione non è rappresentato in formatabellare, ma, appunto, come un grafo RDFserializzato
DESCRIBE Restituisce il grafo RDF corrispondenteall’insieme di enunciati relativi a una data risorsa
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Il linguaggio di interrogazione SPARQL III
La sorgente dati RDF su cui effettuare l’interrogazione vienedenotata dalla clausola FROM (in questo caso esisteun’analogia tra sorgente dati RDF e la nozione ditabella/relazione in SQL)
Si è detto che SPARQL permette di interrogaresimultaneamente più sorgenti dati
Sintatticamente, ciò è espresso ripetendo la clausola FROMper ogni sorgente dati da considerare
È opportuno notare che non si tratta propriamente diun’operazione di join, come supportata da SQL
Semplicemente, le sorgenti dati RDF vengono integrate in ununico grafo
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Una sorgente dati RDF con URI/IRI
http://www.example.org/people/
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <rd f :RDF x m l n s : r d f=" h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#"
x m l n s : f o a f=" h t t p : // xmlns . com/ f o a f /0 .1/ ">3 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg / peop l e/#a l i c e ">4 <foa f : name>A l i c e Smith</ foa f : name>5 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#bob">6 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#c a r o l ">7 </ r d f : D e s c r i p t i o n>8 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg / peop l e/#bob">9 <foa f : name>Bob White</ foa f : name>10 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#a l i c e ">11 </ r d f : D e s c r i p t i o n>12 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg / peop l e/#c a r o l ">13 <foa f : name>Ca ro l Brown</ foa f : name>14 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#a l i c e ">15 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#bob">16 </ r d f : D e s c r i p t i o n>17 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di interrogazione con la clausola SELECT
L’interrogazione:
1 PREFIX f o a f : <h t tp : // xmlns . com/ f o a f /0.1/>2 SELECT ?name ?knows3 FROM <ht tp : //www. example . o rg / peop l e/>4 WHERE { ?x f o a f : name ?name . ? x f o a f : knows ?y . ? y f o a f : name ?knows}
e il risultato
name knows
Alice Smith Bob WhiteAlice Smith Carol BrownBob White Alice SmithCarol Brown Alice SmithCarol Brown Bob White
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Una interrogazione con la clausola CONSTRUCT
L’interrogazione:
1 PREFIX f o a f : <h t tp : // xmlns . com/ f o a f /0.1/>2 CONSTRUCT { ?x f o a f : knows ? y }3 FROM <ht tp : //www. example . o rg / peop l e/>4 WHERE { ?x f o a f : knows ?y}
e il risultato
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <rd f :RDF x m l n s : r d f=" h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#"
x m l n s : f o a f=" h t t p : // xmlns . com/ f o a f /0 .1/ ">3 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg / peop l e/#a l i c e ">4 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#bob">5 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#c a r o l ">6 </ r d f : D e s c r i p t i o n>7 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg / peop l e/#bob">8 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#a l i c e ">9 </ r d f : D e s c r i p t i o n>10 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg / peop l e/#c a r o l ">11 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#a l i c e ">12 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#bob">13 </ r d f : D e s c r i p t i o n>14 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Una interrogazione con la clausola DESCRIBE
L’interrogazione:
1 PREFIX f o a f : <h t tp : // xmlns . com/ f o a f /0.1/>2 PREFIX ex : <ht tp : //www. example . o rg / peop l e/#>3 DESCRIBE ex : a l i c e4 FROM <ht tp : //www. example . o rg / peop l e/>
e il risultato
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <rd f :RDF x m l n s : r d f=" h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#"
x m l n s : f o a f=" h t t p : // xmlns . com/ f o a f /0 .1/ ">3 < r d f : D e s c r i p t i o n r d f : a b o u t=" h t t p : //www. example . o rg / peop l e/#a l i c e ">4 <foa f : name>A l i c e Smith</ foa f : name>5 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#bob">6 <fo a f : k nows r d f : r e s o u r c e=" h t t p : //www. example . o rg / peop l e/#c a r o l ">7 </ r d f : D e s c r i p t i o n>8 </ rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
RDF Schema I
L’RDF Schema (detto anche RDF vocabulary descriptionlanguage) è un linguaggio che permette la definizione di classidi risorse e proprietà
Il rapporto tra RDF e RDF Schema (RDFS) è analogo a quelloesistente tra XML e XML Schema: RDFS usa la sintassi RDFper definire classi e proprietà RDF
A tal scopo, RDFS utilizza una serie di termini, associati a unnamespace differente dal quello dell’RDF, per cui normalmentesi usa il prefisso rdfs:http://www.w3.org/2000/01/rdf-schema#
In aggiunta, l’RDF impiega anche termini definiti già nelvocabolario RDF, quali rdf:XMLLiteral, rdf:type,rdf:Property, rdf:Bag, rdf:Seq, rdf:Alt, rdf:Statement
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La nozione di classe in RDF(S)
In RDFS, le risorse possono essere raggruppate in classi, di cuisono istanze, e che costituiscono l’estensione della classe (classextension)
Il fatto che una risorsa è istanza di una classe viene denotatoattraverso la proprietà rdf:type
Un punto importante è che, in RDFS, le classi stesse sono aloro volta risorse, denotate come istanze della classe rdfs:Class
Inoltre i tipi di dato sono rappresentati come classi
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Classi e sottoclassi
L’RDFS permette anche di definire la relazione di sottoclasse,attraverso la proprietà rdfs:subClassOf
In tal caso, se la classe C è sottoclasse della classe D(denotato C ⊑ D), allora le istanze di C sono anche istanze diD
Una classe può essere sottoclasse di più classi
È importante notare che la relazione di sottoclasse riguardaesclusivamente il livello estensionale di una classe
In altre parole, denotando con C I e D I , rispettivamente, leistanze delle classi C e D, se C ⊑ D, allora C I ⊆ D I
La relazione di sottoclasse è transitiva:C ⊑ D,D ⊑ E |= C ⊑ E
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Tipi di classe principali
Nome Descrizione Sottoclasse di Istanza di
rdfs:Resource La classe che denota
tutte le risorse
rdfs:Class
rdfs:Class La classe delle risorse
che sono classi RDF
rdfs:Resource rdfs:Class
rdfs:Literal La classe dei letterali
RDF
rdfs:Resource rdfs:Class
rdfs:Datatype La classe dei tipi di dato rdfs:Resource rdfs:Class
rdf:XMLLiteral La classe dei letterali
XML
rdfs:Literal rdfs:Datatype
rdf:Property La classe delle proprietà
RDF
rdfs:Resource rdfs:Class
rdf:Statement La classe di enunciati
RDF
rdfs:Resource rdfs:Class
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Tipi di classe per contenitori RDF
Nome Descrizione Sottoclasse di Istanza di
rdfs:Container La classe dei contenitori
RDF
rdfs:Resource rdfs:Class
rdf:Bag La classe dei contenitori
RDF di tipo “bag”
rdfs:Container rdfs:Class
rdf:Seq La classe dei contenitori
RDF di tipo “seq”
rdfs:Container rdfs:Class
rdf:Alt La classe dei contenitori
RDF di tipo “alt”
rdfs:Container rdfs:Class
rdfs:Container-
MembershipProperty
La classe delle proprie-
tà usate nei contenitori
RDF
rdf:Property rdfs:Class
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Definizione di una classe I
In RDFS, la definizione di una classe (class description)prevede:
assegnazione di un nome, usando rdf:about, rdf:ID ordf:nodeID
dichiarazione della classe (o delle classi) RDF(S) di cui èistanza (attraverso rdf:type, o usando la sintassi abbreviata)
eventuale dichiarazione di sottoclasse attraversordfs:subClassOf
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Definizione di una classe II
In aggiunta, possono essere usate le seguenti proprietà:rdfs:label: assegna alla classe un nome in linguaggio naturalerdfs:comment: fornisce una descrizione della classe inlinguaggio naturalerdfs:seeAlso: indica una risorsa che può fornire informazioniaggiuntive alla classerdfs:isDescribedBy: indica la risorsa che definisce la classe(ad es., un vocabolario RDF)
Ciò significa che, in RDF(S), non è possibile dichiarare qualisiano le proprietà caratteristiche di una classe (per questo ènecessario usare OWL)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Due esempi di class description
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <rd f :RDF x m l n s : r d f=" h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#"
x m l n s : r d f s=" h t t p : //www.w3 . org /2000/01/ rd f−schema#">3 <r d f s : C l a s s r d f : a b o u t="#Person ">4 < r d f s : l a b e l xm l : l a n g="en">pe r son</ r d f s : l a b e l>5 < r d f s : l a b e l xm l : l a n g=" i t ">per sona</ r d f s : l a b e l>6 <rd f s : comment xm l : l a n g="en">A pe r son .</ r d f s : l a b e l>7 <rd f s : comment xm l : l a n g=" i t ">Una per sona .</ r d f s : l a b e l>8 < r d f s : i s D e f i n e d B y r d f : r e s o u r c e=" h t t p : //www. example . o rg / voc#" />9 <r d f s : s e e A l s o r d f : r e s o u r c e=" h t t p : //www. example . o rg / voc . html#Person "
/>10 </ r d f s : C l a s s>11 <r d f s : C l a s s r d f : a b o u t="#Author ">12 < r d f s : s u b C l a s s O f r d f : r e s o u r c e="#Person " />13 < r d f s : l a b e l xm l : l a n g="en">author</ r d f s : l a b e l>14 < r d f s : l a b e l xm l : l a n g=" i t ">au to r e</ r d f s : l a b e l>15 <rd f s : comment xm l : l a n g="en">The pe r son who c r e a t e d a
r e s o u r c e .</ r d f s : l a b e l>16 <rd f s : comment xm l : l a n g=" i t ">La per sona che ha c r e a to una
r i s o r s a .</ r d f s : l a b e l>17 < r d f s : i s D e f i n e d B y r d f : r e s o u r c e=" h t t p : //www. example . o rg / voc#" />18 <r d f s : s e e A l s o r d f : r e s o u r c e=" h t t p : //www. example . o rg / voc . html#Author "
/>19 </ r d f s : C l a s s>20 <rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La nozione di proprietà in RDF(S)
La nozione base di proprietà è quella che abbiamo già visto:una proprietà denota l’esistenza di una relazione di un certotipo tra due risorse
Abbiamo visto che in RDF è possibile definire una proprietàquale istanza di rdf:Property, e assegnandole un nome
In aggiunta, l’RDFS, oltre a definire una sottoclasse dirdf:Property per i contenitori RDF, permette di specificarerelazioni di sottoproprietà, e di denotare il dominio e ilcodominio di una proprietà
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Dominio e codominio di una proprietà
In RDFS viene adottata una terminologia analoga a quellausata nelle funzioni per denotare i possibili soggetti e oggettidi un enunciato che utilizza una determinata proprietà comepredicato
In particolare, l’insieme dei soggetti è denotato con il terminedominio (domain), mentre l’insieme degli oggetti concodominio (range)
Per analogia, una proprietà P può essere rappresentata comeuna funzione P : D → R, dove D denota il dominio di P ,mentre R il suo codominio
Dominio e codominio di una proprietà sono espressi,rispettivamente, dalle proprietà rdfs:domain e rdfs:range
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Proprietà e sottoproprietà
La nozione di sottoproprietà è analoga a quella di sottoclasse,e viene espressa dalla proprietà rdfs:subPropertyOf
Denotando con P I e Q I , rispettivamente, le istanze delleproprietà P e Q, se P ⊑ Q, allora P I ⊆ Q I
Quindi, analogamente alla nozione di sottoclasse, la relazionedi sottoproprietà riguarda esclusivamente il livello estensionaledi una proprietà
Anche la relazione di sottoproprietà è transitiva
Infine una sottoproprietà eredita dominio e codominio dellasuperproprietà, a meno che essi non vengano dichiaratiesplicitamente
In tal caso, dominio e codominio della sottoproprietàdovrebbero essere sottoclassi di quelli della superproprietà
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Definizione di una proprietà I
In RDFS, la definizione di una proprietà (property description)prevede:
assegnazione di un nome, usando rdf:about, rdf:ID ordf:nodeID
dichiarazione della classe RDF(S) di cui è istanza (attraversordf:type o usando la sintassi abbreviata)eventuale dichiarazione di sottoproprietà attraversordfs:subPropertyOfeventuale dichiarazione di dominio e codominio della proprietà,attraverso, rispettivamente, rdfs:domain e rdfs:range
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Definizione di una proprietà II
In aggiunta, possono essere usate le proprietà rdfs:label,rdfs:comment, etc. già indicate precedente per la definizionedi una classe
È importante notare che in RDF(S) non è possibile denotareuna proprietà come simmetrica, transitiva, etc. Per questo ènecessario usare OWL
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Tre esempi di property description
1 <? xml v e r s i o n=" 1 .0 " encod ing=" ut f−8"?>2 <rd f :RDF x m l n s : r d f=" h t t p : //www.w3 . org /1999/02/22− rd f−syntax−ns#"
x m l n s : r d f s=" h t t p : //www.w3 . org /2000/01/ rd f−schema#">3 <r d f s : C l a s s r d f : a b o u t="#Person ">4 . . .5 </ r d f s : C l a s s>6 <r d f s : P r o p e r t y r d f : a b o u t="#name">7 <r d f s : d om a i n r d f : r e s o u r c e="#Person " />8 < r d f s : r a n g e
r d f : r e s o u r c e=" h t t p : //www.w3 . org /2000/01/ rd f−schema#L i t e r a l " />9 </ r d f s : C l a s s>10 <r d f s : P r o p e r t y r d f : a b o u t="#knows">11 <r d f s : d om a i n r d f : r e s o u r c e="#Person " />12 < r d f s : r a n g e r d f : r e s o u r c e="#Person " />13 </ r d f s : C l a s s>14 <r d f s : P r o p e r t y r d f : a b o u t="#f r i e n dO f ">15 <rd f s : s u bP r o p e r t yO f r d f : r e s o u r c e="#knows" />16 </ r d f s : C l a s s>17 <rd f :RDF>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Web Ontology Language (OWL) I
RDF(S) fornisce meccanismi relativamente semplici per ladescrizione di risorse e per la definizione di classi e proprietà
OWL [Bechhofer et al., 2004] estende l’espressività di RDF(S)attraverso l’utilizzo di formalismi derivati dalle logichedescrittive [Baader et al., 2003]
Ciò viene ottenuto permettendo una più precisacaratterizzazione di classi, proprietà e delle loro istanze, cheviene poi utilizzata per effettuare inferenze
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Web Ontology Language (OWL) II
In questo senso, OWL costruisce ontologie, mentre perRDF(S) si parla di vocabolari, in quanto definizione di uninsieme di termini
È importante sottolineare che OWL non è propriamenteun’estensione semantica di RDF(S), ma è una forma di logicadescrittiva (al riguardo, si veda [Horrocks et al., 2003]), chepuò essere serializzata in RDF/XML
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
OWL Lite, DL e Full I
Per estendere l’RDF(S), OWL definisce un insieme di terminiin un vocabolario con namespace differente da quello diRDF(S): http://www.w3.org/2002/07/owl#
Dipendentemente da quali termini vengono utilizzati, e inquale modo, è possibile ottenere diversi livelli di espressività,che determinano anche la decidibilità di un insieme di enunciati
In base a ciò, le specifiche OWL definiscono tre “versioni” diOWL:
OWL Lite: decidibile (complessità di tipo esponenziale)OWL DL: decidibile (complessità di tipo esponenziale nondeterministico)OWL Full: indecidibile
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
OWL Lite, DL e Full II
Tra le tre versioni di OWL vale la relazione:
OWL Lite ⊂ OWL DL ⊂ OWL Full (⊃ RDFS)
Il motivo per cui tali versioni sono definite esplicitamente dallespecifiche OWL è di fornire un riferimento per leimplementazioni di reasoner OWL
Allo stesso tempo, le tre versioni di OWL permettono discegliere la soluzione più adatta per rappresentare ontologie,dipendentemente dal rapporto tra espressività ed efficienza
La distinzione tra le tre versioni di OWL influenza anche lespecifiche del linguaggio, come, ad es., la definizione dispecifiche classi per denotare i vari tipi di proprietà2
2Per una descrizione dettagliata delle differenze tra le tre versioni di OWL si rimanda a:
http://www.w3.org/TR/owl-ref/#Sublanguage-def [Bechhofer et al., 2004]
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
OWL e RDF(S) I
Un esempio significativo rispetto a quanto appena detto, èdato dalla definizione del termine owl:Class
Per quanto possibile, OWL riutilizza gli stessi termini impiegatiin RDFS
Tuttavia, nel caso delle definizioni di classi, rdfs:Class nonviene impiegato perché non tutte le classi RDFS sono classiOWL valide
Più precisamente, in RDF(S) una classe può essere a sua voltaun individuo, mentre in OWL Lite e OWL DL l’insieme delleclassi e degli individui sono disgiunti, mentre in OWL Fullquesto vincolo non si applica
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
OWL e RDF(S) II
Conseguentemente, owl:Class è definito come sottoclasse dirdfs:Class
Per lo stesso motivo, OWL definisce una classe owl:Thing,che denota la classe di tutti gli individui, invece di riutilizzarerdfs:Resource
Il motivo, ancora, è che, in OWL Lite e OWL DL, un individuonon può essere allo stesso tempo una classe, a differenza diRDF(S) (e di OWL Full)
È infine importante notare che la reificazione, come definita inRDF(S), non può essere utilizzata in OWL Lite e OWL DL,dato che non è compatibile con le possibili serializzazioni di talilinguaggi, né soddisfa i vincoli di espressività posti da talilinguaggi
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Classi OWL
Nome Istanza di Sottoclasse di
owl:Ontology rdfs:Class
owl:DataRange rdfs:Class
owl:Class rdfs:Class rdfs:Class
owl:Restriction rdfs:Class owl:Class
owl:Thing owl:Class
owl:Nothing owl:Class
owl:OntologyProperty rdfs:Class rdf:Property
owl:AnnotationProperty rdfs:Class rdf:Property
owl:ObjectProperty rdfs:Class rdf:Property
owl:DatatypeProperty rdfs:Class rdf:Property
owl:SymmetricProperty rdfs:Class owl:ObjectProperty
owl:TransitiveProperty rdfs:Class owl:ObjectProperty
owl:FunctionalProperty rdfs:Class rdf:Property
owl:InverseFunctionalProperty rdfs:Class owl:ObjectProperty
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Proprietà OWL
Nome Dominio Codominio
owl:allValuesFrom owl:Restriction rdfs:Classowl:cardinality owl:Restriction xsd:nonNegativeIntegerowl:complementOf owl:Class owl:Classowl:differentFrom owl:Thing owl:Thingowl:disjointWith owl:Class owl:Classowl:equivalentClass owl:Class owl:Classowl:equivalentProperty rdf:Property rdf:Propertyowl:hasValue owl:Restrictionowl:intersectionOf owl:Class rdf:Listowl:inverseOf owl:ObjectProperty owl:ObjectPropertyowl:maxCardinality owl:Restriction xsd:nonNegativeIntegerowl:minCardinality owl:Restriction xsd:nonNegativeIntegerowl:oneOf owl:Class rdf:Listowl:onProperty owl:Restriction rdf:Propertyowl:sameAs owl:Thing owl:Thingowl:someValuesFrom owl:Restriction rdfs:Classowl:unionOf owl:Class rdf:List
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Definizioni di classe
Oltre a quelli supportati da RDF(S), OWL fornisce tre meccanismiper le definizioni di classe:
Enumerazione
Restrizione sulle proprietà
Intersezione, unione e complemento
In tutti questi casi, una classe OWL è definita come istanza diowl:Class
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Classi definite attraverso enumerazione
Tali classi sono definite attraverso l’enumerazione esaustivadelle loro istanze
Non è analogo all’uso dei contenitori RDF: un contenitore nondefinisce una classe, ma solo un gruppo di risorse
A tal scopo viene impiegata la proprietà owl:oneOf
È importante notare che si tratta di un definizione estensionaledella classe
Al contrario, tutti gli altri meccanismi definiscono una classeintensionalmente
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di classe definita per enumerazione
1 <o w l : C l a s s>2 <owl :oneOf r d f : p a r s eTy p e=" Co l l e c t i o n ">3 <owl :Th ing r d f : a b o u t="#Eu ra s i a "/>4 <owl :Th ing r d f : a b o u t="#A f r i c a "/>5 <owl :Th ing r d f : a b o u t="#NorthAmer ica "/>6 <owl :Th ing r d f : a b o u t="#SouthAmer ica "/>7 <owl :Th ing r d f : a b o u t="#Au s t r a l i a "/>8 <owl :Th ing r d f : a b o u t="#An t a r c t i c a "/>9 </ owl :oneOf>10 </ o w l : C l a s s>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Classi definite attraverso restrizioni su proprietà
Le restrizioni su proprietà permettono di definire una classe neitermini delle proprietà che li caratterizzanoLe restrizioni sono espresse attraverso due possibili vincoli:
vincoli sui valori che una proprietà può assumerevincoli di cardinalità di un proprietà, i.e., quante occorrenze diuna data proprietà sono ammissibili/necessarie
In entrambi i casi, le restrizioni su proprietà vengono espresseattraverso un’istanza della classe OWL owl:Restriction,associata alla proprietà owl:onProperty, più la proprietàutilizzata per denotare il vincolo sui valori o di cardinalità
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Vincoli sui valori delle proprietà
owl:allValuesFrom: Ha per oggetto o un intervallo di valori ouna definizione di classe, e richiede che tutte le occorrenze diuna data proprietà, associate a istanze della classe, abbianovalori tra quelli indicati nell’oggetto. Corrisponde alquantificatore universale ∀
owl:someValuesFrom: Ha per oggetto o un intervallo divalori o una definizione di classe, e richiede che almeno unadelle occorrenze di una data proprietà, associate a istanze dellaclasse, abbia valori tra quelli indicati nell’oggetto. Corrispondeal quantificatore esistenziale ∃
owl:hasValue: Ha per oggetto o un valore o un individuo, erichiede che almeno una delle occorrenze di una data proprietà,associate a istanze della classe, abbiano valori semanticamenteuguali a quello indicato nell’oggetto
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di classi definite attraverso vincoli sui valori
delle proprietà
La classe degli “umani”:
1 <o w l : R e s t r i c t i o n>2 <ow l : o nP r op e r t y r d f : r e s o u r c e="#hasParent " />3 <ow l : a l lV a l u e sF r om r d f : r e s o u r c e="#Human" />4 </ o w l : R e s t r i c t i o n>
La classe dei “figli di dottori”:
1 <o w l : R e s t r i c t i o n>2 <ow l : o nP r op e r t y r d f : r e s o u r c e="#hasParent " />3 <ow l : someVa luesF rom r d f : r e s o u r c e="#Phy s i c i a n " />4 </ o w l : R e s t r i c t i o n>
La classe dei “figli di Alice”:
1 <o w l : R e s t r i c t i o n>2 <ow l : o nP r op e r t y r d f : r e s o u r c e="#hasParent " />3 <ow l : h a sV a l u e r d f : r e s o u r c e="#A l i c e " />4 </ o w l : R e s t r i c t i o n>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Vincoli di cardinalità delle proprietà
owl:maxCardinality Denota il numero massimo di occorrenze di unaproprietà
owl:minCardinality Denota il numero minimo di occorrenze di unaproprietà
owl:cardinality Denota il numero esatto di occorrenze di unaproprietà
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di classi definite attraverso vincoli di cardinalità
delle proprietà
1 <o w l : R e s t r i c t i o n>2 <ow l : o nP r op e r t y r d f : r e s o u r c e="#hasParent " />3 <ow l : m a x C a r d i n a l i t y
r d f : d a t a t y p e="&xsd ; no nNeg a t i v e I n t e g e r ">2</ ow l : m a xC a r d i n a l i t y>4 </ o w l : R e s t r i c t i o n>
6 <o w l : R e s t r i c t i o n>7 <ow l : o nP r op e r t y r d f : r e s o u r c e="#hasParent " />8 <ow l :m i nC a r d i n a l i t y
r d f : d a t a t y p e="&xsd ; no nNeg a t i v e I n t e g e r ">2</ ow l :m i nC a r d i n a l i t y>9 </ o w l : R e s t r i c t i o n>
11 <o w l : R e s t r i c t i o n>12 <ow l : o nP r op e r t y r d f : r e s o u r c e="#hasParent " />13 <o w l : c a r d i n a l i t y
r d f : d a t a t y p e="&xsd ; no nNeg a t i v e I n t e g e r ">2</ o w l : c a r d i n a l i t y>14 </ o w l : R e s t r i c t i o n>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Classi definite attraverso intersezione, unione e complemento
Intersezione, unione e complemento permettono di definireclassi combinando altre definizioni di classe attraversocongiunzione, disgiunzione e negazione
L’uso delle terminologia propria degli operatori insiemisticideriva dal fatto che la combinazione delle classi vieneeffettuata a livello estensionale
Più precisamente, se C I e D I denotano, rispettivamente, leistanze delle classi C e D avremo:
Intersezione C ⊓ D equivale a C I ∩ D I
Unione C ⊔ D equivale a C I ∪ D I
Complemento ¬C equivale a C I
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di classe definita attraverso intersezione
1 <o w l : C l a s s>2 <o w l : i n t e r s e c t i o n O f r d f : p a r s eTy pe=" Co l l e c t i o n ">3 <ow l : C l a s s>4 <owl :oneOf r d f : p a r s eTyp e=" C o l l e c t i o n ">5 <owl :Th ing r d f : a b o u t="#Tosca" />6 <owl :Th ing r d f : a b o u t="#Salome" />7 </ owl :oneOf>8 </ ow l : C l a s s>9 <ow l : C l a s s>10 <owl :oneOf r d f : p a r s eTyp e=" C o l l e c t i o n ">11 <owl :Th ing r d f : a b o u t="#Turandot" />12 <owl :Th ing r d f : a b o u t="#Tosca" />13 </ owl :oneOf>14 </ ow l : C l a s s>15 </ o w l : i n t e r s e c t i o n O f>16 </ o w l : C l a s s>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di classe definita attraverso unione
1 <o w l : C l a s s>2 <ow l : un i onO f r d f : p a r s eT yp e=" Co l l e c t i o n ">3 <ow l : C l a s s>4 <owl :oneOf r d f : p a r s eTyp e=" C o l l e c t i o n ">5 <owl :Th ing r d f : a b o u t="#Tosca" />6 <owl :Th ing r d f : a b o u t="#Salome" />7 </ owl :oneOf>8 </ ow l : C l a s s>9 <ow l : C l a s s>10 <owl :oneOf r d f : p a r s eTyp e=" C o l l e c t i o n ">11 <owl :Th ing r d f : a b o u t="#Turandot" />12 <owl :Th ing r d f : a b o u t="#Tosca" />13 </ owl :oneOf>14 </ ow l : C l a s s>15 </ ow l : un i onO f>16 </ o w l : C l a s s>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di classe definita attraverso complemento
La classe di “ciò che non è carne”:
1 <o w l : C l a s s>2 <owl:complementOf>3 <ow l : C l a s s r d f : a b o u t="#Meat"/>4 </ owl:complementOf>5 </ o w l : C l a s s>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Assiomi di classe
Gli assiomi di classe sono impiegati per denotare caratteristichenecessarie e/o sufficienti di una classe
A parte rdfs:subClassOf, OWL utilizza le proprietàowl:equivalentClass e owl:disjointWith
Come per rdfs:subClassOf, queste proprietà denotanorelazioni tra classi da un punto di vista esclusivamenteestensionale:
owl:equivalentClass C ≡ D equivale a C I= D I
owl:disjointWith C ⊓ D =⊥ equivale a C I ∩ D I= ∅
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Annotation property I
Oltre ai costrutti finora visti, la definizione di una classe puòincludere un insieme di proprietà che forniscono ulterioriinformazioni sulla classe, senza definirla
Tali proprietà sono chiamate annotation property, e denotatedalla classe owl:AnnotationProperty
In OWL fanno parte delle annotation property quelle già vistein RDFS, cioè, rdfs:label, rdfs:comment, rdfs:seeAlso erdfs:isDefinedBy
In aggiunta, viene definita la proprietà owl:versionInfo, perfornire informazioni sulla versione della classe
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Annotation property II
Il motivo per cui viene definita una classe specifica per questeproprietà è che, in OWL Lite e OWL DL, una annotationproperty non può essere, allo stesso tempo, una objectproperty e/o una datatype property
In OWL Full non esiste questo vincolo
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Definizione di proprietà
OWL estende la definizione di proprietà dell’RDF(S)permettendo di specificare:
relazioni esistenti con altre proprietà (owl:equivalentPropertye owl:inverseOf)vincoli di cardinalità propri di una proprietà in quanto tale, enon in quanto usata da istanze di una classe(owl:FunctionalProperty e owl:InverseFunctionalProperty)caratteristiche logiche (owl:SymmetricProperty eowl:TransitiveProperty)
In aggiunta, OWL definisce due sottoclassi di rdf:Property chedenotano se il codominio della proprietà è un individuo o unvalore, ossia owl:ObjectProperty e owl:DatatypeProperty
Le annotation property possono essere impiegate come nelledefinizioni di classi
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Alcuni esempi di definizione di proprietà I
1 <ow l :Da t a t y peP r o pe r t y r d f : a b o u t="#name">2 < r d f s : d oma i n r d f : r e s o u r c e="#Person " />3 < r d f s : r a n g e r d f : r e s o u r c e="&r d f s ; L i t e r a l " />4 </ ow l :Da t a t y peP ro pe r t y>
6 <ow l :Symmet r i cP rope r t y r d f : a b o u t="#knows">7 < r d f s : d oma i n r d f : r e s o u r c e="#Person " />8 < r d f s : r a n g e r d f : r e s o u r c e="#Person " />9 <ow l : e q u i v a l e n t P r o p e r t y r d f : r e s o u r c e="&f o a f ; knows" />10 </ ow l :Symmet r i cP rope r t y>
12 <ow l :Ob j e c t P r o p e r t y r d f : a b o u t="#f r i e n dO f ">13 <r d f s : s u bP ro p e r t yO f r d f : r e s o u r c e="#knows" />14 <ow l : e q u i v a l e n t P r o p e r t y r d f : r e s o u r c e="&r e l ; f r i e n dO f " />15 </ ow l :Symmet r i cP rope r t y>
17 <ow l : T r a n s i t i v eP r o p e r t y r d f : a b o u t="#co l l e a g ueO f ">18 <r d f s : s u bP ro p e r t yO f r d f : r e s o u r c e="#knows" />19 <ow l : e q u i v a l e n t P r o p e r t y r d f : r e s o u r c e="&r e l ; c o l l e a gu eO f " />20 </ ow l : T r a n s i t i v eP r o p e r t y>
22 <ow l :Ob j e c t P r o p e r t y r d f : a b o u t="#parentOf ">23 <ow l : i n v e r s eO f r d f : r e s o u r c e="#ch i l dO f " />24 <r d f s : s u bP ro p e r t yO f r d f : r e s o u r c e="#knows" />25 <ow l : e q u i v a l e n t P r o p e r t y r d f : r e s o u r c e="&r e l ; pa rentOf " />
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Alcuni esempi di definizione di proprietà II
26 </ ow l :Ob j e c t P r o p e r t y>
28 <ow l :Ob j e c t P r o p e r t y r d f : a b o u t="#ch i l dO f ">29 <ow l : i n v e r s eO f r d f : r e s o u r c e="#parentOf " />30 <r d f s : s u bP ro p e r t yO f r d f : r e s o u r c e="#knows" />31 <ow l : e q u i v a l e n t P r o p e r t y r d f : r e s o u r c e="&r e l ; c h i l dO f " />32 </ ow l :Ob j e c t P r o p e r t y>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Vincoli di cardinalità di una proprietà
La semantica delle classi e proprietà utilizzate nella definizionedi un proprietà sono abbastanza intuitive
Fanno forse eccezione quelle utilizzate per esprimere vincoli dicardinalità
owl:FunctionalProperty viene usata per denotare il fatto cheil soggetto dell’enunciato può essere associato a un unicooggetto
Ad es., una donna (solitamente) non può avere più di unmarito
owl:InverseFunctionalProperty viene usata per denotare ilfatto che l’oggetto dell’enunciato può essere associato a ununico soggetto
Ad es., una persona non può avere più di una madre (biologica)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Due esempi dell’uso di vincoli di cardinalità
1 <ow l :Ob j e c t P r o p e r t y r d f : I D="husband">2 <r d f : t y p e r d f : r e s o u r c e="&owl ; F un c t i o n a l P r op e r t y " />3 < r d f s : d oma i n r d f : r e s o u r c e="#Woman" />4 < r d f s : r a n g e r d f : r e s o u r c e="#Man" />5 </ ow l :Ob j e c t P r o p e r t y>
7 <ow l : I n v e r s e F u n c t i o n a l P r o p e r t y r d f : I D=" b i o l o g i c a lMo t h e rO f ">8 < r d f s : d oma i n r d f : r e s o u r c e="#Woman"/>9 < r d f s : r a n g e r d f : r e s o u r c e="#Human"/>10 </ ow l : I n v e r s e F u n c t i o n a l P r o p e r t y>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Relazioni di identità tra individui
OWL definisce due proprietà per denotare l’esistenza direlazioni di identità tra individui: owl:sameAs eowl:differentFrom
Il motivo è che la relazione tra risore e URI/IRI è uno a molti:un URI/IRI denota un’unica risorsa, ma una risorsa può esseredenotata da più URI/IRI
In OWL Full, dove le classi possono essere trattare comeistanze di una (meta)classe, owl:sameAs eowl:differentFrom possono essere usate per denotareuguglianza p diversità dal punto di vista intensionale, mentreowl:equivalentClass e owl:disjointWith, come abbiamovisto, riguardano il livello estensionale della classe
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Intestazione di un’ontologia OWL
Le informazioni relative a un’ontologia OWL sono espresseattraverso il cosiddetto ontology header, denotato dalla classeowl:Ontology
La specifica dell’intestazione di un’ontologia è analoga all’usogià visto per rdf:Description, associato all’attributordf:about con valore indefinitoIn OWL è definita una classe di proprietà,owl:OntologyProperty, che possono essere usate soloall’interno dell’intestazione di un’ontologiaTra di esse, vale la pena di menzionare owl:imports, chepermette di importare in un’ontologia OWL definizioni inclusein altre ontologieOltre alle ontology property, l’intestazione di un’ontologiatipicamente include anche annotation property
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Un esempio di ontology header (quello del vocabolario OWL)
1 <ow l :On t o l o g y r d f : a b o u t="">2 <ow l : impo r t s r d f : r e s o u r c e=" h t t p : //www.w3 . org /2000/01/ rd f−schema "/>3 < r d f s : i s D e f i n e d B y
r d f : r e s o u r c e=" h t t p : //www.w3 . org /TR/2004/REC−owl−semant i c s −20040210/"/>4 < r d f s : i s D e f i n e d B y
r d f : r e s o u r c e=" h t t p : //www.w3 . org /TR/2004/REC−owl−t e s t −20040210/"/>5 < r d f s : i s D e f i n e d B y
r d f : r e s o u r c e=" h t t p : //www.w3 . org /TR/2004/REC−owl−f e a t u r e s −20040210/"/>6 <rd f s : comment>Thi s f i l e s p e c i f i e s i n RDF Schema format the b u i l t−i n
c l a s s e s and p r o p e r t i e s t ha t t o g e t he r form the b a s i s o f theRDF/XML syn tax o f OWL Fu l l , OWL DL and OWL L i t e . We do notexpec t peop l e to impor t t h i s f i l e e x p l i c i t l y i n t o t h e i ron to l ogy . Peop le tha t do impor t t h i s f i l e shou l d expec t t h e i ron to l ogy to be an OWL Fu l l on to l ogy .</ rd f s : commen t>
7 <o w l : v e r s i o n I n f o>10 February 2004 , r e v i s e d $Date : 2004/09/2418 : 1 2 : 0 2 $</ o w l : v e r s i o n I n f o>
8 <ow l : p r i o r V e r s i o nr d f : r e s o u r c e=" h t t p : //www. daml . o rg /2001/03/ daml+o i l "/>
9 </ ow l :On t o l o g y>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Indice
1 Introduzione
2 Web 2.0
3 Semantic WebIntroduzioneXML: un formato standard per la rappresentazione di dati
Il linguaggio XMLDefinire strutture dati con l’XML: DTD e XML SchemaXML Namespace: diversi vocabolari nello stesso documento XMLXPath: selezionare porzioni di documenti XMLXSLT: trasformare documenti XML
Da RDF(S) a OWLRDFSPARQLRDF SchemaOWL
Regole e Semantic Web
4 Semantic Web e Web 2.0
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
I limiti di RDF/OWL e i linguaggi a regole I
Per quanto OWL fornisca un insieme di costrutti per ladescrizione accurata di classi e proprietà, esistono dei limiti suitipi di inferenze supportati
L’esempio tipico è il seguente: se A è genitore di B e C èfratello di A, sono in grado di inferire che C è zio di B?
Questi tipi di inferenze non sono possibili in RDF/OWL, percui è necessario adottare una tecnologia che ne estendal’espressività
Questa è una delle ragioni fondamentali per cui l’architetturadel Semantic Web prevede un layer specifico per le regole
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
I limiti di RDF/OWL e i linguaggi a regole II
Ad es., una regola come la seguente è in grado di inferire cheC è zio di B
∀x , y , z , parentOf (x , y) ∧ brotherOf (x , z) → uncleOf (z , y) (1)
In realtà, esistono altre ragioni che motivano l’adozione delleregole
RDF/OWL permette di integrare basi di conoscenza diverseattraverso l’adozione di un formato standard per l’interscambiodi metadati
Devono però essere disponibili gli strumenti necessari perutilizzare efficacemente tali informazioni
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
I limiti di RDF/OWL e i linguaggi a regole III
Abbiamo già visto come SPARQL fornisca una primasoluzione, permettendo non solo di accedere a sorgenti datiRDF, ma pure di costruire nuovi enunciati a partire da esse
Tuttavia, essendo SPARQL un linguaggio di interrogazione,non è in grado di estendere la base di conoscenza inferendoenunciati impliciti
Da questo punto di vista, le regole hanno un duplice vantaggio:non solo permettono di estendere la base di conoscenzaattraverso meccanismi di inferenza non supportati da OWL,ma, allo stesso tempo, sono caratterizzate da una flessibilitàche permette di utilizzarle per gli scopi più vari (specifica eapplicazione di politiche di trust e di protezione dei dati,preferenze per la personalizzazione dell’accesso al Web, etc.)
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
I limiti di RDF/OWL e i linguaggi a regole IV
Un’ulteriore ragione per l’adozione dei linguaggi a regole è chesi tratta di una tecnologia consolidata, e che viene impiegatanei contesti più diversi
Ad es., è impiegata diffusamente per la specifica di businessrule e di politiche di controllo degli accessi
Ciò significa che la tecnologia per l’effettiva implementazionedei linguaggi a regole è già disponibile
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
RIF (Rule Interchange Format) I
A partire da queste considerazioni, il W3C sta attualmentesviluppando una tecnologia che, invece di definire unlinguaggio a regole standard, si propone piuttosto di garantirel’interoperabilità semantica di sistemi a regole diversi
Questa iniziativa è denominata RIF, ed ha attualmentepubblicato una serie di specifiche che sono ancora allo stato diWorking Draft
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
RIF (Rule Interchange Format) II
Uno dei contributi del RIF [Boley and Kifer, 2008] è ladefinizione di una sintassi, denominata RIF-BLD (RIF BasicLogic Dialect), che è costituita da due componenti principali:
quella per la specifica delle condizioni da utilizzarenell’antecedente di una regola (RIF-BLD condition language)
quella per la specifica di regole (RIF-BLD rule language)
Il RIF ha anche definito le regole per serializzare RIF-BLD inXML
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La regola (1) codificata in RIF I
Usando RIF-BLD:
1 F o r a l l ? x ?y ? z (? x [ ex : unc l eOf −> ?z ] :− And (? x [ ex : b r o the rO f −> ?y ]?y [ ex : parentOf −> ?z ] ) )
e usando la sua serializzazione in XML:
1 <F o r a l l>2 <de c l a r e><Var>X</Var></ d e c l a r e>3 <de c l a r e><Var>Y</Var></ d e c l a r e>4 <de c l a r e><Var>Z</Var></ d e c l a r e>5 <fo rmu l a>6 <Imp l i e s>7 < i f>8 <And>9 <fo rmu l a>10 <Atom>11 <op><Const type="& r i f ; i r i ">&ex ; parentOf</Const></op>12 <arg s o r de r ed=" yes ">13 <Var>X</Var>14 <Var>Y</Var>15 </ a rg s>16 </Atom>17 </ fo rmu l a>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La regola (1) codificata in RIF II
18 <fo rmu l a>19 <Atom>20 <op><Const type="& r i f ; i r i ">&ex ; b r o the rO f</Const></op>21 <arg s>22 <Var>X</Var>23 <Var>Z</Var>24 </ a rg s>25 </Atom>26 </ fo rmu l a>27 </And>28 </ i f>29 <then>30 <Atom>31 <op><Const type="&r i f ; i r i ">&ex ; unc l eOf</Const></op>32 <arg s o r de r ed=" yes ">33 <Var>Z</Var>34 <Var>Y</Var>35 </ a rg s>36 </Atom>37 </ then>38 </ Imp l i e s>39 </ fo rmu l a>40 </ F o r a l l>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Tipi di dato e built-in RIF I
Uno degli aspetti che caratterizzano RDF/OWL èl’impossibilità di operare confronti tra letterali, ed effettuareoperazioni su di esse (ad es., operazioni aritmetiche,espressioni regolari, etc.)
Il motivo è che RDF/OWL sono concepiti per esprimererelazioni tra risorse, e non per processare dati
Esiste anche una motivazione legata alla sintassi dell’RDF:dato che un letterale non può mai essere il soggetto di unenunciato, non è possibile, ad es., utilizzare proprietà checorrispondano a operatori di confronto
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
Tipi di dato e built-in RIF II
Tuttavia, nelle applicazioni reali, la mancanza di funzionalitàsupportate da tutti i linguaggi di programmazione limitanotevolmente l’uso e la flessibilità di RDF/OWL
È quindi significativo che il RIF preveda una serie di built-in cheforniscono funzioni e predicati per operare su numeri, stringhee date, e per verificare quale sia il tipo di dato di un letterale
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
N3 e SWRL I
Come si è detto, lo standard RIF è ancora in fase dielaborazione, e quindi non sono attualmente disponibilistrumenti in grado di farne uso
Esistono tuttavia da tempo dei linguaggi a regole basati sutecnologie del Semantic Web che sono supportati da reasoneresistenti
Tra questi vale la pena menzionare, per ragioni storiche, N3 edSWRL
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
N3 e SWRL II
Abbiamo già visto precedentemente N3[Berners-Lee et al., 2008, Berners-Lee and Connolly, 2008],come sintassi per la serializzazione di grafi RDF, e per comefornisce supporto alla reificazione. Come già detto, N3 nonsolo fornisce una sintassi alternativa e più leggibile rispetto aquella dell’RDF/XML, ma include costrutti che estendonoRDF, quali la nozione di quoted formula e il supporto per leregole
SWRL (Semantic Web Rule Language) [Horrocks et al., 2004]è invece un linguaggio definito specificamente per la codifica diregole, ed è nato dai risultati di iniziative precedenti, e piùprecisamente dal linguaggio RuleML (Rule Markup Language),che aveva lo scopo di fornire una sintassi standard per larappresentazione di regole
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
N3 e SWRL III
Una delle caratteristiche che differenziano SWRL da N3 è lapossibilità di serializzare la sua sintassi astratta sia in XML chein RDF/XML
Entrambi hanno però una caratteristica in comune: come ilRIF, supportano una serie di built-in per la manipolazione diletterali
Sebbene questi due linguaggi forniscano quasi tutti glistrumenti necessari per la rappresentazione e l’uso di regoleall’interno delle tecnologie del Semantic Web, sono rimasteallo stato di tecnologie non standard, e la decisione del RIF disviluppare non un linguaggio a regole ma un formato diinterscambio le pone nella stessa posizione di linguaggi aregole non basati sulle tecnologie del Semantic Web
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La regola (1) codificata in N3
1 @ f o rA l l X, Y, Z . { X ex : parentOf Y . X ex : b r o the rO f Z } l og : im p l i e s {Z ex : unc l eOf Y } .
oppure:
1 {? x ex : parentOf ? y . ?x ex : b r o the rO f ? z } l og : i m p l i e s { ? z ex : unc l eOf?y } .
Più brevemente:
1 {? x ex : parentOf ? y ; ex : b r o the rO f ? z } => { ?z ex : unc l eOf ? y } .
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La regola (1) codificata in SWRL I
Sintassi astratta:
1 Imp l i e s ( Antecedent ( ex : parentOf ( I−v a r i a b l e ( x ) I−v a r i a b l e ( y ) )ex : b r o the rO f ( I−v a r i a b l e ( x ) I−v a r i a b l e ( z ) ) ) Consequent ( unc l eOf (I−v a r i a b l e ( z ) I−v a r i a b l e ( y ) ) ) )
sua serializzazione in XML:
1 <ru l em l : imp>2 <ru leml :_body>3 <sw r l x : i n d i v i d u a l P r o p e r t yA t om s w r l x : p r o p e r t y=" ex :pa r en tO f ">4 <r u l em l : v a r>x</ r u l em l : v a r>5 <r u l em l : v a r>y</ r u l em l : v a r>6 </ sw r l x : i n d i v i d u a l P r o p e r t yA t om>7 <sw r l x : i n d i v i d u a l P r o p e r t yA t om s w r l x : p r o p e r t y=" e x : b r o t h e r ">8 <r u l em l : v a r>x</ r u l em l : v a r>9 <r u l em l : v a r>z</ r u l em l : v a r>10 </ sw r l x : i n d i v i d u a l P r o p e r t yA t om>11 </ ru l eml :_body>12 <ru leml :_head>13 <sw r l x : i n d i v i d u a l P r o p e r t yA t om s w r l x : p r o p e r t y=" e x : u nc l eO f ">14 <r u l em l : v a r>z</ r u l em l : v a r>15 <r u l em l : v a r>y</ r u l em l : v a r>16 </ sw r l x : i n d i v i d u a l P r o p e r t yA t om>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La regola (1) codificata in SWRL II
17 </ ru l eml :_head>18 </ ru l em l : imp>
sua serializzazione in RDF/XML:
1 <sw r l : V a r i a b l e r d f : I D="x"/>2 <sw r l : V a r i a b l e r d f : I D="y"/>3 <sw r l : V a r i a b l e r d f : I D="z"/>4 <ru l em l : Imp>5 <r u l em l : b od y r d f : p a r s eT yp e=" Co l l e c t i o n ">6 <sw r l : I n d i v i d u a l P r o p e r t yA t om>7 <sw r l : p r o p e r t y P r e d i c a t e r d f : r e s o u r c e="&ex ; parentOf "/>8 <swr l : a r gumen t1 r d f : r e s o u r c e="#x" />9 <swr l : a r gumen t2 r d f : r e s o u r c e="#y" />10 </ sw r l : I n d i v i d u a l P r o p e r t yA t om>11 <sw r l : I n d i v i d u a l P r o p e r t yA t om>12 <sw r l : p r o p e r t y P r e d i c a t e r d f : r e s o u r c e="&ex ; b r o the rO f "/>13 <swr l : a r gumen t1 r d f : r e s o u r c e="#x" />14 <swr l : a r gumen t2 r d f : r e s o u r c e="#z" />15 </ sw r l : I n d i v i d u a l P r o p e r t yA t om>16 </ r u l em l : b od y>17 <r u l em l : h e a d r d f : p a r s eT yp e=" Co l l e c t i o n ">18 <sw r l : I n d i v i d u a l P r o p e r t yA t om>19 <sw r l : p r o p e r t y P r e d i c a t e r d f : r e s o u r c e="&ex ; unc l eOf "/>20 <swr l : a r gumen t1 r d f : r e s o u r c e="#z" />
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
IntroduzioneXML: un formato standard per la rappresentazione di datiDa RDF(S) a OWLRegole e Semantic Web
La regola (1) codificata in SWRL III
21 <swr l : a r gumen t2 r d f : r e s o u r c e="#y" />22 </ sw r l : I n d i v i d u a l P r o p e r t yA t om>23 </ r u l em l : h e a d>24 </ ru l em l : Imp>
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
Riferimenti bibliografici I
Baader, F., Calvanese, D., McGuinness, D. L., Nardi, D., and Patel-Schneider, P. F., editors
(2003).The Description Logic Handbook: Theory, Implementation, and Applications. CambridgeUniversity Press.http://dx.doi.org/10.2277/0521781760.
Bechhofer, S., van Harmelen, F., Hendler, J., Horrocks, I., McGuinness, D. L., Patel-Schneider,
P. F., and Stein, L. A. (2004).OWL Web Ontology Language: Reference.W3C Recommendation, W3C.http://www.w3.org/TR/owl-ref.
Beckett, D. (2004).
RDF/XML syntax specification (revised).W3C Recommendation, W3C.http://www.w3.org/TR/rdf-syntax-grammar/.
Beckett, D. and Berners-Lee, T. (2008).
Turtle – Terse RDF triple language.W3C Team Submission, W3C.http://www.w3.org/TeamSubmission/turtle/.
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
Riferimenti bibliografici II
Berners-Lee, T. and Connolly, D. (2008).
Notation3 (N3): A readable RDF syntax.W3C Team Submission, W3C.http://www.w3.org/TeamSubmission/n3/.
Berners-Lee, T., Connolly, D., Kagal, L., Scharf, Y., and Hendler, J. (2008).
N3Logic: A logical framework for the World Wide Web.Theory and Practice of Logic Programming, 8(3):249–269.http://dx.doi.org/10.1017/S1471068407003213.
Biron, P. V. and Malhotra, A. (2004).
XML schema part 2: Datatypes second edition.W3C Recommendation, W3C.http://www.w3.org/TR/xmlschema-2/.
Boley, H. and Kifer, M. (2008).
RIF basic logic dialect.W3C Working Draft, W3C.http://www.w3.org/TR/rif-bld/.
Bray, T., Hollander, D., Layman, A., and Tobin, R. (2006a).
Namespaces in XML 1.0 (second edition).W3C Recommendation, W3C.http://www.w3.org/TR/xml-names.
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
Riferimenti bibliografici III
Bray, T., Hollander, D., Layman, A., and Tobin, R. (2006b).
Namespaces in XML 1.1 (second edition).W3C Recommendation, W3C.http://www.w3.org/TR/xml-names11.
Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E., and Yergeau, F. (2008).
Extensible markup language (XML) 1.0 (fifth edition).W3C Recommendation, W3C.http://www.w3.org/TR/xml.
Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E., Yergeau, F., and Cowan, J. (2006c).
Extensible markup language (XML) 1.1 (second edition).W3C Recommendation, W3C.http://www.w3.org/TR/xml11.
Chinnici, R., Moreau, J.-J., Ryman, A., and Weerawarana, S. (2007).
Web services description language (WSDL) version 2.0 part 1: Core language.W3C Recommendation, W3C.http://www.w3.org/TR/wsdl20.
Clark, J. (1999).
XSL Transformations (XSLT) — Version 1.0.W3C Recommendation, W3C.http://www.w3.org/TR/xslt.
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
Riferimenti bibliografici IV
Clark, J. and DeRose, S. (1999).
XML path language (XPath) — version 1.0.W3C Recommendation, W3C.http://www.w3.org/TR/xpath.
Clark, K. G., Feigenbaum, L., and Torres, E. (2008).
SPARQL protocol for RDF.W3C Recommendation, W3C.http://www.w3.org/TR/rdf-sparql-protocol/.
Horrocks, I., Patel-Schneider, P. F., Boley, H., Tabet, S., Grosof, B., and Dean, M. (2004).
SWRL: A Semantic Web rule language combining OWL and RuleML.W3C Member Submission, W3C.http://www.w3.org/Submission/SWRL.
Horrocks, I., Patel-Schneider, P. F., and van Harmelen, F. (2003).
From SHIQ and RDF to OWL: The making of a Web ontology language.Journal of Web Semantics, 1(1):7–26.http://dx.doi.org/10.1016/j.websem.2003.07.001.
Klyne, G. and Carroll, J. J. (2004).
Resource Description Framework (RDF): Concepts and abstract syntax.W3C Recommendation, W3C.http://www.w3.org/TR/rdf-concepts.
Andrea Perego Corso Web 2.0 – Modulo B
IntroduzioneWeb 2.0
Semantic WebSemantic Web e Web 2.0
Riferimenti bibliografici V
Marsh, J. (2001).
XML base.W3C Recommendation, W3C.http://www.w3.org/TR/xmlbase.
Prud’hommeaux, E. and Seaborne, A. (2008).
SPARQL query language for RDF.W3C Recommendation, W3C.http://www.w3.org/TR/rdf-sparql-query/.
Thompson, H. S., Beech, D., Maloney, M., and Mendelsohn, N. (2004).
XML schema part 1: Structures second edition.W3C Recommendation, W3C.http://www.w3.org/TR/xmlschema-1/.
Andrea Perego Corso Web 2.0 – Modulo B