TD1 : Introduction à RDF et RDFa

Espaces de noms en XML

Rappel de cours

En XML, les éléments ont un nom, défini dans une DTD ou un schéma XML. Cependant, plus les gens créent de DTD ou de schéma, plus ils créent de noms d'éléments,et plus il y a de chances que des éléments aient le même nom, avec un risque de conflit. Par exemple les deux éléments Auteur de deux DTD différentes ne peuvent être utilisés dans un même document XML.

La notion d'espace de nom permet de résoudre ce problème : tout nom est en fait considéré comme un nom local, et on peut définir un nom global (ou étendu) en associant un espace de nom avec le nom local. Par exemple, si le nom local est Auteur, et le nom de l'espace de nom est MonSchema, alors le nom global sera MonSchema:Auteur. Si quelqu'un d'autre a défini un élément Auteur dans SonSchema, alors le nom global sera SonSchema:Auteur.

On peut faire l'analogie avec les noms de fichiers absolus. Un fichier peut s'appeler cv.doc dans un dossier et un autre fichier peut s'appeler cv.doc dans un autre dossier. Cela ne pose pas de problème, car ils ont des noms de fichiers absolus différents, par exemple /un/premier/chemin/cv.doc et /un/autre/chemin/cv.doc

En XML, on utilise des URI comme espaces de nom. Par exemple http://liris.cnrs.fr/yannick.prie/MonSchema.dtd peut être un espace de nom. Alors http://liris.cnrs.fr/yannick.prie/MonSchema.dtd:Auteur sera le nom étendu de l'élément.

Comme il peut être pénible d'écrire des noms d'éléments qui prennent plusieurs lignes, on utilise des nom qualifiés : on remplace localement l'URI par un autre nom, que le parseur retransformera pour avoir le nom étendu complet.

La syntaxe est la suivante pour déclarer et utiliser un espace de nom:

<x xmlns:toto='http://www.exemple.org/schema'>
<toto:y>Ceci est le contenu de l'éléments toto:y.
</toto:y>
<y>Ceci est le contenu de l'élément y (espace de nom vide, par défaut)</y>

</x>

Un autre exemple (issu de la référence)

<?xml version="1.0"?>
<!-- both namespace prefixes are available throughout -->
<bk:book xmlns:bk='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6'>
<bk:title>Cheaper by the Dozen</bk:title>
<isbn:number>1568491379</isbn:number>
</bk:book>

Et encore un

<?xml version="1.0"?>
<!-- initially, the default namespace is "books" -->
<book xmlns='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6'>
<title>Cheaper by the Dozen</title>
<isbn:number>1568491379</isbn:number>
<notes>
<!-- make HTML the default namespace for some commentary -->
<p xmlns='http://www.w3.org/1999/xhtml'>
This is a <i>funny</i> book!
</p>
</notes>
</book>

Voici un fichier XHTML utilisant des espaces de noms : http://jwatt.org/svg/demos/xhtml-with-inline-svg.xhtml. Identifiez les endroits où les espaces de noms sont déclarés, et ceux où ils sont utilisés.

RDFa

Un tutorial

RDFa est une syntaxe permettant d'ajouter des informations (métadonnées au sens large) dans une page HTML, en réutilisant des éléments et attributs de HTML, mais aussi en ajoutant quelques nouveaux éléments et attributs. Les métadonnées ajoutées sont invisibles au lecteur humain, mais peuvent être traitées par un programme, qui pourra les utiliser utilement.

Le modèle sous-jacent à RDFa est celui d'un ressource (URI) associée à une autre ressource (URI), l'association étant décrite par une ressource (URI).

On appelle triplet une telle structure, qu'on peut représenter par un noeud d'un graphe en relation avec un autre noeud.

Dès que plusieurs triplets impliquent des noeuds identiques (avec la même URI), le graphe résultant est construit avec plusieurs noeuds et plusieurs relations.

Certains noeud spéciaux sont appelés des noeuds vides (blank nodes).

Vous allez lire le tutorial RDFa primer (http://www.w3.org/TR/xhtml-rdfa-primer/), et en comprendre les exemples, notamment comment on construit un graphe d'URI exprimant des métadonnées. Le document fichier RDFa exemple contient les différents exemples proposés.

Une autre page RDFa

Voici un CV exemple en RDFa (http://buzzword.org.uk/2008/rdfa-cv). Construisez le graphe correspondant (à rendre pour la semaine prochaine).

pyRDFa

L'outil pyRDFa (http://www.w3.org/2007/08/pyRdfa/) permet de construire automatiquement le graphe RDF correspondant à une page web RDFa. Il rend ses résultats dans différents formats, dont le format Turtle (une syntaxe simple pour décrire des graphes).

Utilisez cet outil sur la page http://buzzword.org.uk/2008/rdfa-cv. Analysez le résultat. Vérifiez que cela correspond à votre graphe précédent.

Une dernière page RDFa

Alexandre Passant est un chercheur sur le Web sémantique. Sa page personnelle (http://apassant.net/) contient des métadonnées exprimées en RDFa. Allez voir quelles sont ces métadonnées en utilisant l'outil pyRDFa.

Rappel des concepts vus

Donner une définition pour chacun des termes suivants :