Carnet Wiki

MicroFormats

Version 4 — Mars 2007 NicolasR

hAtom

hAtom est un microformat pour réaliser des pages directement syndicables, au départ mais pas exclusivement pour des blogs. hAtom est construit sur la base d’Atom le format de syndication ; chaque élément d’ hAtom a une définition existante dans Atom.

Cette traduction du microformat est une traduction française du brouillon en cours ; merci de faire vos remarques sur le site mère http://microformats.org/wiki/hatom.

TOC

Spécifications du Brouillon de travail

Éditeur David Janes, BlogMatrix.

Auteurs David Janes

Contributeurs Benjamin Carlyle

Copyright Cette spécification bénéficie d’un dépôt de copyright par ses auteurs. Cependant, les auteurs souhaitent soumettre cette spécification sous forme d’un standard avec une licence libre comme celles de GMPG, IETF, et/ou W3C. Tout ceux qui souhaitent contibuer doivent en lire les principes, polices et licences (par exemple celle de GMPG ) et en accepter les termes, y compris soumettre toutes ses contributions sous les licences nécessaires (exemple CC-by 1.0 et plus), avant de participer.

Brevets Cette spécification est sous le coup d’un brevet d’usage gratuit, cf les Polices de Brevet du W3C, de l’IETF RFC3667 & RFC3668.

Introduction

Principes d’un Design Sémantique en XHTML

Principes-design-Sémantique-xhtml

Format

-  En Général :
Le Format de Syndication Atom fournit les bases conceptuelles de ce microformat, avec les particularités suivantes :

  • Atom fournit bien plus de fonctionnalités que nous n’en avons besoin pour un microformat de « blog », alors nous avons pris le minimum d’éléments nécessaires. Ceux-ci peuvent (et probablement devront) être augmentés.
  • Le modèle « logique » d’hAtom est celui d’Atom. S’il y a conflit, Atom doit être considéré comme la référence.
  • Le modèle « physique » d’ hAtom - l’écriture actuelle des éléments - est un peu plus variée que ce qu’Atom nous fournit, ceci est lié à la diversité des weblogs actuellements sur le net. Le microformat hAtom fournit un certain nombre de règles pour tenter d’en « combler le fossé »
    : : ’’par exemple, s’il manque un auteur en entrée (nécessaire pour Atom), celui de la page XHTML sera attribué".

Schéma

Les éléments du Schéma sont basés sur la nomenclature d’Atom et suivent les spécifications des microformats avec en préfixe un identifiant unique (dans ce cas, atom) pour l’élément contenant le plus externe — le Feed ou l’Entrée. Les parties de ce microformat sont fondées sur l’analyse de nombreux blogs, Bulletins et flux de media qui peuvent être lus. Notez le renommage d’ ’EntryGroup’ en ’Feed’ pour être plus en phase avec la terminologie d’Atom.

Nomenclature

Concept Identifiant Atom hAtom Microformat Usage
Feed atom:feed Ajouter class="feed"
Entrée atom:entry Ajouter class="entry" ; si nécessaire, définir aussi id="identifiant-unique" en Entrée.
Titre de l’entrée atom:title Ajouter class="title", alternant avec <h#>.
Contenu de l’Entrée atom:content Ajouter class="content" à tous les blocs appropriés. Des blocs de contenu à multiples entrées sont logiquement considérés comme équivalents à un seul concaténé atom:content.
Sommaire de l’Entrée atom:summary Ajouter class="summary" à tous les blocs appropriés. Des blocs de sommaire à multiples entrées sont logiquement considérés comme équivalents à un seul concaténé atom:summary.
Entrée Lienpermanent atom:link Ajouter rel="bookmark".
Entrée Publié atom:published Utiliser <abbr class="published" title="YYYYMMYYThh:mm:ss±ZZ:ZZ">...</abbr>, suivant le datetime-design-pattern.
Entrée Mise à jour atom:updated Utiliser <abbr class="updated" title="YYYYMMYYThh:mm:ss±ZZ:ZZ">...</abbr>, suivant le datetime-design-pattern.
Entrée Auteur atom:author Ajouter class="author" aux blocs appropriés. En utilisant plutôt <address class="author">...</address>. L’ajout d’une hCard est vivement recommandée.
Entrée Contributeur atom:contibutor Ajouter class="contributor"aux blocs appropriés . En utilisant plutôt <address class="contributor">...</address>. L’ajout d’une hCard est vivement recommandée.

