RDFaとMicrodataについて簡単な質問があります。
私の現在の理解では、RDFaはHTMLにRDF実装されていますが、私のような新しい開発者にとっては複雑であり、Microdataは本当に簡単かつ迅速に実装できるようです。
これらの2つのセマンティック形式に関するその他の長所と短所は何ですか?
多くの(技術的な、より小さい)違いがありますが、ここでは重要と思われるものを選択します(ベースとして ウェブマスターに関する私の答え を使用します)。
W3CのHTML WG ボランティアは見つかりませんでした Microdata仕様を編集するため、 現在は単なるW3C Group Note ( history)を参照 )。これは、それ以上の作業の予定がないことを意味します。
したがって、WHATWGの「HTML Living Standard」の Microdataセクション は、Microdataが進化する唯一の場所です。変更内容によっては、MicrodataがW3CのHTML5と互換性がなくなる場合があります。
更新:2017年、 作業が再開されました 、MicrodataをW3C勧告として公開することを目的としています。
RDFaは W3C勧告 として公開されています。
Microdataは(X)HTML5でのみ使用できます([〜#〜] html [〜#〜]はWHATWGで定義されています)。
RDFaは、さまざまなホスト言語、つまり複数の(X)HTMLバリアントとXMLで使用できます(したがって、SVG、MathML、Atomなど)でも使用できます)。
RDFa Core "マークアップ言語で構造化データを表現するための属性の仕様"のように、新しいホスト言語をサポートできます.
Microdataでは、同じコンテンツに対して複数の語彙を使用することは難しく、時には不可能です。
接頭辞の使用により、RDFaは語彙を混在させることができます。
Microdataは、リバースプロパティを使用する方法を提供しません。これは、逆プロパティを定義しない語彙に必要です(たとえば、parent
とparent
ではなくchild
のみを定義します)。人気の高いSchema.orgはそのような語彙です(少数の古い例外はありますが)。
W3C Note Microdata to RDFは実験的な itemprop-reverse
、この属性はW3Cの一部でもWHATWGのMicrodataの一部でもありません。
RDFaは、逆プロパティの使用をサポートしています( rev
属性 )。
Microdataを使用することで、RDFシリアル化として定義されていないため、ほとんどの場合、Semantic Webに直接関与していません(およびAFAIK Microdataは意図していません) extract RDF Microdataから )。
RDFaは [〜#〜] rdf [〜#〜] シリアル化であり、RDFはW3Cの基盤です セマンティックWeb 。
仕様 RDFa Core および HTML + RDFa は HTML Microdata よりも複雑かもしれませんが、より多くの機能を提供するため、「公正な」比較ではありません。
Microdataと同様に RDFa Lite (これは「ほとんどの日々のニーズに対応します」)、そしてこれ少なくとも私の意見では、specはMicrodataほど複雑ではありません。
特定のコンシューマー(検索エンジンやブラウザーアドオンなど)をサポートする場合は、サポートされている構文に関するドキュメントを確認する必要があります。
1つの構文のみを学習し、特定の消費者を念頭に置きたくない場合は、(attention、主観的意見!)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>
しかし、通常、このルートを下る必要はありません/推奨されません。
セマンティック形式から得られる主な利点は、消費者がデータを再利用できることです。
たとえば、Googleのような検索エンジンは、次のようなリッチスニペットを表示するためにデータを再利用する消費者です。
どの形式が最適かを判断するには、ターゲットにする消費者を知る必要があります。たとえば、Googleは [〜#〜] faq [〜#〜] で、マイクロデータのみを処理すると言います(ただし、テストツールはRDFaで動作するため、RDFaを受け入れる可能性があります) )。
ターゲットコンシューマがRDFaのみを受け入れることがわかっている場合を除き、おそらくmicrodataを使用するのが最適です。多くのRDFaを使用するサービス(セマンティック検索エンジンSindiceなど)もmicrodataを受け入れますが、microdataを使用するサービスはRDFaを受け入れません。
長いですが、この質問に対する最も包括的な回答の1つは、Jeni Tennisonによる次のブログ投稿です: Microdata and RDFa Living Together in Harmony
MicrodataとRDFaの両方を使用するというunorの提案が良いアイデアかどうかはわかりません。 Googleの構造化データテストツール(または他の同様のツール)を彼の例で使用すると、Googleボットが元の意図ではなくJohn Doeという名前の2人の人物をWebページで拾い上げることを暗示するように見える重複データを示しています。
したがって、特定のアイテムに1つの構文を使用する方が良いと考えています(別個のエンティティを記述する限り、構文を混在させることができるはずです)。
私はこれについて間違っていることが証明されてうれしいですが。