-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reduce or remove the constraints in section 7.2 Baseline Information Model #10
Comments
Revisiting this issue following the First Public Working Draft. The current draft says the goals of the WoT Core Profile are:
I do agree that defining constraints in the WoT Core Data Model section (now section 5.1) could help interoperability, limit implementation complexity and make Thing Descriptions more human readable. For example, limiting the depth of nested data structures and constraining the values of certain members (e.g. limiting units to a single ontology, though the current draft doesn't do this). However, I find that these requirements often conflict with each other. For example, section "5.1.2.1 Mandatory Fields" sets out a list of mandatory members of a Thing Description. Regarding the first goal, I would argue that none of these fields need to be mandatory in order to guarantee out-of-the box interoperability.
Regarding the second goal, making all these members mandatory actually adds to implementation complexity. Regarding the third goal, I agree that title and description help improve human readability, though a title can be auto-generated from the key of an interaction affordance in the worst case. I therefore propose that:
See also: https://lists.w3.org/Archives/Public/public-wot-wg/2020Dec/0025.html |
Duplicate of #3. |
In retrospect I'm going to reopen this issue because #3 is specifically about "data schemas" whereas this issue is about re-evaluating the whole of the WoT Core Data Model section, including considering removing it entirely. See also my extensive review feedback in #93 (review) |
In #175, the Use Cases & Requirements of the WoT Profile specification were clarified to focus on out-of-the box interoperability, and previously discussed requirements about human readability and constrained devices were dropped. Since #125 was closed without being resolved, I am posting here to continue the discussion about how to modify the specification to reflect that change in requirements. To re-iterate my comments from #125, my recommendation is to remove the whole of the current section 6.2 Data Model, and instead create separate sections for:
In my view the majority of the current constraints in 6.2 are arbitrary, unnecessarily constraining and do not contribute to the agreed goals of the specification. As a minimum this section should be marked as at risk until a consensus is reached between multiple implementers on which constraints are needed. Examples:
|
Another question which is yet to be answered is what a WoT Consumer should do if a Thing Description fails to validate against one of the constraints in the proposed data model. E.g. if one affordance is missing a title or description member, does it render the entire Thing Description invalid and the Consumer should stop processing it altogether and return an error? |
That's an important question that needs careful consideration. |
I agree that we have to align and get consensus on these points first and then do a significant rewrite. I added the length and size constraints to the agenda of today's (18.5.) call and will carry them over to next week. It would be ideal if we can have a live conversation in the next call to get consensus quickly. |
I've renamed this issue to reflect the latest name of this section. Some of the constraints have also now appear to have been moved out into separate sections:
|
The information model section has been removed, suggest we close this issue. |
I suggest that section 4.1.1 Core Data Model should be removed, or merged with the main WoT Thing Description specification.
The profile should instead focus on defining constraints for the payloads of HTTP requests as part of the HTTP protocol binding.
The text was updated successfully, but these errors were encountered: