Reputation:
I am reading up on Schema.org to be able to add the markup to a website I am working on. However, I'm already running into something I don't understand.
In the example for Product
, it shows you should have a div
whose itemprop
is of type offers
, but in the Product
definition at http://schema.org/Product, I don't see offers
as a property of Product
at all.
If you look at http://schema.org/offers, it says offers
is a property of Thing
, but I don't see offers
listed as a property of Thing
at http://schema.org/Thing. What am I misunderstanding here?
Upvotes: 2
Views: 288
Reputation: 448
It's perhaps worth highlighting the distinction between "types" and "properties". The vocabulary is a hierarchical taxonomy of the tangible and intangible things around us, which it calls types. In microdata, these use the itemtype
attribute.
Properties describe the attributes of and relationships between the types, and in microdata use the itemprop
attribute.
So, the type Product
has the property offers
(it's definitely there, you must be missing it1). A product can offer various things, one of which is the possibility of having some right to own or use it, which is described by the type Offer
.
The property offers
is indeed a property of Thing
, but Thing
is at the very top of the taxonomy, i.e. everything the ontology describes is a "thing", tangible or otherwise. So Thing
is then broken down into more specific types of things:
Thing
- Intangible
-- Offer
-- Property
--- offers
So offers
is a Thing
like you and I are things — it's true, but we could be a lot more specific. In this case, offers
is a property of the type Property
, which in turn is a a more specific type of Intangible
, which is a Thing
.
1 Image of "offers" property under /Product:
Upvotes: 0
Reputation: 96607
Product
does define the offers
property. If you don’t see the offers
property in the first table on that page (under the table heading "Properties from Product"), you are probably affected by a (known) bug. It typically works again when reloading the page later.
offers
doesn’t have Thing
as domain (but: AggregateOffer
, CreativeWork
, Event
, MenuItem
, Product
, Service
, Trip
). If you are referring to the line "Thing
> Property
> offers
", it doesn’t mean that the offers
property is defined for/at Thing
, it means that the offers
property is a Thing
. You can ignore that detail. What matters is the domain ("Used on these types") and the range ("Values expected to be one of these types") of a property.
Upvotes: 0