RDFa ou Microdata ?

Quel format choisir ?

Le web sémantique est riche d'un certain nombre de vocabulaires, souvent sur despérimètres différents, parfois sur un même périmètre. Et il devient alors difficile de faire son choix.

Que vocabulaire utiliser, en effet ? Doit-on prendre le risque de soutenir un vocabulaire jeune mais efficace, ou bien un vocabulaire plus riche (trop) mais déjà bien installé.

RDFa

le RDFa a été inventé pour introduire des notations sémantiques au format RDF dans des documents (X)HTML.

En effet, les deux formats sont incompatibles. Il a donc été nécessaire d'étendre et d'adapter la notation RDF pour le contexte HTML.

La notation en elle-même n'est pas très compliquée. Elle repose sur quelques attributs supplémentaires chargés d'effectuer la liaison : about, resource, property, datatype, …

En revanche, c'est la multitude des vocabulaires sémantiques qui peut rapidement perturber le développeur.

Par exemple, en fonction du contexte, le vocabulaire peut changer. Si nous citons le nom d'une personne, le vocabulaire FOAF est suffisant :

<span typeof="foaf:Person"><span property="foaf:givenName"></span>Prénom</span> <span property="foaf:familyName">Nom</span></span>

Mais s'il s'agit de l'auteur d'un article cité, alors il faudra Dublin Core :

<p about="http://uri/ressource"> <cite property="dc:title" xml:lang="en">Titre de la référence</cite> ◆ <span property="dc:creator">Auteur 1</span>, <span property="dc:creator">Auteur 2</span> ◆ <time pubdate="pubdate" property="dc:date" datatype="xsd:gYear">2005</time>.</p>

ou un mélange des deux…

Microdata

Le format Microdata a été inventé par les géants du web afin de simplifier la vie des administrateurs de sites web.

Plutôt que de les obliger à chercher le vocabulaire à utiliser en fonction de leurs besoins, tout ce qui est nécessaire est rassemblé dans un seul vocabulaire simple, fondé sur les attributs : itemscope, itemtype, itemprop, itemid, itemref.

<div itemscope itemtype="http://data-vocabulary.org/Person">
Je m'appelle <span itemprop="name">Pierre Dumoulin</span>

mais on m'appelle <span itemprop="nickname">Pierrot</span>.

Voici ma page d'accueil :
<a href="http://www.example.com" itemprop="url">www.example.com</a>

J'habite à Strasbourg, en Alsace, et je suis <span itemprop="title">ingénieur</span>

chez la <span itemprop="affiliation">société ABC</span>.
</div>

Il n'y a aucune nouveauté puisque le vocabulaire Microdata a été très fortement inspiré des vocabulaire RDF existants : Dublin Core FOAF, …

La vrai différence si situe au niveau de la notation. Une notation incompatible avec le RDFa ce qui pousse d'autant plus à choisir entre l'un ou l'autre des formats.

Heureusement, la dernière version Microdata prend en charge la notation RDFa afin d'assurer une compatibilité.

Mise en situation

La définition d'une personne que nous n'avons fait que citer (par devoir et par respect) est réalisée (en RDFa) de la façon suivante :

<span typeof="foaf:Person"><span property="foaf:title">Dr</span> <span property="foaf:name">Morel de Rubempré</span></span>

Sa validation par le W3C n'entraîne aucun problème. La personne est bien définie telle que nous l'avons désiré :

[] a foaf:Person;
foaf:name "Morel de Rubempré"@fr;
foaf:title "Dr"@fr .

Nous mettons ce que nous voulons, en fonction des informations dont nous disposons ou qui sont réellement utiles dans le contexte.

En revanche, la même personne, validée par Google :

Erreur : If this markup is about a person, at least 2 of the following fields are needed: organization, location, or role. See the people help page for more information.
Erreur de validation pour le format MicrodataIf this markup is about a person, at least 2 of the following fields are needed: organization, location, or role. See the people help page for more information.zoom

Nous voyons que la personne est invalide. Le format Microdata réclame au moins 2 informations : entreprise, rôle, …

Conclusion

RDFa

Extensible

Comme toutes les technologies web de ces dernières années, le RDFa s'est voulu simple dans sa notation (triplet) et extensible. Si vous voulez créer un nouveau vocabulaire, vous le pouvez. Pas besoin de passer par un organisme centralisé.

Riche

La facilité de création d'un nouveau vocabulaire a entraîné une multiplication des vocabulaires, ce qui oblige souvent à utiliser plusieurs définitions conjointement.

Il en résulte bien souvent une critique : cette richesse entraîne complexité et lourdeur.

Mais dans la plupart des cas, c'est exagéré car les développeurs utilisent rarement plus de 2 ou 3 vocabulaires à la fois.

Versatile

Au-delà de son usage simple d'annotation sémantique, le RDFa s'inscrit dans un contexte plus large de technologies web. Il permet d'être utilisé ou extrait facilement. Le passage à un nouveau format ou son extraction pour un contenu enrichi est aisé et homogène.

Microdata

Simple

Le format Microdata s'est voulu simple et fédérateur. Il rassemble toutes les propriétés dont le développeur aura besoin pour un site web.

Contraignant

Si le format Microdata est présenté comme plus simple tout en étant sémantiquement équivalent, on ne parle pas de ses limitations/contraintes.

Le format Microdata possède des contraintes supplémentaires pour inciter les développeurs à ajouter le plus d'informations possible.

On pourrait dire que plus il y aura d'informations, plus les résultas de recherche seront améliorés et donc la fréquentation du site sera élevée.

Cependant, derrière le format Microdata, il y a :

Yahoo Bing Yandex Google

Des entreprises dont l'intérêt est d'obtenir le plus d'informations personnelles possibles afin de vendre de l'espace publicitaire le plus cher possible. Et comme nous le voyons, au détriment de la souplesse d'utilisation : si je ne fais que citer une personne pour sa contribution, dois-je éplucher toute sa biograprie pour savoir où elle travaille, quel est sa responsabilité, etc. ?

Au-delà du format en lui-même, il y a là la vraie question sur l'usage des données personnelles et de la liberté.

Usage

Pour une description sémantique rapide et simple d'un document, le format Microdata est plus que suffisant.

Si vous comptez utiliser la sémantique web dans un contexte plus large avec extractions (GRDDL, …), transformations, automatisations (migrations, …), que vous êtes puriste, ou tout simplement pour un usage libre et ouvert du web, alors il vaut mieux opter pour le format RDFa.