web-dev-qa-db-ja.com

MicrodataとRDFa

RDFaとMicrodataについて簡単な質問があります。

私の現在の理解では、RDFaはHTMLにRDF実装されていますが、私のような新しい開発者にとっては複雑であり、Microdataは本当に簡単かつ迅速に実装できるようです。

これらの2つのセマンティック形式に関するその他の長所と短所は何ですか?

63
mary_berry

MicrodataとRDFaの違い

多くの(技術的な、より小さい)違いがありますが、ここでは重要と思われるものを選択します(ベースとして ウェブマスターに関する私の答え を使用します)。

仕様書

適用性

  • Microdataは(X)HTML5でのみ使用できます([〜#〜] html [〜#〜]はWHATWGで定義されています)。

  • RDFaは、さまざまなホスト言語、つまり複数の(X)HTMLバリアントとXMLで使用できます(したがって、SVG、MathML、Atomなど)でも使用できます)。

    RDFa Core "マークアップ言語で構造化データを表現するための属性の仕様"のように、新しいホスト言語をサポートできます.

複数の語彙の使用

  • Microdataでは、同じコンテンツに対して複数の語彙を使用することは難しく、時には不可能です。

  • 接頭辞の使用により、RDFaは語彙を混在させることができます。

逆プロパティの使用

  • Microdataは、リバースプロパティを使用する方法を提供しません。これは、逆プロパティを定義しない語彙に必要です(たとえば、parentparentではなくchildのみを定義します)。人気の高いSchema.orgはそのような語彙です(少数の古い例外はありますが)。

    W3C Note Microdata to RDFは実験的な itemprop-reverse 、この属性はW3Cの一部でもWHATWGのMicrodataの一部でもありません。

  • RDFaは、逆プロパティの使用をサポートしています( rev属性 )。

セマンティックWeb


仕様 RDFa Core および HTML + RDFaHTML Microdata よりも複雑かもしれませんが、より多くの機能を提供するため、「公正な」比較ではありません。

Microdataと同様に RDFa Lite (これは「ほとんどの日々のニーズに対応します」)、そしてこれ少なくとも私の意見では、specはMicrodataほど複雑ではありません。

何をすべきか?

特定のコンシューマー(検索エンジンやブラウザーアドオンなど)をサポートする場合は、サポートされている構文に関するドキュメントを確認する必要があります。

1つの構文のみを学習し、特定の消費者を念頭に置きたくない場合は、(attention、主観的意見!)RDFaを使用します。 なぜ?

  • RDFaは長年にわたって成熟しており、W3C Recですが、Microdataは比較的新しい発明であり、W3Cによって標準化されていません。
  • RDFaは、HTML5だけでなく、多くの言語で使用できます。
  • RDFaでは、同じコンテンツの語彙を混在して使用でき、リバースプロパティの使用をネイティブでサポートしています。

決められない?両方を使う。

複数の構文を使用することもできます 同じコンテンツに対して、Microdata and RDFa(and Microformats、and JSON-LD、and…)互換性を最大限にします。

  • 次に、簡単なMicrodataスニペットを示します。

    <p itemscope itemtype="http://schema.org/Person">
      <span itemprop="name">John Doe</span> is his name.
    </p>
    
  • RDFa(Lite)を使用した同じスニペットを次に示します。

    <p typeof="schema:Person">
      <span property="schema:name">John Doe</span> is his name.
    </p>
    
  • そして、ここでは両方の構文が一緒に使用されます:

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

しかし、通常、このルートを下る必要はありません/推奨されません。

89
unor

セマンティック形式から得られる主な利点は、消費者がデータを再利用できることです。

たとえば、Googleのような検索エンジンは、次のようなリッチスニペットを表示するためにデータを再利用する消費者です。

Recipe Rich Snippet

どの形式が最適かを判断するには、ターゲットにする消費者を知る必要があります。たとえば、Googleは [〜#〜] faq [〜#〜] で、マイクロデータのみを処理すると言います(ただし、テストツールはRDFaで動作するため、RDFaを受け入れる可能性があります) )。

ターゲットコンシューマがRDFaのみを受け入れることがわかっている場合を除き、おそらくmicrodataを使用するのが最適です。多くのRDFaを使用するサービス(セマンティック検索エンジンSindiceなど)もmicrodataを受け入れますが、microdataを使用するサービスはRDFaを受け入れません。

31
linclark

長いですが、この質問に対する最も包括的な回答の1つは、Jeni Tennisonによる次のブログ投稿です: Microdata and RDFa Living Together in Harmony

6
Ian Dickinson

MicrodataとRDFaの両方を使用するというunorの提案が良いアイデアかどうかはわかりません。 Googleの構造化データテストツール(または他の同様のツール)を彼の例で使用すると、Googleボットが元の意図ではなくJohn Doeという名前の2人の人物をWebページで拾い上げることを暗示するように見える重複データを示しています。

したがって、特定のアイテムに1つの構文を使用する方が良いと考えています(別個のエンティティを記述する限り、構文を混在させることができるはずです)。

私はこれについて間違っていることが証明されてうれしいですが。

2
user3237949