hRecipe 0.22

From Microformats Wiki
Jump to navigation Jump to search

Ce document est une spécification microformat draft. Bien que les "drafts" soient en quelque sorte mâtures dans le processus de développement, la stabilité de ce document ne peut être garantie, et les implémenteurs doivent être prêts à rester informés des futurs développements et modifications. Suivez cette page wiki, ou suivez les discussions sur la liste de discussion microformats-new pour rester informé.

hRecipe.png

hRecipe est un format ouvert, distribué et adapté pour embarquer l'information concernant les recettes de cuisine dans le (X)HTML, Atom, RSS et le XML arbitraire. hRecipe est l'un des nombreux standards microformats ouverts. Cette page et le Microformat sont dans le domaine public.

hRecipe Microformat Draft Spécification

Editeur
Thomas Lörtsch
Auteurs
Frances Berriman (BBC)
Ben Ward
Toby Inkster
Contributeurs
Andy Mabbett, Frances Berriman, Cameron Perry, John LeMasney, Tantek Çelik, SudarshanP, Ciaran McNulty, Lee Jordan, Robert Bachmann, jeffmcneill, Manu Sporny, Ryan King, HollyMarieKoltz, Straup, Christophe Ducamp, Mercman, Yde, Ameer Dawood, Scottk, Lee Jordan, MonroAlmon, EstevaoSamuel, Brian Suda, SteveL, JohnLeMasney,
Traducteurs
Christophe Ducamp

Les déclarations de #Copyright et des #Brevets Microformats s'appliquent.

Introduction

Le microformat hRecipe est conçu pour le marquage des instructions pour créer des repas, boissons ou items fondés-sur-la-nourriture.

Il est difficile pour un navigateur d'extraire l'information sémantique concernant une recette décrite sur une page web. Les métadonnées comme celles de l'auteur, le nom et les détails comme les ingrédients, la méthode, le temps de préparation etc founissent une information pertinente sur la recette.

Disposer d'une telle information marquée peut fournir un bon nombre d'avantages pour le visiteur. Si un navigateur web contient une recette avec des caractéristiques spécifiques, il peut produire des interactions plus riches. Par exemple, des recherches spécifiques peuvent être exécutées pour les ingrédients ou auteurs via des services de recherche généraux tels que Google et Wikipedia. En outre la classification par les crawlers peut devenir plus précise. S'il y a 20 recettes trouvées sur une page, et qu'elles contiennent toutes un certain ingrédient, il peut être supposé que la page ne parle pas seulement de cuisine, mais aussi de cet ingrédient en particulier.

Afin de permettre et d'encourager le partage, la distribution, la syndication et l'aggrégation de recettes, les auteurs proposent le microformat hRecipe, un standard ouvert pour les métadonnées distribuées de recette. Les auteurs ont cherché à la fois de nombreux exemples de recettes dans la jungle et les premières tentatives de formats de recettes, et ont conçu hRecipe autour d'un schéma minimal pour le contenu d'une recette. Le feedback est encouragé sur la page hRecipe feedback.

Inspiration et Remerciements

Un grand merci aux différents individus qui ont effectué la recherche et proposé des idées et discussion en rapport avec le format hRecipe et les recettes en général.

Champ d'application

hRecipe est un format pour annoter les descriptions et listes d'ingrédients pour la préparation de la nourriture et des repas. Les recettes partagent de manière cohérente plusieurs propriétés communes. hRecipe a été basé sur ce sous-ensemble commun minimal.

Hors sujet

Les recettes qui ne sont pas pour des trucs ce qui veut dire mangées par des humains sont hors sujet.

Format

Les mots-clés "DOIT", "NE DOIT PAS", "OBLIGATOIRE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDÉ", "PEUT" et "OPTIONNELLE" dans ce document doivent être interprétés comme décrits dans la RFC 2119.

En Géneral

