Mobile app version of vmapp.org
Login or Join
Vandalay111

: Microdata: should I use Book or Product type scheme? I'm developing a site for an antiques shop, specialized in rare and ancient books. Every page for each book will have a description sheet

@Vandalay111

Posted in: #BestPractices #Microdata #SchemaOrg #Seo

I'm developing a site for an antiques shop, specialized in rare and ancient books.
Every page for each book will have a description sheet available with several data for the item.

Descriptions generally include:


catalog number (wich i guess can be microdata omitted)
book name
author
genre
format
book size (width-height)
pages
print year
print location
description
eventual blemishes
special notes
author biography


the client asked me the possiblity to add more "fields" if needed.

As you can see, some of the data given is very diverse from the given boundaries of the Product and Book schema types (for example print location and book sizes are not listed in the book type, while ofc attributes like genre, author ecc are totally a best fit for the book type).

So as per title:
what should I use to correctly markup with microdata these kind of items in their respective pages?

Even if Book and CreativeWork are indeed the first candidates, many properties are not listed; I see there is a possibility to extend with the additionalType property from the Thing base schema, but wouldnt this excessively confuse the meaning if I cross it with product for example? what is the best way to procede in this case?

Maybe I'm missing something quite obvious, but I can't really decide what's the right thing to do. Also some of the data above maybe is not worth to be listed in microdata for the items descriptions, but I can't really tell.

Any suggestions is very appreciated, thank you!

10.02% popularity Vote Up Vote Down


Login to follow query

More posts by @Vandalay111

2 Comments

Sorted by latest first Latest Oldest Best

 

@Connie744

If the books are given the schema schema.org/Book then they inherit all the properties from schema.org/CreativeWork and of course schema.org/Thing - because Book is a subtype of CreativeWork, and everything is a subtype of Thing. Using schema.org/Book gives you isbn, edition, etc from Book, plus award, genre, author, contributor etc from CreativeWork, plus you can use comment and keywords as you choose. Also available using Book is anything inherited for Thing, like description and sameAs.

You can mix in whichever non-schema fields (like book size) that you want without causing a problem with the structured data. It just means that book size (for instance) isn't as likely to be in the snippet and that searching by book size won't improve the page's hits. Blemishes and book size don't seem to be key terms a person is likely to use for searching (compared to say, book name or publication year).

By choosing Book you can fill in the author and then link to the schema.org/Person schema to give more information about the author, possibly using sameAs to link to the wikipedia page or another source to uniquely identity the author. Any links like this that you don't wish to display can be hidden with the tag or

For each individual copy of a book you can use offer - which is a property of CreativeWork (and inherited by Book). This allows you to have multiple offers by linking to schema.org/Offer - You can represent
the condition of the book and Price within Offer.

Examples adapted from schema.org/Offer
A single book which including book size without schema:

<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>


A single book with schema.org/Offer linked in to give the book's condition and Price.

<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">.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 -->


I've found it easier to get the webpage written and add in the schema one by one, eg just add Book, once it works correctly then add Offer, then Author, etc. It only takes a few days after getting google to re-fetch the page before it shows in search results.

10% popularity Vote Up Vote Down


 

@Shanna517

An entity (like a book) can have multiple types. Stating that something is a Book and a Product (or in your case maybe IndividualProduct) is possible and can make sense.

However, Microdata has only limited support for multi-typed entities: the spec requires that


all types come from the same vocabulary, and that
each property is defined for all of the used types.


The first requirement is why Schema.org introduced the additionalType property (it’s only useful to Microdata): it allows to add additional types from other vocabularies; but this does not also allow to use properties from these other vocabularies.

The second requirement is unsolved (and maybe stays like that). Many people just ignore it and use all properties anyway.

Other syntaxes than Microdata (i.e., JSON-LD and RDFa) don’t have these limitations.

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme