- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Mon, 13 Oct 2014 19:11:01 +0200
- To: <public-hydra@w3.org>
Hi John, On 11 Okt 2014 at 18:20, John Walker wrote: > Say I have a product resource that has multiple reviews. Obviously I > can embed these in the product resource but lets assume I make each > review a separate resource. > > Now imagine my product is super popular (or at least evokes a > strong opinion) and it gets thousands of reviews. So I decide to > pull out the list of reviews to a separate resource of type > hydra:Collection. > > A question I was mentally wrestling with is how to link from the > product to the collection - should I mint a new property? However > given the example from Elf I wonder if I could just use rdfs:seeAlso > to do this. Provided I include a bit of info about the collection in > the representation of the product, that should be sufficient for a > client to decide if it's worth to follow that link (or not). Right, that's basically the essence of ISSUE-41 [1] > The semantics of rdfs:seeAlso are a perfect fit for this IMHO: > http://www.w3.org/TR/rdf-schema/#ch_seealso > > What do others think of this as a design pattern? We found rdfs:seeAlso to be semantically too weak and therefore introduced hydra:collection. Your example would look somewhat like this: { "@id": "/product", "collection": { "@id": "/product/reviews", "@type": "Collection", "manages": { "property": "schema:review", "subject": "/product" } } } This pattern works with all vocabularies, even the ones that use rdfs:range. Strictly speaking, with schema.org you wouldn't need that indirection but you end up with a "strange" triple if you don't /product review /product/reviews <-- this is the "strange" triple /product review /product/reviews/1 /product review /product/reviews/2 /product review /product/reviews/3 ... Cheers, Markus [1] https://github.com/HydraCG/Specifications/issues/41 -- Markus Lanthaler @markuslanthaler
Received on Monday, 13 October 2014 17:11:33 UTC