title:      ★ Le point sur RDF et RDFa
slug:       le-point-sur-rdf-et-rdfa
date:       2008-04-25 14:28:29
type:       post
vignette:   images/logos/semantic_web_activity.png
contextual_title1:  Différences entre identification, autorisation et authentification
contextual_url1:    20080716-differences-entre-identification-autorisation-et-authentification
contextual_title2:  ★ Ma killer app pour le Web Sémantique
contextual_url2:    20080112-ma-killer-app-pour-le-web-semantique
contextual_title3:  GWeb, peut-on encore rêver d&#39;un web libre ?
contextual_url3:    20071202-gweb-peut-on-encore-rever-d-un-web-libre

À lire les comptes rendus de [Samuel Martin](http://blog.creaone.fr/post/2008/04/19/WaSP-cafe-%3A-Web-semantique) et [Nicolas Le Gall](http://blog.neovov.com/index.php?2008/04/23/195-wasp-cafe-3), je me suis vraiment mal exprimé lors de ce dernier [WaSP Café consacré au Web Sémantique](https://larlet.fr/david/biologeek/archives/200842-atelier-d-introduction-au-web-semantique/) (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](http://www.w3.org/2001/sw/interest/) initiée par le W3C et celle des [microformats](http://microformats.org/) 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](http://www.snee.com/bobdc.blog/2008/03/accessibility_problems_with_mi.html), elle pose le problème de la pérénnité de ces formats qui ont une évolutivité assez restreinte (sans parler de [la centralisation](http://semwebdev.keithalexander.co.uk/blog/posts/microformats-not-semantic-web)). Bon je vais pas aller plus loin, ce n'est l'objet de ce billet et [Karl l'a fait bien avant moi](http://www.la-grange.net/2003/12/17.html#xfn).

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 : <abbr title="Resource Description Framework">RDF</abbr>.

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](http://www.lespetitescases.net/rdfaiser-votre-blog-2-la-pratique). 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](https://larlet.fr/david/biologeek/archives/20080224-on-commence-a-faire-des-choses-interessantes/). 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 <abbr title="Friend Of A Friend">FOAF</abbr> 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](http://dbpedia.org/) qui a extrait l'ensemble des données de Wikipedia au format RDF. Il y a [des exemples de requêtes](http://wiki.dbpedia.org/Datasets) pouvant être effectuées. Je vous laisse imaginer tout ce que l'on peut faire avec ([Gautier vous aide](http://www.lespetitescases.net/dbpedia/) 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](https://larlet.fr/david/biologeek/archives/20070906-web-social-rendez-nous-le-controle-de-nos-donnees/). 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](http://websemantique.org) 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é](http://waspcafefrance.webstandards.org/Les-gentils-organisateurs.html), c'était très intéressant de pouvoir en parler mais surtout confronter ces idées avec [Frédéric](http://fredericdevillamil.com/) et je pense que ça a beaucoup apporté en vitalité.

