RDFa : La genesi del web semantico. Parte III
In questo articolo, finalmente, descriviamo il significato dei nuovi attributi introdotti da RDFa e di come questi formano le triplette semantiche soggetto – predicato – oggetto. Iniziamo dall’individuazione dei predicati e degli oggetti per poi passare alla parte più complessa che è l’individuazione dei soggetti.
Individuazione dei predicati e degli oggetti
Il predicato di una tripletta semantica si individua attraverso gli attributi property, rel o rev. 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. Chiaramente in caso di liste di CURIES avremo tante triplette quante sono i CURIE che formano la lista.
Fissato il predicato, si stabilisce l’oggetto seguendo queste regole :
-
Quando il predicato è definito da property, l’oggetto è rappresentato :
-
dal valore (letterale pieno) di un ulteriore attributo content.
Esempio :
<span about=”[_:pincopallino]” property=”foaf:name” content=”Pinco Pallino”/>
-
dal contenuto (letterale XML) del tag dove abbiamo aggiunto l’attributo property, se è assente content.
Esempio :
<span about=”[_:pincopallino]” property=”foaf:name”>Pinco Pallino</span>
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.
-
Quando il predicato è definito da rel, l’oggetto non è mai un letterale e può essere :
-
l’ URI (ma non un CURIE) contenuto all’interno dell’ attributo href, se presente.
esempio :
<a rel=”foaf:knows”href=”mailto:tizio@pincopallino.net” />
-
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
-
l’URI o il CURIE del tag stesso in cui è stato inserito l’attributo rel se non sono presenti href e resource. Se questo tag non ha un attributo id o un attributo about, l’oggetto non ha un URI, pertanto è un nodo bianco. Esempio:
<div rel=”dc:creator”></div>
soggetto : indefinito ; predicato: dc:creator ; oggetto: [_:div0]
-
Quando il predicato è definito da rev, il soggetto e l’oggetto si scambiano il ruolo. Pertanto l’individuazione del soggetto e dell’oggeto richiede anche la conoscenza dell’individuazione del soggetto. Esempio:
<a about=”mailto:tizio@pincopallino.net” rel=”foaf:knows” rev=”foaf:knows” href=”mailto:caio@pincopallino.net”>Caio</a>
Che semanticamente significa : Tizio conosce Caio, e Caio conosce Tizio.
Individuazione del soggetto
A parte il caso in cui si usa l’attributo rev, che determina uno scambio delle regole tra soggetto e oggetto, Il soggetto di una tripletta 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 e typeof. Quest’ultimo applicato ad un tag determina il soggetto per tutte quelle triplette definite nel blocco di codice incluso nel tag e in più, definisce la tipologia della risorsa-soggetto. Esempio :
<div typeof=”foaf:Person”>
<span property=”foaf:givenname”>Pinco</span>
<span property=”foaf:famil_yname”>Pallino</span>
</div>
typeof può essere usato da solo o associato anche ad about.
In 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 come abbiamo visto nella risoluzione dell’oggetto).
-
Nei tag meta e link senza about, il soggetto è l’URI/CURIE del tag genitore immeditamente superiore.
Validazioni e controlli
Scrivere un documento XHTML + RDFa corretto, inizialmente, può risultare complicato. La presenza di tutte queste regole, può far confondere il web developer e far scrivere documenti pieni di errori. Pertanto, una buona prassi (non solo per i principianti) è quella di usare una serie di tools online che ho raggruppato in questo diagramma di flusso. Seguendo questo schema di lavoro sicuramente possiamo minimizzare gli errori :

Dunque, a parte il validatore sintattico w3c che già conosciamo, in quanto si trova allo stesso indirizzo web in cui validiamo i normali file html o xhtml, segnalo l’RDFa Distiller che è un parser RDFa online che prende in input un documento xhtml + rdfa e cerca di produrre in ouput un file RDF che tiene conto delle informazioni semantiche presenti sul documento di input. Successivamente attraverso il validatore RDF, possiamo vedere se le triplette estratte da RDFa Distiller sono corrette o meno. Se il validatore RDF ci segnala degli errori, sicuramente, il documento RDF non è un file xml sintatticamente corretto e ciò sarà dovuto ad una scrittura errata del documento xhtml+rdfa. Chiaramente quello che io chiamo “controllo semantico” è piuttosto un “controllo sintattico sulla semantica”. I tools non potranno mai capire se i concetti semantici espressi sono veri o falsi, se hanno senso o meno, ma potranno dirci se sono stati scritti correttamente o in modo errato.
Ecco dove trovare i tools :
-
Validatore xhtml + RDFa : http://validator.w3.org
-
RDFa Distiller : http://www.w3.org/2007/08/pyRdfa/
-
Validatore RDF : http://www.w3.org/RDF/Validator/
Nel prossimo e ultimo articolo dedicato a RDFa, vedremo come Google ha assimilato questa tecnologia e affronteremo l’unico namespace che il motore di ricerca, attualmente, è in grado di interpretare.


















Add to Google

8 Commenti
Grandi grandi grandi! mi avete salvato! pensa che mercoledì devo fare un seminario sull’RDFa per un esame e questo articolo mi sarà di enorme aiuto! Grazie!!!
Ohhh…c’è qualcuno che almeno legge i miei articoli e che li trova interessanti!!!
ricerca semanticaweb:allocazione e mantenimento posizione sito motori di ricercaIgoogle.
allocazione e mantenimento posizione sitoweb:ricerca:motorediricerca:Igoogle
allocazione e mantenimento posizione sitoweb:motorediricercaIgoogle,ID9095330
in merito alla bilocazione di luogo intervenuta in questa transmission,rileviamo solo per ricerca,la destrutturazione sino alla polvere residuale del sito.enrico marzianiID9095330
credo sara’di suo gradimento:htlm:errore404 rilevabile,Igooglehomepage
sto cercando spunti per implementare RDFa in un CMS e questi articoli mi sono di grande aiuto. Grazie.