Thing descriptions and semantic context ...

In todays TD call, we very briefly touch upon semantics for the context for devices. 

I saw that Michael questioned whether the context should be part of the thing description. To me that is not the right question (an "I, Robot" film reference).

We have a range of different metadata that describes:

- the interaction model, i.e. the object model with properties, actions and events.

- the units of measure and simple constraints on the data types.

- the device manufacturer, product model, serial number etc.

- the kind of device, e.g. an air conditioner, or a fan

- the location of the device in some frame of reference

- privacy policy and terms & conditions of use

… and so forth, since this is very much open ended

The term “thing description” has been used by Sebastian and others to mean just the interaction model, which ducks the challenge.

I think the information needed may depend on the tasks to be performed and the power of the requesting device/platform. A constrained device may just need the interaction model alone. A smart application on a rather more powerful device may want to access the richer context. This strikes me as a functional requirement, and something that could be reflected in the WoT APIs. In other words, we need an API for apps to access different kinds of metadata for a thing, and a means to make this workable on constrained devices.

At its simplest,a thing description expressed in JSON can be converted to a JavaScript value by calling JSON.parse.  Apps can then traverse this given a knowledge of the JSON vocabulary. This is sufficient for simple use cases where you want to name the room the device is located in, along with the device's functional role, e.g. as an air conditioner for that room. To find the room you look to see if there is a “room” meta property in the description, and similarly for the functional role.  No need for fancy ontologies here! We would need an API for apps to inspect the context to find the other things known to be present in the same room. This could be realised as a means to access the set of things the server knows about, for the server that app is running on.

For slightly more powerful server platforms, I believe that it would also be valuable to support simple APIs for Linked Data as RDF triples, e.g. to load a named graph given its URI, to follow a named relationship starting from a Linked Data node, and so forth. I have an lightweight implementation as a JavaScript library which I have applied to a number of demos.

If the amount of metadata is too large to conveniently retrieve, we can then make use of remote SPARQL end-points, and special purpose services that could themselves be exposed as things.

I recommend that those of us who are interested in enabling smart apps that can adapt to the context, arrange to chat about use cases when we are together in Dusseldorf. This could be as part of the break out session on linked data and semantic processing, but we could perhaps ask for an additional slot to give us more time on use cases.

Dave Raggett <dsr@w3.org> http://www.w3.org/People/Raggett
W3C champion for the Web of things

Received on Friday, 23 June 2017 08:20:54 UTC