私は、珍しい本や古代の本に特化した骨shop品店のサイトを開発しています。
各書籍の各ページには、アイテムのいくつかのデータが記載された説明シートがあります。
説明には一般的に次が含まれます。
クライアントは、必要に応じて「フィールド」を追加する可能性を私に尋ねました。
ご覧のとおり、指定されたデータの一部は、スキーマタイプ Product および Book の指定された境界から非常に多様です(たとえば、印刷場所と本のサイズは、書籍タイプ、ofc属性はジャンルなどですが、著者eccは書籍タイプに最適です。
タイトルごとに:
これらの種類のアイテムをそれぞれのページでmicrodataで正しくマークアップするにはどうすればよいですか?
Book および CreativeWork が実際に最初の候補であっても、多くのプロパティはリストされていません。 Thingベーススキーマの additionalType プロパティで拡張する可能性はありますが、たとえば製品と交差させた場合、これは意味を過度に混乱させないでしょうか?この場合に進める最善の方法は何ですか?
たぶん、私は非常に明白な何かを見逃しているかもしれませんが、何をするのが正しいかを本当に決めることはできません。また、上記のデータの一部は、アイテムの説明のためにmicrodataにリストする価値がないかもしれませんが、実際にはわかりません。
どんな提案も非常に感謝しています、ありがとう!
書籍にスキーマ http://schema.org/Book が指定されている場合、それらは http://schema.org/CreativeWork からすべてのプロパティを継承し、もちろん- http://schema.org/Thing -BookはCreativeWorkのサブタイプであり、すべてがThingのサブタイプであるため。 http://schema.org/Book を使用すると、Bookのisbn
、edition
などに加えて、CreativeWorkのaward
、genre
、author
、contributor
などが得られ、さらにcomment
およびkeywords
を使用できます。 Bookを使用すると、description
やsameAs
など、Thingに継承されたものも使用できます。
構造化データに問題を引き起こすことなく、必要な非スキーマフィールド(ブックサイズなど)を混在させることができます。これは単に、書籍のサイズ(たとえば)がスニペットに含まれる可能性が低く、書籍のサイズで検索してもページのヒットが改善されないことを意味します。傷や本のサイズは、検索に使用する可能性のある重要な用語ではないようです(たとえば、本名や出版年と比較して)。
Bookを選択すると、author
を入力してから http://schema.org/Personスキーマにリンクし、著者に関する詳細情報を提供できます。 、おそらくsameAs
を使用してウィキペディアページまたは別のソースにリンクし、著者を一意に識別します。表示したくないこのようなリンクは、タグまたは
ブックの個々のコピーごとに、offer
を使用できます。これは、CreativeWorkのプロパティです(ブックによって継承されます)。これにより、 http://schema.org/Offer にリンクして複数のオファーを作成できます。オファーのcondition
とPrice
を表すことができます。
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を取得してから数日で、検索結果に表示される前にページを取得します。
エンティティ(書籍など)には複数のタイプを含めることができます。何かがBook
およびProduct
(または、場合によっては IndividualProduct
)であると述べることは可能であり、意味があります。
ただし、Microdataではマルチタイプエンティティのサポートが制限されています。仕様では、
最初の要件は、Schema.orgが additionalType
プロパティを導入した理由です(Microdataにのみ有用です):otherボキャブラリーから追加のタイプを追加できます。ただし、これにより、これらの他の語彙のプロパティを使用することもできません。
2番目の要件は未解決です(そして、おそらくそのようなままです)。多くの人々はそれを無視し、とにかくすべてのプロパティを使用します。
Microdata以外の構文(つまり、JSON-LDおよびRDFa)にはこれらの制限はありません。