web-dev-qa-db-fra.com

Microdonnées vs RDFa

J'ai une question rapide sur RDFa et les microdonnées.

Ma compréhension actuelle est que RDFa est RDF implémenté en HTML mais est compliqué pour les nouveaux développeurs comme moi, les microdonnées semblent vraiment faciles et rapides à implémenter.

Quels sont les autres avantages et inconvénients de ces deux formats sémantiques?

63
mary_berry

Différences entre les microdonnées et RDFa

Bien qu'il existe de nombreuses différences (techniques, plus petites), voici une sélection de celles que je considère importantes (utilisées ma réponse sur les webmasters comme base).

Caractéristiques

Applicabilité

  • Les microdonnées ne peuvent être utilisées qu'en (X) HTML5 (resp. [~ # ~] html [~ # ~] tel que défini par le WHATWG).

  • RDFa peut être utilisé dans différents langages hôtes, c'est-à-dire plusieurs variantes (X) HTML et XML (donc également en SVG, MathML, Atom etc.).

    Et de nouveaux langages hôtes peuvent être supportés, car RDFa Core "est une spécification pour les attributs pour exprimer des données structurées dans n'importe quel langage de balisage".

Utilisation de vocabulaires multiples

  • Dans Microdata, il est plus difficile, et parfois impossible, d'utiliser plusieurs vocabulaires pour le même contenu.

  • Grâce à son utilisation de préfixes, RDFa permet de mélanger des vocabulaires.

Utilisation des propriétés inverses

  • Les microdonnées ne permettent pas d'utiliser les propriétés inverses. Vous en avez besoin pour les vocabulaires qui ne définissent pas de propriétés inverses (par exemple, ils ne définissent que parent au lieu de parent & child). Le populaire Schema.org est un tel vocabulaire (avec seulement quelques exceptions plus anciennes).

    Alors que la note du W3C Microdonnées vers RDF définit l'expérimental itemprop-reverse , cet attribut ne fait pas partie des microdonnées du W3C ni du WHATWG.

  • RDFa prend en charge l'utilisation des propriétés inverses (avec l'attribut rev ).

Web sémantique

  • En utilisant les microdonnées, vous ne jouez pas directement sur le Web sémantique (et les microdonnées AFAIK n'ont pas l'intention de le faire), principalement parce qu'il n'est pas défini comme RDF sérialisation (bien qu'il existe des moyens de - extraire RDF des microdonnées ).

  • RDFa est une sérialisation RDF et RDF est le fondement du Sémantique Web du W3C).


Les spécifications RDFa Core et HTML + RDFa peuvent être plus complexes que HTML Microdata , mais ce n'est pas une comparaison "équitable" car elles offrent plus de fonctionnalités .

Similaire aux microdonnées serait RDFa Lite (qui "fonctionne pour la plupart des besoins quotidiens"), et cela spec, au moins à mon avis, est beaucoup moins complexe que les microdonnées.

Que faire?

Si vous souhaitez prendre en charge des consommateurs spécifiques (par exemple, un moteur de recherche et un module complémentaire de navigateur), vous devez consulter leur documentation sur les syntaxes prises en charge.

Si vous voulez apprendre une seule syntaxe et ne pas avoir de consommateurs spécifiques en tête, ( attention, opinion subjective !) optez pour RDFa. Pourquoi?

  • RDFa a mûri au fil des ans et est une reconnaissance W3C, tandis que les microdonnées sont une invention relativement nouvelle et non normalisée par le W3C.
  • RDFa peut être utilisé dans de nombreuses langues, pas seulement HTML5.
  • RDFa permet une utilisation mixte des vocabulaires pour le même contenu et prend en charge nativement l'utilisation des propriétés inverses.

Vous ne pouvez pas décider? Utilise les deux.

Notez que vous pouvez également utiliser plusieurs syntaxes pour le même contenu, vous pouvez donc avoir des microdonnées et RDFa ( et Microformats, = et JSON-LD, et…) pour une compatibilité maximale.

  • Voici un extrait de microdonnées simple:

    <p itemscope itemtype="http://schema.org/Person">
      <span itemprop="name">John Doe</span> is his name.
    </p>
    
  • Voici le même extrait en utilisant RDFa (Lite):

    <p typeof="schema:Person">
      <span property="schema:name">John Doe</span> is his name.
    </p>
    
  • Et ici, les deux syntaxes sont utilisées ensemble:

    <p itemscope itemtype="http://schema.org/Person" typeof="schema:Person">
      <span itemprop="name" property="schema:name">John Doe</span> is his name.
    </p>
    

Mais il n'est généralement pas nécessaire/recommandé de suivre cette voie.

89
unor

Le principal avantage que vous obtenez de n'importe quel format sémantique est la possibilité pour les consommateurs de réutiliser vos données.

Par exemple, les moteurs de recherche comme Google sont des consommateurs qui réutilisent vos données pour afficher des extraits enrichis, comme celui-ci:

Recipe Rich Snippet

Afin de décider quel format est le meilleur, vous devez savoir quels consommateurs vous souhaitez cibler. Par exemple, Google dit dans leur FAQ qu'ils ne traiteront que les microdonnées (bien que l'outil de test fonctionne maintenant avec RDFa, il est donc possible qu'ils acceptent RDFa ).

À moins que vous ne sachiez que votre consommateur cible n'accepte que le RDFa, vous préférez probablement les microdonnées. Alors que de nombreux services consommateurs de RDFa (comme le moteur de recherche sémantique Sindice) acceptent également les microdonnées, les services consommateurs de microdonnées sont moins susceptibles d'accepter RDFa.

31
linclark

C'est long, mais l'une des réponses les plus complètes que vous obtiendrez à cette question est ce billet de blog de Jeni Tennison: Microdonnées et RDFa Vivre ensemble en harmonie

6
Ian Dickinson

Je ne sais pas si la suggestion d'Unor d'utiliser à la fois les microdonnées et RDFa est une bonne idée. Si vous utilisez l'outil de test de données structurées de Google (ou d'autres outils similaires) sur son exemple, il montre des données en double, ce qui semble impliquer que le robot Google ramassera deux personnes nommées John Doe sur la page Web au lieu d'une qui était l'intention initiale.

Je suppose donc que l'utilisation d'une syntaxe pour un élément donné est une meilleure idée (vous devriez toujours pouvoir mélanger les syntaxes tant qu'elles décrivent des entités distinctes).

Bien que je serais heureux d'avoir tort sur ce point.

2
user3237949