-
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
TPAC summary and Proposed wording to explain the concept of "Bindings extend, Profile restrict" #418
Comments
The initial rewording proposal from Siemens:
|
Hi Luca, Luca wrote:
First of all, I agree with this high level concept. Regarding the text you have proposed, what is it for? A resolution? New specification text? And is this definition meant to apply from Profiles 1.0 or Profiles 2.0? Note that we refined the Introduction of the specification back in June to provide a clearer description of what profiles are for. See an extract below:
I don't think either your proposed text or the one suggested by Sebastian really captures this. Luca wrote:
Protocol bindings and payload bindings are only two of the five (six if you include discovery mechanisms) extension points which need to be constrained in order to guarantee out-of-the-box interoperability between a Thing and a Consumer. Sebastian wrote:
I think I agree with the point you're trying to make, but I don't think it's quite accurate to say that "A Profile document contains only a subset of features of the Thing Descriptions specification". What a Profile should do is constrain the extension points of the Thing Description specification to a finite set of extensions, and require certain defaults to be observed. E.g. a Profile probably wouldn't say "a Thing Description must not contain a However, a Profile might say "a Thing conforming to this profile must provide an HTTP protocol binding and conform to the defaults defined in the HTTP Binding Template" or "a Thing conforming to this profile must provide payloads serialised in JSON" or "a Thing conforming to this Profile must only require authentication using the OAuth2 security scheme" or "a Thing conforming to this profile must use the saref ontology for describing units". Furthermore the reason a profile defines these constraints is not "to describe all the Affordances and metadata exposed by a profile-conforming Thing", but to guarantee out-of-the-box interoperability between a Consumer and a Thing. At a high level I would say that:
I will try to join the meeting later today. Kind regards Ben |
The comment from the call from @benfrancis that improves the Siemens text:
This is still not perfect since the word feature is not clear and the part starting with "to describe" is not clear. Some parts to be more thorough about:
Also, just to repeat and make sure: These are my opinions on the mechanism in general. Whether all terms should be allowed to be restricted or how we allow a profile to exist in the WoT WG level or as part of a registry is another discussion. I feel that we do not have enough experience to mandate or even recommend a bunch stuff to all WoT users. We do not have any agreed-upon use case (ootbi is too vague and cannot be easily accomplished even with the current level of profiles). However, within ecosystems or within individual organizations, I would see profiles flourishing more. E.g., like an API marketplace, one can mandate the inclusion of @benfrancis and @lu-zero I have finished editing my comment. |
As a reminder, the current definition of "Profile" in the WoT Architecture specification is:
Thinking about this, and all the comments above, I tried to further refine the proposed text from Siemens and arrived at: A Profile If all a Profile can do is constrain "the vocabulary terms of Thing Descriptions and their values", that's a bit different to the approach I had proposed in WoT HTTP Basic Profile 2.0 - Strawman Proposal, which focuses on constraining six key extension points:
This got me wondering about whether constraining "the vocabulary terms of Thing Descriptions and their values" is sufficient to constrain all six of these extension points:
One other "feature" that @egekorkan suggested we might want Profiles to constrain in the meeting today was data schemas. I think that could be achieved by constraining the values of So with the exception of discovery mechanisms, upon first analysis the above definition could potentially be workable, but I think it requires a lot more thought. There are a lot of nuances to consider such as:
The above also assumes the action suggested in Profile Mechanism 2.0 of moving the protocol binding sections out of profiles into protocol binding template documents as defaults. Without this, the above approach definitely wouldn't work. P.S. @egekorkan I was writing this while you were writing your last comment and it appears we've been having some similar thoughts. For the record I do believe out-of-the-box interoperability can be achieved on the Web of Things and I have very concrete commercial use cases for it. |
During the TPAC we had enough consensus along the lines of "Bindings extend, Profiles restrict"
My initial draft takes from the Binding Templates introduction:
The text was updated successfully, but these errors were encountered: