- From: Christian Groves <Christian.Groves@nteczone.com>
- Date: Mon, 8 Feb 2016 15:53:19 +1100
- To: David Janes <davidjanes@davidjanes.com>, "t2trg@irtf.org" <t2TRG@irtf.org>, public-wot-ig@w3.org
Hello David, Picking up on facets. A few jumped out at me: iot-facet:toy - to me this rather than saying what a thing does this is telling what it expects me to do with it. For example: a quadcopter flies. I may use one for an aerial photography business in which case I wouldn't consider it a toy. iot-facet:media.radio.internet - Is this facet mixing principles? I read the facet as media content being delivered over a radio interface over a particular radio technology e.g.fm, am, sw etc. "Internet" would be a radio technology. "Internet Radio" may be better as "media.streaming". However one could assert "radio" is content from a "radio station". I think it highlights that facets need to be defined clearly defining what is the semantic scope of the facet. iot-facet:media.receiver - is a media receiver thing a superset of media.radio? iot-facet:control.climate - this seems to stick out from the control.* facets. The other control.* facets to me relate to something physical (e.g. I can picture a mouse). I can't picture a "climate". I could use a "dial" or a "keyboard" to control the temperature and humidity. I know in your example below you mention the nest doing "AC control" but does it match with "human input control". Regards, Christian G BTW: There seems to be an error for iot-facet:media the example says "doors, windows". I assume these are fixtures not media. On 27/01/2016 8:39 PM, David Janes wrote: > **** > Formatted version here: > https://github.com/dpjanes/homestar-plugfest/blob/master/docs/2016-01%20W3C%20IETF/3.%20WoT%20Thing%20needs%20to%20have%20meta%20Band.md > **** > > Points to be made: > > * Facets: AC / Furnace / Thermostat combo > * Schema.org properties, what if we want a Model Number? > * Meta or Model? > > > Nest Thermostat > > For this example, we'll be considering the Nest Thermostat. The Nest > Thermostat has (let's say): > > * it controls the AC > * it controls the Furnace > * it monitors Temperature > * it monitors Humidity > > > (3A) What's the "type" of this Thing? > > > Problem > > As in: > > |readonly attribute DOMString type; | > > Is it a: > > * Nest > * AC Control > * Heating Control > * Climate Control (in General) > > My answer would be "it's several of these" and in particular, the last > three. > > > Solution: Facets > > The "type" of a Thing cannot be a single value. Furthermore, the word > "type" is heavily overloaded so we propose the term "facets". > > So the Nest thermostat would have > > We propose the following solution: > > * use a "meta" band to store this type of data > * use "facets" (within the meta) to describe the "type" of a Thing > > e.g. the Nest Thing would have (at least) the following facets: > > * "Climate Control" > * "AC" > * "Heating" > > Since we want to be Semantic, we should use URLs (/QNames) for > concepts, giving us the facets > > |"iot-facet:climate", "iot-facet:climate.heating", > "iot-facet:climate.cooling", | > > Which can be looked up here: > > |https://iotdb.org/pub/iot-facet | > > > (3B) Additional Data > > The WoT Model defines the following meta-data like items. > > |readonly attribute DOMString id; readonly attribute DOMString type; > readonly attribute DOMString name; | > > What if we want to have an image associated with the metadata. How > about /two/ images? What about the manufacture name, or URL, or the > Model code? How about a description? > > > (3C) Schema.org Vocabulary > > Schema.org provides a well supported semantic vocabulary. Of > particular interest to the IoT community is: > > * https://schema.org/Thing > * https://schema.org/Product > > There is /no need/ to make new definitions for common concepts: the > work has been done for us. > > > (3D) Meta v Model > > Note that you might say "why are you using metadata to describe this > rather than the model". In fact, you probably want it in both, e.g. > > * the model has the initial definitions > * when a Thing is instantiated, it copies the initial definitions > from the model to the meta. > * the meta can be modified during use; the model is basically static > > Considering the WeMo Switch again. Out of the box its facet is > "iot-facet:switch". However, if we connect it to a lamp then we really > want to consider this /to be a lamp/, e.g. its facet should become > "iot-facet:lighting". > > > (3E) Putting it all together > > Instead of variables on a Thing, we propose that there be a band (i.e. > a JSON-like dictionary) that stores all the meta data. > > This would look very much like this: > > |{ "iot:thing-id": "<the thing id>", "iot:facet": [ > "iot-facet:climate", "iot-facet:climate.heating", > "iot-facet:climate.cooling", ], "schema:name": "My Super Cool Nest > Thermostat", "schema:manufacturer": "https://nest.com", > "schema:model": "Nest", "schema:mpn": "......", "schema:productID": > "......", } | > > You'll note that this looks very much like the istate and ostate > bands, even though its purpose is very different. Code wise it's much > the same > > |thing.meta.get("schema:name") ## "My Super Cool Nest Thermostat" > thing.meta.get("iot:facet") ## [ ... ] thing.meta.set("schema:name", > "David's Thermostat") | > > and so forth >
Received on Wednesday, 10 February 2016 08:45:07 UTC