Règles d’imbrication

Concept Imbriqué Dans hAtom Opaque Cardinalité Cardinalité Logique
Feed HTML document Non 1-N 1-N
Entrée Feed Non 0-N 0-N
Titre de l’Entrée Entrée
Entrée Lien Permanent
Non 0-N 0-1
Entrée Contenu Entrée Oui 0-N 0-1
Entrée Sommaire Entrée Oui 0-N 0-1
Entrée Lien Permanent Entrée
Entrée Titre
Entrée Publié
Non 0-N 1
Entrée Publié Entrée
Entrée Lien Permanent
Non 0-N 0-1
Entrée Mise à jour Entrée
Entrée Lien Permanent
Non 0-N 1
Entrée Auteur Entrée Oui 0-N 1-N
Entrée Contibuteur Entrée Oui 0-N 0-N

hAtom Opaque

« hAtom Opaque » spécifie si un programme lecteur d’hAtom doit « regarder à l’intérieur » de l’élément à la recherche d’autre contenu hAtom. S’il y a des multiples règles appliquées au même élément le OU ou les deux seront utilisées. ( i.e. le « Oui » gagne toujours)

 : ’’hAtom Opaque a été conçu pour rendre les règles de lecture moins ambigües. En particulier, il permet à des éléments hAtom « quotés » (à partir d’un autre blog, par exemple) d’être ignorés. Il permet également à des éléments ’conçus pour’ hAtom d’être redistribués par ce même hAtom, et de prévenir un accident lié à une autre information de microformat au sein d’un conteneur hAtom."

Cardinalité

Combien de fois un élément d’un type donné peut-être déclaré dans son élément parent.

-  Cardinalité Logique

À partir d’un modèle logique, le nombre de fois ou un élément pet apparaître.
 :« Cela dépend directement des règles, voir au-dessus. Par exemple, une Entrée Lien Permanent peut apparaître six fois, mais chaque une d’entre elles doit avoir la même valeur ; une Entrée Contenu peut apparaître trois fois, mais ces trois sont concaténés pour faire un seul élément logique. »

-  Règles & Définitions

Voir la section Règles d’imbrication (plus loin) pour ces éléments.

-  Feed

  • Un élément Feed XHTML est identifié par class="feed"
  • Un élément Feed est conceptuellement : « un conteneur pour les Entrées »
  • L’élement Feed est nécessaire, même s’il n’y a qu’une Entrée : « Pour qu’il n’y ait pas d’ambiguïtée »
  • Les documents hAtom PEUVENT avoir de multiples, non imbriqués, élements Feed : « cela peut se voir sur de nouvelles pages ou des weblogs avec des « mini-blogs » dans des barres latérales. »

-  Entrée

  • Un élément d’Entrée est identifié par class="entry"
  • Un élément d’Entrée est conceptuellement conforme à l’entre rfc 4.1.3 d’atom
  • Une entrée de weblog DOIT être incluse dans un élément Entrée spécifique : « C’est fait pour, après tout. »
  • Une Entrée DOIT être dans un élément Feed contenant
  • « Cette élément conteneur peut-être le même que celui de l’Entrée — i.e. class= »feed entry« est ok pour des fils avec une entrée isolée. »

-  Entrée Titre

  • Une Entrée Titre est identifiée par class="title"
  • Un élement Entrée Titre peut être alternativement identifié par<h#>
  • Un élément Entrée Titre représente le concept « entry title » décrit dans les RFC section 4.2.14 des spécifications atom
  • Mise au point
    • Le premier élément hAtom valide avec un class="title" est l’Entrée Titre : « la signification de la validation hAtom est que l’on espère qu’il soit où on l’attend (pas à l’intérieur d’une Entrée Contenu, par exemple). »
    • Ou alors, le premier élément hAtom valide
      <h#> apparaissant est l'Entrée Titre.
      -**Ou alors, l'Entrée Titre est une chaîne vide : "Atom n'autorise pas une entrée à ne pas avoir de titre."
      
      
      -{{Entrée Contenu}}
      -*Elle est identifiée par <code>class="content"
  • Un élement Entrée Contenu correspond au concept « atom content » des spécifications atom.
  • Une Entrée PEUT avoir 0 ou plus éléments Entrée Contenu : « Cela diffère de la spécification Atom : voir la règle suivante. »
  • Le « contenu logique d’Entrée Contenu » d’une Entrée est la concaténation, par ordre d’apparence, de tous les Entrée Contenu à l’intérieur de l’Entrée : « De nombreux Blogs fractionnent leur contenu en de multiples sections avec un lien « Lire la suite » ou quelque astuce javascript. C’est également utile dans les cas où les titres sont mélés au contenu et sont donc considérés comme ne faisant partie. »
  • L’ « Entrée Contenu » logique DOIT être complète ; c’est à dire, contenir l’intégralité des contenus de l’Entrée : "Sinon, elle aurait dû être marquée « Entrée Sommaire. »

