rdfa tutorial di base

33
RDFa RDFa Tutorial di Base (Resource Description Framework in attributes)

Upload: monkeys-head

Post on 13-Dec-2014

1.528 views

Category:

Technology


1 download

DESCRIPTION

Tutorial di base RDFa.

TRANSCRIPT

Page 1: RDFa Tutorial di Base

RDFaRDFa

Tutorial di Base

(Resource Description Framework in attributes)

Page 2: RDFa Tutorial di Base

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.

Page 3: RDFa Tutorial di Base

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.

Page 4: RDFa Tutorial di Base

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)

Page 5: RDFa Tutorial di Base

Che cos’è una risorsaUna risorsa può essere una persona, un gruppo di persone, un documento, una pagina web, una poesia, un libro, una e­mail, 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

Page 6: RDFa Tutorial di Base

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).

Page 7: RDFa Tutorial di Base

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.

Page 8: RDFa Tutorial di Base

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

Page 9: RDFa Tutorial di Base

RDFaRDFa Con le premesse fatte possiamo finalmente

passare a parlare di RDFa

Page 10: RDFa Tutorial di Base

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 >

Page 11: RDFa Tutorial di Base

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.

Page 12: RDFa Tutorial di Base

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

Page 13: RDFa Tutorial di Base

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

Page 14: RDFa Tutorial di Base

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.

Page 15: RDFa Tutorial di Base

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

Page 16: RDFa Tutorial di Base

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)

Page 17: RDFa Tutorial di Base

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

Page 18: RDFa Tutorial di Base

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.

Page 19: RDFa Tutorial di Base

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.

Page 20: RDFa Tutorial di Base

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.

Page 21: RDFa Tutorial di Base

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.

Page 22: RDFa Tutorial di Base

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

Page 23: RDFa Tutorial di Base
Page 24: RDFa Tutorial di Base

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#

Page 25: RDFa Tutorial di Base

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.

Page 26: RDFa Tutorial di Base

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

Page 27: RDFa Tutorial di Base

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.

Page 28: RDFa Tutorial di Base

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>

Page 29: RDFa Tutorial di Base

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>

Page 30: RDFa Tutorial di Base

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>

Page 31: RDFa Tutorial di Base

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>

Page 32: RDFa Tutorial di Base

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>

Page 33: RDFa Tutorial di Base

RiferimentiRiferimenti Italian Web Design:◦ http://www.italianwebdesign.it/tag/rdfa/

Common Tag:◦ http://www.commontag.org/