- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Sat, 28 Nov 2015 19:02:09 +0100
- To: <public-hydra@w3.org>
Hi Maxim,
On 27 Nov 2015 at 21:18, Maxim Kolchin wrote:
> I'm working on an API for IoT middleware, the API is going to be based
> on Hydra.
Exciting! Is there already some documentation or a demo available somewhere?
> In this API I want to provide a link to a websocket stream
> which publishes latest observations of a device. How such a link should
> be represented? Are there relevant approaches outside of Hydra
> vocabulary?
>
> Currently, I just extend hydra:Link, i.e.:
>
> {
> "@context": {
> "vocab": "http://example.com/#",
> "hydra": "http://www.w3.org/ns/hydra/core#",
> },
> "@id": "vocab:observations",
> "@type": "hydra:Link",
> "rdfs:range": "hydra:Resource"
> }
>
> Probably "rdfs:range": "hydra:Resource" isn't appropriate statement,
> since a websocket stream is not a resource, but a kind of "continuous
> collection".
I would argue it is a resource, it is just being accessed through a different protocol (Websocket vs. traditional HTTP)
> Then continuous collection could be just a subclass of
> hydra:Collection with subscribe/publish operations and subscribe
> operation could return ssn:Observation (from [0]), i.e.:
>
> {
> "@context": {
> "vocab": "http://example.com/#",
> "hydra": "http://www.w3.org/ns/hydra/core#",
> {
> "@id": "vocab:ContinuousCollection",
> "@type": "hydra:Class",
> "rdfs:subClassOf": "hydra:Collection",
> "hydra:supportedOperation": [
> "@type": "hydra:Operation",
> "hydra:method": "WEBSOCKET_SUBSCRIBE",
> "hydra:returns": "ssn:Observation"
> ]
> }
> },
> "@id": "vocab:observations",
> "@type": "hydra:Link",
> "rdfs:range": "vocab:ContinuousCollection"
> }
>
> What do you think about that, Hydranians?
Why would you want to subclass hydra:Collection? I think this demands a different representation. I don't think that a collection and a stream have too much in common. Hydra is currently quite HTTP focused but people raised similar points in the past already. Till we get to work on that, I would propose to That you just subclass hydra:Resource. I personally would call such a class something like WebsocketSource (if you want to be able to distinguish between sources and sinks), WebsocketStream, or also WebsocketResource instead of ContinuousCollection.
Hope this helps,
Markus
> [0]: http://purl.oclc.org/NET/ssnx/ssn#
--
Markus Lanthaler
@markuslanthaler
Received on Saturday, 28 November 2015 18:02:38 UTC