# ★ Le point sur RDF et RDFa

À lire les comptes rendus de Samuel Martin et Nicolas Le Gall, je me suis vraiment mal exprimé lors de ce dernier WaSP Café consacré au Web Sémantique (j'ai actualisé la liste des ressources au passage). Je m'en excuse et je vais essayer d'être plus clair à l'écrit. Quoi qu'il en soit c'était une très bonne expérience sur ma difficulté à exprimer certains concepts.

## Problématique

Le principal objectif du web sémantique est d'aider les machines à « comprendre » la complexité humaine. Idée singulière ? Pas vraiment si l'on considère que l'outil informatique pourra ensuite à son tour nous rendre service en proposant des informations plus pertinentes par exemple.

Cette aide est-elle vraiment nécessaire ? Le système actuel a montré ses limites, il est très difficile pour un moteur de recherche de trouver des résultats pertinents lorsqu'une requête est dénuée de contexte et/ou s'avère trop compliquée. En cherchant le terme « Paris » , vous allez être confronté à des résultats portant sur la ville, une suite d'hôtel et bien sûr la personnalité que nous envions aux américains. De la même façon, si vous souhaitez connaître tous les amis des personnes ayant commenté sur votre blog, il va actuellement vous falloir quelques heures (dans le meilleur des cas).

## Solution(s)

Il y a plusieurs approches pour essayer de donner davantage de sens, de sémantiser le web. Les deux plus notables sont celle du Semantic Web Interest Group initiée par le W3C et celle des microformats créés par Tantek Çelik (entre autres).

Commençons par les microformats qui ont eu leur heure de gloire. L'idée initiale était d'annoter l'existant afin d'ajouter du sens à la volée lors de la création de nouveaux contenus. C'est une approche louable dans le sens où elle est très pragmatique et permet de commencer à ajouter du sens à certaines données rapidement (notamment grâce à la compatibilité html4). En revanche, outre les problèmes d'accessibilité soulevés, elle pose le problème de la pérénnité de ces formats qui ont une évolutivité assez restreinte (sans parler de la centralisation). Bon je vais pas aller plus loin, ce n'est l'objet de ce billet et Karl l'a fait bien avant moi.

Le SWIG souhaite davantage considérer le web dans son ensemble comme une gigantesque base de données décentralisée grâce à un format standardisé et flexible : RDF.

RDF introduit la notion de triplets permettant d'établir des relations, voici un exemple pour illustrer ce concept. Prenons le texte suivant :

> David rédige un article pour Biologeek intitulé Le point sur RDF et RDFa.

Cette simple phrase permet de créer les relations suivantes :

- David { est rédacteur de } Le point sur RDF et RDFa
- Biologeek { publie } Le point sur RDF et RDFa
- Le point sur RDF et RDFa { est } un Article

À partir de ces triplets (sujet { prédicat } objet), on peut ensuite créer de nouvelles relations : si David est rédacteur de Le point sur RDF et RDFa et Biologeek publie Le point sur RDF et RDFa, David est contributeur de Biologeek. L'autre avantage de RDF c'est que sa structure en triplets est très simple et permet de modéliser n'importe quelle donnée.

Les sujets et les objets peuvent être de différentes natures : texte, date, nombres, ... ou URL et c'est là où ça devient intéressant car cela permet de lier les différentes ressources entre elles (et donc de les distribuer à l'échelle du web). Les prédicats sont issus de vocabulaires, certains sont normalisés et peuvent être étendus en fonction des besoins mais on ne va pas aller plus loin pour l'instant.

Il est important de bien comprendre l'importance de RDF pour saisir toute la portée du Web Sémantique. Si l'on souhaite aller plus loin dans l'analogie de la base de données, les tables sont les différents vocabulaires et les ids sont les URL des ressources, d'où l'importance d'avoir des URL uniques par ressource.

### RDF et ses représentations

C'est une confusion que l'on retrouve très souvent : XML n'est qu'une représentation possible de RDF, il existe d'autres syntaxes permettant de représenter du RDF comme N3/Turtle ou N triples qui sont moins utilisées (10 ans de XML laissent quand même quelques outils forts utiles) mais plus lisibles à mon sens.

## Et RDFa dans tout ça ?

Le but de RDFa est d'intégrer directement du RDF et donc de la sémantique dans votre HTML. Il suffit juste de mettre les bons attributs à des balises HTML existantes donc ce n'est pas plus compliqué qu'un microformat !

