web-dev-qa-db-ja.com

RDFa Lite作成者スキーマとrel = "author" HTMLマークアップを組み合わせる

以下のスニペットのHTML rel部分を保持する方法はありますか:

<body vocab="http://schema.org/" typeof="AboutPage">
   <address property="author" typeof="person">Contact <a rel="author" href="mailto:[email protected]" property="name">My Name</a></address>
</body>

この警告を受けずに:

AboutPage                0 ERRORS  1 WARNINGS
@type           AboutPage
author  
    @type       Person
    name        My Name
!   author      The property author is not recognized by Google for an object of type Person.
        @type   Unspecified Type

ただrel

<body vocab="http://schema.org/" typeof="AboutPage">
   <address>Contact <a rel="author" href="mailto:[email protected]" >My Name</a></address>
</body>

与える

AboutPage                0 ERRORS  0 WARNINGS
@type           AboutPage
author  
    @type       Unspecified Type

私はreltypeproperty="author"なしで与えることはできません。これにより、さまざまなタイプの奇妙なauthor複製が発生します。

relを完全に削除したり、metaデータに移動したりできることは承知していますが、構造化データテストツールがrel="author"の認識を要求する場合は、 typeを与える方法はありませんか?

2
arghc

rel属性には、競合する可能性のある2つの異なる目的があります。

  • プレーンHTML:リンクタイプを提供
  • RDFa:プロパティを提供します(property属性と同様ですが、いくつかの技術的な違いがあります)

どちらのスニペットでも、 リンクタイプauthor ではなく Schema.orgプロパティauthor と解釈されます。

このような取り違えを防ぐ最も一般的な方法は、vocabを使用しないことです。代わりにprefixを使用してください(または RDFa Core Initial Context に依存してください):

<!-- using 'prefix' -->

<body prefix="s: http://schema.org/" typeof="s:AboutPage">
  <address property="s:author" typeof="s:Person">
    Contact <a rel="author" href="mailto:[email protected]" property="s:name">My Name</a>
  </address>
</body>
<!-- rely on the RDFa Core Initial Context, which defines 'schema' -->

<body typeof="schema:AboutPage">
  <address property="schema:author" typeof="schema:Person">
    Contact <a rel="author" href="mailto:[email protected]" property="schema:name">My Name</a>
  </address>
</body>

Googleがエラーを報告することに注意してください。

プロパティhttp://www.w3.org/TR/html5/links.html#link-type-authorは、タイプPersonのオブジェクトではGoogleによって認識されません。

これは問題ありません。無視してかまいません。生成されたURIは、GoogleのSDTTがrelの値がリンクタイプ(RDFプロパティとしても使用される可能性がある)であることを正しく理解していることを示し、それを解釈しなくなったためです。 Schema.orgプロパティである。また、Schema.org以外のボキャブラリのプロパティを使用すると、このエラーが発生します。これは、完全に細かくて便利なことです。


¹補足: リスト項目7 を正しく理解している場合、同じ要素にrel属性があり、propertyに含まれていないため、RDFaパーサーは特定のケースでrel属性を無視する必要がありますCURIE/URI値。

1
unor