Le format hRecipe est basé sur un ensemble de propriétés communes à de nombreux sites de recettes et les formats en usage aujourd'hui sur le web. Où les noms de propriétés possibles ont été choisis en se fondant sur ceux définis par les standards microformats en rapport.
Quelques propriétés sont marquées comme experimentales parce qu'elles excèdent l'ensemble minimum de propriétés requises pour décrire une recette mais sont encore très communément utilisées sur le web. Il n'est pas sûr qu'elles soient suffisamment pertinentes pour l'inclusion dans le format. L'implémentation et la consommation de ces propriétés seront observées et informeront pour des décisions à venir. Aussi, leur utilisation n'est pas du tout découragée - mais utilisez-les avec soint et soyez prêt à leur éventuel retrait de la spec. finale.


Schéma

Le schéma hRecipe contient les propriétés suivantes :

  • hrecipe
    • fn. requis. texte. le nom de la recette.
    • ingrédient. requis. 1 ou plus. texte optionnel avec marquage (x)HTML valide.
      • value et type. optionnel. [expérimental]
    • yield. optionnel. texte.
    • instructions. optionnel. texte optionnel avec marquage (x)HTML valide.
    • duration. optionnel. 1 ou plus. texte.
    • photo. optionnel. 1 ou plus. en utilisant tout élément contenant une URL, comme IMG. [expérimental]
    • summary. optionnel. texte. [expérimental]
    • author. optionnel. 1 ou plus. [expérimental]
    • published. optionnel. [expérimental]
    • nutrition. optionnel. 1 ou plus. [expérimental]
      • value and type. optionnel. [expérimental]
    • tag. optionnel. 1 ou plus. [expérimental]


Détails des propriétés

Les noms des propriétés fn, photo, author, value et type sont réutilisés à partir de hCard. Le nom de propriété duration est réutilisé à partir de hAudio. Le nom de propriété summary est réutilisé à partir de hCalendar. Le nom de propriété published est réutilisé à partir de hAtom. Le nom de propriété tag est réutilisé à partir de rel-tag.

Les champs du schéma hRecipe représentent ce qui suit :

hRecipe

Un hRecipe est utilisé pour identifier et décrire les valeurs et métadonnées typiquement associées à une recette.

  • Une propriété hRecipe est identifiée par le nom hrecipe

fn

Le titre d'une recette unique. Une description textuelle rapide utilisée pour identifier le travail parmi les parties intéressées. Ce peut être le nom d'un repas ou une description rapide concernant ses ingrédients.

  • La propriété est identifiée par le nom fn.
  • Une recette DOIT inclure un fn.
  • La propriété DOIT suit les conventions précisées dans hCard par ex en utilisant seulement du plein texte.

ingredient

