- From: Karol Szczepański <karol.szczepanski@gmail.com>
- Date: Thu, 22 Oct 2015 22:20:54 +0200
- To: <public-hydra@w3.org>, "Dietrich Schulten" <ds@escalon.de>
Hi Following your interesting discussion... >I would have expected hydra:first to be the first view in the series, >but following Elf, the @id of the collection can point to any page in >the series, as the server chooses. In that case looking at hydra:first >won't tell me if I am in the initial view. >I just realized that there is no hydra:pageNo where we could say that >the initial page is always no. 0 :-) Actually with partitioning based i.e. on dates we cannot talk about pages! These are indeed partial views but I hesistate to call it a page when the view is on daily basis. Still, this doesn't change the general concept of a hydra:view. The question is, shall these cases with different partitioning schemes be elevated to specific views? Or are these just separate resources provided by the API? Consider these examples: http://temp.uri/api/posts?page=1 - standard paging http://temp.uri/api/posts?date=2015-10-22 - should be this rised as hydra view mechanism? http://temp.uri/api/posts/2015-10-22 - or should it be a feature of the API to be implemented by the developer http://temp.uri/api/posts/2015-10-22?page=1 - this still can be paged! Still, it might be worth of having something in hydra to tell client on how to construct some iri templates. I can imagine these situations: http://temp.uri/api/posts?page={?page} where ?page maps to vocab:pageNo http://temp.uri/api/posts/{?year}/{?month}/{?day} - where ?year, ?month and ?day maps to vocab:year, vocab:month, vocab:day http://temp.uri/api/posts?filter={?freetextSearch} where ?freetextSearch maps to hydra:freetextSearch http://temp.uri/api/posts?order-by={?property} where ?property maps to vocab:property This enables client to handle and combine these effectively. I hesistated to put all of these into hydra, but haview few extra predicates in an extension is of no use either. >> I can well understand the latter problem you describe, it would be very >> nice to make the client more aware of the semantics behind the paging >> scheme >> so that it can freely choose it according to it's own needs. This would >> be very useful if a client >> is looking only for data in a certain time frame for example. >> The problem with this is that Hydra should not become an API querying >> vocab I think; >absolutely not. So many variations, and really orthogonal to Hydra Core. Well, hydra should not become a querying API, but should provide few simple mechanisms to address common scenarios experienced in the wilderness. >>but this would effectively happen if we only start with a >> single predicate like this >> (ok, there is freetextQuery but this is very generic and for me a >> compromise to have a very common concept in the vocab before there are >> established alternatives). >> Some approaches that can do a better job: >> - TPF >> - OData (not sure whether there is an RDF based vocab yet) >> - SPARQL Ugh, these are heavy tools. SPARQL is not ReSTfull (yes, it supports GET and POST etc., but is not resource oriented) and it enforces it's own result set format. OData unless some ORM like approach is used won't work with pure RDF (I think), TFP is something that I'm not familiar with thus I'll leave comments to other. OpenSearch seems not to be ReSTfull as well. None of these solutions in my opinion fits to restful APIs. Regards Karol Szczepański
Received on Thursday, 22 October 2015 20:21:15 UTC