Prenons un exemple concret avec ce blog, tous les billets sont RDFaisés grâce au merveilleux tutoriel de Gautier Poupeau. Ce qui permet d'extraire les données RDF (avec une représentation XML) facilement et sans avoir à dupliquer le contenu, il s'agit juste d'un parsing des pages html générées. Vous pouvez voir la représentation de ces données pour le billet actuel à l'URL http://www.biologeek.com/data/web-semantique/le-point-sur-rdf-et-rdfa.

J'ai un petit soucis encore avec les commentaires que je compte régler ce weekend mais vous pouvez déjà analyser le html (et le code) qui permet d'arriver à cela. Vous allez voir que c'est inhabituel mais que c'est loin d'être difficile pour autant.

## Enjeux

En termes de référencement, la question n'est pas de savoir si les moteurs de recherche vont y passer mais quand, il n'y a aucun doute là-dessus et certains expérimentent déjà des choses bien sympatiques. Mais publier pour un moteur de recherche n'est pas une fin en soit. À partir du moment où vous avez la possibilité d'extraire vos données en RDF, les réutilisations sont infinies car vous avez un format permettant de faire des requêtes grâce à SPARQL (je n'entre pas dans les détails ici non plus) ce qui permettrait par exemple :

- d'extraire tous les billets relatifs au tag web-semantique contenus dans mon aggrégateur auxquels j'ai répondu en commentaire ;
- d'ajouter à mon fichier FOAF tous les fichiers FOAF des personnes ayant commenté ici ;
- de récupérer dans les fichiers FOAF des commentaires des billets du tag python de ce blog les titulaires de comptes LinkedIn issus des fichiers FOAF et de faire des demandes de mise en relation (pour mettre une pincée de 2.0).

RDFa n'est qu'un moyen d'introduire d'avantage de RDF sur le web mais les enjeux sont bien plus grands, ces quelques exemples ne sont qu'une mise en bouche des applications possibles.

Le meilleur exemple que je connaisse reste DBpedia qui a extrait l'ensemble des données de Wikipedia au format RDF. Il y a des exemples de requêtes pouvant être effectuées. Je vous laisse imaginer tout ce que l'on peut faire avec (Gautier vous aide si vous manquez d'imagination).

## Limites

Les outils sont bien sûrs encore au stade de prototype et je ne m'inquiète pas de ça car ça va rapidement évoluer. En revanche il y a deux problèmes majeurs encore irrésolus :

- La confidentialité : il manque une couche d'authentification permettant un accès granulaire aux triplets RDF ;
- La confiance : OpenID me permet de créer un compte mais je n'ai aucun moyen de prouver que c'est bien moi David Larlet qui suit derrière cette URL.

Concernant la confiance, il y a des projets qui sont en train d'être développés introduisant un tiers de confiance (banque, état, etc) et permettant de remédier au problème des clés GPG beaucoup trop geek.

En revanche, concernant la confidentialité je suis assez sceptique car je n'ai pas encore trouvé de solution élégante pour gérer ça et c'est quand même une clé majeur du succès du Web Sémantique...

## Epilogue

Je voudrais revenir sur la dernière question posée qui était très pertinente mais on manquait de temps (d'ailleurs c'est vraiment dommage, on aurait dû consacrer plus de temps aux questions/réponses). Je la reformule car je ne m'en souviens plus exactement :

> Comment faire dans un web 2.0 pour garder le contrôle sur ses données, son identité ?

J'ai rapidement répondu qu'il fallait absolument commencer par avoir son propre nom de domaine car celui-ci va représenter votre identité en ligne mais le problème est beaucoup plus vaste et j'ai déjà eu l'occasion d'en parler. Chacun place le curseur de sa confidentialité, de sa vie privée au niveau qui lui semble le plus juste. Ça va du réseau local ultra sécurisé à l'étalage de sa vie publique sur Seesmic et autres Twitter.

Tout dépend finalement de votre définition de la liberté (en ligne). Pour ma part, j'aime partager mes connaissances, mais beaucoup moins ce que je fais et/ou pense dans certains domaines plus personnels. Je suis ouvert à la décentralisation mais la technique n'est pas encore prête à ça sans introduire des duplicats de l'information un peu partout et je ne parle même pas de la monétisation sous-jacente. Il faut comprendre ce que ça implique et ensuite assumer ses responsabilités, il ne fait aucun doute que la pseudo-gratuité offerte par ces services peut vous coûter cher...

Pour terminer, je pense que le Web Sémantique souffre de deux problèmes (qui sont très proches de ceux du Logiciel Libre finalement) :

- le manque de publicité, c'est ce qui a permis aux microformats de se développer aussi vite, il n'y a qu'à comparer les deux sites...
- l'opposition des entreprises existantes qui ont fondé leur business model sur l'extraction et l'utilisation de ces données, le pire étant que ces entreprises noyautent les initiatives comme Data Portability.

J'espère avoir été un peu plus clair cette fois-ci, en tout cas un grand merci aux organisateurs du WaSP Café, c'était très intéressant de pouvoir en parler mais surtout confronter ces idées avec Frédéric et je pense que ça a beaucoup apporté en vitalité.

### Articles peut-être en rapport

- Différences entre identification, autorisation et authentification
- ★ Ma killer app pour le Web Sémantique
- GWeb, peut-on encore rêver d'un web libre ?

### Commentaires

Neovov le 25/04/2008 :

Bonjour David,

J'avais bien compris ce que tu voulais dire pendant l'atelier, je me suis peut-être mal exprimé dans mon billet.

Je reproche juste 2 choses :
- La simplicité et l'aspect cool des microformats vis à vis de RDF/RDFa, qui fait qu'on préfère forcément le premier (dans le cas où l'on veut sémantiser quelque chose de prévu dans les microformats).
- A l'inverse, la trop grande complexité de RDF/RDFa. Il faut vraiment s'investir énormément pour réussir à faire quelque chose, et je doute que beaucoup de gens soient prêt à s'investir. De plus il y a le coté rébarbatif, faire du XML à la main c'est pas forcément transcendant, et jongler entre les namespaces non plus (et je ne parle pas de la maintenance qui devient du coup moins simple).

Ce qui m'inquiète encore plus, c'est qu'il y ait une bataille entre microformats et RDFa.

Je donnais juste mon point de vue en tant que novice, je ne dis absolument pas qu'il ne faut faire ni l'un ni l'autre. Je regrette que l'on ait à choisir entre quelque chose de bien, simple mais limité et quelque chose de très bien, extensible mais compliqué et long à prendre en main.

Maintenant, comme tu le dis, ce n'est peut-être qu'un problème de marketing.

Merci beaucoup pour l'atelier en tout cas, tu m'as donné envie de me mettre à RDF !

David, biologeek le 25/04/2008 :

@Neoveov : Zut, si tu penses encore que le RDF c'est se taper du XML à la main j'ai totalement foiré mon explication :(

Neovov le 25/04/2008 :

Non non, j'ai compris, mais présenter du XML c'était peut-être un mauvais choix stratégique, du N3 aurait moins fait peur !

Ikipou le 26/04/2008 :

J'aime vraiment bien l'approche RDF et je suis toujours curieux des évolutions et du déploiement, mais je me demande toujours si on a pas adopté une mauvaise approche.

Premièrement, RDF a un formalisme pratique pour les machines, mais pas du tout pour les hommes. C'est l'homme qui doit se plier à la logique du premier ordre pour décrire son contenu (et c'est pas gagné).

Quand on voit que Powerlabs (http://www.powerset.com/) extrait ses fichiers RDF de la structure des liens et des phrases, je me demande si il est bien nécessaire de modifier le Web pour accéder au Web sémantique? De plus une approche inductive comme celle-là évite pas mal de fraudes.

Deuxièmement, les déductions réalisable avec RDF sont souvent des problèmes NP-complet ou indécidable. C'est gérable pour le moment car la quantité de donnée reste petite en énumérant les solutions, mais si tout le Web s'y met on risque de voir rapidement les limites de l'approche.

Comme tu connais bien le sujet, pourrais-tu partager ton avis sur ces deux points?

(Ce serait pas mal de pouvoir faire plusieurs retour de ligne pour éclaircir les commentaires)

Samuel Martin le 26/04/2008 :

Merci pour ce retour ! Mon premier réflexe a été de tester les microformats, mon prochain test sera donc pour les "RDF".

La conférence m'a donné vraiment envie d'explorer le "web sémantique", je ne pense pas être le seul ! On regrettera juste que c'est tous les ans et non pas plus souvent :).

David, biologeek le 27/04/2008 :

@Neoveov :

> Ce qui m'inquiète encore plus, c'est qu'il y ait une bataille entre microformats et RDFa.

Ça reste très amical, on connaît les atouts et les faiblesses de chacun :-)

> Je regrette que l'on ait à choisir entre quelque chose de bien, simple mais limité et quelque chose de très bien, extensible mais compliqué et long à prendre en main.

C'est un peu pareil pour tout, Dreamweaver est simple mais limité, se faire de la css à la main est plus compliqué et long à prendre en main par exemple. Tout dépend des objectifs.

@Ikipou :

> je me demande si il est bien nécessaire de modifier le Web pour accéder au Web sémantique?

En bon adepte de Python, je préfère ce qui est explicite à ce qui est implicite. Maintenant il est évident que l'on va aller vers une convergence des deux approches, ne serait-ce que pour exploiter les contenus anciens.

> De plus une approche inductive comme celle-là évite pas mal de fraudes.

Là c'est sous-estimer les capacités des spammeurs :-)

> si tout le Web s'y met on risque de voir rapidement les limites de l'approche.

Clairement, c'est la raison pour laquelle la technologie doit évoluer en parallèle. Aujourd'hui il est impensable de crawler toutes les heures les fichiers FOAF de toutes les personnes ayant commenté ici afin de mettre à jour leurs informations. Dans quelques temps ça nous fera peut-être sourire, le P2P a un grand rôle à jouer à ce niveau, GApp ou AWS ne sont que les prémices d'un nuage mondial qui sera réparti entre les machines connectées au réseau...

@Samuel Martin :

> La conférence m'a donné vraiment envie d'explorer le "web sémantique"

\o/ c'était le but ;-).

bruno bichet le 29/04/2008 :

Salut David,

Ne t'inquiète pas, tes talents d'explicateur ne sont sûrement pas en question si j'en juge ma propre incompréhension du web sémantique à travers RDF/RDFa et pourtant je suis inscris à la liste de discussion du web sémantique. Bon, en même temps, ceci explique peut-être celà :D

Et pourtant, je comprends bien les enjeux et tout et tout, mais je n'arrive pas encore à percevoir la manière de mettre concrêtement en oeuvre ces techniques.

J'y mets peut-être un peu de mauvaise volonté malgré moi car je suis attaché au principe des microformats...

Entre microformats et RDF, j'ai un peu le sentiment qu'on veut faire le chemin inverse de ce qui s'est passé entre xhtml2 et html5 : si html5 se rapproche des microformats, xhtml2 serait le pendant RDF en terme de sémantique et de "rigueur".

J'espère me tromper, mais je trouve qu'on se prépare des guerres de tranchées entre les tenants d'une approche stricte de la structuration des contenus et une autre plus "cool".

David, biologeek le 29/04/2008 :

@bruno bichet : En fait pour moi la guerre a déjà eu lieue et je pense que les microformats ont perdu.

Leur credo c'est « Designed for humans first and machines second » et c'est déjà un contre sens vu la syntaxe demandée. Une personne ne connaissant pas html est obligée de passer par un générateur. Du coup quel avantage face au RDFa par exemple ? Je n'en vois aucun, si ce n'est qu'il manque des outils du côté du Web Sémantique.

Si je prends le temps d'expliquer tout ça, c'est secrètement pour que mes lecteurs geeks développent de tels outils car je manque de temps ;-).

shingara le 30/04/2008 :

Merci beaucoup de nous avoir fait ce billet. Personnellement, n'habitant plus Paris, je n'ai pas pu venir à la conférence au WASP. Grâce à toi, je comprend un peu mieux le web sémantique.

Tu en as parlé régulièrement, mais j'avoue ne jamais avoir bien compris le système. J'en comprend enfin beaucoup plus.

Je me dis que ce serait vraiment bien d'essayer de m'y intéresser encore plus.

Erwan le 18/09/2008 :

Bonjour,
La méthode RDFa est séduisante ; elle ouvre beaucoup de perspectives et, de mon point de vue, les microformats sembleront très insuffisants à beaucoup de gens. Pour en revenir à RDFa, je ne parviens pas à savoir s'il est possible d'y adosser une ou plusieurs références à des ontologies OWL (autre que via la propriété sameAs). La possibilité de faire des inférences plus ou moins élaborées (via OWL Lite voire DL) est un des intérets du web sémantique ; cela rendrait la chose intéressante en soi, y compris dans le cadre d'une utilisation interne à un site (Inter, extra et même intranet).
RDFa ressemble tout de même beaucoup à une "rustine", à une solution qui demeure - en l'état de mes connaissances - transitoire, car parallèle à l'alimentation d'une base de données relationnelle. Et sauf erreur, avec le web sémantique seul on se heurte à l'impossibilité de faire du calcul algébrique, uniquement du calcul logique. Si cette limite se confirme, c'est une limite importante.

La tâche de simplification de l'utilisation de la méthode RDFa revient clairement aux CMS : il devront être capables de nous aider à définir un canevas d'utilisation, puis dans ce cadre, de faire des suggestions compréhensibles et manipulables par le plus grand nombre des créateurs de contenus. Vaste chantier. Mais passionnant chantier.

Alex. le 18/09/2008 :

@Erwan> Pour RDFa tu peux bien sur typer les relations que tu utilises, et les objets que tu définis.
Par exemple que tu parles d'une instance de foaf:Person et que tu définis une relation foaf:interest vers un sujet donné.
A partir de là, quand tu fais des requêtes ou de l'agrégation de données (si ton moteur le permet) tu bénéficie de capacités d'inférence via l'utilisation des ontologies choisies pour modéliser tes données / relations.
Est-ce que ça répond à ta question ?

Qu'est-ce que tu entends dans la 2e partie ? Pour le // à la BD, RDFa permet d'exposer tes données, pas de les saisir. Pour ce faire tu peux en effet passer par un CMS (qui en affichant tes pages, va te mettre du RDFa là ou il faut), mais aussi coder ta page à la main en ajoutant tes annotations RDFa là où ça t'interesse.

Erwan le 18/09/2008 :

Merci de ton commentaire. Pour le côté "rustine" (sans aucun doute très exagéré), je veux dire qu'idéalement la base elle-même devrait stocker les triples RDF, et ne pas avoir à faire appel à un parseur qui va stocker les données en double ailleurs (je peux me tromper, c'est ainsi que j'ai compris les choses en tout cas.).
En outre, à mon sens l'ajout de triples RDF devrait pouvoir se faire directement dans le CMS, en ayant facilement la main sur les trois éléments, constamment : sujet, prédicat et objet. Il y a un module Drupal qui dessine des pistes intéressantes, mais je ne suis pas sûr du tout que ça passe par RDFa. On peut mettre du RDF au niveau du gabarit, comme le suggère Gautier, mais cela ne sous-entend-il pas que les éléments du gabarit (un ou plusieurs élément(s) composant le triple RDF, sans parler des déclarations d'espaces de nommage en amont) sont moins accessibles au rédacteur de contenu que d'autres ? Quant au codage intégral à la main (dans un contenu non structuré), cela me semble être quelque chose de très "hard". Je pense qu'on devrait pouvoir faire ça aussi facilement qu'une mise en italique, à ceci près que ce serait une mise en italique avec trois options, trois listes déroulantes autonomes et... hum, chaque liste étant éventuellement complétable. Un dispositif semblable serait à prévoir pour la déclaration des espaces de nommage. Bon enfin il y a des dispositifs pratiques à mettre au point au niveau du backend.

C'est sans doute une souplesse dont on peut se dispenser, mais seulement dans certains cas très bien balisés (je pense par exemple à l'alimentation de fiches techniques, composées de plusieurs champs dont le contenu est toujours de même nature ; il n'y a que le sujet à changer par exemple). Mais si tu as un site qui traite de sujets assez variés (et que tu veux ajouter du "sémantique" ailleurs que sur le titre, la date ou autres éléments récurrents de cette nature), cela implique je crois de pouvoir facilement "varier les plaisirs" aussi en matière d'ajouts de richesse sémantique. Mon propos n'est peut-être pas très clair, il faut dire que je ne suis encore qu'en phase de découverte...

Olivier Duffez (WebRankInfo) le 19/05/2009 :

Merci pour cet article passionnant (signalé dans les commentaires de mon post sur WRI : http://www.webrankinfo.com/dossiers/techniques/rich-snippets ), qu'il faudra que je relise plus en détails...
En tout cas il me donne envie d'utiliser RDFa sur mes sites plutôt que les microformats ;-)

Blog E-Tourisme le 23/12/2010 :

Bjr,
merci pour cet excellent article, néanmoins entre Microformat, RDFa et désormais l'OpenGraph protocole j'en perds un peu mon latin... Doit-on utiliser toutes ces meta données dans son site où pensez vous qu'un unique standard va enfin se dessiner ?
Cdlt,
Nicolas