-
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
Clarify concerns on Human readability #160
Comments
Please see the feedback I already provided in #156 (comment)
This topic has now been discussed ad nauseam over a period of 2.5 years, see:
In the interests of closing this discussion, I have two further suggestions for resolving this issue: Option 1 - RemovalThe quickest way to resolve this issue, and my recommendation, is to simply remove this as a general goal of the WoT Profile specification given the number of objections (not just clarifications) provided by Working Group members regarding how this goal conflicts with other goals. Note that there's nothing stopping someone from creating a linter tool, as @relu91 suggested, which can check a Thing Description for a set of recommended best practices. These best practices could even be formalised in a W3C Working Group Note like the Security and Privacy Guidelines. Option 2 - RefinementAs I understand it, in the current specification this requirement basically boils down to whether the following members should be mandatory for Thing Descriptions complying to the Core Profile:
I assume this would mean that if one of these members was omitted, the Thing Description would be considered invalid and the Consumer would stop processing it. This would harm interoperability, since it would prevent a Consumer interacting with a Thing with an otherwise valid Thing Description, and it increases implementation complexity because a Consumer must validate these additional constraints when processing a Thing Description. If other Working Group members are not willing to drop human readability as a general goal of the WoT Profile specification, and we're now too late to add human readability recommendations in the Thing Description 1.1 specification, then another alternative would be to make these constraints RECOMMENDED rather than MANDATORY for the Core Profile, and specify that Thing Descriptions which break these assertions SHOULD print a warning on the developer console, rather than just stop processing the Thing Description altogether. I suggest this could be achieved with two simple assertions in a Recommended Practices section of the Core Profile:
This would still increase implementation complexity, but it would mitigate the impact on interoperability. Note: With this option, I suggest this goal should only be applied to the Core Profile and not a goal of all profiles, since it may not be appropriate for all future profiles, such as a Constrained Profile, where it would conflict with further requirements. As I say, my preference is option 1. |
Regarding option 2, I think we need to define a general approach on what happens when a TD claims to be compliant to a profile but is not. I can also open an issue about this but I think this was discussed somewhere that I am not finding now. |
I strongly prefer option 2 with a couple of additional considerations.
This is what is meant by "out of the box interoperability". |
@mlagally wrote:
It's not the end user who needs to know that the title/description of an interaction affordance is missing, it's the developer who created the Thing and is testing it with Consumers. If the description was omitted at development time then it's already too late for the end user.
This is how interoperability works on the web. If it worked the way you are proposing, browsers would refuse to render most web pages.
So you're saying that if a Consumer can't display a human-friendly description for a particular property (which may not even be in a language the user can read) because the developer forgot to provide it, then the Consumer should just refuse to communicate with the device altogether? And that's less likely to generate a customer service call?
I would call that "out-of-the-box inoperable" rather than "out-of-the-box interoperable". But I guess we still need to agree on a definition... #155 The approach you are describing would work if WoT was like Bluetooth, Zigbee or Wi-Fi where there was some kind of centralised testing and certification process WoT devices had to go through before they could be sold. But given that isn't how W3C standards work, implementations have to be resilient enough to cope with situations where developers aren't necessarily following best practices. As an end user, which of the two options at the bottom would you prefer? |
Thanks @benfrancis for providing this example. Note that the objective of the profile is to provide interoperability guarantees for industrial, home and other devices. It goes beyond a Web browser where different implementations may break on certain content. |
It will become clearer when we have a common definition of OOTBI. |
I think there is a fundamental issue: W3C standards, unlike Zigbee, IEEE, IEC etc. do not have guarantees since W3C's business model does not involve certification.
The first part of this conditional sentence can never be true since we as W3C WoT WG cannot do conformance verification.
No one can stop a device or platform to create a TD that claims to be compliant to a profile. Similarly, a property affordance can be claimed to be a string but the device can deliver a number. Thus, Consumer applications should not simply break down in case of such simple inconsistencies |
This level of verification can be done by JSON schema validation. |
No description provided.
The text was updated successfully, but these errors were encountered: