Closed mmccool closed 1 year ago
Note this is a renewal, not an extension. So we can have new deliverables.
Possible updates:
Possible new deliverables:
PR https://github.com/w3c/wot/pull/983 is meant to resolve the first subgoal: conversion of the old charter to the new template. Once this has been confirmed, we can merge this PR and check off the first subgoal.
Time series data is certainly an important new topic, suggest to rename to "Historical data (e.g. time series databases)."
I'm not sure we should be splitting the profiles based on use cases right now but rather just list the protocols that we are considering.
After review by chairs, update to template subgoal marked complete. Still lots to do.
In https://github.com/w3c/wot-thing-description/pull/1151#issuecomment-913621245 we were discussing whether EJS signatures should be a normative deliverable of the WG. If the spec is normative, we can require them in Discovery 2.0 and TD 2.0. If they aren't, we can't. Also, we can drop a normative deliverable if we determine it is not required, but it is hard to ADD a normative deliverable to a charter after it has been approved. So I suggest adding EJS as a normative deliverable to the next WG charter.
Additional proposed WG charter objectives, possibly with deliverables:
Consider also making "Security Best Practices" a normative document. Perhaps using the evergreen process to allow for easy update. Need to consider how this relates to certification.
@mccool wrote:
- TD 2.0
I propose this should include:
- Additional profiles: factory (MODBUS, OPC-UA), embedded (CoAP, MQTT) etc.
+1 for defining a "constrained profile" based on CoAP+CBOR, including considering the possibility of convergence with OCF -1 for domain-specific profiles or those using non-web protocols like Modbus and MQTT (on the basis that they don't meet the eligibility criteria for a WoT transfer protocol)
- Historical databases (e.g. time series queries)
This is a large and important area, but could it benefit from some incubation in the Interest Group first to determine use cases and requirements?
Management API.
I'm not clear on the use cases driving a management API, what problems is it solving?
Consider also making "Security Best Practices" a normative document. Perhaps using the evergreen process to allow for easy update. Need to consider how this relates to certification.
This best practices document doesn't seem to include much in the way of normative statements, it mostly contains informative recommendations like "use TLS" and implementation advice. What do you mean by certification? That isn't something that the W3C usually provides.
An additional deliverable to consider for TD 2.0:
Currently the Thing Description specification defines an abstract information model and a default JSON serialisation for Thing Descriptions, but something I think may be missing is an algorithm for parsing a Thing Description. A validation process is defined but is not mandatory, which leads to certain ambiguities for a Consumer parsing a thing Description.
For example:
readOnly
and writeOnly
or is readOnly
but defines a writeproperty
operation, what should it do? (see https://github.com/w3c/wot-thing-description/issues/1243#issuecomment-963130716)Form
which has no corresponding interaction level Form
, what should it do? (see https://github.com/w3c/wot-thing-description/issues/878)Edit: Also:
Form
with no op
member, what should it do? (See https://github.com/w3c/wot-thing-description/issues/1294)If a Thing provides multiple forms for the same interaction affordance, how does the Consumer choose which one to use?
+1 for having this in the next charter there's already some preliminary work done in the Scripting API https://github.com/w3c/wot-scripting-api/issues/282
Related issues: https://github.com/w3c/wot-thing-description/issues/1188 , https://github.com/w3c/wot-thing-description/issues/1083 https://github.com/w3c/wot-thing-description/issues/968
Possible new objective: onboarding process
Possible additional objective: additional profiles for cloud and digital twin use cases
Another topic that came up recently: better supporting devices that are clients. Reasons for this include security, power savings, etc. Note that MQTT is designed this way. Implications are there is a broker or "shadow" that caches the state or data from the device and can respond on its behalf. This leads to extending the shadow to maintain a history of state, which leads to time series databases, which we may want to query...
I propose we consider a standardized "shadow" service that can run in server that clients can register with and update (on their own schedule) periodically with state.
I think this touches with the sensor profile we briefly discussed in today's architecture call. The server in the simplest form can just provide a single endpoint that receives an event payload and is able to handle it appropriately.
Once again there's a need for a standardized event object format.
In my opinion this is a bit weird. Just send your data to the cloud and use TDs to describe the data in the cloud. How would you even use TDs to describe these client-side devices. Theoritically, in MQTT we are actually describing the broker where any device/Thing can publish to a certain topic.
We should however work on explaining how to use WoT in this case (if it is usable)
from today's main call: we should also cover the gaps that are currently identify by the use case coverage table
Renaming this issue since it was meant to capture goals for our third charter, which now will start in 2023 (probably).
Another possible deliverable goal: a data model transformation language. TDs describing existing devices don't necessarily give semantic interoperability because the data models may be inconsistent across different devices even in the same category. As an example, I have an RGBW LED Strip set up using ESPHome and a Hue Color Lamp. Both are lights that can be set to different colors. Both can even be integrated into Home Assistant which can act as a protocol translator making them available via HTTP. HOWEVER, one uses a device-specific RGBW color space and the other uses the CIE brightness + xy color space. To convert one to the other (for example, to allow the color to both to be set using an sRGB color) requires a non-trivial (and non-linear, e.g. power function) data transformation. Other color space conversions even need trigonometry! Even simple cases might require restructuring of the data payloads or breaking apart large payloads into different interactions. I have some devices, for instance, that pack ALL properties into a single "state" property rather than different interactions for different properties. There are other cases where a few bits of hidden state might be necessary to make interactions consistent across devices (e.g. the above lights have a "flashing" action which is modal in the case of the strip but non-modal and temporary in the case of the Hue bulb), or to support calibration, etc.
For the case of transforming the data for a single interaction, something like JSONata would work. It is used in Node-RED for just this purpose. Unfortunately, it is not a "standard". However, it is similar to XPath, and maybe JSONPath could be extended to support similar functionality.
For the case of "reorganizing" data that appears in one set of interactions into data that appears in another set of interactions in a different Thing (Model), we might need something more like a "Digital Twin" that has state and a general mechanism to transform an input TD and output to a different TD. In general, a Servient implemented with node-wot or something could do this, but a more declarative, rule-based approach would be nice (move this property there, etc). A general-purpose language carries security risks that a more limited rule-based system would not have.
Security TF Call 11 July: discuss Security and Privacy topics for next charter.
Discovery call 11 July:
McCool (I added the following right after the call closed):
Another point that keeps coming in different issues is "Payload based protocols", i.e. the implementation structures the payloads in a certain way that is repeated for each message. In some cases, it would be better to describe it with the subprotocol
field but there are cases where no such subprotocol specification exists.
Related issues: https://github.com/w3c/wot-binding-templates/issues/167 , https://github.com/w3c/wot-binding-templates/issues/125 and there is some in the TD that I am not able to find.
Discussion from DTDL call on July 19:
Let's plan another meeting to discuss the above further, in the meantime, here is a link to the DTDL resources (see also the WoT Main Web Conf wiki page): https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/dtdlv2.md
How can we better organize this? I think we might want to start writing up "deliverable descriptions" and putting them somewhere. I think an MD file per deliverable in a directory somewhere would be useful. Then we can decide which deliverables can be included in which way in the TPAC meeting. If something needs more incubation it can be an IG deliverable, for instance. We may also want to refactor things, e.g. pull out all normative security/privacy things into their own normative document.
Edit: see deliverable-proposals
Another point I have is versioning as a topic across the specs. It has two main parts:
Industrial Digital Twin liaison proposal:
Asset Administration Shell (AAS) is a new standard for the industry and is currently being developed by IEC/TC65 WG 24. The first part was finalized with IEC 63278-1.
An AAS can consist of so-called submodels, and each submodel has a specific application purpose (e.g., Digital Nameplate (DNP)). Currently, there is a submodel defined that is called Asset Interface Description (AID) which relays on the W3C Thing Description approach. The idea is to describe the interface of the asset (=Thing) and/or asset's related services.
node-wot has already an extension that allows to read AAS with AID instances.
The AID work is organized by the Industrial Digital Twin Association.
The idea in the new WG is to have an open exchange by a (small) liaison with the AID team. It would be great to have them on board when discussing use cases as well as at PlugFest meetings.
Update charter to template and make minor revisions prior to requesting
extensionrenewal. See new consolidated procedure.