Upload
monkeys-head
View
1.530
Download
1
Embed Size (px)
DESCRIPTION
Tutorial di base RDFa.
Citation preview
RDFaRDFa
Tutorial di Base
(Resource Description Framework in attributes)
DescrizioneDescrizione RDFa (Resource Description Framework in attributes) è uno
strumento che arricchisce la sintassi xhtml attraverso una serie di attributi aggiuntivi che associati ai tag già noti, simulano le triple RDF.
In questo modo per esprimere concetti semantici associati ad una pagina xhtml non si dovrà produrre un file RDF separato ma tali informazioni si potranno inserire direttamente in esse.
Un passo indietro: RDFUn passo indietro: RDF RDF sta per Resource Description Framework ed è una famiglia
di specifiche che servono a descrivere le risorse e le relazioni che intercorrono tra di esse. Il modello RDF si basa sull’idea che la descrizione di una risorsa o le relazioni tra le risorse si possono rappresentare attraverso delle triple:
soggetto – predicato – oggetto.
Un passo indietro: RDFUn passo indietro: RDFSoggetto(risorsa)
Oggetto(risorsa)
Predicato(risorsa)
Ognuna delle componenti di queste triplette, è una risorsa. Per esempio supponiamo che vogliamo descrivere questo concetto :
“L’articolo X è stato scritto da Mario Rossi. ”
L’articolo X (soggetto) ha per autore (predicato) Mario Rossi (oggetto)
Che cos’è una risorsaUna risorsa può essere una persona, un gruppo di persone, un documento, una pagina web, una poesia, un libro, una email, ecc.
Quelli identificabili univocamente sul web sono rappresentati da un URI o come vedremo successivamente da una forma ridotta di URI che chiameremo CURIE (Compact URI)
Un passo indietro: RDFUn passo indietro: RDF
CURIECURIEUn CURIE si presenta nella forma : prefisso:stringa
il prefisso è una stringa che identifica l’URI di un namespace.
Questo prefisso è definito usando l’attributo xmlns.
Un parser RDFa, quando incontra un CURIE, sostituisce il prefisso del
namespace con il namespace stesso, aggiungendo alla fine ciò che si trova
alla destra dei due punti (stringa).
CURIECURIE EsempioIl frammento di codice:
<meta property=http://purl.org/dc/terms/description content=”bla bla bla” />
contiene l’URI http://purl.org/dc/terms/description .
Trasformiamo questo URI in CURIE aggiungendo la definizione del
namespace dublincore nel tag html e cambiando l’URI con il CURIE
corrispondente.
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:dc="http://purl.org/dc/terms/"
version="XHTML+RDFa 1.0">
* Il Dublin Core è uno standard di descrizione di tutte le risorse in formato elettronico.
CURIECURIE Esempio
<html xmlns=“…” xmlns:dc="http://purl.org/dc/terms/" version=“…">
Con questo codice abbiamo definito un prefisso namespace dc grazie a xmlns.
Adesso posssiamo usarlo nel tag Meta.
<meta property=”dc:description” content=”bla bla bla” />
In pratica il parser RDFa quando incontra dc:description lo sostituisce con
http://purl.org/dc/terms/description . Informalmente :
dc:description = http://purl.org/dc/terms/description
RDFaRDFa Con le premesse fatte possiamo finalmente
passare a parlare di RDFa
RDFa : DoctypeRDFa : Doctype Quanto utilizziamo RDFa nelle pagine XHTML dobbiamo usare un nuovo
doctype personalizzato:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd >
RDFa : I nuovi attributiRDFa : I nuovi attributi RDFa introduce nuovi attributi per i tag XHTML:
◦ rev,
◦ about,
◦ typeof,
◦ content,
◦ property
Questi attributi servono a formare le triple semantiche RDF.
RDFa : Individuare i PredicatiRDFa : Individuare i Predicati Il predicato di una tripletta semantica si individua attraverso gli
attributi :
◦ rev
◦ rel
◦ property
Questi attributi possono essere aggiunti a qualunque tag del documento e possono contenere al suo interno URI, CURIE o liste di CURIES separati da uno spazio.
* rel è un attributo gia presente in XHTML
RDFa : Individuare gli OggettiRDFa : Individuare gli OggettiFissato il predicato, si stabilisce l’oggetto seguendo queste regole :
Quando il predicato è definito da property l’oggetto è rappresentato:
◦ Dal valore di un ulteriore attributo: content
Esempio :
<span about=”[…]” property=”foaf:name” content=”Pinco Pallino”/>
◦ Dal contenuto del tag dove abbiamo aggiunto l’attributo property se è assente content
Esempio :
<span about=”[…]” property=”foaf:name” />Pinco Pallino</span>
Foaf è un'ontologia atta a descrivere persone, con le loro attività e le relazioni con altre persone e oggetti
RDFa : Individuare gli OggettiRDFa : Individuare gli Oggetti Gli oggetti non devono essere necessariamente dei letterali. La
tipologia di un oggetto può essere cambiata con l’attributo datatype.
Esempio :
<span about=”[_:esempio]” property=”esempio:numerointero” content=”10″
datatype=”xsd:integer”>ten</span>
In questo caso 10 non sarà trattato come letterale (stringa) ma come numero intero.
RDFa : Individuare gli OggettiRDFa : Individuare gli Oggetti Quando il predicato è definito da rel l’oggetto non è mai un
letterale e puo essere:
◦ l’ URI (ma non un CURIE) contenuto all’interno dell’ attributo href, se presente.
Esempio :
<a rel=”foaf:knows” href=”mailto:[email protected]”/>
◦ l’URI o il CURIE contenuto all’interno dell’attributo resource, se presente.
resource e href hanno la stessa funzione, solo che resource a differenza di href
non produce un link raggiungibile con un click da browser
RDFa : Individuare gli OggettiRDFa : Individuare gli Oggetti (cont) Quando il predicato è definito da rel l’oggetto non è mai
un letterale e puo essere:
◦ l’URI o il CURIE del tag stesso in cui è stato inserito l’attributo rel se
non sono presenti href e resource.
Esempio:
<div rel=”dc:creator”></div>
soggetto : indefinito ; predicato: dc:creator ; oggetto: _:div (nodo bianco)
RDFa : Nodi BianchiRDFa : Nodi Bianchi Quando una risorsa non si può identificare con un URI vero e
proprio, la risorsa viene chiamata nodo bianco.
I CURIES permettono di definire i nodi bianchi con la sintassi:
_:ID
ID è una stringa casuale che identifica univocamente il nodo bianco e che per l’appunto non si traduce con alcun URI dato che il prefisso del namespace è l’underscore
RDFa : Individuare gli OggettiRDFa : Individuare gli Oggetti Quando il predicato è definito da rev, il soggetto e l’oggetto si
scambiano il ruolo. Pertanto l’individuazione dell’oggeto richiede anche la conoscenza dell’individuazione del soggetto.
Esempio:
<a about=”mailto:[email protected]” rel=”foaf:knows” rev=”foaf:knows”
href=”mailto:[email protected]”>Caio</a>
Che semanticamente significa : Tizio conosce Caio, e Caio conosce Tizio.
RDFa : Individuare i SoggettiRDFa : Individuare i Soggetti Il soggetto di una tripla può essere determinato , seguendo
l’ordine di priorità (così come sono elencati), di uno di questi attributi:
about,
src (in presenza di rev),
resource (in presenza di rev),
href
typeof
Quest’ultimo definisce la tipologia della risorsa-soggetto e determina il
soggetto per tutte quelle triple definite nel blocco di codice incluso nel tag
a cui è applicato.
RDFa : Individuare i SoggettiRDFa : Individuare i Soggetti Esempio :
<div typeof=”foaf:Person”>
<span property=”foaf:givenname”>Pinco</span>
</div>
Predicato: “foaf:givenname”
Soggetto : [div] di tipo “foaf:Person”
Oggetto : Pinco (contenuto del Tag span)
typeof può essere usato da solo o associato anche ad about.
RDFa : Individuare i SoggettiRDFa : Individuare i SoggettiIn assenza di un attributo che individua un soggetto, il soggetto è il tag stesso che contiene il predicato, o il tag genitore immediatamente superiore che lo contiene.
Ci sono solo due eccezioni alla regola :
Se il tag genitore include l’attributo rel o rev senza href, allora il soggetto è
l’URI/CURIE che corrisponde al tag genitore (può essere anche un nodo bianco).
Nei tag meta e link senza about, il soggetto è l’URI/CURIE del tag genitore
immeditamente superiore.
RDFa : RiepilogoRDFa : Riepilogo
PREDICATO OGGETTO SOGGETTO
property• content• contenuto Tag XHTML • about
• href• typeof• nodo biancorel
• href• resource• nodo bianco
rev• about• href• resource
• src• resource• href
Common TagCommon Tag Common Tag è un sistema di tagging sviluppato per
inserire dati strutturati all’interno di pagine HTML.
è definito attraverso RDFa
Utilizza un proprio namespace: http://commontag.org/ns#
Common TagCommon Tag Common Tag permette di identificare concetti in
blocchi all’interno delle pagine HTML.Esempio
Usiamo i tag per identificare il concetto di cui parliamo in un
documento.
<body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged">
<span typeof="ctag:Tag" rel="ctag:means" resource="http://rdf.freebase.com/ns/en.u2"/>
</body>
L’esempio pone gli attrubuti nel tag body ed in un tag span ma il markup puo
essere inserito in qualsiasi elemento del documento.
Common TagCommon Tag (cont) Esempio
<body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged">
<span typeof="ctag:Tag" rel="ctag:means“ resource="http://rdf.freebase.com/ns/en.u2"/>
</body>
Soggetto : nodo bianco _:body
Predicato: ctag:tagged (taggato da)
Oggetto: nodo_bianco _:span di tipo ctag:Tag
Soggetto : nodo bianco _:span di tipo ctag:Tag
Predicato: ctag:means (identifica la risorsa)
Oggetto: risorsa http://rdf.freebase.com/ns/en.u2
Definizione del namespace
Common Tag : namespaceCommon Tag : namespace Il namespace utilizato da Common Tag si trova all’indirizzo:
http://commontag.org/ns#
Si compone di 4 classi ed altrettante proprietà:
◦ Classi: Tag, AuthorTag, readerTag, AutoTag
◦ Proprietà: means, tagged, taggingDate, label
La classe piu usata è Tag ed è quella che useremo negli esempi successivi dato
che le altre non sono altro che delle sottoclassi di Tag.
Common Tag : EsempiCommon Tag : Esempi Includere un etichetta alla definizione
<body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged">
<span typeof="ctag:Tag" rel="ctag:means“
resource="http://rdf.freebase.com/ns/en.u2"
property="ctag:
label" content="U2"/>
</span>
</body>
Common Tag : EsempiCommon Tag : Esempi Tag Multipli dello stesso documento
<body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged">
<span typeof="ctag:Tag" rel="ctag:means" resource=http://rdf.freebase.com/ns/en.u2
property="ctag:label" content="U2"/>
<span typeof="ctag:Tag" rel="ctag:means" resource="http://rdf.freebase.com/ns/en/zoo_tv_tour"
property="ctag:label“ content="ZooTV"/>
</body>
Common Tag : EsempiCommon Tag : Esempi Tag di documenti esterni
<div xmlns:ctag="http://commontag.org/ns#" about="http://www.whitehouse.gov/blog/inaugural-address/"
rel="ctag:tagged">
<span typeof="ctag:Tag" rel="ctag:means" resource="http://rdf.freebase.com/ns/en.social_responsibility"/>
</div>
Common Tag : EsempiCommon Tag : Esempi Tag di sezioni all’interno del documento
<p id="first">Star Wars set a new standard for visual effects in space drama. </p>
<p id="second">Luke's interest in his heritage made him vulerable to the Dark Side. </p>
<div xmlns:ctag="http://commontag.org/ns#" about="#second" rel="ctag:tagged">
<span typeof="ctag:Tag" rel="ctag:means"
resource="http://dbpedia.org/resource/Luke_Skywalker"/>
</div>
Common Tag : EsempiCommon Tag : Esempi Possiamo usare Common Tag in qualsiasi elemento del Markup
<div xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged">
NASA's <a typeof="ctag:Tag" rel="ctag:means“ href=http://rdf.freebase.com/ns/en.phoenix_mars_mission property="ctag:label">Phoenix Mars Lander</a>
has deployed its robotic arm.
</div>
RiferimentiRiferimenti Italian Web Design:◦ http://www.italianwebdesign.it/tag/rdfa/
Common Tag:◦ http://www.commontag.org/