A-t-on encore besoin d’atome ?

Publié le et mis à jour le par /

Lorsque sont apparus il y a quelques années les formats de syndication RSS puis ATOM, ils ont permis une importante évolution de notre usage du Web. Plus besoin désormais de faire régulièrement le tour de nos sites Oueb favoris pour savoir s’ils avaient publié de nouvelles histoires, nous pouvions en être avertis par des robots qui se chargeaient à notre place de cette veille. Mais à vrai dire, pour l’essentiel de leur utilisation, la valeur ajoutée de RSS et ATOM est faible. Ils fournissent juste une API, une version alternative d’une page d’un site, rendue nécessaire par la pauvreté sémantique du HTML du temps jadis.

À l’époque, pas moyen en effet d’indiquer au sein d’une page qu’une balise contenait le titre d’un article, que telle autre chaine était sa date de publication, etc. Le Web manquait de sémantique. Cette préhistoire est heureusement loin derrière nous, nous avons à présent les moyens de décrire finement la sémantique de nos pages, et plutôt trois fois qu’une, via au choix les microformats, les micro-données d’HTML 5 ou RDFa. Des vocabulaires existent pour décrire le contenu d’un journal, par exemple hAtom pour les micro-formats ou Blog pour les deux autres.

Pour permettre à un robot d’interpréter les pages de nos journaux, il n’y a désormais plus besoin de créer une version spécifique pour eux, formatée en RSS ou ATOM. L’ajout de quelques attributs dans le HTML servi à tous les visiteurs, humains ou non, devrait suffire. C’est une expérience que je mène ici. En consultant le code source de la page d’accueil de ce journal, vous devriez découvrir une bouillie d’attributs destinés aux robots. Bouillie car je me suis amusé à implémenter les trois formats, d’où pour chaque informations trois syntaxes redondantes.

Le résultat est visible par exemple via un outil de Google : données structurées extraites de ce journal. Vous pouvez vérifier que toutes les informations habituellement présentes dans les flux RSS/ATOM sont disponibles directement dans le HTML, rendant le flux ATOM redondant et inutile.

Généraliser ce comportement ne devrait pas être très compliqué. Vu le nombre de journaux utilisant quelques CMS tels que Dotclear, Wordpress, SPIP… fournir des modèles de page intégrant davantage de sémantique suffirait à rendre bon nombre de sites plus sémantiques. Le principal problème me semble plutôt à chercher du côté des clients. Analyser un fichier XML est plus simple qu’analyser du HTML 5 et en extraire des données encodées en RDFa ou autre. De bonnes bibliothèques capable d’extraire les informations sémantiques manquent encore.

Le Web est l’API, scandent certains zélotes. Dans le cas de nos journaux au moins, l’affirmation me semble justifiée. Ne reste plus qu’à la mettre en pratique.

PS: une API DOM implémentée par exemple par Firefox permet d’extraire les micro-données. Vous pouvez essayer ce code depuis la console de Firebug pour voir le résultat. Ce site envoyant les entêtes CORS kivonbien, ces quelques lignes de JavaScript devraient passer de partout.

Mises à jour

  • 8 janvier 2013 — j’ai créé un exemple de code montrant comment extraire les informations au format RDFa avec la bibliothèque Green Turtle ;
  • 9 janvier 2013 — Karl me signale le vocabulaire AtomOwl qui reprend tous les concepts d’ATOM et permet de les exprimer en RDF. Idéal donc pour baliser un carnet ;
Pour réagir, n'hésitez-pas à m'écrire : clochix chez clochix.net ou à soumettre l'url de votre commentaire :
(Je traite les mentions à la main, elles peuvent mettre plusieurs jours avant d'apparaître)

Si vous avez un compte Github, vous pouvez me proposer des corrections en éditant ce billet

Fork me on GitHub