Décrit un ou plusieurs ingrédients utilisés dans la recette.

  • La propriété est identifiée par le nom ingredient.
  • Une recette DOIT inclure un ou plusieurs ingredients.
  • La propriété PEUT inclure un marquage valide HTML (par ex. une liste d'ingrédients).
  • La propriété PEUT inclure les propriétés value et type en suivant les conventions précisées dans hCard,

par ex.

<p class="ingredient"><span class="value">125</span><span class="type">ml</span> milk</p>

Dans ce cas, chaque ingrédient devrait être marqué avec sa propre propriété ingredient. Ces sous-propriétés sont considérées expérimentales et peuvent être retirées de la spécification finale ou remplacées par 'num' et 'unit' en provenance de measure.

yield

Spécifie la quantité produite par la recette, comme le nombre de personnes qu'elle satisfait ou combien de pièces peuvent être produites.

  • La propriété est identifiée par le nom yield.
  • Une recette PEUT inclure un yield.

instructions

La méthode de la recette.

  • La propriété est identifiée par le nom instructions.
  • Une Recette PEUT inclure une propriété instructions.
  • La propriété PEUT inclure un marquage HTML valide par ex. des paragraphes ou une liste des étapes.

duration

Le temps que cela prend pour préparer le repas décrit par la rectte. Plusieurs propriétés 'duration' peuvent être utilisées pour indiquer le temps requis par ex. pour préparer une pâte, le temps de cuire la pâte, le temps pour décorer le gâteau, etc.

  • La propriété est identifiée par le nom duration.
  • Une Recette PEUT inclure une ou plusieurs propriétés duration.
  • La propriété PEUT encoder la durée comme cela est précisé dans le modèle de classe value.

Une durée d'1 heure 30 minutes se traduirait en "PT1H30M" en format ISO 8601 et peut être encodée comme suit :

<span class="duration"><span class="value-title" title="PT1H30M"> </span>90 min</span>

photo

Image d'accompagnement.

  • La propriété est identifée par le nom photo.
  • Une Recette PEUT inclure une ou plusieurs propriétés photo.
  • La propriété DEVRAIT utiliser un élément <img>. Elle PEUT utiliser tout autre élément qui contient une URL , tel que <a> ou <object>, mais ce n'est pas recommandé.

Voir les notes ci-dessous.

  • La propriété est considérée expérimentale et peut être retirée de la spécification finale.

summary

Le 'summary' fournit une brève introduction ou une déclaration d'accompagnement concernant la recette.

  • La propriété est identifiée par le nom summary.
  • Une Recette PEUT inclure un summary.
  • La propriété DOIT suivre les conventions précisées dans hCalendar. Le plein texte remplit ces exigences.
  • La propriété est considérée expérimentale et peut être retirée de la spécification finale.

author

Un 'author' est la personne qui a écrit la recette.

  • La propriété est identifiée par le nom author.
  • Une Recette PEUT inclure une ou plusieurs propriétés author.
  • Les contenus de l'élément PEUVENT être une chaîne de plein texte auquel cas c'est par défaut une "vcard fn". Tout ce qui est plus élaboré DOIT suivre les conventions précisées dans hCard.
  • L'élément est considéré expérimental et peut être retiré de la spécification finale.

published

La date à laquelle la recette a été publiée.

  • La propriété est identifiée par le nom published.
  • Une Recette PEUT inclure une date published.
  • La propriété PEUT être encodée en utilisant le modèle de classe value, par ex.:
<p>Publiée le <span class="published"><span class="value-title" title="2008-10-14T10:05:37-01:00"> </span>14 octobre 2008</span></p>
  • La propriété est considérée expérimentale et peut être retirée de la spécification finale.

nutrition

L'information nutritionnelle comme les calories, les graisses, la teneur en fibres etc.

  • La propriété est identifiée par le nom nutrition.
  • Une Recette PEUT inclure une ou plusieurs propriétés nutrition.
  • La propriété PEUT inclure les propriétés value et type en suivant les conventions précisées dans hCard.

Dans ce cas, chaque information nutritionnelle devrait être marquée avec sa propre propriété nutrition. Ces sous-éléments sont considérés experimental et peuvent être remplacés par 'num' et 'unit' en provenance de measure.

  • La propriété nutrition en elle-même est aussi considérée expérimentale et peut être retirée de la spécification finale.

tag

Un mot-clé indiquant un sujet ou un aspect important de la recette comme son principal ingrédient, le type de repas, etc.

  • La propriété est identifiée par le nom tag.
  • Une Recette PEUT inclure un ou plusieurs tag's.
  • la propriété DOIT suivre les conventions utilisées dans rel-tag.
  • La propriété est considérée expérimentale et peut être retirée de la spécification finale.


Historique de version

vers le modèle de classe value. Aussi corrigé quelques erreurs dans l'exemple tout spécialement à l'égard de la gestion correcte des propriétés vCard.

  • La version 0.21 a modifié le statut de 'ingredient/value' et 'ingredient/type' à expérimental, mentionnant qu'il y a encore discussion si elles devraient être remplacées par 'num' et 'unit' provenant de measure (qui est encore en brainstorming).
  • La version 0.2 : Provenant de la Version 0.1 quelques éléments ont été renommés pour renforcer la ré-utilisation d'éléments établis : fn pour hRecipe-title, summary pour hRecipe-summary, duration pour preparation-time, value et type pour num et unit. Aussi quelques éléments ont été marqués expérimental du fait des problématiques de gongler l'élément. Voir la page hrecipe-issues pour une discussion plus en profondeur.
    Le Draft 0.1 était déjà un résultat d'efforts de longue date. Néanmoins après l'avoir publié, il y a eu un débat animé sur quelques propriétés. Parce que cela a pu être résolu, la version 0.2 est considérée comme stable à cette heure, même si bien sûr vous ne savez jamais ;-)


