Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 31 additions & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3811,12 +3811,22 @@ <h3><code>Form</code></h3>
</tr>
</tbody>
</table>

<!-- https://www.w3.org/TR/wot-architecture11/#arch-media-type-extra -->
<p>
Possible values for the <code>contentCoding</code> property can be found, e.g., in the
While this table defines the terms available in a form,
<span class="rfc2119-assertion" id="td-form-context-submission-target"
>, Bindings MAY have additional information that specifies representation formats in more detail than
the media type alone.</span
>
For example, in a TD with the Modbus Binding, <code>modv:mostSignificantByte</code> in a form describes
the endianness of the payload. Please see <a href="#bindings"></a> for further information. Furthermore,
possible values for the <code>contentCoding</code> property can be found, e.g., in the
<a href="https://www.iana.org/assignments/http-parameters/http-parameters.xhtml#content-coding">
IANA HTTP content coding registry</a
>.
</p>

<p>
The list of possible operation types of a form is fixed. As of this version of the specification, it only
includes the well-known types necessary to implement the WoT interaction model described in [<cite
Expand Down Expand Up @@ -3972,6 +3982,18 @@ <h3><code>Form</code></h3>
possible for every new interaction with the WoT <a>producer</a>.
</p>

<!-- https://www.w3.org/TR/wot-architecture11/#arch-form-iris2 -->
<p>
<span class="rfc2119-assertion" id="td-form-context-submission-target">
As a <a>Form</a> but not just the <code>href</code> defines how to execute the interaction,
<code>href</code> of multiple <a>Forms</a> MAY point to the same resource, where the different
<a>Forms</a> represent different operations on that resource.</span
>
For example, in a TD with the HTTP Binding, two <a>Forms</a> with HTTP GET and PUT methods can point to
the same resource but represent different operations such as <code>readproperty</code> and
<code>writeproperty</code>.
</p>

<section id="sec-op-data-schema-mapping" class="informative">
<h4>Mapping op Values to Data Schemas</h4>

Expand Down Expand Up @@ -7559,6 +7581,14 @@ <h6>Using a Thing Description with a Protocol Binding</h6>
present) accepted by the <a>Thing</a> in an interaction.
</span>
</li>
<li>
<!-- https://www.w3.org/TR/wot-architecture11/#arch-op-request-method -->
<span class="rfc2119-assertion" id="td-bindings-correct-methods">
Every operation MUST be unambigiously mapped to a method or message type from the standard set of the
protocol identified by the URI scheme found in <code>href</code> or <code>base</code> in the Thing
level.
</span>
</li>
</ul>
</section>
</section>
Expand Down
8 changes: 8 additions & 0 deletions index.template.html
Original file line number Diff line number Diff line change
Expand Up @@ -4559,6 +4559,14 @@ <h6>Using a Thing Description with a Protocol Binding</h6>
present) accepted by the <a>Thing</a> in an interaction.
</span>
</li>
<li>
<!-- https://www.w3.org/TR/wot-architecture11/#arch-op-request-method -->
<span class="rfc2119-assertion" id="td-bindings-correct-methods">
Every operation MUST be unambigiously mapped to a method or message type from the standard set of the
protocol identified by the URI scheme found in <code>href</code> or <code>base</code> in the Thing
level.
</span>
</li>
</ul>
</section>
</section>
Expand Down
3 changes: 3 additions & 0 deletions testing/assertions.csv
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"td-arrays_forms","null","The type of the member forms MUST be a JSON array."
"td-arrays_links","null","The type of the member links MUST be a JSON array."
"td-binding-multiple-ops","null","When a forms entry has multiple op values, the form MUST NOT restrict the messages that can be sent by the Consumer to only one operation."
"td-bindings-correct-methods","null","Every operation MUST be unambigiously mapped to a method or message type from the standard set of the protocol identified by the URI scheme found in href or base in the Thing level."
"td-bindings-requirements-scheme","null","Every form in a WoT Thing Description MUST follow the requirements of the Protocol Binding indicated by the URI scheme [[!RFC3986]] of its href member."
"td-bindings-server-accept","null","Every form in a WoT Thing Description MUST accurately describe requests (including request headers, if present) accepted by the Thing in an interaction."
"td-boolean-type","null","Values that are of type boolean MUST be serialized as JSON boolean."
Expand Down Expand Up @@ -127,6 +128,8 @@
"td-expectedResponse-default-contentType","null","If no response name-value pair is provided, it MUST be assumed that the content type of the response is equal to the content type assigned to the Form instance."
"td-expectedResponse-defined-contentType","null","If a content type is defined in the `response` object within a form, a Consumer MUST expect a response containing a payload in the respective format, e.g., an image in the case of `image/jpeg`."
"td-expectedResponse-missing-contentType","null","If there is no `contentType` value defined in a `response` object within a form, a Consumer MUST expect that the respective response does not contain any payload."
"td-form-context-submission-target","null",", Bindings MAY have additional information that specifies representation formats in more detail than the media type alone."
"td-form-context-submission-target","null","As a Form but not just the href defines how to execute the interaction, href of multiple Forms MAY point to the same resource, where the different Forms represent different operations on that resource."
"td-form-protocolbindings","null","If required, form objects MAY be supplemented with protocol-specific Vocabulary Terms identified with a prefix."
"td-format-validation-known-values","null","Servients MAY use the format value to perform additional validation accordingly."
"td-format-validation-other-values","null","When a value that is not found in the known set of values is assigned to format, such a validation SHOULD succeed."
Expand Down
25 changes: 22 additions & 3 deletions validation/td-validation.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -745,11 +745,20 @@
sh:datatype xsd:string ;
sh:order 7 ;
] ;
skos:scopeNote """<p>Possible values for the <code>contentCoding</code>
skos:scopeNote """

