-
Couldn't load subscription status.
- Fork 879
Description
We (Google) have a desire to represent rolled up information about a set of items in a list.
For example, you have a list of Products (some of which are not present on a given URL) and you want to capture the "average price".
Or you have a list of LocalBusiness and you want to capture "average rating".
In both of those cases, it's very possible the full data to represent is not present in the invididual items and/or are not fully possible to include.
I've brainstormed a couple of different approaches for this, but the least impactful proposal is to attach a so:aggregateElement predicate with a range of so:Thing and then we can use the schema in the attached thing to hold the value.
So for the first case you'd have:
ItemList
-name-> "Cool Products to buy"
-numberOfItems -> 2
-aggregateElement -> Product
-price-> "40 USD"
-itemListElement -> Product1
-price-> "30 USD"
-itemListElement -> Product2
-price-> "50 USD"
This has the advatnage of a) being attached to the list itself for context, b) using composition instead of some sort of list inheritance or webpage subtype, c) reusing the item-level schema fields, though this is double-edged because the semantics are going to be different even though the fields may be reusable.
We could do things like use AggregateOffer and AggregateRating on those aggregate items, but I'm worried that we might need more flexibility in the future than just those two concepts for aggregateElement.
Thoughts? Alternate suggestions?