Membro di PiperitaLab
Home » Xhtml, Css e Ajax » RDFa : La genesi del web semantico. Parte II

RDFa : La genesi del web semantico. Parte II

Scritto da il 1 giugno 2009 in Xhtml, Css e Ajax - 2 Commenti - 28 visite

sw vert w3c RDFa : La genesi del web semantico. Parte IICi ritroviamo in questo nuovo appuntamento dedicato all’uso di RDFa, e come promesso passiamo subito alla descrizione dei CURIE. Consiglio a chi non ha ancora letto la prima parte di questa guida, a rimediare, prima di proseguire : il rischio è di non capire i nuovi argomenti. Il Compact URI come dice il termine stesso è una forma abbreviata di URI , che può essere usato in alternativa all’ URI per snellire il codice e mantenere comunque inalterato il significato semantico della pagina. Un CURIE si presenta nella forma :

prefisso:stringa

il prefisso è una stringa, paragonabile ad una costante (in termini di programmazione), che identifica l’URI di un namespace (cioè di un dominio di termini). Questo prefisso è definito usando l’attributo xmlns (generalmente nel tag html per ragioni di ordine e pulizia del codice, o in un qualunque altro tag se si vuole limitare lo scope o ambiente di applicazione del namespace). 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). Facciamo un esempio per capire il funzionamento, riprendendo il caso del namespace dublincore.

Il frammento di codice :

<meta property=”http://purl.org/dc/terms/description”content=”lorem ipsum dolor sit amet” />

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:dc="http://purl.org/dc/terms/"
version="XHTML+RDFa 1.0">
<head>
<meta property=”dc:description”content=”lorem ipsum dolor sit amet” />
</head>
<body>bla bla bla...</body>
</html>

Con questo codice abbiamo definito un prefisso namespace dc grazie a xmlns e subito dopo lo abbiamo usato nel meta tag. 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


In alcuni casi, I CURIES presentano anche delle regole specifiche . Vediamo quali :

  • Confusione tra CURIES e e URIs : Ci sono casi in cui è possibile confondere un URI per un CURIE. Ad esempio nel codice
<a 	href=”mailto:pinco@pallino.net”>Pinco 	Pallino</a>

mailto:pinco@pallino.net è un URI, non un CURIE. Per evitare di essere fraintesi, si può optare per una rappresentazione in cui il CURIE è limitato da parentesi quadre, così:

[namespace:stringa]

  • Sintassi obbligatoria per i CURIES : è obbligatorio limitare il CURIE tra parentesi quadre, quando il CURIE è il contenuto dell’attributo about (rimandiamo il significato dell’attributo about all’articolo successivo)
  • CURIES che definiscono nodi bianchi. Abbiamo detto che non tutte le risorse sono identificabili con un URI. Per esempio, una persona non è l’URI di una homepage. Al più, una persona potrà avere una homepage nella quale si identifica, ma l’homepage e la persona sono due risorse distinte. In realtà per le persone esiste già un vocabolario valido per definirle, è un sottoinsieme delle specifiche FOAF (Friend of a friend) mediante le quali (come dice il nome stesso) è anche possibile definire le relazioni che intercorrono tra le persone. Ma 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

Dove 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. Ad un nodo bianco possiamo successivamente associare una tipologia (se è possibile), ad esempio potremmo definire un nodo bianco _:Fuffy e subito dopo associargli la tipologia Cane (supponendo che esista un vocabolario ANIMALI ).

Vediamo un esempio concreto di nodo bianco. Nella mia homepage potrei scrivere due linee di codice che sono :

<link about="[_:GiancarloDurso]" rel="foaf:isPrimaryTopicOf" href="http://www.giancarlodurso.altervista.org" />

e

<p about="[_:GiancarloDurso]" typeof="foaf:Person"> bla bla bla.....</p>

Con la prima linea di codice ho creato un nodo bianco chiamato GiancarloDUrso, e ho detto che la risorsa “GiancarloDUrso (soggetto – nodo bianco – risorsa simil UFO …cioè risorsa di non identificata provenienza per ora!!!) è l’argomento principale (predicato) della pagina http://www.giancarlodurso.altervista.org (oggetto)

Con la seconda linea di codice, chiarisco cos’ è effettivamente GiancarloDUrso, ovvero una persona.

Premessa a RDFa

Gli strumenti teorici introdotti fin qui, ci permettono di passare finalmente a RDFa.

RDFa (Resource Description Framework in attributes) è uno strumento che arricchisce la sintassi xhtml attraverso una serie di attributi aggiuntivi (rev, about, typeof, content, property) che associati ai tag già noti, simulano le triplette soggetto – predicato – oggetto tipiche di RDF. In questo modo, il web master invece di produrre file RDF per esprimere concetti semantici, potrà usare direttamente le pagine xhtml.

Come abbiamo visto nell’esempio relativo ai CURIES, queste pagine xhtml usano una doctype personalizzata. Quindi la struttura tipica di una pagina XHTML+RDFa sarà :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html 	xmlns="http://www.w3.org/1999/xhtml"
xmlns:dc="http://purl.org/dc/terms/"
......
version="XHTML+RDFa 1.0"
>
<head>
bla bla bla....
</head>
<body>
bla bla bla....
</body
<html>

Obiettivo del prossimo articolo sarà :

  1. mostrare come questi attributi aggiuntivi definiscono soggetti, predicati e oggetti

  2. che significato assumono gli attributi già noti in xhtml : href, rel, src

  3. Come influiscono i tag e i blocchi che questi definiscono nella pagina, nell’identificazione di soggetti, predicati e oggetti.

Libri da non perdere:
Amazon-Box creato da Giuseppe Frattura

L'Autore

Informatico. Appassionato di teoria dei numeri.

homeSito personale|archiveArchivio autore

2 Commenti

  1. Marco (427 comments)
    Scritto il 1 giugno 2009 alle 09:50

    Aspetto con trepidazione il seguito ;)

  2. Scritto il 6 agosto 2009 alle 17:04

    [...] RDFa : La genesi del web semantico. Parte II [...]

Scrivi un commento!

© 2012 Italian webdesign. Diritti riservati. Ideato da Laura Gargiulo - Icone di Komodo Media - Logo di W3B.