RDFAoût, votre feuilleton de l'été : pendant un mois, 2 billets par semaine sur le RDFa, à l'attention des lecteurs connaissant déjà le HTML.

Notions abordées dans ce billet : RDF, propriété, triplet, sujet, prédicat, objet, Dublin Core...

Le RDF : un modèle de données pour le Web

Nous l'avons vu, le Web est composé de ressources identifiées par leurs URI.

Comme son nom l'indique, le RDF (Resource Description Framework – Cadre de Description de Ressource en français) permet de décrire ces ressources (alors que le HTML permet de bâtir des représentations de ces ressources).

Le RDF est un monde un peu intimidant au premier abord car immensément riche. Pour l'instant, retenez juste que le RDF apporte au Web deux principes très précieux :

  • les ressources peuvent être liées deux par deux par des propriétés (aussi appelées "prédicats") qui sont elles-mêmes des ressources et qui, évidemment, ont aussi des URI
  • ces liaisons forment une unité de sens appelée « triplet » (où les ressources sont sujet, prédicat et objet)

Par exemple, nous avons déjà comme ressource le billet où Carlo annonce son départ à Milan et nous pouvons identifier Carlo en tant qu'utilisateur de Twitter, il existe pour les lier une propriété, fournie par le projet Dublin Core, qui permet de dire qu'une ressource est créée par une autre.

En regroupant ces trois ressources dans l'ordre, on obtient le triplet suivant :

Sujet Prédicat Objet
http://twitter.com/carlomorelli/status/12185847600 http://purl.org/dc/terms/creator http://twitter.com/carlomorelli

Du RDF dans le HTML

Le RDFa (qui signifie « RDF in attributes ») permet d'insérer des descriptions conformes au modèle de données RDF dans la représentation HTML d'une ressource, à l'aide d'attributs existant (comme @href par exemple) et d'attributs nouveaux (comme @about par exemple).

Pour exprimer le même triplet en RDFa, nous pouvons écrire :

<p about="http://twitter.com/carlomorelli/status/12185847600">
	<a rel="http://purl.org/dc/terms/creator" 
		href="http://twitter.com/carlomorelli">
		Carlo
	</a>
	annonce son départ pour l'Italie.
</p>

Ce qui nous donne :

Sujet Prédicat Objet
valeur de @about valeur de @rel valeur de @href
http://twitter.com/carlomorelli/status/12185847600 http://purl.org/dc/terms/creator http://twitter.com/carlomorelli

Nous retrouvons bien notre triplet.

Du texte dans les triplets

Le RDF permet aussi de spécifier comme objet d'un triplet des valeurs qui ne sont pas des URI . Par exemple, si on veut exprimer que ce billet est créé par Carlo, mais que Carlo ne correspond à aucune ressource (et donc à aucune URI), on peut faire :

<p about="http://twitter.com/carlomorelli/status/12185847600">
	 <span property="http://purl.org/dc/terms/creator">
		Carlo
	</span>
	annonce son départ pour l'Italie.
</p>

Ce qui nous donne :

Sujet Prédicat Objet
valeur de @about valeur de @property contenu de l'élément
http://twitter.com/carlomorelli/status/12185847600 http://purl.org/dc/terms/creator « Carlo »

Par contre, ni le sujet ni le prédicat d'un triplet ne peuvent être des valeurs littérales.

Vous constatez que les possibilités d'expression du RDF sont donc quasi-infinies. C'est là tout l'intérêt du RDFa : apporter cette puissance jusqu'au contenu même des pages HTML.

Dans le prochain épisode de RDFaoût, nous verrons quelques particularités syntaxiques du RDFa.