web-dev-qa-db-ja.com

Microdata:BookまたはProductタイプスキームを使用する必要がありますか?

私は、珍しい本や古代の本に特化した骨shop品店のサイトを開発しています。
各書籍の各ページには、アイテムのいくつかのデータが記載された説明シートがあります。

説明には一般的に次が含まれます。

  • カタログ番号(マイクロデータは省略可能)
  • 本名
  • 著者
  • ジャンル
  • フォーマット
  • ブックサイズ(幅-高さ)
  • ページ数
  • 印刷年
  • 印刷場所
  • 説明
  • 最終的な傷
  • 特記事項
  • 著者の伝記

クライアントは、必要に応じて「フィールド」を追加する可能性を私に尋ねました。

ご覧のとおり、指定されたデータの一部は、スキーマタイプ Product および Book の指定された境界から非常に多様です(たとえば、印刷場所と本のサイズは、書籍タイプ、ofc属性はジャンルなどですが、著者eccは書籍タイプに最適です。

タイトルごとに:
これらの種類のアイテムをそれぞれのページでmicrodataで正しくマークアップするにはどうすればよいですか?

Book および CreativeWork が実際に最初の候補であっても、多くのプロパティはリストされていません。 Thingベーススキーマの additionalType プロパティで拡張する可能性はありますが、たとえば製品と交差させた場合、これは意味を過度に混乱させないでしょうか?この場合に進める最善の方法は何ですか?

たぶん、私は非常に明白な何かを見逃しているかもしれませんが、何をするのが正しいかを本当に決めることはできません。また、上記のデータの一部は、アイテムの説明のためにmicrodataにリストする価値がないかもしれませんが、実際にはわかりません。

どんな提案も非常に感謝しています、ありがとう!

2
Gruber

書籍にスキーマ http://schema.org/Book が指定されている場合、それらは http://schema.org/CreativeWork からすべてのプロパティを継承し、もちろん- http://schema.org/Thing -BookはCreativeWorkのサブタイプであり、すべてがThingのサブタイプであるため。 http://schema.org/Book を使用すると、Bookのisbneditionなどに加えて、CreativeWorkのawardgenreauthorcontributorなどが得られ、さらにcommentおよびkeywordsを使用できます。 Bookを使用すると、descriptionsameAsなど、Thingに継承されたものも使用できます。

構造化データに問題を引き起こすことなく、必要な非スキーマフィールド(ブックサイズなど)を混在させることができます。これは単に、書籍のサイズ(たとえば)がスニペットに含まれる可能性が低く、書籍のサイズで検索してもページのヒットが改善されないことを意味します。傷や本のサイズは、検索に使用する可能性のある重要な用語ではないようです(たとえば、本名や出版年と比較して)。

Bookを選択すると、authorを入力してから http://schema.org/Personスキーマにリンクし、著者に関する詳細情報を提供できます。 、おそらくsameAsを使用してウィキペディアページまたは別のソースにリンクし、著者を一意に識別します。表示したくないこのようなリンクは、タグまたは

ブックの個々のコピーごとに、offerを使用できます。これは、CreativeWorkのプロパティです(ブックによって継承されます)。これにより、 http://schema.org/Offer にリンクして複数のオファーを作成できます。オファーのconditionPriceを表すことができます。

http://schema.org/Offer から適応された例スキーマなしのブックサイズを含む単一のブック:

<div itemscope itemtype="http://schema.org/Book">
<img itemprop="image" src="catcher-in-the-rye-book-cover.jpg"
 alt="cover art: red horse, city in background"/>
 <span itemprop="name">The Catcher in the Rye</span>
 <link itemprop="sameAs" href="http://wikipedia.org/Catcher-in-the-Rye">
 Author: <a itemprop="author" href="/author/jd_salinger.html">J.D. Salinger</a>
<span itemprop="numberOfPages">224</span> pages
Publisher: <span itemprop="publisher">Little, Brown, and Company</span>
<meta itemprop="datePublished" content="1991-05-01">May 1, 1991<br>
ISBN-10: <span itemprop="isbn">0316769487</span><br>
Book size: 6 x 8 inches<br>
</div>

http://schema.org/Offer でリンクされた単一の本は、本の状態と価格を提供します。

<div itemscope itemtype="http://schema.org/Book">
<img itemprop="image" src="catcher-in-the-rye-book-cover.jpg"
 alt="cover art: red horse, city in background"/>
 <span itemprop="name">The Catcher in the Rye</span>
 <link itemprop="sameAs" href="http://wikipedia.org/Catcher-in-the-Rye">
 Author: <a itemprop="author" href="/author/jd_salinger.html">J.D. Salinger</a>
<span itemprop="numberOfPages">224</span> pages
Publisher: <span itemprop="publisher">Little, Brown, and Company</span>
<meta itemprop="datePublished" content="1991-05-01">May 1, 1991
ISBN-10: <span itemprop="isbn">0316769487</span>
  <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
  Price: <span itemprop="price" content="6.99">$6.99</span>
  <meta itemprop="priceCurrency" content="USD" />
  Condition: <span itemprop="condition">Slightly creased spine</span>
  </div> <!-- marks the end of the Offer schema -->
</div> <!-- marks the end of the Book schema -->

ウェブページを作成し、スキーマを1つずつ追加する方が簡単であることがわかりました。たとえば、正しく動作したらブックを追加し、オファー、作成者などを追加します。Googleを取得してから数日で、検索結果に表示される前にページを取得します。

1
Mousey

エンティティ(書籍など)には複数のタイプを含めることができます。何かがBookおよびProduct(または、場合によっては IndividualProduct )であると述べることは可能であり、意味があります。

ただし、Microdataではマルチタイプエンティティのサポートが制限されています。仕様では、

  • すべてのタイプは同じ語彙に由来し、
  • 各プロパティは、使用されるすべてのタイプに対して定義されます。

最初の要件は、Schema.orgが additionalType プロパティを導入した理由です(Microdataにのみ有用です):otherボキャブラリーから追加のタイプを追加できます。ただし、これにより、これらの他の語彙のプロパティを使用することもできません。

2番目の要件は未解決です(そして、おそらくそのようなままです)。多くの人々はそれを無視し、とにかくすべてのプロパティを使用します。

Microdata以外の構文(つまり、JSON-LDおよびRDFa)にはこれらの制限はありません。

1
unor