Notes Traitement pour les Parseurs

  • Si la propriété "author" contient seulement une chaîne plein texte, elle devrait être considérée de type "vcard fn".


Principes de Design XHTML Sémantique

Note : les Principes de Design XHTML Sémantique ont été écrits initialement dans le contexte de développement de hCard et hCalendar, par conséquent il peut être plus facile de comprendre ces principes dans le contexte de la méthodologie de design hCard (ce qui veut dire, lisez ça d'abord). Tantek

XHTML est construit sur du XML, et par conséquent les formats fondés sur XHTML peuvent être utilisés non seulement pour une présentation d'affichage pratique, mais aussi à des fins d'échanges de données. A bien des façons, les formats fondés sur XHTML illustrent le meilleur des mondes tant du HTML que du XML. Néanmoins au moment de construire des formats basés sur XHTML, cela aide d'avoir un ensemble de principes directeurs.

  1. Réutilisez autant que possible le schéma (noms, objets, propriétés, valeurs, types, hiérarchies, contraintes) à partir des standards de référence établis et bien supportés. Evitez de redéclarer les contraintes exprimées dans le standard source. Des mentions à titre d'information peuvent passer.
    1. Pour les types avec plusieurs composants, utilisez des éléments imbriqués avec des noms de classe équivalents aux noms des composants.
    2. Les composants pluriels sont produits au singulier, et par conséquent plusieurs éléments imbriqués sont utilisés pour représenter plusieurs valeurs de texte qui sont délimitées par des virgules.
  2. Utilisez la sémantique XHTML la plus précise pour construire des blocs pour chaque objet, etc.
  3. Autrement utilisez un élément générique structurel (par ex. <span> ou <div>), ou l'élément contextuel approprié (par ex. un <li> dans un <ul> ou <ol>).
  4. Utilisez des noms de classes basés sur des noms extraits du schéma original, à moins que le XHTML sémantique de construction de bloc ne représente précisément cette partie du schéma original. Si les noms dans le schéma original ne sont pas sensibles la casse, alors mettez tout dans un équivalent en bas de casse. Les noms de composants implicites en prose (plutôt qu'explicites dans le schéma défini) devraient aussi utiliser les équivalents bas de casse pour une facilité d'utilisation. Les espaces dans les noms des composants deviennent des caractères tiret '-'.
  5. Pour finir, si le format de la donnée selon le schéma original est trop long et/ou non amical sur le plan humain, utilisez <abbr> au lieu d'un élément générique structurel, et placez les données littérales dans l'attribut 'title' (là où vont les expansions abbr), et l'équivalent le plus bref et le plus lisible humainement dans l'élément lui-même. De plus amples explications de cet usage de <abbr> : Human vs. ISO8601 dates problem solved


Plus d'Equivalents Sémantiques

Pour quelques propriétés, il existe plus d'équivalents sémantiques, et par conséquent elles reçoivent un traitement spécial, par ex :

  • Pour "photo", utilisez <img class="photo" src="..." alt="" />


Langue

  • Pour charrier explicitement la langue naturelle dans laquelle la recette est écrite, utilisez l'attribut standard (X)HTML 'lang' ou 'xml:lang' sur l'élément avec class="hrecipe"
    • par ex. <p>J'aime vraiment les <span class="hrecipe" lang="fr"><span class="fn">oeufs en meurette</span></span> ou couilles d'âne.</p>
  • Si les portions d'une hRecipe (par ex. un nom d'ingrédient) est dans une langue différente du reste d'une hRecipe, utilisez l'attribut 'lang' ou 'xml:lang' sur ces portions.
  • les parseurs hRecipe qui ont besoin de gérer la langue d'origine de hRecipe DOIVENT traiter l'attribut standard (X)HTML 'lang' ou 'xml:lang' comme spécifié.
  • les parseurs hRecipe qui ont besoin de gérer la langue d'origine PEUVENT traverser le DOM pour découvrir la langue initiale de la page et appliquer cela à la

hRecipe si aucune autre langue n'est spécifiée sur la hRecipe.


Lisible par le Humains vs. Machines

Si un élément <abbr> est utilisé pour une propriété, alors sont attribut 'title' est utilisé pour la valeur de la propriété, au lieu des contenus de l'élément, qui peuvent être ensuite utilisés pour fournir une présentation alternative plus humaine de la valeur.

Si un élément <a> est utilisée pour une ou plusieurs propriétés, il DOIT être traité comme suit :

  1. Pour la propriété 'photo' et toute autre propriété qui prend une URL comme sa valeur, l'attribut href="..." fournit la valeur de propriété.
  2. Pour les autres propriétés, le contenu de l'élément est la valeur de la propriété.

Si un élément <img> est utilisé pour la propriété 'photo', il DOIT utiliser la valeur de propriété fournie par l'attribut src="..." comme valeur de propriété.

Si un élément <object> est utilisé pour la propriété 'photo', il DOIT utiliser la valeur de propriété fournie par l'attribut data="..." comme valeur de propriété.

Notes

Cette section est informative.

  • Rien à cette heure.


Profil XMDP

<dl class="profile">
 <dt>class</dt>
 <dd><p>
  <a rel="help" href="http://www.w3.org/TR/html401/struct/global.html#adef-class">
   La définition HTML4 de l'attribut 'class'.</a>
  Ce profil méta donnée définit quelques valeurs d'attribut 'class' (noms de classe) 
  et leurs sens comme suggéré par un 
  <a href="http://www.w3.org/TR/WD-htmllink-970328#profile">
   draft de "Hypertext Links in HTML"</a>.</p>
  <dl>
   <dt>hrecipe</dt>
   <dd>
    Utilisé pour identifier et décrire les métadonnées associées avec les instructions pour créer des repas, boissons ou itemps basés sur la nourriture.
   </dd>
   <dt>fn</dt>
   <dd>
    Le titre de la recette.
   </dd>
   <dt>ingredient</dt>
   <dd>
    Décrit le(s) ingrédient(s) utilisé(s) dans la recette.
   </dd>
   <dt>yield</dt>
   <dd>
    Spécifie la quantité produite par la recette.
   </dd>
   <dt>instructions</dt>
   <dd>
    La méthode de la recette.
   </dd>
   <dt>duration</dt>
   <dd>
    Le temps que cela prend pour préparer le repas décrit par la recette.
   </dd>
   <dt>photo</dt>
   <dd>
    Image d'accompagnement.
   </dd>
   <dt>summary</dt>
   <dd>
    Le résumé fournit une description rapide ou une déclaration d'accompagnement concernant la recette.
   </dd>
   <dt>author</dt>
   <dd>
   La personne qui a rédigé la recette.
   </dd>
   <dt>published</dt>
   <dd>
    La date à laquele la recette a été rendue disponible au public.
   </dd>
   <dt>nutrition</dt>
   <dd>
    L'information nutritionnelle comme les calories, la graisse, la teneur en fibres, etc.
   </dd>
   <dt>tag</dt>
   <dd>
    Les mots-clé décrivant la recette.
   </dd>
  </dl>
 </dd>
</dl>


Exemples

Cette section est informative.

Ici il y aura quelques exemples de recettes, provenant de vrais sites web, montrant comment elles pourraient facilement être facilement améliorées en utilisant hRecipe. En attendant, l'exemple d'étude suivant devra le faire :

<div class="hrecipe">
    <h1 class="fn">Parmentier de Canard</h1>
    <p class="summary">
        Les Pommes Frites proviennent d'une autre galaxie. Servez-les bien chaudes.<br />
        Cette recette n'est qu'un exemple. Ne l'essayez pas chez vous ! 
    </p>
    <p>
        Contribution d'<span class="author">Alex</span> et du Gang de l'
        <span class="author vcard"><a class="url fn" href="http://exemple.com">OpenKitchen</a></span>.
    </p>
     <p>Publiée le <span class="published"><span class="value-title" title="2008-10-14T10:05:37-01:00"> </span>14 octobre 2008</span></p>
    <img src="/img/pommes.png" class="photo" width="100" height="100" alt="Pommes Frites"/>
    <h2>Ingrédients</h2>
    <ul>
        <li class="ingredient">
            <span class="value">500</span> 
            <span class="type">gramme</span> de pommes de terres (privilégiez la Bintje).
        </li>
        <li class="ingredient">
            <span class="value">1</span> <span class="type">cuillerée</span> de sel
        </li>
        <li>
            Vous pouvez fournir aussi 
            <span class="ingredient">Ketchup et Mayonnaise</span>.
            
        </li>
    </ul>
    <h2>Instructions</h2>
    <ul class="instructions">
        <li>Lavez les pommes de terre à grande eau fraîche.</li>
        <li>Puis découpez-les en bâtonnets d'un centimètre de section et placez-les dans l'huile bouillante.</li>
        <li>Après quelques minutes, sortez-les.</li>
    </ul>
    <h2>Quelques trucs :</h2>
    <p>Pour <span class="yield">12 enfants</span>.</p>
    <p>Le temps de préparation est approximativement de 
        <span class="duration"><span class="value-title" title="PT1H30M"> </span>90 min</span>
    </p>
    <p>Ajoutez <span  class="duration"><span class="value-title" title="PT30M"></span>une demi-heure</span> pour préparer votre Ketchup maison.</p>
    <p>Cette recette est <a href="http://www.exemple.com/tags/difficulte/facile" rel="tag">facile</a> et <a href="http://www.exemple.com/tags/saveur/savoureuse" rel="tag">savoureuse</a>.</p>
    <p>
        <span class="nutrition">
        Energie des Pommes Frites :  
        <span class="value">1000</span> 
        <span class="type">Joule</span>
        </span>, 
        et les Ketchup et Mayonnaise ont  
        <span class="nutrition">0 vitamine</span>.
    </p>
</div>

Exemples dans la jungle

Cette section est informative.

Les sites et pages qui publient des hRecipes. Quand la section deviendra trop grande, nous pourrons la migrer sur une page distincte comme hrecipe-examples-in-wild-fr.

Wild Mushroom, Pancetta & Truffle Risotto par Toby Inkster

Implémentations

Cette section est informative.

Les outils pour générer et consommer des hRecipes. Quand la section deviendra trop grande, nous pourrons la migrer sur une page distincte comme hRecipe-implémentations.

  • Cognition

En septembre 2008, Cognition a un support expériemental de ce format. (Détails du support.) Les recettes peuvent être exportées en format RecipeBook XML ou RDF .

  • WordPress Plugin

Il existe un plugin WordPress hRecipe disponible qui facilite l'ajout de métadonnées hRecipe, pratiquement sans effort. Très chouette !

  • Google. Lancé le 24 février 2011, les résultats de recherche Recipe View de Google sont motorisés par les fragments de marquage hRecipe.
  • hRecipeHelper. Sortie le 16 mars 2011 hRecipeHelper Une extension Chrome pour construire des hRecipes en HTML formaté pour les blogs ou sites web.
  • hRecipeHelper - Web. Sortie le 5 avril 2011 hRecipeHelper-webapp Très similaire à l'extension Chrome, mais désormais disponible pour tous les autres navigateurs modernes et même IE8.


Références

Références Normatives

Références informatives

Copyright

Par les Copyrights microformats, hRecipe a été placée par ses auteurs, le 2008-11-14 dans le domaine public. Il n'y a aucun usage, aucune distribution, aucune réimpression ou toute autre restriction de tout type eu égard au texte ou contenu de cette spécification.

Brevets

Cette spécification est sujette à une politique de brevets libres de droits, par ex. pour la Politique de Brevet du W3C, IETF RFC3667 et RFC3668.

Sortie dans le Domaine Public

Les auteurs et éditeurs de cette page relèguent leur copyright sur le document et sortent les textes de cette page dans le domaine public.


Chantier en cours

Cette spécification est un chantier en cours. Au fur et à mesure que des aspects additionnels sont discutés, compris et écrits, ils seront ajoutés.

travaux dérivés

  • hRecipe in RDF - mapping de hRecipe dans un vocabulaire RDF appelé "aRecipe"

pages en rapport

Selon le processus, l'effort recette s'est développé :

pour le développement de ce draft.