XHTML Sans Pertes

Mardi soir, Kevin Marks et Tantek Çelik de Technorati donnaient une conférence au SDForum sur le XHTML Sémantique. Néanmoins, au lieu de l'appeler XHTML sémantique, je l'appellerais "Lossless XHTML".

Le premier exemple sur lequel Kevin nous a emmené venait du site des élections US de Technorati où ils tracent les billets les plus liés provenant d'un ensemble de blogueurs politiques.

Ils génèrent la page sous XHTML, par conséquent elle peut être parsée. Durant les deux principales conventions des partis, ils ont lu la page comme une base de données et mis à jour un chart Flash montrant l'émergence et la chute en liens vers les principaux blogs influenceurs.

Ils ont utilisé la page politique comme une vision "dénormalisée" de leur base de données de liens.

Tantek a relancé avec une marche à travers les structures de données représentées en XHTML.

Vous vous rappellerez probablement des travaux de Tantek, Matthew Mullenweg et d'Eric Meyer avec l'attribut rel de l'ancre qui produisait XFN, pour décrire à un niveau de programmation la relation entre une auteur et une personne.

Mais le hack qui m'a fait écarquiller les yeux était de représenter les "hashes" sous forme de Listes de Définition.

XFN a un profil listant les valeurs autorisées de toutes les relations. Il les représente avec une liste de définition embarquée.

La liste de définition embarquée devient une flèche associative : une structure commune utilisée tout le temps dans les langages de programmation.


friendship: 



{
contact: "Quelqu'un avec lequel vous savez comment entrer en contact. Souvent symétrique." acquaintance: "Quelqu'un avec lequel vous avez échangé des salutations et pas beaucoup plus -- peut-être une conversation courte ou deux. Souvent symétrique.", friend: "Quelqu'un avec lequel vous êtes ami. Un compatriote, pote, familier(garçon|fille) que vous connaissez. Souvent symétrique."
}

OPML pour les blogrolls Macintosh Property Lists contient le même type de données hiérarchiques.

Si vous les transformez en XHTML et utilisez class l'attribute pour capturer les rôles, vous convertissez losslessly un document non lisible par le navigateur ou le "hashez" en XHTML. Editer votre blogroll ou fichier propriété peut être fait dans un éditeur HTML.

<div><h3>Blogroll</h3>
<dl class="outline">
    <dt class="url"><a href="http://exemple.com">http://exemple.com/</a></dt>

    <dd class="text">Un site utilisé comme un URL exemple dans les RFCs.</dd>
    <dt class="url"><a href="http://www.w3.org">http://www.w3.org/</a></dt>
    <dd class="text">A standards body</dd>

    ...
 </dl>
</div>

Un crawler ou un lecteur de fils pourraient parser cela à l'intérieur d'un hash. Une feuille de style XSLT pourrait le transformer en OPML. Il existe une transformation XSLT pour passer un Liste de Propriété iTunes en RDF. Passer de l'une à partir du XHTML serait une modification de la transformation.

Le style peut ressembler à de la programmation littéraire, mais les commentaires et le code sont uniques et les mêmes.

Ces techniques sont des transformations de données sans perte vers le XHTML pour présentation.

Kevin et Tantek sont en train de chercher d'autres formats communs et des structures qu'ils peuvent représenter en XHTML. Au foo camp de cette année, ils ont commencé par attaquer le format iCalendar.

Le site de Tantek a des exemples de cela en action.

Je crois que cela résoud quelques plaintes soulevées par les gens à propos du Web Sémantique. XHTML fournit un langage commun et des profils tels que XFN sont des vocabulaires communs.

Le web est par nature cassé : les liens référencés au-dessus peuvent avoir expiré ou bougé depuis que cette entrée a été publiée.

© 1996-2006, Bill Humphries.

Cette branche de site web est exclusivement réservé à mieux faire connaître les microformats en francophonie. Elle a aussi pour intention de mettre en exergue les discussions les plus animées publiées dans la semaine passée en suivant les listes de discussion des microformats, le tag  sur Technorati (et d'autres sources restant à recenser). Si vous souhaitez participer à quelques contenus francophones, ajoutez un tag ‘’ à vos publications.