W3C home > Mailing lists > Public > public-hydra@w3.org > July 2014

Re: Express "go to specific page" for a collection

From: Jindřich Mynarz <mynarzjindrich@gmail.com>
Date: Mon, 7 Jul 2014 13:38:20 +0200
Message-ID: <CAE=8Bu-tWaiZGD0qieXFH+WWHnEX+p=LcyRLCKHDzQGouE3FmA@mail.gmail.com>
To: public-hydra@w3.org
Hi Pipo,

this is somewhat similar to my question to the Hydra mailing list
about enabling random access to hydra:PagedCollections (see here:
http://lists.w3.org/Archives/Public/public-hydra/2014Jun/0083.html).
This discussion concluded with an agreement that random access to
paged collections isn't a common use case, so it isn't a top priority
for Hydra to provide solution for it.

However, if you wanted to enable random access to
hydra:PagedCollection, then I think your approach with :goToPage
hydra:TemplatedLink may work find. Instead of using
hydra:freetextQuery for hydra:property mapping in the
hydra:IriTemplateMapping, I think you can use an anonymous property
with rdfs:range defined to be xsd:positiveInteger:

"property" : {
  "rdfs:range" : "xsd:positiveInteger"
}

Although I'm not sure if using anonymous properties in such case is an
accepted practice in Hydra.

Also note that in JSON-LD you don't need to repeat @context for nested
objects, unless you want to override the parent object's @context.

Best,

Jindřich

-- 
Jindřich Mynarz
http://mynarz.net/#jindrich

On Mon, Jul 7, 2014 at 1:18 PM, Philipp Zins <pipo@senaeh.de> wrote:
> Hi everyone,
>
> "Example 14" in the docs shows a more complex example for a collection. It
> looks like this:
>
> {
>   "@context": "http://www.w3.org/ns/hydra/context.jsonld",
>   "@id": "http://api.example.com/an-issue/comments?page=3",
>   "@type": "PagedCollection",
>   "totalItems": "4980",
>   "itemsPerPage": "10",
>   "firstPage": "/an-issue/comments?page=1",
>   "nextPage": "/an-issue/comments?page=4",
>   "previousPage": "/an-issue/comments?page=2",
>   "lastPage": "/an-issue/comments?page=498",
>   "member": [
>     ... the members of this PagedCollection ...
>   ]
> }
>
>
> I wonder how one would express a "go to specific page" relation? Would this
> be appropriate?
>
> {
>   "@context": "http://www.w3.org/ns/hydra/context.jsonld",
>   "@id": "http://api.example.com/an-issue/comments?page=3",
>   "@type": "PagedCollection",
>   "totalItems": "4980",
>   "itemsPerPage": "10",
>   "firstPage": "/an-issue/comments?page=1",
>   "nextPage": "/an-issue/comments?page=4",
>   "previousPage": "/an-issue/comments?page=2",
>   "lastPage": "/an-issue/comments?page=498",
>   "goToPage:" {
>
>   "@context": "http://www.w3.org/ns/hydra/context.jsonld",
>   "@type": "IriTemplate",
>   "template": "/an-issue/comments{?page}",
>   "mapping": [
>     {
>       "@type": "IriTemplateMapping",
>       "variable": "page",
>       "property": "hydra:freetextQuery",  // Can in express something like
> "integerQuery" here?
>       "required": true
>     }
>   ]
> }
>
>   "member": [
>     ... the members of this PagedCollection ...
>   ]
> }
>
>
> Thank you,
> Pipo
Received on Monday, 7 July 2014 11:39:07 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:29:42 UTC