DRY pour Don’t Repeat Yourself est un principe très simple: on évite au maximum d’écrire plusieurs fois les mêmes lignes de code.
Dans une framework orientée Web comme Ruby on Rails ce principe s’applique de plusieurs manières. Prenons le cas des vues, sur Feedbooks, on affiche à plusieurs reprises un livre de la manière suivante:

Au lieu de recopier dans chaque page où j’affiche un livre de cette manière le même bout de code, j’appelle une vue partielle. Comme cela si le lien vers un livre change, il suffit de le changer dans un seul fichier pour que cela s’applique à toutes les pages. C’est un principe qui permet de rendre le code plus concis et lisible mais aussi plus évolutif en général. On l’aura remarqué, c’est un critère essentiellement visuel qui me permet de ne pas avoir à reproduire les lignes de code: visuellement l’information est présentée de la même manière.
Le RDFa (par ici pour ceux qui ont peur à la vue de ce terme) est toujours présenté comme suivant ce même principe DRY.
Dans un sens c’est vrai, si je veux par exemple marquer qu’une information est un titre il me suffit de faire:
<h1 property="dc:title">Titre</h1>
Je me content de marquer la nature de l’information (dc:title, un titre) et je n’ai pas à ajouter de nouveau le titre dans l’information structurée: on suit bien un principe DRY.
Mais reprenons le cas de mon livre: si visuellement il est toujours présenté de la même manière, avec les mêmes liens, le contexte lui peut être très différent. Je pourrais par exemple l’afficher dans la page des favoris d’un utilisateur, dans une liste de lecture ou comme une recommandation.
Si la représentation visuelle de l’information ne change pas, son sens lui peut être complètement différent et il devient bien plus difficile d’appliquer un principe DRY de cette manière.

J’apprécie beaucoup ce petit schéma venant tout droit du RDFa Primer, et présentant de manière très simple le principe de ce standard: qu’une même information aient du sens pour un humain comme pour une machine. Mais on se heurte rapidement à pas mal de questions sur la manière de mettre tout cela en pratique encore. Maintenant que RDFa est officiellement une recommandation W3C il s’agit de se demander dans quels cas faut-il ou non marquer sémantiquement l’information, quels principes à appliquer lors du développement d’une application sémantique ou encore comment intégrer cette technologie à des frameworks comme RoR ou Django.