-  Entrée Sommaire

  • Un élément Entrée Sommaire est identifiée par class="summary"
  • Un élément Entrée Sommaire correspond au concept « atome summary » de la spécification atom (rfc 4.2.13)
  • Une Entrée PEUT avoir 0 ou plus éléments Entrée Sommaire : « Cela diffère de la spécification Atom : voir la règle suivante. »
  • L’ « Entrée Sommaire » logique d’une entrée est la concatenation, par ordre d’apparition, de toutes les Entrée Sommaire à l’intérieur de l’Entrée.

-  Entrée Lien Permanent

  • Un élément Entrée Lien Permanent est identifié par rel="bookmark" : ceci est une rupture de la terminologie Atom sur ce point car cette Entrée nécessiterait un micorformat par elle-même.
  • Un élément Entrée Lien Permanent correspond au concept atom « link in an entry » de la rfc 4.2.7
  • Une Entrée Lien Permanent DOIT être une URI absolue
  • Une Entrée Lien Permanent DOIT être identique à atom:link (ou rss:link) utilisé dans les fils de syndication
     : ’’L’intérêt de ces deux règles précédentes est d’amener gentiment à l’usage de chaînes identiques. En général les les URI canoniques sont le lien à utilise dans une Entrée Atom." : « Y a t il un problème avec FeedBurner ? »
  • Si une Entrée a des éléments multiples de type « Entrée lien permanent », ils doivent tous avoir exactement la même URI
  • Une Entrée DOIT avoir une Entrée Lien Permanent :« Il y a des circonstances particulières (pages média) ou cela ne se peut pas. Voir la règle suivante. »
  • Il peut y avoir au plus une Entrée dans document XHTML sans Entrée Lien permanent ; L’Entrée lien Permanent de cette entrée est du coup l’URI de la page :« Cette règle est utile pour les pages media (i.e. article d’actualité de cnn.com). Cela a quelque chose de moche car alors l’URI peut-être non canonique ».

Mise au point

  • Le premier élément d’Entrée marqué comme une Entrée Lien Permanent EST l’Entrée Lien Permanent

-  Entrée Publié

  • Un élément Entrée publiéeest identifié par class="published"
  • Un élément Entrée Publiée au conceptatom published de la RFC 4.2.9
  • Le format de date lisible par la machine doit être encadré par <abbr> en utilisant datetime-design-pattern ;
    le format de date lisible par la machine doit être complet avec la zone de temps inclue : ’’Ceci pour être cohérent avec l’Atom Datetime Construct.
  • Optionnellement, ceci peut-être spécifié via un élément HTML avec l’ISO datetime dans le texte.
     : ’’C’est plus moche pour le lecteur, mais c’est possible.’’

Mise au point

  • Le premier élément valide comme Entrée marquée Entrée Publié EST l’Entrée Publié de l’Entrée

-  Entrée Mis à Jour

  • Un élément Entrée Mis à Jour est identifié par class="updated"
  • Un élément Entrée Mis à Jour correspond au concept atom updated
  • La date en format lisible par une machine doit être encodée avec un the machine readable datetime should be encoded with an <abbr> en utilisant le datetime-design-pattern ;
    le format de date lisible par la machine doit être complet avec la zone de temps inclue
     : ’’Ceci pour être cohérent avec l’Atom Datetime Construct.
  • S’il n’y a pas d’élement Entrée Mis à Jour, sa valeur est considérée comme étant celle de l’Entrée Publié
     : ’’Entrée Publié est plus souvent utilisé dans les modèles de Blog, alors on va faire avec.’’
  • S’il n’y a pas d’Entrée Mis à Jour ni d’Entrée Publié, l’Atomisation est problématique if there is no Entry Updated and Entry Published elements, transformation to Atom is problematic
     : ’’C’est parcequ’un élément publier est nécessaire. Les suggestions sont les bienvenues sur ce point.’’
  • Eventuellement, ceci peut-être spécifié via un élément HTML avec l’ISO datetime dans le texte.
     : ’’C’est plus moche pour le lecteur, mais c’est possible.’’

