RDFaとMicrodataについて簡単な質問があります。
私の現在の理解では、RDFaはHTMLにRDFで実装されていますが、私のような新しい開発者にとっては複雑です。Microdataは本当に簡単で迅速に実装できるようです。
これらの2つのセマンティック形式に関する他の長所と短所は何ですか?
RDFaとMicrodataについて簡単な質問があります。
私の現在の理解では、RDFaはHTMLにRDFで実装されていますが、私のような新しい開発者にとっては複雑です。Microdataは本当に簡単で迅速に実装できるようです。
これらの2つのセマンティック形式に関する他の長所と短所は何ですか?
多くの(技術的な、より小さな)違いがありますが、ここに私が重要だと思うものの選択があります(ベースとしてウェブマスターに関する私の答えを使用しました)。
W3CのHTMLWGは、Microdata仕様を編集するボランティアを見つけられなかったため、現在はW3Cグループノート(履歴を参照)にすぎません。これは、これ以上の作業の計画がないことを意味します。
したがって、 WHATWGの「HTMLLiving Standard」のマイクロデータセクションは、マイクロデータが進化する可能性がある唯一の場所です。変更内容によっては、MicrodataがW3CのHTML5と互換性がなくなる場合があります。
更新: 2017年に、MicrodataをW3C勧告として公開することを目的として、作業が再開されました。
RDFaはW3C勧告として公開されています。
マイクロデータは、(X)HTML5(WHATWGで定義されているHTML )でのみ使用できます。
RDFaは、さまざまなホスト言語、つまりいくつかの(X)HTMLバリアントおよびXML(したがって、SVG、MathML、Atomなどでも)で使用できます。
また、 RDFa Coreは「構造化データを任意のマークアップ言語で表現するための属性の仕様」であるため、新しいホスト言語をサポートできます。
Microdataでは、同じコンテンツに複数の語彙を使用することは難しく、場合によっては不可能です。
接頭辞を使用しているため、RDFaでは語彙を混在させることができます。
Microdataは、リバースプロパティを使用する方法を提供していません。これは、逆プロパティを定義しない語彙に必要です(たとえば、&parent
の代わりに定義するだけです)。人気のあるSchema.orgはそのような語彙です(いくつかの古い例外を除いて)。parent
child
W3C Note Microdata to RDFは実験を定義していitemprop-reverse
ますが、この属性はW3CまたはWHATWGのMicrodataの一部ではありません。
RDFaは、(rev
属性を持つ)リバースプロパティの使用をサポートします。
Microdataを使用することにより、セマンティックWebに直接参加することはありません(AFAIK Microdataは意図していません)。これは主に、RDFシリアル化として定義されていないためです(ただし、MicrodataからRDFを抽出する方法はあります)。
RDFaはRDFシリアル化であり、RDFはW3CのセマンティックWebの基盤です。
RDFaCoreとHTML+RDFaの仕様は、 HTML Microdataよりも複雑な場合がありますが、より多くの機能を提供するため、「公正な」比較ではありません。
Microdataに似ているのはRDFaLite (「ほとんどの日常のニーズに対応」)であり、この仕様は、少なくとも私の意見では、Microdataよりもはるかに複雑ではありません。
特定のコンシューマー(たとえば、検索エンジンやブラウザーアドオン)をサポートする場合は、サポートされている構文に関するドキュメントを確認する必要があります。
1つの構文のみを学習し、特定の消費者を念頭に置いていない場合(注意、主観的な意見!)、RDFaを使用してください。なんで?
同じコンテンツに対して複数の構文を使用することもできるため、互換性を最大化するためにMicrodataとRDFa(およびMicroformats、JSON -LDなど)を使用できることに注意してください。
簡単な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のみを受け入れることを知らない限り、おそらくマイクロデータを使用するのが最善です。多くのRDFaを消費するサービス(セマンティック検索エンジンSindiceなど)もマイクロデータを受け入れますが、マイクロデータを消費するサービスはRDFaを受け入れる可能性が低くなります。
長いですが、この質問に対する最も包括的な回答の1つは、Jeni Tennisonによるこのブログ投稿です:MicrodataとRDFaがハーモニーで一緒に暮らす
MicrodataとRDFaの両方を使用するというunorの提案が良い考えかどうかはわかりません。彼の例でGoogleの構造化データテストツール(または他の同様のツール)を使用すると、重複データが表示されます。これは、Googleボットが本来の意図ではなくJohnDoeという名前の2人をWebページで取得することを意味しているようです。
したがって、特定のアイテムに1つの構文を使用する方がよいと思います(個別のエンティティを記述している限り、構文を混在させることができるはずです)。
私はこれについて間違っていることが証明されてうれしいですが。
それはユースケースに大きく依存すると思います。科学的なユースケースの場合、RDFは一般的であり、さまざまな側面で使用されます。
ウェブサイトを充実させるために、少なくともGoogleがJSON-LDを推奨するようになりました。
ページの先頭または本文のタグに埋め込まれたJavaScript表記。マークアップはユーザーに表示されるテキストとインターリーブされないため、イベントのMusicVenueのPostalAddressの国など、ネストされたデータ項目を表現しやすくなります。また、JavaScriptコードやコンテンツ管理システムの埋め込みウィジェットなどによってページのコンテンツに動的に挿入された場合、GoogleはJSON-LDデータを読み取ることができます。