<!-- https://www.w3.org/TR/wot-architecture11/#arch-media-type-extra -->
<p>
While this table defines the terms available in a form, <span class="rfc2119-assertion" id="td-form-context-submission-target">, Bindings MAY have additional information that specifies representation formats in more detail than the media type alone.</span>
For example, in a TD with the Modbus Binding, <code>modv:mostSignificantByte</code> in a form describes the endianness of the payload.
Please see <a href="#bindings"></a> for further information.
Furthermore, possible values for the <code>contentCoding</code>
property can be found, e.g., in the <a href=
"https://www.iana.org/assignments/http-parameters/http-parameters.xhtml#content-coding">
IANA HTTP content coding registry</a>.</p>
<p>The list of possible operation types of a form is
IANA HTTP content coding registry</a>.
</p>

<p>The list of possible operation types of a form is
fixed. As of this version of the specification, it only
includes the well-known types necessary to implement the
WoT interaction model described in [<cite><a class=
Expand Down Expand Up @@ -882,6 +891,8 @@
</table>
</div>



<p>
A <a>Thing Description</a> of a WoT <a>producer</a> may have multiple forms entries with, e.g., different
protocol and/or content types declarations that a <a>Consumer</a> could possibly support. In that case
Expand All @@ -890,6 +901,14 @@
for every new interaction with the WoT <a>producer</a>.
</p>


<!-- https://www.w3.org/TR/wot-architecture11/#arch-form-iris2 -->
<p>
<span class="rfc2119-assertion" id="td-form-context-submission-target">
As a <a>Form</a> but not just the <code>href</code> defines how to execute the interaction, <code>href</code> of multiple <a>Forms</a> MAY point to the same resource, where the different <a>Forms</a> represent different operations on that resource.</span>
For example, in a TD with the HTTP Binding, two <a>Forms</a> with HTTP GET and PUT methods can point to the same resource but represent different operations such as <code>readproperty</code> and <code>writeproperty</code>.
</p>

<section id="sec-op-data-schema-mapping" class="informative">
<h4>Mapping op Values to Data Schemas</h4>

Expand Down