- From: elf Pavlik <perpetual-tripper@wwelves.org>
- Date: Mon, 30 Nov 2015 14:17:10 +0100
- To: Dietrich Schulten <ds@escalon.de>
- CC: Ruben Verborgh <ruben.verborgh@ugent.be>, Hydra <public-hydra@w3.org>
On 11/30/2015 06:31 AM, Dietrich Schulten wrote: > > Am 28.11.2015 22:12 schrieb elf Pavlik <perpetual-tripper@wwelves.org>: >> >> Hello, >> >> https://www.w3.org/community/hydra/wiki/Collection_Design >> >> Wiki page above proposes a way to group resources which all have given >> relation to some resource. I wonder if we could find a way to use it >> together with void:classPartition. >> >> For example collection >> >> { >> "@id": "/alice", >> "collection": { >> "@id": "/alice/featured", >> "@type": "Collection", >> "manages": { >> "property": "schema:about", >> "object": "/alice" >> } >> } >> } >> >> schema:about schema:domainIncludes schema:CreativeWork >> >> Now I would like to have more specific collections (partitions) for more >> specific types of CreativeWork - Article, Movie, Book, Review etc. >> >> /alice/featured/articles >> /alice/featured/movies >> /alice/featured/books >> >> Can we consider hydra:Collection also a void:Dataset? void:subset of the >> whole Dataset exposed by given API. Maybe we could simply use >> void:classPartition directly on hydra:Collection? >> > > The three subordinate resources are resources of their own. Normally UriTemplate is for this kind of URL space. > If we had something like "allowedLiteral" [1] or "sh:in", one could add an IriTemplate to the collection with a variable for the last path segment. The last path segment could then be restricted to values for the kind of media. > > With void:classPartition, how would you tell the client about the URLs of the subordinate resources? { "@id": "/alice", "collection": { "@id": "/alice/featured", "@type": "Collection", "manages": { "property": "schema:about", "object": "/alice" }, "totalItems": 23, "void:classPartition": [ { "@id": "/alice/featured/articles", "@type": [ "Collection", "void:Dataset"], "void:class": "schema:Article", "manages": { "property": "schema:about", "object": "/alice" }, "totalItems": 10 }, { "@id": "/alice/featured/movies", "@type": [ "Collection", "void:Dataset"], "void:class": "schema:Movie", "manages": { "property": "schema:about", "object": "/alice" }, "totalItems": 5 }, { "@id": "/alice/featured/books", "@type": [ "Collection", "void:Dataset"], "void:class": "schema:Book", "manages": { "property": "schema:about", "object": "/alice" }, "totalItems": 3 } ] } } If we repeat 'manages' block in each 'partition' they could also go directly into "collection" without having to 'nest' it using "void:classPartition"
Received on Monday, 30 November 2015 13:17:25 UTC