schemaorg / schemaorg

Schema.org - schemas and supporting software
https://schema.org/
Apache License 2.0
5.4k stars 825 forks source link

Vocabulary for price estimates - Products with prices, but no offers #1071

Open awillborn opened 8 years ago

awillborn commented 8 years ago

Does an appropriate model exist for a price estimate on a product/service when there are no offers?

I am specifically working on RepairPal’s car repair price estimator, which shows price estimates for car repairs based on aggregated industry data. If I am understanding the Offer item type correctly, it would not be appropriate to use in this context, because RepairPal is not offering these car repair services. However, they are displaying an estimated price range if you were to take your car somewhere that does offer the service.

I think this the concept of a price estimate for a Product even when there are no Offers makes sense more broadly and would be applicable to other websites.

Is there some other way of handling this already? If not, my proposal would be to make PriceSpecification a property of Product and Service, rather than being forced to include offers.

mfhepp commented 8 years ago

I see your use-case, but keeping Product and Offer separate and allowing prices only on offers and not on products is one, if not the, core idea of the GoodRelations conceptual model behind schema.org's e-commerce elements.

For a price estimator on a vendor's site, it is perfectly fine to use schema:Offer. It is also possible to use schema:Offer for price comparison or aggregator sites, i.e. even if the offering party is not the operator of that site. In that case, use http://schema.org/makesOffer or http://schema.org/offeredBy to link from the offer to the entity that makes it.

In your case, you could use http://schema.org/AggregateOffer with validFrom/validThrough indicating that you are taking about historical data. But this is kind of a stretch.

We could better

Martin

On 02 Apr 2016, at 01:38, Anne Willborn notifications@github.com wrote:

Does an appropriate model exist for a price estimate on a product/service when there are no offers?

I am specifically working on RepairPal’s car repair price estimator, which shows price estimates for car repairs based on aggregated industry data. If I am understanding the Offer item type correctly, it would not be appropriate to use in this context, because RepairPal is not offering these car repair services. However, they are displaying an estimated price range if you were to take your car somewhere that does offer the service.

I think this the concept of a price estimate for a Product even when there are no Offers makes sense more broadly and would be applicable to other websites.

Is there some other way of handling this already? If not, my proposal would be to make PriceSpecification a property of Product and Service, rather than being forced to include offers.

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub

awillborn commented 8 years ago

Thanks for your response Martin. A few questions/comments about this --

  1. Keeping Product and Offer separate makes sense to me now (just read up a bit on GoodRelations and the Agent-Promise-Object model). One thing that might make sense is a new property on Product/Service called quote or priceEstimate that expects a PriceSpecification as its type, but I could understand if this blurs the lines too much between Product and Offer.
  2. Actions: I did consider QuoteAction, but from what I can tell about Actions, it seems like for most use cases, the end user is the agent. Watch, Like, Follow, Reserve, etc. -- all of these are actions that the user can take to interact with things on the page. I tried to look into this a bit, but couldn't find much discussion of whether the agent had to be the end user, or, if not, then how to determine whether something would qualify as an Action rather than a Thing.

    In my case, it seems like the price estimate is a Thing, and not an Action - unless the actor is the price estimate algorithm or RepairPal the organization? But then why isn't Offer also an Action? I think the documentation could be a lot clearer on what qualifies as an Action and what does not. (as an aside - why is there a QuoteAction and not a Quote thing?) If an Action is appropriate to use in this case, then I don't think a new subtype would be needed, since QuoteAction seems to fit.

  3. MonetaryAmount could work - though I think if I were going to use a model on its own without being able to link it to Product, PriceSpecification might be better.

Ideally I want to link this price estimate to the product, so it seems like the best existing way to do this is to use QuoteAction, as long as Action is appropriate.

When you say work on a generic pattern for historical data and data aggregates, do you mean make a new model entirely?

mfhepp commented 8 years ago

I would prefer a more general pattern that allows attaching related data to things rather than providing an explicit mechanism for price statistics for products,

Something similar to the role pattern in schema.org so that we can add historical values or aggregates or samples of values for existing properties to an entity in combination with meta-data about that data.

something like relatedData with a domain of Thing and additional properties.

github-actions[bot] commented 4 years ago

This issue is being tagged as Stale due to inactivity.