Mise au point

  • Le premier élément valide comme entrée indiqué Entrée Mis à Jour EST l’élément Entrée Mis à Jour

-  Entrée Auteur

  • Un élément Entrée Auteur est identifié par class="author"
  • Un élément Entrée Auteur DOIT utiliser un élément XHTML <address>
  • Un élément Entrée Auteur correspond au concept atom author de la RFC 4.2.1
  • Un élément Entrée Auteur DOIT contenir un hCard
     : ’’S’il n’en contient pas, le texte est considéré comme étant de fait le FN.’’
  • Une Entrée PEUT avoir 0 ou plus éléments Entrée Auteur
  • Si une Entrée a 0 élément Entrée Auteur, l’Entrée Auteur « logique » est l’auteur de la page XHTML : « Atom nécessite au moins un auteur »

-  Entrée Contibuteur

  • Une Entrée Contributeur est identifiée par class="contributor"
  • Un élément Entrée Contributeur DOIT utiliser l’élément XHTML <address>
  • Un élément Entrée Contributeur correspond au concept atom contributor
  • Un élément Entrée Contributeur DOIT contenir un hCard
     : ’’S’il n’en contient pas, le texte est considéré comme étant de fait le FN.’’
  • Une Entrée PEUT avoir 0 ou plus éléments Entrée Contributeur

Profil XMDP

<pre>
<dl class="profile">
 <dt>classe</dt>
 <dd><p>
  <a rel="help" href="http://www.w3.org/TR/html401/struct/global.html#adef-class">
   Définition HTML4 de l'attribut 'class' .</a>
  Ce profil de méta données définie quelques valeurs d'attributs 'class' (noms de classes) 
 et leur signification comme suggéré sur
  <a href="http://www.w3.org/TR/WD-htmllink-970328#profile">
   le document de travail des  "Liens [->HyperTextes] en HTML"</a>.
  <dl>
   <dt>feed</dt>
   <dd>
    Le concept de atom:feed, à partir de
    <a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php">Le Format de Syndication Atom</a>, 
    utilisé et adapté par les <a href="http://microformats.org/wiki/hatom">spécifications du microformat hAtom</a>.
   </dd>
   <dt>Entrée</dt>
   <dd>
    Le concept de l' atom:entry du
    <a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php">Format de Syndication Atom</a>, 
    utilisé et adapté par les <a href="http://microformats.org/wiki/hatom">spécifications du microformat hAtom</a>.
   </dd>
   <dt>contenu</dt>
   <dd>
     Le concept de l'  atom:content du
    <a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php">Format de Syndication Atom</a>, 
    utilisé et adapté par les <a href="http://microformats.org/wiki/hatom">spécifications du microformat hAtom</a>.
   </dd>
   <dt>sommaire</dt>
   <dd>
     Le concept de l'  atom:summary du
    <a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php">Format de Syndication Atom</a>, 
     utilisé et adapté par les <a href="http://microformats.org/wiki/hatom">spécifications du microformat hAtom</a>.
   </dd>
   <dt>signet</dt>
   <dd>
     Le concept de l' atom:link (sans aucun "rel") avec une atom:entry du
    <a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php">Format de Syndication Atom</a>, 
     utilisé et adapté par les <a href="http://microformats.org/wiki/hatom">spécifications du microformat hAtom</a>.
   </dd>
   <dt>publié</dt>
   <dd>
     Le concept de l'  atom:published du
    <a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php">Format de Syndication Atom</a>, 
     utilisé et adapté par les <a href="http://microformats.org/wiki/hatom">spécifications du microformat hAtom</a>.
   </dd>
   <dt>mis à jour</dt>
   <dd>
     Le concept de l'atom:updated du
    <a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php">Format de Syndication Atom</a>, 
     utilisé et adapté par les <a href="http://microformats.org/wiki/hatom">spécifications du microformat hAtom</a>.
   </dd>
   <dt>auteur</dt>
   <dd>
     Le concept de l'atom:author du
    <a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php">Format de Syndication Atom</a>, 
     utilisé et adapté par les <a href="http://microformats.org/wiki/hatom">spécifications du microformat hAtom</a>.
   </dd>
  </dl>
 </dd>
</dl>
</pre>

Exemples sur le site original