From 9ddb28ac8c70f1c70bb8c63f3e8444365f358569 Mon Sep 17 00:00:00 2001 From: ashimura Date: Mon, 10 Jul 2023 15:31:49 +0900 Subject: [PATCH] udpate diff.html --- publication/ver11/6-pr/diff.html | 31397 +++++++++++------------------ 1 file changed, 11404 insertions(+), 19993 deletions(-) diff --git a/publication/ver11/6-pr/diff.html b/publication/ver11/6-pr/diff.html index 2d25213d..8459fb7a 100644 --- a/publication/ver11/6-pr/diff.html +++ b/publication/ver11/6-pr/diff.html @@ -1,10 +1,14 @@ - - - - - - - - + + - + + - Web of Things (WoT) Thing Description 1.1 - +Web of Things (WoT) Thing Description 1.1 + + - + + - - + - - + + - - - + + + - + + - - +]]> + + - - -
-

-

-

-Web +

+Web of Things (WoT) Thing Description 1.1 -

-

- +

W3C -Candidate - -Proposed - +Proposed Recommendation -Snapshot - - -19 -January - -

-
- +

More details about this document - -
-
+
This version: -
-
-https://www.w3.org/TR/2023/CR-wot-thing-description11-20230119/ - - -https://www.w3.org/TR/2023/PR-wot-thing-description11-20230607/ - - -
-
+
+https://www.w3.org/TR/2023/PR-wot-thing-description11-20230711/ +
Latest published version: -
-
- +
https://www.w3.org/TR/wot-thing-description11/ - -
-
+
Latest editor's draft: -
-
- +
https://w3c.github.io/wot-thing-description/ - -
-
+
History: -
-
- -https://www.w3.org/standards/history/wot-thing-description11 - -
-
- +
+https://www.w3.org/standards/history/wot-thing-description11/ +
Commit history - -
-
+
Implementation report: -
-
- +
https://w3c.github.io/wot-thing-description/testing/report11.html - -
-
+
Editors: -
-
- +
Sebastian Kaebisch - + ( - + Siemens AG - + ) -
-
- +
Michael McCool - + ( - + Intel - + ) -
-
- +
Ege Korkan - + ( - + Siemens AG - + ) -
-
+
Former editors: -
-
- +
Takuki Kamiya - + ( - + Fujitsu Research of America - + ) -
-
- +
Victor Charpenay - + ( - + Siemens AG - + ) -
-
- +
Matthias Kovatsch - + ( - + Huawei - + ) -
-
+
Feedback: -
-
- +
GitHub w3c/wot-thing-description - + ( - + pull requests -, - +, new issue -, - +, open issues - + ) -
-
- +
public-wot-wg@w3.org - + with subject line - + [wot-thing-description11] - + … message topic … - - + ( - + archives - + ) -
-
-Previous +
+Previous Recommendation -
+
https://www.w3.org/TR/2020/REC-wot-thing-description-20200409/ -
+
Contributors -
-
- +
In the GitHub repository - -
-
+
Repository -
-
- +
We are on GitHub - -
-
- +
File a bug - -
-
-
- -
-
-
-

+


Abstract -

-

+

This document describes @@ -888,14 +840,14 @@

and interfaces of - + Things -, +, where a - + Thing - + is an abstraction @@ -969,9 +921,9 @@

represent knowledge about - + Things - + in a machine-understandable @@ -985,18 +937,18 @@

hosted by the - + Thing - + itself or hosted externally when a - + Thing - + has resource restrictions @@ -1068,8 +1020,7 @@

specific communication metadata. -

-

+

This specification describes @@ -1084,14 +1035,9 @@

Description 1.0 [ - -WOT-THING-DESCRIPTION - - -WOT-THING-DESCRIPTION10 - - - + +WOT-THING-DESCRIPTION10 + ]. Unless otherwise @@ -1110,17 +1056,12 @@

Thing Description 1.1. -

-

-
-

+

Status of This Document -

-

- +

This section describes @@ -1139,9 +1080,9 @@

list of current - + W3C - + publications and the @@ -1156,226 +1097,27 @@

found in the - - + W3C - + technical reports index - + at https://www.w3.org/TR/. - -

-

-At -the -time -of -CR -transition, -due +

+Future +updates to -insufficient -implementation -experience -the -following +this +specification +may +incorporate + +new features -are -at -risk: -Indicating -location -of -security -information -in -body -of -payload -using -JSON -pointers. -sec-body-name-json-pointer -, -sec-body-name-json-pointer-array -, -sec-body-name-json-pointer-creatable -, -and -sec-body-name-json-pointer-type -. -Indicating -location -of -security -information -using -URI -template. -td-security-in-query-over-uri -and -td-security-in-uri-variable -. -td-security-uri-variables-distinct -. -Multilanguage -content -negotiation. -td-ns-multilanguage-content-negotiation -and -td-ns-multilanguage-content-negotiation-no-multi -. -TD -Processor -bidi -isolation. -td-processor-bidi-isolation -. -TD -Producer -mixed -direction -scripts. -td-producer-mixed-direction -. -Text -direction -inferencing. -td-text-direction-first-strong -and -td-text-direction-language-tag -. -Support -for -OAuth2 -client -flow. -td-security-oauth2-client-flow -and -td-security-oauth2-client-flow-no-auth -. -Support -for -OAuth2 -device -flow. -td-security-oauth2-device-flow -. -Use -of -extensions -for -security -vocabulary. -td-security-extension -. -Support -for -queryallactions -operation. -td-vocab-op--Form_queryallactions -. -Thing -Model -references -and -versioning. -tm-tmRef1 -, -tm-tmRef2 -, -tm-versioning-1 -, -and -tm-derivation-validity -. -In -addition, -a -number -of -assertions -in -the -Privacy -Considerations -and -Security -Considerations -sections -are -at -risk: -privacy-immutable-id-as-property -privacy-temp-id-metadata -security-context-secure-fetch -security-jsonld-expansion -security-mutual-auth-td -security-oauth-limits -security-remote-context -security-server-auth-td -security-static-context -These -represent -best -practices -but -often -relate -to -deployment -policy -rather -than -implementations -and -in -some -cases -are -difficult -to -validate. -The -intention -is -to -complete -as -many -of -these -as -possible -by -PR; -those -that -cannot -be -validated -but -that -represent -best-practice -recommendations -will -be -converted -into -informative -statements. -At-risk -assertions -are -marked -with -yellow -highlighting. - +.

The Web of @@ -1391,9 +1133,9 @@

consideration as a - + W3C - + Proposed Recommendation after @@ -1451,102 +1193,50 @@

statements, as appropriate. -

-

+

This document was published by the - + Web of Things Working Group - + as a -Candidate - -Proposed - +Proposed Recommendation -Snapshot - using the - + Recommendation track -. -

-

+.

Publication as a -Candidate - -Proposed - +Proposed Recommendation does not imply endorsement by - + W3C - + and its Members. -A -Candidate -Recommendation -Snapshot -has -received -wide -review -, -is -intended -to -gather -implementation -experience -, -and -has -commitments -from -Working -Group -members -to -royalty-free -licensing -for -implementations. - -

-

+

This -Candidate -Recommendation - is -not -expected -to -advance -to -Proposed -Recommendation - -a +a draft document and @@ -1560,11 +1250,8 @@

other documents at - any -earlier - -time. +time. It is inappropriate @@ -1574,19 +1261,15 @@

document as other - than -16 -February - -work +work in progress. -

+

The - + W3C - + Membership and other @@ -1602,17 +1285,16 @@

send comments through -07 -June - +10 +July 2023. -Advisory +Advisory Committee Representatives should consult their - + WBS questionnaires . @@ -1631,12 +1313,10 @@

period that ended -13 -June -2019. - -

-

+16 +February +2023. +

This document was @@ -1647,26 +1327,24 @@

operating under the - - + W3C - + Patent Policy -. - +. W3C - + maintains a - + public list of any patent disclosures - + made in connection @@ -1699,10 +1377,10 @@

individual believes contains - + Essential Claim(s) - + must disclose the @@ -1710,1392 +1388,725 @@

in accordance with - + section 6 of the - + W3C - + Patent Policy -. -

-

+.

This document is governed by the - + 2 November 2021 - + W3C - + Process Document -. -

-

- -
-
-

- +

1. - + Introduction -

- - -
-

- +

This section is non-normative. - -

-
-
-

- +

1.1 - + Thing Description -

- - -
-

+

The WoT Thing @@ -3277,9 +2209,9 @@

block in the - + W3C - + Web of Things @@ -3294,15 +2226,15 @@

point of a - + Thing - + (much like the - + index.html - + of a Web @@ -3318,45 +2250,45 @@

metadata about the - + Thing - + itself, a set of - + Interaction Affordances - + that indicate how the - + Thing - + can be used, - + schemas - + for the data exchanged with the - + Thing - + for machine-understandability, - + Security Definitions - + to provide metadata @@ -3372,10 +2304,10 @@

interactions, and, finally, - + Web links - + to express any @@ -3385,41 +2317,38 @@

relation to other - + Things - + or documents on the Web. -

-

+

The - + Interaction Model - + of - + W3C - + WoT defines three types of - + Interaction Affordances -: +: Properties ( - - + PropertyAffordance - - + class) can be @@ -3442,11 +2371,9 @@

state. Actions ( - - + ActionAffordance - - + class) model invocation @@ -3470,11 +2397,9 @@

platforms. Events ( - - + EventAffordance - - + class) are used @@ -3500,16 +2425,13 @@

receiver. See [ - - + wot-architecture11 - - + ] for details. -

-

+

In general, the @@ -3518,35 +2440,30 @@

metadata for different - + Protocol Bindings - + identified by URI schemes [ - - + RFC3986 - - + ] (e.g., - + http -, - +, coap -, +, etc. [ - - + IANA-URI-SCHEMES - - + ]), content types @@ -3555,32 +2472,25 @@

media types [ - - + RFC2046 - - + ] (e.g., - + application/json -, - +, application/xml -, - +, application/cbor -, - +, application/exi -, +, etc. [ - - + IANA-MEDIA-TYPES - - + ]), and security @@ -3599,11 +2509,9 @@

on JSON [ - - + RFC8259 - - + ], where JSON @@ -3635,11 +2543,9 @@

JSON-LD 1.1 [ - - + JSON-LD11 - - + ] to enable @@ -3648,12 +2554,10 @@

rich semantic processing. -

-

- +

Example 1 - + shows a TD @@ -3661,10 +2565,10 @@

and illustrates the - + Interaction Model - + with Properties, Actions, @@ -3674,63 +2578,60 @@

describing a lamp - + Thing - + with the title - + MyLampThing -. -

-
-

+

From this TD @@ -3740,16 +2641,16 @@

there exists one - + Property affordance - + with the title - + status -. +. In addition, information @@ -3777,21 +2678,21 @@

at the URI - + https://mylamp.example.com/status - + (announced within the - + forms - + structure by the - + href - + member), and will @@ -3821,17 +2722,16 @@

by this document. -

-

+

In a similar manner, an - + Action affordance - + is specified to @@ -3845,9 +2745,9 @@

method on the - + https://mylamp.example.com/toggle - + resource, where POST @@ -3859,13 +2759,12 @@

for invoking Actions. -

-

+

The - + Event affordance - + enables a mechanism @@ -3877,9 +2776,9 @@

sent by a - + Thing -. +. Here, a subscription @@ -3906,19 +2805,17 @@

polling subprotocol on - + https://mylamp.example.com/oh -. -

-

+.

This example also specifies the - + basic - + security scheme, requiring @@ -3939,9 +2836,9 @@

a name in - + securityDefinitions - + and then activated @@ -3951,9 +2848,9 @@

name in a - + security - + section. In combination @@ -4015,9 +2912,9 @@

given at the - + Thing - + level, allowing for @@ -4035,9 +2932,9 @@

use a special - + nosec - + security scheme to @@ -4055,8 +2952,7 @@

be provided later. -

-

+

The Thing Description @@ -4125,14 +3021,14 @@

declared in the - + forms - + field. - + Example 2 - + extends the TD @@ -4147,32 +3043,30 @@

definition in the - + @context - + to declare the prefix - + saref - + as referring to - + SAREF -, +, the -Smart Appliance +Smart Appliance Reference Ontology [ - - + SMARTM2M - - + ]. This IoT @@ -4191,72 +3085,64 @@

values of the - + @type - + field, giving the semantics of - + Things - + and their - + Interaction Affordances -. +. In the example below, the - + Thing - + is labelled with - + saref:LightSwitch -, +, the - + status - - + Property - + is labelled with - + saref:OnOffState - + and the - + toggle - - + Action - + with - + saref:ToggleCommand -. -

-
-

+

The declaration mechanism inside some - + @context - + is specified by @@ -4333,11 +3219,9 @@

that specification [ - - + json-ld11 - - + ]. Hence, a @@ -4360,17 +3244,13 @@

refer to Appendix - - -C. - -D. - - + +D. + JSON-LD Context Usage - + and the documentation @@ -4379,25 +3259,16 @@

namespace IRIs, e.g., - + https://www.w3.org/2019/wot/td - + ). -

-

-
-
-

- +

1.2 - + Thing Model -

- - -
-

+

One of the @@ -4405,17 +3276,17 @@

intentions of a - + Thing Description - + is to provide a - + Consumer - + with all the @@ -4426,9 +3297,9 @@

interact with a - + Thing -. +. In some IoT @@ -4437,10 +3308,10 @@

a fully detailed - + Thing Description -, +, e.g., with communication @@ -4504,8 +3375,7 @@

of new devices). -

-

+

In order to @@ -4516,10 +3386,10 @@

or others, the - + Thing Model - + can be used @@ -4531,20 +3401,19 @@

model definitions within - + Things - + ' - + Properties -, - +, Actions -, +, and/or - + Events - + and can be @@ -4554,20 +3423,20 @@

template for creating - + Thing Description - + instances. In the following a sample - + Thing Model - + is presented that @@ -4579,73 +3448,66 @@

model for the - + Thing Description - + instance in - + Example - + 1 - -. -

-
-
- +.

Example - + 3 - - -: +: Thing Model sample - -
-
{
-    "@context": ["https://www.w3.org/2022/wot/td/v1.1"], 
-    "@type": "tm:ThingModel",
-    "title": "Lamp Thing Model",
-    "properties": {
-        "status": {
-            "description": "current status of the lamp (on|off)",
-            "type": "string",
-            "readOnly": true
+
{    "@context": [
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1"], 
+    "@type": 
+"hljs-string">"tm:ThingModel",
+    "title": 
+"hljs-string">"Lamp Thing Model",
+    "properties": {        "status": {            
+"hljs-attr">"description": "current status of the lamp (on|off)",
+            "type": 
+"hljs-string">"string",
+            "readOnly": 
+"hljs-literal">true
         }
     },
-    "actions": {
-        "toggle": {
-            "description": "Turn the lamp on or off"
+    "actions": {        "toggle": {            
+"hljs-attr">"description": "Turn the lamp on or off"
         }
     },
-    "events": {
-        "overheating": {
-            "description": "Lamp reaches a critical temperature (overheating)",
-            "data": {"type": "string"}
+    "events": {        "overheating": {            
+"hljs-attr">"description": "Lamp reaches a critical temperature (overheating)",
+            "data": {
+"hljs-attr">"type": "string"}
         }
     }
 }
-
-
-
-

- +

Thing Model - + definitions are identified by the - + "@type": "tm:ThingModel" -. +. As the example @@ -4658,9 +3520,9 @@

about a single - + Thing - + instance due to @@ -4679,17 +3541,17 @@

for deriving valid - + Thing Description - + instances from such - + Thing Model - + definitions. In addition, @@ -4706,26 +3568,16 @@

and reuse existing - + Thing Model - + definitions. -

-

-
-
-
-

- +

2. - + Conformance -

- - -
-

+

As well as @@ -4752,32 +3604,27 @@

specification is normative. -

-

+

The key words - + MAY -, - +, MUST -, - +, MUST NOT -, - +, RECOMMENDED -, - +, SHOULD -, +, and - + SHOULD NOT - + in this document @@ -4788,23 +3635,19 @@

as described in - + BCP 14 - + [ - - + RFC2119 - - + ] [ - - + RFC8174 - - + ] when, and @@ -4818,8 +3661,7 @@

as shown here. -

-

+

A Thing Description @@ -4835,38 +3677,33 @@

normative statements in - - + 5. - + TD Information Model - + and - - + 6. - + TD Representation Format - + regarding Thing Description serialization. -

-

+

A JSON Schema [ - - + JSON-SCHEMA - - + ] to validate @@ -4877,140 +3714,109 @@

provided in Appendix - - + B. - + JSON Schema for TD Instance Validation -. -

-

-
-
-

- +.

3. - + Terminology -

- - -
-

- +

This section is non-normative. - -

-

+

The fundamental WoT terminology such as - + Thing -, - +, Consumer -, - -Producer -, - +, +Producer +, Thing Description - + ( - + TD - + ), - + Partial TD -, - +, Thing Model - + ( - + TM - + ), - + Interaction Model -, - +, Interaction Affordance -, - +, Property -, - +, Action -, - +, Event -, - +, Protocol Binding -, - +, Servient -, - +, Vocabulary -, - +, Term -, - +, Vocabulary Term -, - +, WoT Interface -, +, and - + WoT Runtime - + are defined in - + Section 3 - + of the WoT Architecture specification [ - - + wot-architecture11 - - + ]. -

-

+

In addition, this @@ -5019,20 +3825,13 @@

the following definitions: -

-
-
- +

Semantic Tag -, - -Semantic +, +Semantic Annotation - - -
-
+
A JSON-LD mechanism @@ -5041,10 +3840,10 @@

definitions in a - + Thing Descriptions - + document to concepts @@ -5071,19 +3870,19 @@

way. In a - + Thing Descriptions - + document, this can be achieved using - + @type - + members, and through @@ -5096,41 +3895,36 @@

a colon ( -: - +: ). -

-
- +
TD Context Extension - -
-
+
A mechanism to extend - + Thing Descriptions - + with additional - + Vocabulary Terms -. +. It is the basis for - + semantic annotations - + and extensions to @@ -5145,27 +3939,23 @@

and Data Schemas. -

-
- +
TD Information Model - -
-
+
Set of - + Class - + definitions constructed from pre-defined - + Vocabularies - + on which constraints @@ -5176,9 +3966,9 @@

semantics of these - + Vocabularies -. +. Class definitions are @@ -5188,52 +3978,46 @@

terms of a - + Signature - + (a set of - + Vocabulary Terms - + ) and functions over that - + Signature -. The - +. The TD Information Model - + also includes - + Default Values -, +, defined as a global function over - + Classes -. -

-
- +.
TD Processor - -
-
+
A system that @@ -5244,9 +4028,9 @@

representation of a - -Thing Description - + +Thing Description + in a given @@ -5258,10 +4042,10 @@

that format. A - + TD Processor - + can follow validation @@ -5270,39 +4054,39 @@

detect semantically inconsistent - + Thing Descriptions -, +, that is, - + Thing Descriptions - + that cannot satisfy constraints on the - + Instance Relation - + of the - + Thing - + class. For that purpose, a - -TD Processor - + +TD Processor + can compute fill @@ -5310,35 +4094,35 @@

the forms of - + Thing Descriptions - + in which all possible - + Default Values - + are assigned. A - + TD Processor - + is typically a sub-system of a - + WoT Runtime -. +. Implementations of a @@ -5348,9 +4132,9 @@

be a TD - + producer - + (able to serialize @@ -5369,26 +4153,22 @@

Documents) or both. -

-
- -TD Serialization - +
+TD Serialization + or - -TD Document - -
-
+ +TD Document +
Textual or binary representation of - + Thing Descriptions - + that can be @@ -5396,14 +4176,14 @@

and exchanged between - + Servients -. +. A - + TD Serialization - + follows a given @@ -5424,10 +4204,10 @@

representation format for - + Thing Descriptions - + is JSON-based as @@ -5435,26 +4215,24 @@

by this specification. -

-
- -Levels +
+Levels of a TD (including - + Thing Level -, +, Affordance Level -, +, Data Schema Level -, +, Forms Level @@ -5537,54 +4315,40 @@

as Links level. - -

-

+

These definitions are further developed in - - + 5.2 - + Preliminaries -. -

-

-
-
-

- +.

4. - + Namespaces -

- - -
-

+

The version of the - + TD Information Model - + defined in - - + 5. - + TD Information Model - + of this specification @@ -5594,21 +4358,15 @@

the following IRI: -

-

- +

https://www.w3.org/2022/wot/td/v1.1 - -

-

+

This IRI [ - - + RFC3987 - - + ], which is @@ -5616,11 +4374,9 @@

a URI [ - - + RFC3986 - - + ], can be @@ -5628,37 +4384,35 @@

to obtain a - + JSON-LD context file - + [ - - + json-ld11 - - + ], allowing the compact strings in - + TD Documents - + to be expanded to full IRI-based - + Vocabulary Terms -. +. However, this processing @@ -5668,30 +4422,29 @@

when transforming JSON-based - + TD Documents - + to RDF, an optional feature of - -TD Processor - + +TD Processor + implementations. -

-

+

In the present specification, - + Vocabulary Terms - + are always presented @@ -5711,9 +4464,9 @@

IRI of the - + Vocabulary - + they belong to. @@ -5723,24 +4476,23 @@

the structure of - - + 5.3 - + Class Definitions -. +. Each - + Vocabulary - + used in the - -TD Information + +TD Information Model - + has its own @@ -5748,76 +4500,39 @@

IRI, as follows: -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 1 - + Namespaces used in TDs -
+
Vocabulary - + Namespace IRI -
+
Core - - + https://www.w3.org/2019/wot/td# - -
+
Data Schema - - + https://www.w3.org/2019/wot/json-schema# - -
+
Security - - + https://www.w3.org/2019/wot/security# - -
+
Hypermedia Controls - - + https://www.w3.org/2019/wot/hypermedia# - -
-

+

All vocabularies that @@ -5825,59 +4540,40 @@

additionally used for - + Thing Model - + definitions have the following namespace IRI: -

- -
- -Table - +

- - - - - - - - - - - - -
+Table + 2 - + Namespaces used in TMs -
+
Vocabulary - + Namespace IRI -
+
Thing Model - - + https://www.w3.org/2022/wot/tm# - -
-

+

The - + Vocabularies - + are independent from @@ -5891,9 +4587,9 @@

extended in other - + W3C - + specifications. Every breaking @@ -5903,9 +4599,9 @@

design of a - + Vocabulary - + will require the @@ -5925,11 +4621,11 @@

coherence of the - + TD Information Model -, +, the associated JSON-LD @@ -5946,15 +4642,13 @@

own URI ( - + v1 -, - +, v1.1 -, - +, v2 -, +, ...) to also @@ -5967,16 +4661,14 @@

addition of new - + Terms -. -

-

+.

Because a - + Vocabulary - + under some namespace @@ -6036,45 +4728,35 @@

networks (see also - - + 11. - + Privacy Considerations - + ). -

-

-
-
-

- +

5. - + TD Information Model -

- - -
-

+

This section introduces the - + TD Information Model -. +. The - + TD Information Model - + serves as the @@ -6094,93 +4776,74 @@

described separately in - - + 6. - + TD Representation Format -. -

-
-
-

- +.

5.1 - + Overview -

- - -
-

+

The - + TD Information Model - + is built upon the following, independent - + Vocabularies -: -

-

Each of these - + Vocabularies - + is essentially a set of - + Terms - + that can be @@ -6283,21 +4938,21 @@

the context of - + W3C - + WoT, they denote - + Things - + and their - + Interaction Affordances -. +. A formal definition @@ -6306,33 +4961,31 @@

is given in - - + 5.2 - + Preliminaries -. +. The main elements of the - + TD Information Model - + are then presented in - - + 5.3 - + Class Definitions -. +. Certain object properties @@ -6343,10 +4996,10 @@

a TD when - + Default Values - + exist. A list @@ -6355,16 +5008,13 @@

is given in - - + 5.4 - + Default Value Definitions -. -

-

+.

The UML diagram @@ -6375,11 +5025,11 @@

overview of the - + TD Information Model -. +. It represents all @@ -6397,11 +5047,9 @@

from the class - - + Thing - -, +, as directed arrows. @@ -6424,90 +5072,45 @@

the four base - + Vocabularies -. -

-
-UML diagram of the TD information model for the TD core vocabulary -
- +.

UML diagram of the TD information model for the TD core vocabulary
Figure - + 1 - - - + TD core vocabulary - -
-
-
-
-UML diagram of the TD information model for the Data schema vocabulary -
- +

UML diagram of the TD information model for the Data schema vocabulary
Figure - + 2 - - - + Data schema vocabulary - -
-
-
-
-UML diagram of the TD information model for the WoT security vocabulary -
- +

UML diagram of the TD information model for the WoT security vocabulary
Figure - + 3 - - - + WoT security vocabulary - -
-
-
-
-UML diagram of the TD information model for the hypermedia controls vocabulary -
- +

UML diagram of the TD information model for the hypermedia controls vocabulary
Figure - + 4 - - - + Hypermedia controls vocabulary - -
-
-

-
-
-

- +

5.2 - + Preliminaries -

- - -
-

+

To provide a @@ -6547,14 +5150,13 @@

to construct the - + TD Information Model - + accordingly. -

-

+

All definitions in @@ -6562,9 +5164,9 @@

section refer to - + sets -, +, which intuitively are @@ -6591,9 +5193,9 @@

In particular, an - + Object - + is a data @@ -6602,13 +5204,11 @@

defined as follows: -

-

Though this definition does not prevent - + Objects - + to include multiple @@ -6684,9 +5279,9 @@

this specification. An - + Object - + whose elements only @@ -6697,21 +5292,21 @@

is called an - + Array -. +. Similarly, an - + Object - + whose elements only have - + Term - + s (that do @@ -6719,18 +5314,18 @@

belong to any - + Vocabulary - + ) as names is called a - + Map -. +. All names appearing @@ -6740,52 +5335,50 @@

pair in a - + Map - + are assumed to be - + unique - + within the scope of the - + Map -. -

-

+.

Moreover, - + Object - + s can be instances of some - + Class -. +. A - + Class -, +, which is denoted by a - + Vocabulary Term -, +, is first defined @@ -6793,43 +5386,41 @@

a set of - + Vocabulary Terms - + called a - + Signature -. +. A - + Class - + whose - + Signature - + is empty is called a - + Simple Type -. -

-

+.

The - + Signature - + of a - + Class - + allows to construct @@ -6838,74 +5429,74 @@

that further define - + Classes -: +: an - + Assignment Function - + and a - + Type Function -. +. The - + Assignment Function - + of a - + Class - + takes a - + Vocabulary Term - + of the - + Class - + 's - + Signature - + as input and returns either - + true - + or - + false - + as output. Intuitively, the - + Assignment Function - + indicates whether an element of the - + Signature - + is mandatory or @@ -6913,69 +5504,68 @@

when instantiating the - + Class -. +. The - + Type Function - + of a - + Class - + also takes a - + Vocabulary Term - + of the - + Class - + 's - + Signature - + as input and returns another - + Class - + as output. These functions are - + partial -: +: their domain is limited to the - + Signature - + of the - + Class - + being defined. -

-

+

On the basis @@ -6984,10 +5574,10 @@

two functions, an - + Instance Relation - + can be defined @@ -6997,14 +5587,14 @@

composed of an - + Object - + and a - + Class -. +. This relation is @@ -7017,87 +5607,84 @@

That is, an - + Object - + is an instance of a - + Class - + if the two following constraints are - + both - + satisfied: -

-

According to the definition above, an - + Object - + would be an instance of every - + Simple Type -, +, regardless of its @@ -7173,137 +5757,133 @@

definition for the - + Instance Relation - + is introduced for - + Simple Types -: +: an - + Object - + is an instance of a - + Simple Type - + if it is a - + Term - + with a given lexical form (e.g., - + true -, - +, false - + for the - + boolean - + type, - + 1 -, - +, 2 -, - +, 3 -, +, ... for the - + unsignedInt - + type, etc.). -

-

+

Moreover, additional - + Classes -, +, called - + Parameterized Classes -, +, can be derived from the generic - + Map - + and - + Array - + structures. An - + Object - + is a - + Map - + of some - + Class -, +, that is, an instance of the - + Map - + type - + parameterized - + with some - + Class -, +, if it is a - + Map - + such that the @@ -7320,34 +5900,32 @@

instance of this - + Class -. +. The same applies to - + Arrays -. -

-

+.

Finally, a - + Class - + is a - + Subclass - + of some other - + Class - + if every instance @@ -7361,18 +5939,17 @@

of the latter. -

-

+

Given all definitions above, the - + TD Information Model - + is to be @@ -7381,63 +5958,62 @@

a set of - + Class - + definitions, which include a - + Class - + name (a - + Vocabulary Term - + ), a - + Signature - + (a set of - + Vocabulary Terms - + ), an - + Assignment Function -, +, and a - + Type Function -. +. These - + Class - + definitions are provided as tables in - - + 5.3 - + Class Definitions -. +. For each table, @@ -7453,34 +6029,32 @@

indicates that the - + Assignment Function - + returns - + true - + (respectively, - + false - + ) for the corresponding - + Vocabulary Term -. -

-

+.

By convention, - + Simple Types - + are denoted by @@ -7489,49 +6063,42 @@

with lowercase. The - -TD Information + +TD Information Model - + references the following - -Simple Types - + +Simple Types + defined in XML Schema [ - - + XMLSCHEMA11-2-20120405 - - + ]: - + string -, - +, anyURI -, - +, dateTime -, - +, integer -, - +, unsignedInt -, - +, double -, +, and - + boolean -. +. Their definition (i.e., @@ -7548,21 +6115,19 @@

scope of the - + TD Information Model -. -

-

+.

In addition, the - + TD Information Model - + defines a global @@ -7570,70 +6135,70 @@

on pairs of - + Vocabulary Terms -. +. The function takes a - + Class - + name and another - + Vocabulary Term - + as input and returns an - + Object -. +. If the returned - + Object - + is different from - + null -, +, it represents the - + Default Value - + for some assignment on the input - + Vocabulary Term - + in an instance of the input - + Class -. +. This function allows @@ -7645,71 +6210,69 @@

above on the - + Assignment Function -: +: an - + Object - + is an instance of a - + Class - + if it includes all mandatory assignments - + or - + if - + Default Value - + exist for the missing assignments. All - + Default Values - + are given in the table of - - + 5.4 - + Default Value Definitions -. +. In each table of - - + 5.3 - + Class Definitions -, +, the assignment column @@ -7720,10 +6283,10 @@

default" if a - + Default Value - + is available for @@ -7731,23 +6294,21 @@

corresponding combination of - + Class - + and - + Vocabulary Term - + in the - + TD Information Model -. -

-

+.

The formalization introduced @@ -7759,9 +6320,9 @@

possible relation between - + Objects - + as abstract data @@ -7772,9 +6333,9 @@

objects such as - + Things -. +. However, care was @@ -7785,18 +6346,18 @@

of re-interpreting all - + Vocabulary Terms - + involved in the - + TD Information Model - + as RDF resources, @@ -7823,17 +6384,13 @@

please refer to - - -C. - -D. - - + +D. + JSON-LD Context Usage - + and the documentation @@ -7842,85 +6399,64 @@

namespace IRIs, e.g., - + https://www.w3.org/2019/wot/td -. -

-

-
-
-

- +.

5.3 - + Class Definitions -

- - -
-

- +

A - + TD Processor - - + MUST - + satisfy the - + Class - + instantiation constraints on all - + Classes - + defined in - - + 5.3.1 - + Core Vocabulary Definitions -, - - +, 5.3.2 - + Data Schema Vocabulary Definitions -, - - +, 5.3.3 - + Security Vocabulary Definitions -, +, and - - + 5.3.4 - + Hypermedia Controls Vocabulary Definitions -. - -

-

+.

In particular, note @@ -7945,43 +6481,25 @@

information model (Section - - + 6. - + TD Representation Format - + ). -

-
-
-

- +

5.3.1 - + Core Vocabulary Definitions -

- - -
-
-
-
- +
5.3.1.1 - - + Thing - -
- - -
-

+

An abstraction of @@ -8014,47 +6532,28 @@

or more Things. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 3 - + Vocabulary Terms in Thing Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
@context - - + JSON-LD keyword to @@ -8070,29 +6569,17 @@
a TD document. -
+ mandatory - - - + anyURI - - + or - + Array - -
- +
@type - - + JSON-LD keyword to @@ -8100,41 +6587,27 @@
the object with - + semantic tags - + (or types). -
+ optional - - - + string - - + or - + Array - + of - - + string - - -
- +
id - - + Identifier of the @@ -8145,11 +6618,9 @@
a URI [ - - + RFC3986 - - + ] (e.g., stable @@ -8165,25 +6636,13 @@
address, URN, etc.). -
+ optional - - - + anyURI - - -
- +
title - - + Provides a human-readable @@ -8200,25 +6659,13 @@
a default language. -
+ mandatory - - - + string - - -
- +
titles - - + Provides multi-language human-readable @@ -8235,34 +6682,19 @@
languages). Also see - - + MultiLanguage - -. -
+. optional - - + Map - + of - - + MultiLanguage - - -
- +
description - - + Provides additional (human-readable) @@ -8272,25 +6704,13 @@
a default language. -
+ optional - - - + string - - -
- +
descriptions - - + Can be used @@ -8303,56 +6723,29 @@
languages. Also see - - + MultiLanguage - -. -
+. optional - - + Map - + of - - + MultiLanguage - - -
- +
version - - + Provides version information. - + optional - - - + VersionInfo - - -
- +
created - - + Provides information when @@ -8361,25 +6754,13 @@
instance was created. -
+ optional - - - + dateTime - - -
- +
modified - - + Provides information when @@ -8389,25 +6770,13 @@
was last modified. -
+ optional - - - + dateTime - - -
- +
support - - + Provides information about @@ -8418,55 +6787,37 @@
URI scheme (e.g., - + mailto - + [ - - + RFC6068 - - + ], - + tel - + [ - - + RFC3966 - - + ], - + https - + [ - - + RFC9112 - - + ]). -
+ optional - - - + anyURI - - -
- +
base - - + Define the base @@ -8502,17 +6853,13 @@
defined in [ - - + RFC3986 - - + ]. -
-
- +


base - +
does not affect @@ -8520,9 +6867,9 @@
URIs used in - + @context - + and the IRIs @@ -8531,11 +6878,9 @@
Linked Data [ - - + LINKED-DATA - - + ] graphs that @@ -8549,121 +6894,73 @@
to TD instances. -
+ optional - - - + anyURI - - -
- +
properties - - + All Property-based - + Interaction Affordances - + of the Thing. - + optional - - + Map - + of - - + PropertyAffordance - - -
- +
actions - - + All Action-based - + Interaction Affordances - + of the Thing. - + optional - - + Map - + of - - + ActionAffordance - - -
- +
events - - + All Event-based - + Interaction Affordances - + of the Thing. - + optional - - + Map - + of - - + EventAffordance - - -
- +
forms - - + Set of form @@ -8719,12 +7004,10 @@
of Protocol Bindings. -Thing-level - - -Thing + +Thing level - + forms are used @@ -8737,29 +7020,17 @@
of interaction affordances. -
+ optional - - + Array - + of - - + Form - - -
- +
security - - + Set of security @@ -8770,9 +7041,9 @@
those defined in - + securityDefinitions -. +. These must all @@ -8782,35 +7053,21 @@
access to resources. -
+ mandatory - - - + string - - + or - + Array - + of - - + string - - -
- +
securityDefinitions - - + Set of named @@ -8827,34 +7084,22 @@
used in a - + security - + name-value pair. -
+ mandatory - - + Map - + of - - + SecurityScheme - - -
- +
profile - - + Indicates the WoT @@ -8870,35 +7115,21 @@
corresponding Thing implementation. -
+ optional - - - + anyURI - - + or - + Array - + of - - + anyURI - - -
- +
schemaDefinitions - - + Set of named @@ -8909,40 +7140,28 @@
used in a - + schema - + name-value pair inside an - + AdditionalExpectedResponse - + object. -
+ optional - - + Map - + of - - + DataSchema - - -
- +
uriVariables - - + Define URI template @@ -8950,11 +7169,9 @@
according to [ - - + RFC6570 - - + ] as collection @@ -8963,26 +7180,22 @@
DataSchema declarations. The - + Thing level - - + uriVariables - + can be used in -Thing-level - - -Thing + +Thing level - - + forms - + or in Interaction @@ -9010,9 +7223,9 @@
string inside the - + href - + upon the execution @@ -9027,15 +7240,12 @@
both declared in -Thing-level - - -Thing + +Thing level - - + uriVariables - + and in Interaction @@ -9048,59 +7258,46 @@
variable takes precedence. -
+ optional - - + Map - + of - - + DataSchema - - -
-

+

For - + @context - + the following rules are defined for - + Thing Description - + instances: -

-
    -
  • - +

    • The - + @context - + name-value pair - + MUST - + contain the anyURI - + https://www.w3.org/2022/wot/td/v1.1 - + in order to @@ -9114,19 +7311,16 @@
      which would allow - + Consumers - + to use the newly introduced terms. - -
    • -
    • - +
    • When there are @@ -9136,113 +7330,97 @@
      consumers the anyURI - + https://www.w3.org/2019/wot/td/v1 - - + MUST - + be the first entry and the - + https://www.w3.org/2022/wot/td/v1.1 - - + MUST - + be the second entry. - -
    • -
    • - +
    • TD 1.1 consumers - + MUST - + accept TDs satisfying the - + W3C - + WoT Thing Description 1.0 [ - -wot-thing-description - - -wot-thing-description10 - - - + +wot-thing-description10 + ] specification. - -
    • -
    • - +
    • When - + @context - + is an - + Array -, +, the anyURI - + https://www.w3.org/2022/wot/td/v1.1 - - - + MAY - - + be followed by elements of type - + anyURI - + or type - + Map - + in any order, while it is - + RECOMMENDED - + to include only one - + Map - + with all the @@ -9250,31 +7428,23 @@
      pairs in the - + @context - - + Array -. - -
    • -
    • - - +.
    • Maps - + contained in an - + @context - - + Array - - + MAY - + contain name-value pairs, @@ -9287,41 +7457,36 @@
      identifier of type - + anyURI - + and the name a - + Term - + or prefix denoting that namespace. - -
    • -
    • - +
    • One - + Map - + contained in an - + @context - - + Array - - + SHOULD - + contain a name-value @@ -9340,12 +7505,11 @@
      name is the - + Term - - + @language - + and the value @@ -9358,36 +7522,26 @@
      defined by [ - - + BCP47 - - + ] (e.g., - + en -, - +, de-AT -, - +, gsw-CH -, - +, zh-Hans -, - +, zh-Hant-HK -, - +, sl-nedis - + ). - -
    • -
    -

    +

To determine the @@ -9398,15 +7552,15 @@

human-readable text in - + Thing Description - + and - + Thing Model - + instances this specification @@ -9415,19 +7569,17 @@
follow the [ - - + STRING-META - - + ] guideline about - + string-specific directional information - + when no built-in @@ -9439,12 +7591,10 @@
metadata is available. -

-

- +

TD Processors - + should be aware @@ -9456,14 +7606,12 @@

processing bidirectional text. - - + TD Processors - - + SHOULD - + take care to @@ -9486,7 +7634,7 @@
Web user interface) -. +. Mixed direction text @@ -9502,16 +7650,13 @@
is properly identified. -

-

- +

TD - + producers - - + SHOULD - + attempt to provide @@ -9531,7 +7676,7 @@

naive user agent. - + For example, if @@ -9579,9 +7724,7 @@
in proper display. -

-

- +

Strings on the @@ -9590,13 +7733,11 @@

and Direction Metadata - + [ - - + string-meta - - + ] provides some @@ -9611,37 +7752,34 @@
using bidirectional text. -

-

+

In addition to the explicitly provided - + Interaction Affordances - + in the - + properties -, - +, actions -, +, and - + events - - + Maps -, +, a - + Thing - + can also provide @@ -9650,47 +7788,44 @@

are indicated by - + Form - + instances in its optional - + forms - - + Array -. - +. When the - + forms - - + Array - + of a - + Thing - + instance contains - + Form - + instances, it - + MUST - + contain - + op - + member with the @@ -9700,76 +7835,65 @@
to the name - + op -, +, either directly or within an - + Array -, - +, MUST - + be one of the following - + operation types -: - +: readallproperties -, - +, writeallproperties -, - +, readmultipleproperties -, - +, writemultipleproperties -, - +, observeallproperties -, - +, unobserveallproperties -, - +, queryallactions -, - +, subscribeallevents -, +, or - + unsubscribeallevents -. - +. (See - + an example - + for an usage of - + form - + in a Thing instance.) -

-

+

The data schema @@ -9788,30 +7912,29 @@

schemas of each - + PropertyAffordance - + instance in a single - + ObjectSchema - + instance, where the - + properties - - + Map - + of the - + ObjectSchema - + instance contains each @@ -9819,9 +7942,9 @@
schema of the - + PropertyAffordances - + identified by the @@ -9829,12 +7952,11 @@
of the corresponding - + PropertyAffordances - + instance. -

-

+

If not specified @@ -9842,33 +7964,33 @@

(e.g., through a - + TD Context Extension - + ), the request data of the - + readmultipleproperties - + operation is an - + Array - + that contains the intended - + PropertyAffordances - + instance names, which @@ -9881,26 +8003,15 @@
specified by the - + Form - + instance. -

-
-
-
-
- +

5.3.1.2 - - + InteractionAffordance - -
- - -
-

+

Metadata of a @@ -9911,15 +8022,15 @@

possible choices to - + Consumers -, +, thereby suggesting how - + Consumers - + may interact with @@ -9933,9 +8044,9 @@
potential affordances, but - + W3C - + WoT defines three @@ -9947,47 +8058,28 @@
Actions, and Events. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 4 - + Vocabulary Terms in InteractionAffordance Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
@type - - + JSON-LD keyword to @@ -9995,41 +8087,27 @@
the object with - + semantic tags - + (or types). -
+ optional - - - + string - - + or - + Array - + of - - + string - - -
- +
title - - + Provides a human-readable @@ -10046,25 +8124,13 @@
a default language. -
+ optional - - - + string - - -
- +
titles - - + Provides multi-language human-readable @@ -10081,34 +8147,19 @@
languages). Also see - - + MultiLanguage - -. -
+. optional - - + Map - + of - - + MultiLanguage - - -
- +
description - - + Provides additional (human-readable) @@ -10118,25 +8169,13 @@
a default language. -
+ optional - - - + string - - -
- +
descriptions - - + Can be used @@ -10149,34 +8188,19 @@
languages. Also see - - + MultiLanguage - -. -
+. optional - - + Map - + of - - + MultiLanguage - - -
- +
forms - - + Set of form @@ -10201,29 +8225,17 @@
cannot be empty. -
+ mandatory - - + Array - + of - - + Form - - -
- +
uriVariables - - + Define URI template @@ -10231,11 +8243,9 @@
according to [ - - + RFC6570 - - + ] as collection @@ -10266,9 +8276,9 @@
string inside the - + href - + upon the execution @@ -10283,15 +8293,12 @@
both declared in -Thing-level - - -Thing + +Thing level - - + uriVariables - + and in Interaction @@ -10304,73 +8311,35 @@
variable takes precedence. -
+ optional - - + Map - + of - - + DataSchema - - -
-

+

The class - + InteractionAffordance - + has the following subclasses: -

-
-
-
-
- +
5.3.1.3 - - + PropertyAffordance - -
- - -
-

+

An Interaction Affordance @@ -10406,47 +8375,28 @@

after a change. -

- -
- -Table - +

- - - - - - - - - - - - - - - - -
+Table + 5 - + Vocabulary Terms in PropertyAffordance Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
observable - - + A hint that @@ -10466,41 +8416,25 @@
that supports the - + observeproperty - + and - + unobserveproperty - + operations for this Property. -
- + with default - - - - + boolean - - -
-
Note - -
-

+

Property instances are @@ -10509,58 +8443,50 @@

of the class - + DataSchema -. +. Therefore, it can contain the - + type -, - +, unit -, - +, readOnly - + and - + writeOnly - + members, among others. -

- -

- +

PropertyAffordance - + is a - + Subclass - + of the - + InteractionAffordance - - + Class - + and the - + DataSchema - - + Class -. - +. When a Form @@ -10568,55 +8494,45 @@

is within a - + PropertyAffordance - + instance, the value assigned to - + op - - + MUST - + be one of - + readproperty -, - +, writeproperty -, - +, observeproperty -, - +, unobserveproperty - + or an - + Array - + containing a combination of these terms. - -

-
-
- +

Note - -
-

+

It is considered @@ -10626,15 +8542,15 @@

practice that each - + observeproperty - + has a corresponding - + unobserveproperty - + unless the protocol @@ -10648,15 +8564,9 @@
detect connection loss). -

-
-
-
- +

Note - -
-

+

The observation mechanism @@ -10677,9 +8587,9 @@

that the current - + Property - + value will be @@ -10698,9 +8608,9 @@
read the current - + Property - + value before/after the @@ -10710,23 +8620,11 @@
a first value. -

-
-
-
-
-
- +

5.3.1.4 - - + ActionAffordance - -
- - -
-

+

An Interaction Affordance @@ -10762,47 +8660,28 @@

lamp over time). -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 6 - + Vocabulary Terms in ActionAffordance Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
input - - + Used to define @@ -10813,25 +8692,13 @@
of the Action. -
+ optional - - - + DataSchema - - -
- +
output - - + Used to define @@ -10842,25 +8709,13 @@
of the Action. -
+ optional - - - + DataSchema - - -
- +
safe - - + Signals if the @@ -10897,28 +8752,14 @@
cached as example. -
- + with default - - - - + boolean - - -
- +
idempotent - - + Indicates whether the @@ -10947,28 +8788,14 @@
the same input. -
- + with default - - - - + boolean - - -
- +
synchronous - - + Indicates whether the @@ -11026,38 +8853,25 @@
can be made. -
+ optional - - - + boolean - - -
-

- +

ActionAffordance - + is a - + Subclass - + of the - + InteractionAffordance - - + Class -. - +. When a Form @@ -11065,57 +8879,43 @@

is within an - + ActionAffordance - + instance, the value assigned to op - + MUST - + either be - + invokeaction -, - +, queryaction -, - +, cancelaction - + or an - + Array - + containing a combination of these terms. - -

-
-
-
-
- +

5.3.1.5 - - + EventAffordance - -
- - -
-

+

An Interaction Affordance @@ -11130,53 +8930,34 @@

event data to - + Consumers - + (e.g., overheating alerts). -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 7 - + Vocabulary Terms in EventAffordance Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
subscription - - + Defines data that @@ -11195,25 +8976,13 @@
setting up Webhooks. -
+ optional - - - + DataSchema - - -
- +
data - - + Defines the data @@ -11227,25 +8996,13 @@
by the Thing. -
+ optional - - - + DataSchema - - -
- +
dataResponse - - + Defines the data @@ -11266,25 +9023,13 @@
a data message. -
+ optional - - - + DataSchema - - -
- +
cancellation - - + Defines any data @@ -11305,38 +9050,25 @@
remove a Webhook. -
+ optional - - - + DataSchema - - -
-

- +

EventAffordance - + is a - + Subclass - + of the - + InteractionAffordance - - + Class -. - +. When a Form @@ -11344,45 +9076,36 @@

is within an - + EventAffordance - + instance, the value assigned to - + op - - + MUST - + be either - + subscribeevent -, - +, unsubscribeevent -, +, or both terms within an - + Array -. - -

-
-
- +.

Note - -
-

+

It is considered @@ -11392,15 +9115,15 @@

practice that each - + subscribeevent - + has a corresponding - + unsubscribeevent - + unless the protocol @@ -11414,23 +9137,11 @@
detect connection loss). -

-
-
-
-
-
- +

5.3.1.6 - - + VersionInfo - -
- - -
-

+

Metadata of a @@ -11466,53 +9177,34 @@

extended via the - + TD Context Extension - + mechanism. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - -
+Table + 8 - + Vocabulary Terms in VersionInfo Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
instance - - + Provides a version @@ -11520,25 +9212,13 @@
of this TD. -
+ mandatory - - - + string - - -
- +
model - - + Provides a version @@ -11547,21 +9227,11 @@
the underlying TM. -
+ optional - - - + string - - -
-

+

It is recommended @@ -11569,21 +9239,20 @@

the values within - + instances - + and - + model - + of the - + VersionInfo - - + Class - + follow the semantic @@ -11611,34 +9280,21 @@
respectively. See [ - - + SEMVER - - + ] for details. -

-
-
-
-
- +

5.3.1.7 - - + MultiLanguage - -
- - -
-

+

A - + Map - + providing a set @@ -11655,20 +9311,17 @@

described in [ - - + BCP47 - - + ]. See - - + 6.3.2 - + Human-Readable Metadata - + for example usages @@ -11680,22 +9333,18 @@
Thing Description instance. -

-

- +

Each name of the - + MultiLanguage - - + Map - - + MUST - + be a language @@ -11704,52 +9353,35 @@

defined in [ - - + BCP47 - - + ]. - - + Each value of the - + MultiLanguage - - + Map - - + MUST - + be of type - + string -. - -

-
- -
-
-

- +.

5.3.2 - + Data Schema Vocabulary Definitions -

- - -
-

+

A data schema @@ -11763,8 +9395,7 @@

in data formats. -

-

+

The data schema @@ -11783,11 +9414,9 @@

JSON Schema [ - - + JSON-SCHEMA - - + ]. It is @@ -11818,11 +9447,11 @@

Schema using a - + TD Context Extension - + for the additional @@ -11830,14 +9459,13 @@

as described in - - + 7. - + TD Context Extensions -, +, otherwise these terms @@ -11845,10 +9473,10 @@

semantically ignored by - + TD Processors - + (for details about @@ -11857,17 +9485,13 @@

please refer to - - -C. - -D. - - + +D. + JSON-LD Context Usage - + and the documentation @@ -11876,12 +9500,11 @@

namespace IRIs, e.g., - + https://www.w3.org/2019/wot/td - + ). -

-

+

In a TD, @@ -11893,14 +9516,11 @@

in Forms (see - - + 5.3.4.2 - - + Form - - + ) using content @@ -11919,9 +9539,9 @@

the Form is - + application/json -, +, the data schema @@ -11941,11 +9561,9 @@

Binding Templates [ - - + WOT-BINDING-TEMPLATES - - + ] defines data @@ -11960,11 +9578,9 @@

as XML [ - - + xml - - + ]. If the @@ -11978,9 +9594,9 @@

Form is not - + application/json - + and if no @@ -12003,9 +9619,7 @@

the content type. -

-

- +

The following table @@ -12013,9 +9627,9 @@

content types which - + MAY - + use data schema @@ -12026,15 +9640,11 @@

of their payloads. - -

- -
- -Table - +

- - - - - - - - - - - - - - - - -
+Table + 9 - + Content types that @@ -12043,85 +9653,38 @@

a Data Schema -

+
Format - + Content Type -
+
JSON/CBOR - - + application/json - -
- +
application/ld+json - -
- +
application/senml+json - -
- +
application/cbor - -
- +
application/senml+cbor - -
-
+
XML/EXI - - + application/xml - -
- +
application/senml+xml - -
- +
application/exi - -
- +
application/senml-exi - -
-
-
-
-
- +
5.3.2.1 - - + DataSchema - -
- - -
-

+

Metadata that describes @@ -12135,47 +9698,28 @@

used for validation. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 10 - + Vocabulary Terms in DataSchema Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
@type - - + JSON-LD keyword to @@ -12183,41 +9727,27 @@
the object with - + semantic tags - + (or types) -
+ optional - - - + string - - + or - + Array - + of - - + string - - -
- +
title - - + Provides a human-readable @@ -12234,25 +9764,13 @@
a default language. -
+ optional - - - + string - - -
- +
titles - - + Provides multi-language human-readable @@ -12269,34 +9787,19 @@
languages). Also see - - + MultiLanguage - -. -
+. optional - - + Map - + of - - + MultiLanguage - - -
- +
description - - + Provides additional (human-readable) @@ -12306,25 +9809,13 @@
a default language. -
+ optional - - - + string - - -
- +
descriptions - - + Can be used @@ -12337,63 +9828,40 @@
languages. Also see - - + MultiLanguage - -. -
+. optional - - + Map - + of - - + MultiLanguage - - -
- +
const - - + Provides a constant value. - + optional - + any type -
- +
default - - + Supply a default value. The value - + SHOULD - + validate against the @@ -12403,22 +9871,14 @@
which it resides. -
+ optional - + any type -
- +
unit - - + Provides unit information @@ -12452,30 +9912,18 @@
(also see Section - + Semantic Annotations - + ). -
+ optional - - - + string - - -
- +
oneOf - - + Used to ensure @@ -12493,7 +9941,7 @@
in the array. -This +This can be used @@ -12504,30 +9952,17 @@
or output schemas. - -
+ optional - - + Array - + of - - + DataSchema - - -
- +
enum - - + Restricted set of @@ -12536,26 +9971,17 @@
as an array. -
+ optional - - + Array - + of any type -
- +
readOnly - - + Boolean value that @@ -12577,28 +10003,14 @@
or not (=false). -
- + with default - - - - + boolean - - -
- +
writeOnly - - + Boolean value that @@ -12620,28 +10032,14 @@
or not (=false). -
- + with default - - - - + boolean - - -
- +
format - - + Allows validation based @@ -12658,25 +10056,13 @@
(Also see below.) -
+ optional - - - + string - - -
- +
type - - + Assignment of JSON-based @@ -12696,112 +10082,60 @@
array, or null). -
+ optional - - - + string - - + (one of - + object -, - +, array -, - +, string -, - +, number -, - +, integer -, - +, boolean -, +, or - + null - + ) -
-

+

The class - + DataSchema - + has the following subclasses: -

-

The - + format - + string values are @@ -12820,11 +10154,9 @@

defined in [ - - + JSON-SCHEMA - - + ] (Section 7.3 @@ -12832,24 +10164,23 @@
Formats in particular). - + Servients - + MAY - + use the - + format - + value to perform additional validation accordingly. - - + When a value @@ -12866,35 +10197,32 @@
is assigned to - + format -, +, such a validation - + SHOULD - + succeed. - -

+

Vocabulary terms typed as - + any - - + type - + (e.g., - + const -, - +, default - + ) follow data @@ -12911,17 +10239,13 @@
array, or null). -
-
- +
Note - -
-

+

The - + format - + term is not @@ -12935,9 +10259,9 @@

addition, the term - + format - + is being discussed @@ -12962,94 +10286,63 @@
JSON Schema version. -

-
-

-
-
-
- +

5.3.2.2 - - + ArraySchema - -
- - -
-

+

Metadata describing data of type - + Array -. +. This - + Subclass - + is indicated by the value - + array - + assigned to - + type - + in - + DataSchema - + instances. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 11 - + Vocabulary Terms in ArraySchema Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
items - - + Used to define @@ -13058,35 +10351,21 @@
of an array. -
+ optional - - - + DataSchema - - + or - + Array - + of - - + DataSchema - - -
- +
minItems - - + Defines the minimum @@ -13100,25 +10379,13 @@
in the array. -
+ optional - - - + unsignedInt - - -
- +
maxItems - - + Defines the maximum @@ -13132,152 +10399,102 @@
in the array. -
+ optional - - - + unsignedInt - - -
- -
-
5.3.2.3 - - + BooleanSchema - -
- - -
-

+

Metadata describing data of type - + boolean -. +. This - + Subclass - + is indicated by the value - + boolean - + assigned to - + type - + in - + DataSchema - + instances. -

-
-
-
-
- +

5.3.2.4 - - + NumberSchema - -
- - -
-

+

Metadata describing data of type - + number -. +. This - + Subclass - + is indicated by the value - + number - + assigned to - + type - + in - + DataSchema - + instances. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 12 - + Vocabulary Terms in NumberSchema Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
minimum - - + Specifies a minimum @@ -13296,25 +10513,13 @@
or integer types. -
+ optional - - - + double - - -
- +
exclusiveMinimum - - + Specifies a minimum @@ -13333,25 +10538,13 @@
or integer types. -
+ optional - - - + double - - -
- +
maximum - - + Specifies a maximum @@ -13370,25 +10563,13 @@
or integer types. -
+ optional - - - + double - - -
- +
exclusiveMaximum - - + Specifies a maximum @@ -13407,25 +10588,13 @@
or integer types. -
+ optional - - - + double - - -
- +
multipleOf - - + Specifies the multipleOf @@ -13446,106 +10615,67 @@
or integer types. -
+ optional - - - + double - - -
- -
-
5.3.2.5 - - + IntegerSchema - -
- - -
-

+

Metadata describing data of type - + integer -. +. This - + Subclass - + is indicated by the value - + integer - + assigned to - + type - + in - + DataSchema - + instances. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 13 - + Vocabulary Terms in IntegerSchema Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
minimum - - + Specifies a minimum @@ -13564,25 +10694,13 @@
or integer types. -
+ optional - - - + integer - - -
- +
exclusiveMinimum - - + Specifies a minimum @@ -13601,25 +10719,13 @@
or integer types. -
+ optional - - - + integer - - -
- +
maximum - - + Specifies a maximum @@ -13638,25 +10744,13 @@
or integer types. -
+ optional - - - + integer - - -
- +
exclusiveMaximum - - + Specifies a maximum @@ -13675,25 +10769,13 @@
or integer types. -
+ optional - - - + integer - - -
- +
multipleOf - - + Specifies the multipleOf @@ -13714,133 +10796,82 @@
or integer types. -
+ optional - - - + integer - - -
- -
-
5.3.2.6 - - + ObjectSchema - -
- - -
-

+

Metadata describing data of type - + Object -. +. This - + Subclass - + is indicated by the value - + object - + assigned to - + type - + in - + DataSchema - + instances. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - -
+Table + 14 - + Vocabulary Terms in ObjectSchema Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
properties - - + Data schema nested definitions. - + optional - - + Map - + of - - + DataSchema - - -
- +
required - - + Defines which members @@ -13866,12 +10897,11 @@
(e.g. input of - + invokeaction -, - +, writeproperty - + ) and what @@ -13890,117 +10920,77 @@
(e.g. output of - + invokeaction -, - +, readproperty - + ) -
+ optional - - + Array - + of - - + string - - -
- -
-
5.3.2.7 - - + StringSchema - -
- - -
-

+

Metadata describing data of type - + string -. +. This - + Subclass - + is indicated by the value - + string - + assigned to - + type - + in - + DataSchema - + instances. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 15 - + Vocabulary Terms in StringSchema Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
minLength - - + Specifies the minimum @@ -14014,25 +11004,13 @@
associated string types. -
+ optional - - - + unsignedInt - - -
- +
maxLength - - + Specifies the maximum @@ -14046,25 +11024,13 @@
associated string types. -
+ optional - - - + unsignedInt - - -
- +
pattern - - + Provides a regular @@ -14083,32 +11049,18 @@
follow the [ - - + ECMA-262 - - + ] dialect. -
+ optional - - - + string - - -
- +
contentEncoding - - + Specifies the encoding @@ -14121,65 +11073,45 @@
specified in [ - - + RFC2045 - - + ] (Section 6.1) and [ - - + RFC4648 - - + ]. -
+ optional - - - + string - - + (e.g., - + 7bit -, - +, 8bit -, - +, binary -, - +, quoted-printable -, - +, base16 -, - +, base32 -, +, or - + base64 - + ) -
- +
contentMediaType - - + Specifies the MIME @@ -14195,55 +11127,40 @@
described in [ - - + RFC2046 - - + ]. -
+ optional - - - + string - - + (e.g., - + image/png -, +, or - + audio/mpeg - + ) -
-
-
- +
Note - -
-

+

The length of a string (i.e., - + minLength - + and - + maxLength - + ) is defined @@ -14258,19 +11175,17 @@

defined by [ - - + RFC8259 - - + ]. Note that some - + user-perceived characters - + are composed of @@ -14294,9 +11209,9 @@
truncation according to - + maxLength - + might alter the @@ -14306,31 +11221,19 @@
of the string. -

- -
-
-
-
- +

5.3.2.8 - - + NullSchema - -
- - -
-

+

Metadata describing data of type - + null -. +. This subclass is @@ -14338,18 +11241,18 @@

by the value - + null - + assigned to - + type - + in - + DataSchema - + instances. This Subclass @@ -14359,18 +11262,18 @@
acceptable value, namely - + null -. +. It is important to note that - + null - + does not mean @@ -14383,25 +11286,25 @@
is analogous to - + null - + in JavaScript, - + None - + in Python, - + null - + in Java and - + nil - + in Ruby programming @@ -14414,9 +11317,9 @@
part of a - + oneOf - + declaration, where it @@ -14430,26 +11333,15 @@
can also be - + null -. -

-
- -
-
-

- +.

5.3.3 - + Security Vocabulary Definitions -

- - -
-

+

This specification provides @@ -14467,14 +11359,14 @@

protocols eligible as - + Protocol Bindings - + for - + W3C - + WoT or are @@ -14495,18 +11387,16 @@

partly based on - + OpenAPI 3.0.1 - + (see also [ - - + OPENAPI - - + ]). However while @@ -14514,9 +11404,9 @@

HTTP security schemes, - + Vocabulary -, +, and syntax given @@ -14532,8 +11422,7 @@

are not compatible. -

-

+

Generally, security schemes @@ -14562,13 +11451,12 @@

given in Section - - + 10. - + Security Considerations - + in this document @@ -14580,27 +11468,15 @@

section of [ - - + wot-architecture11 - - + ]. -

-
-
-
- +

5.3.3.1 - - + SecurityScheme - -
- - -
-

+

Metadata describing the @@ -14609,63 +11485,58 @@

a security mechanism. - + The value assigned to the name - + scheme - - + MUST - + be defined within a - + Vocabulary - + included in the - + Thing Description -, +, either in the standard - + Vocabulary - + defined in - -§  - + +§  + 5. - + TD Information Model - + or in a - + TD Context Extension -. - -

-

- +.

For all security @@ -14680,10 +11551,10 @@

directly providing access - + MUST NOT - + be stored in @@ -14700,7 +11571,7 @@
via other mechanisms. - + The purpose of @@ -14733,8 +11604,7 @@
grant that authorization. -

-

+

Each security scheme @@ -14762,9 +11632,9 @@

security scheme is - + satisfied - + when all its @@ -14789,8 +11659,7 @@
can be granted. -

-

+

Security schemes generally @@ -14819,9 +11688,9 @@

with the name - + in -, +, often in combination @@ -14830,16 +11699,16 @@
value associated with - + name -. +. The value associated with - + in - + can take one @@ -14847,14 +11716,9 @@
the following values: -

-
-
- +

header -: -
-
+:
The parameter will @@ -14878,16 +11742,11 @@
the value of - + name -. -
-
- +.
query -: -
-
+:
The parameter will @@ -14909,16 +11768,11 @@
parameter provided by - + name -. -
-
- +.
body -: -
-
+:
The parameter will @@ -14939,10 +11793,9 @@
used provided by - + name -. - +. When used in @@ -14950,21 +11803,20 @@
context of a - + body - + security information location, the value of - + name - - + MUST - + be in the @@ -14974,11 +11826,9 @@
JSON pointer [ - - + RFC6901 - - + ] relative to @@ -14987,9 +11837,9 @@
of the input - + DataSchema - + for each interaction @@ -14997,7 +11847,7 @@
is used with. - + Since this value @@ -15033,9 +11883,9 @@
not start with - + # - + ; it is @@ -15076,10 +11926,7 @@
in the referenced -data -schema. - -object +object or array schema @@ -15092,7 +11939,6 @@
to simple types). - If it does @@ -15114,7 +11960,7 @@
of every interaction. - + When an element @@ -15130,9 +11976,9 @@
indicated in a - + body - + locator does not @@ -15143,9 +11989,9 @@
indicated schema, it - + MUST - + be possible to @@ -15160,27 +12006,26 @@
by the pointer. - - + The JSON pointer used in the - + body - + locator - + MAY - + use the " - + - - + " character to @@ -15205,8 +12050,7 @@
an existing array. - - + The element referenced @@ -15214,30 +12058,30 @@
created) by a - + body - + security information location - + MUST - + be required and of type " - + string - + ". - + If - + name - + is not given, @@ -15255,13 +12099,9 @@
the security parameter. -
-
- +
cookie -: -
-
+:
The parameter is @@ -15274,16 +12114,11 @@
the value of - + name -. -
-
- +.
uri -: -
-
+:
The parameter is @@ -15309,53 +12144,51 @@
the value of - + name -. +. This is more general than the - + query - + mechanism but more complex. - + The value - + uri - - + SHOULD - + be specified for the name - + in - + in a security scheme only if - + query - + is not applicable. - - + The URIs provided @@ -15366,19 +12199,18 @@
security scheme using - + uri - + as the value for - + in - - + MUST - + be a URI @@ -15387,14 +12219,9 @@
the defined variable. - -
-
- +
auto -: -
-
+:
The location is @@ -15406,40 +12233,40 @@
protocol, or negotiated. - + If a value of - + auto - + is set for the - + in - + field of a - + SecurityScheme -, +, then the - + name - + field - + SHOULD NOT - + be set. - + In this case, @@ -15447,9 +12274,9 @@
application of the - + SecurityScheme - + is subject to @@ -15462,23 +12289,19 @@
protocol (e.g. [ - - + RFC8288 - - + ] when using the - + BasicSecurityScheme - + with HTTP). -
-
-

+

If multiple parameters @@ -15501,15 +12324,15 @@

them using a - + combo - + security scheme and - + allOf -. +. In some cases @@ -15592,9 +12415,7 @@
in the TD. -

-

- +

The names of @@ -15603,12 +12424,11 @@

declared in a - + SecurityScheme - - + MUST - + be distinct from @@ -15620,48 +12440,28 @@
in the TD. - -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 16 - + Vocabulary Terms in SecurityScheme Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
@type - - + JSON-LD keyword to @@ -15669,41 +12469,27 @@
the object with - + semantic tags - + (or types). -
+ optional - - - + string - - + or - + Array - + of - - + string - - -
- +
description - - + Provides additional (human-readable) @@ -15713,25 +12499,13 @@
a default language. -
+ optional - - - + string - - -
- +
descriptions - - + Can be used @@ -15744,34 +12518,19 @@
languages. Also see - - + MultiLanguage - -. -
+. optional - - + Map - + of - - + MultiLanguage - - -
- +
proxy - - + URI of the @@ -15794,25 +12553,13 @@
for the endpoint. -
+ optional - - - + anyURI - - -
- +
scheme - - + Identification of the @@ -15820,141 +12567,67 @@
mechanism being configured. -
+ mandatory - - - + string - - + (e.g., - + nosec -, - +, combo -, - +, basic -, - +, digest -, - +, bearer -, - +, psk -, - +, oauth2 -, - +, apikey -, +, or - + auto - + ) -
-

+

The class - + SecurityScheme - + has the following subclasses: -

-
-
-
-
- +
5.3.3.2 - - + NoSecurityScheme - -
- - -
-

+

A security configuration @@ -15963,18 +12636,17 @@

identified by the - + Vocabulary Term - - + nosec - + (i.e., - + "scheme": "nosec" - + ), indicating there @@ -15989,22 +12661,11 @@
access the resource. -

-

-
-
-
- +

5.3.3.3 - - + AutoSecurityScheme - -
- - -
-

+

An automatic authentication @@ -16014,14 +12675,14 @@

by the term - + auto - + (i.e., - + "scheme": "auto" - + ). This scheme @@ -16051,11 +12712,9 @@
protocol (e.g. [ - - + RFC8288 - - + ] for Basic @@ -16063,31 +12722,17 @@
when using HTTP). -

-
-
-
-
- +

5.3.3.4 - - + ComboSecurityScheme - -
- - -
-

- +

This section is at risk. - -

-

+

A combination of @@ -16097,18 +12742,17 @@

identified by the - + Vocabulary Term - - + combo - + (i.e., - + "scheme": "combo" - + ). Elements of @@ -16124,16 +12768,14 @@
schemes defined in - + securityDefinitions -, +, including other - - + ComboSecurityScheme - - + definitions, are to @@ -16145,28 +12787,26 @@
new scheme definition. - + Exactly one of either - + oneOf - + or - + allOf - - -vocabulary + +vocabulary terms - - + MUST - + be included. - + Only security scheme @@ -16180,9 +12820,9 @@
be combined with - + allOf -. +. For example, it @@ -16199,9 +12839,9 @@
flows together using - + allOf - + unless one applies @@ -16225,9 +12865,9 @@
listed in a - + security - + field the same @@ -16236,9 +12876,9 @@
as in an - + allOf - + combination (and the @@ -16248,9 +12888,9 @@
allowable combinations). The - + oneOf - + combination is equivalent @@ -16269,9 +12909,9 @@
this sense a - + oneOf - + scheme is not @@ -16286,47 +12926,28 @@
in such cases. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - -
+Table + 17 - + Vocabulary Terms in ComboSecurityScheme Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
oneOf - - + Array of two @@ -16355,29 +12976,17 @@
chosen for use. -
+ mandatory - - + Array - + of - - + string - - -
- +
allOf - - + Array of two @@ -16398,65 +13007,42 @@
satisfied for access. -
+ mandatory - - + Array - + of - - + string - - -
- -
-
5.3.3.5 - - + BasicSecurityScheme - -
- - -
-

+

Basic Authentication [ - - + RFC7617 - - + ] security configuration identified by the - + Vocabulary Term - - + basic - + (i.e., - + "scheme": "basic" - + ), using an @@ -16464,47 +13050,28 @@

username and password. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - -
+Table + 18 - + Vocabulary Terms in BasicSecurityScheme Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
name - - + Name for query, @@ -16513,25 +13080,13 @@
or uri parameters. -
+ optional - - - + string - - -
- -in - - +
+in + Specifies the location @@ -16539,84 +13094,57 @@
security authentication information. -
- + with default - - - - + string - - + (one of - + header -, - +, query -, - +, body -, - +, cookie -, +, or - + auto - + ) -
- -
-
-
- +
5.3.3.6 - - + DigestSecurityScheme - -
- - -
-

+

Digest Access Authentication [ - - + RFC7616 - - + ] security configuration identified by the - + Vocabulary Term - - + digest - + (i.e., - + "scheme": "digest" - + ). This scheme @@ -16633,47 +13161,28 @@

avoid man-in-the-middle attacks. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 19 - + Vocabulary Terms in DigestSecurityScheme Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
name - - + Name for query, @@ -16682,25 +13191,13 @@
or uri parameters. -
+ optional - - - + string - - -
- -in - - +
+in + Specifies the location @@ -16708,92 +13205,55 @@
security authentication information. -
- + with default - - - - + string - - + (one of - + header -, - +, query -, - +, body -, - +, cookie -, +, or - + auto - + ) -
- +
qop - - + Quality of protection. - - + with default - - - - + string - - + (one of - + auth -, +, or - + auth-int - + ) -
- -
-
-
- +
5.3.3.7 - - + APIKeySecurityScheme - -
- - -
-

+

API key authentication @@ -16802,18 +13262,17 @@

identified by the - + Vocabulary Term - - + apikey - + (i.e., - + "scheme": "apikey" - + ). This scheme @@ -16884,51 +13343,32 @@
indicated by the - + "in" - + field. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - -
+Table + 20 - + Vocabulary Terms in APIKeySecurityScheme Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
name - - + Name for query, @@ -16937,25 +13377,13 @@
or uri parameters. -
+ optional - - - + string - - -
- -in - - +
+in + Specifies the location @@ -16963,86 +13391,58 @@
security authentication information. -
- + with default - - - - + string - - + (one of - + header -, - +, query -, - +, body -, - +, cookie -, - +, uri -, +, or - + auto - + ) -
- -
-
-
- +
5.3.3.8 - - + BearerSecurityScheme - -
- - -
-

+

Bearer Token [ - - + RFC6750 - - + ] security configuration identified by the - + Vocabulary Term - - + bearer - + (i.e., - + "scheme": "bearer" - + ) for situations @@ -17056,9 +13456,9 @@

OAuth2. If the - + oauth2 - + scheme is specified @@ -17078,76 +13478,68 @@
is implied. For - + format -, +, the value - + jwt - + indicates conformance with [ - - + RFC7519 - - + ], - + jws - + indicates conformance with [ - - + RFC7797 - - + ], - + cwt - + indicates conformance with [ - - + RFC8392 - - + ], and - + jwe - + indicates conformance with [ - - + RFC7516 - - + ], with values for - + alg - + interpreted consistently with those standards. - + Other formats and @@ -17155,80 +13547,48 @@
for bearer tokens - + MAY - + be specified in vocabulary extensions -. -

- -
- -Table - +.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 21 - + Vocabulary Terms in BearerSecurityScheme Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
authorization - - + URI of the authorization server. - + optional - - - + anyURI - - -
- +
name - - + Name for query, @@ -17237,104 +13597,64 @@
or uri parameters. -
+ optional - - - + string - - -
- +
alg - - + Encoding, encryption, or digest algorithm. - - + with default - - - - + string - - + (e.g., - + ES256 -, +, or - + ES512-256 - + ) -
- +
format - - + Specifies format of security authentication information. - - + with default - - - - + string - - + (e.g., - + jwt -, - +, cwt -, - +, jwe -, +, or - + jws - + ) -
- -in - - +
+in + Specifies the location @@ -17342,57 +13662,33 @@
security authentication information. -
- + with default - - - - + string - - + (one of - + header -, - +, query -, - +, body -, - +, cookie -, +, or - + auto - + ) -
- -
-
-
- +
5.3.3.9 - - + PSKSecurityScheme - -
- - -
-

+

Pre-shared key authentication @@ -17401,18 +13697,17 @@

identified by the - + Vocabulary Term - - + psk - + (i.e., - + "scheme": "psk" - + ). This is @@ -17431,11 +13726,9 @@
as TLS-PSK [ - - + RFC4279 - - + ], and that @@ -17450,47 +13743,28 @@
during protocol negotiation. -

- -
- -Table - +

- - - - - - - - - - - - - - - - -
+Table + 22 - + Vocabulary Terms in PSKSecurityScheme Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
identity - - + Identifier providing information @@ -17502,35 +13776,15 @@
selection or confirmation. -
+ optional - - - + string - - -
- -
-
5.3.3.10 - - + OAuth2SecurityScheme - -
- - -
-

+

OAuth 2.0 authentication @@ -17541,185 +13795,89 @@

conformant with [ - - + RFC6749 - - -], -[ -RFC8252 - + ] and -(for -the -device -flow) - [ - -RFC8628 - - -RFC8252 - - - + +RFC8252 + ], identified by the - + Vocabulary Term - - + oauth2 - + (i.e., - + "scheme": "oauth2" - + ). -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 23 - + Vocabulary Terms in OAuth2SecurityScheme Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
authorization - - + URI of the authorization server. -In -the -case -of -the -device -flow, -the -URI -provided -for -the -authorization -value -refers -to -the -device -authorization -endpoint -[ -RFC8628 -]. - - + optional - - - + anyURI - - -
- +
token - - + URI of the token server. - + optional - - - + anyURI - - -
- +
refresh - - + URI of the refresh server. - + optional - - - + anyURI - - -
- +
scopes - - + Set of authorization @@ -17761,11 +13919,9 @@
with a form -should - - -SHOULD - + +SHOULD + be chosen from @@ -17773,175 +13929,102 @@
defined in an - + OAuth2SecurityScheme - + active on that form. -
+ optional - - - + string - - + or - + Array - + of - - + string - - -
- +
flow - - + Authorization flow. - + mandatory - - - + string - - + (e.g., - + code -, -client -, - +, or - -device - -client - - + +client + ) -
-

- +

For the - + code - + flow both - + authorization - + and - + token - - -vocabulary + +vocabulary terms - - + MUST - + be included. - - + For the - + client - + flow - + token - - -vocabulary + +vocabulary term - - + MUST - + be included. - - + For the - + client - + flow - + authorization - - -vocabulary + +vocabulary term - - + MUST NOT - + be included. - -For -the -device -flow -both -authorization -and -token -MUST -be -included. -In -the -case -of -the -device -flow -the -value -provided -for -authorization -refers -to -the -device -authorization -endpoint -defined -in -[ -RFC8628 -]. - + The mandatory elements @@ -17954,95 +14037,38 @@

the following table: -

- - - -
+

- - -device - - - - - - -mandatory; -refers -to -device -authorization -endpoint - - - - - - -mandatory - - - - - - -optional - - - -
Element - - + code - - - + client - -
- +
authorization - - + mandatory - + omit -
- +
token - - + mandatory - + mandatory -
- +
refresh - - + optional - + optional -
- - -
-
-

- +

5.3.4 - + Hypermedia Controls Vocabulary Definitions -

- - -
-

+

The present model @@ -18059,13 +14085,13 @@

exposed by a - + Thing -. +. The - + Link - + class definition reflects @@ -18081,11 +14107,9 @@

Web Linking [ - - + RFC8288 - - + ]. The defined @@ -18100,28 +14124,28 @@

relation to another - + Thing - + such as a - + Lamp Thing - + is controlled by a - + Switch Thing -. +. The - + Form - + class corresponds to @@ -18137,28 +14161,18 @@

the state of - + Things - + (and other Web resources). -

-
5.3.4.2 - - + Form - -
- - -
-

+

A form can @@ -19157,46 +14906,36 @@

"To perform an - - + operation type - - + operation on - - + form context - -, +, make a - - + request method - - + request to - - + submission target - - + " where the optional - - + form fields - - + may further describe @@ -19207,12 +14946,10 @@
Thing Descriptions, the - - + form context - - + is the surrounding @@ -19229,47 +14966,28 @@
itself for meta-interactions. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 26 - + Vocabulary Terms in Form Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
href - - + Target IRI of @@ -19281,25 +14999,13 @@
of a form. -
+ mandatory - - - + anyURI - - -
- +
contentType - - + Assign a content @@ -19310,51 +15016,35 @@
media type (e.g., - + text/plain - + ) and potential parameters (e.g., - + charset=utf-8 - + ) for the media type [ - - + RFC2046 - - + ]. -
- + with default - - - - + string - - -
- +
contentCoding - - + Content coding values @@ -19411,25 +15101,13 @@
"deflate", etc. . -
+ optional - - - + string - - -
- +
security - - + Set of security @@ -19440,9 +15118,9 @@
those defined in - + securityDefinitions -. +. These must all @@ -19452,35 +15130,21 @@
access to resources. -
+ optional - - - + string - - + or - + Array - + of - - + string - - -
- +
scopes - - + Set of authorization @@ -19522,11 +15186,9 @@
with a form -should - - -SHOULD - + +SHOULD + be chosen from @@ -19534,42 +15196,28 @@
defined in an - + OAuth2SecurityScheme - + active on that form. -
+ optional - - - + string - - + or - + Array - + of - - + string - - -
- +
response - - + This optional term @@ -19608,25 +15256,13 @@
primary response messages. -
+ optional - - - + ExpectedResponse - - -
- +
additionalResponses - - + This optional term @@ -19671,29 +15307,17 @@
own data schema. -
+ optional - - + Array - + of - - + AdditionalExpectedResponse - - -
- +
subprotocol - - + Indicates the exact @@ -19738,36 +15362,32 @@
long polling ( - + longpoll - + ), WebSub [ - - + websub - - + ] ( - + websub - + ), Server-Sent Events ( - + sse - + ) [ - - + html - - + ] (also known @@ -19795,37 +15415,25 @@
this subprotocol term. -
+ optional - - - + string - - + (e.g., - + longpoll -, - +, websub -, +, or - + sse - + ) -
- +
op - - + Indicates the semantic @@ -19906,99 +15514,70 @@
of an operation. -
- + with default - - - - + string - - + or - + Array - + of - - + string - - + (one of - + readproperty -, - +, writeproperty -, - +, observeproperty -, - +, unobserveproperty -, - +, invokeaction -, - +, queryaction -, - +, cancelaction -, - +, subscribeevent -, - +, unsubscribeevent -, - +, readallproperties -, - +, writeallproperties -, - +, readmultipleproperties -, - +, writemultipleproperties -, - +, observeallproperties -, - +, unobserveallproperties -, - +, subscribeallevents -, - +, unsubscribeallevents -, +, or - + queryallactions - + ) -
-

+

Possible values for the - + contentCoding - + property can be @@ -20006,15 +15585,13 @@

e.g., in the - + IANA HTTP content coding registry -. -

-

+.

The list of @@ -20049,11 +15626,9 @@

described in [ - - + wot-architecture11 - - + ]. Future versions @@ -20065,13 +15640,13 @@
this list but - + operations types - + SHOULD NOT - + be arbitrarily set @@ -20087,37 +15662,22 @@
the table below. - -

-
- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 27 - + Well-known operation types -
+
Operation Type - + Description -
+
readproperty - + Identifies the read @@ -20130,13 +15690,9 @@
the corresponding data. -
+
writeproperty - + Identifies the write @@ -20149,13 +15705,9 @@
the corresponding data. -
+
observeproperty - + Identifies the observe @@ -20175,13 +15727,9 @@
Property is updated. -
+
unobserveproperty - + Identifies the unobserve @@ -20194,13 +15742,9 @@
the corresponding notifications. -
+
invokeaction - + Identifies the invoke @@ -20213,13 +15757,9 @@
the corresponding action. -
+
queryaction - + Identifies the querying @@ -20235,13 +15775,9 @@
the corresponding action. -
+
cancelaction - + Identifies the cancel @@ -20255,13 +15791,9 @@
ongoing corresponding action. -
+
subscribeevent - + Identifies the subscribe @@ -20279,13 +15811,9 @@
the event occurs. -
+
unsubscribeevent - + Identifies the unsubscribe @@ -20298,13 +15826,9 @@
the corresponding notifications. -
+
readallproperties - + Identifies the readallproperties @@ -20323,13 +15847,9 @@
a single interaction. -
+
writeallproperties - + Identifies the writeallproperties @@ -20349,13 +15869,9 @@
a single interaction. -
+
readmultipleproperties - + Identifies the readmultipleproperties @@ -20374,13 +15890,9 @@
a single interaction. -
+
writemultipleproperties - + Identifies the writemultipleproperties @@ -20400,13 +15912,9 @@
a single interaction. -
+
observeallproperties - + Identifies the observeallproperties @@ -20424,13 +15932,9 @@
Property is updated. -
+
unobserveallproperties - + Identifies the unobserveallproperties @@ -20447,13 +15951,9 @@
a single interaction. -
+
queryallactions - + Identifies the queryallactions @@ -20472,13 +15972,9 @@
a single interaction. -
+
subscribeallevents - + Identifies the subscribeallevents @@ -20496,13 +15992,9 @@
a single interaction. -
+
unsubscribeallevents - + Identifies the unsubscribeallevents @@ -20520,23 +16012,18 @@
a single interaction. -
-
-

+

A - + Thing Description - + of a WoT - + producer - + may have multiple @@ -20552,9 +16039,9 @@

declarations that a - + Consumer - + could possibly support. @@ -20590,9 +16077,9 @@
expected that the - + Consumer - + will continue to @@ -20609,37 +16096,23 @@
with the WoT -producer. - - -producer -. -

-
-
-
- + +producer +.

5.3.4.2.1 - + Mapping op Values to Data Schemas -
- - -
-

- +

This section is non-normative. - -

-

+

Protocols that can @@ -20662,15 +16135,15 @@

correlates with the - + op - + keywords used in - + forms -. +. The table below @@ -20684,13 +16157,11 @@
terms with the - + op - + keywords. -

-
-
-
-
- - -
-

+

The optional - + response - + name-value pair can @@ -21210,20 +16574,20 @@

- -
-
-
- +

-

+

Communication metadata describing @@ -21760,47 +17091,28 @@

the primary response. -

- -
- -Table - +

- - - - - - - - - - - - - - - - -
+Table + 29 - + Vocabulary Terms in ExpectedResponse Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
contentType - - + Assign a content @@ -21811,58 +17123,36 @@
media type (e.g., - + text/plain - + ) and potential parameters (e.g., - + charset=utf-8 - + ) for the media type [ - - + RFC2046 - - + ]. -
+ mandatory - - - + string - - -
- -
-
5.3.4.4 - - + AdditionalExpectedResponse - -
- - -
-

+

Communication metadata describing @@ -21873,47 +17163,28 @@

for additional responses. -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 30 - + Vocabulary Terms in AdditionalExpectedResponse Level -
- +
Vocabulary term - - + Description - + Assignment - + Type -
- +
success - - + Signals if an @@ -21925,28 +17196,14 @@
considered an error. -
- + with default - - - - + boolean - - -
- +
contentType - - + Assign a content @@ -21957,51 +17214,35 @@
media type (e.g., - + text/plain - + ) and potential parameters (e.g., - + charset=utf-8 - + ) for the media type [ - - + RFC2046 - - + ]. -
- + with default - - - - + string - - -
- +
schema - - + Used to define @@ -22025,9 +17266,9 @@
Rather than a - + DataSchema - + object, the name @@ -22038,45 +17279,24 @@
given in a - + schemaDefinitions - + map must be used. -
+ optional - - - + string - - -
- - - -
-

5.4 - + Default Value Definitions -

- - -
-

- +

When assignments in @@ -22085,58 +17305,50 @@

are missing, a - + TD Processor - - + MUST - + follow the - + Default Value - + assignments expressed in the table of - + Default Value Definitions -. - -

-

+.

The following table gives all - + Default Values - + defined in the - + TD Information Model -. -

- -
- -Table - +.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 31 - + Default values of @@ -22154,49 +17366,23 @@

in a TD -

- +
Class - - - + Vocabulary Term - - - + Default Value - - + Comment -
- +
PropertyAffordance - - - + readOnly - - - + false - - + The default value @@ -22208,9 +17394,9 @@

only to the - + PropertyAffordance - + level definition. In @@ -22218,34 +17404,22 @@

contexts, such as - + DataSchema - + definitions, the vocabulary term is optional. -

- +
PropertyAffordance - - - + writeOnly - - - + false - - + The default value @@ -22257,9 +17431,9 @@

only to the - + PropertyAffordance - + level definition. In @@ -22267,469 +17441,249 @@

contexts, such as - + DataSchema - + definitions, the vocabulary term is optional. -

- +
PropertyAffordance - - - + observable - - - + false - - -
- +
ActionAffordance - - - + safe - - - + false - - -
- +
ActionAffordance - - - + idempotent - - - + false - - -
- +
AdditionalExpectedResponse - - - + success - - - + false - - -
- +
AdditionalExpectedResponse - - - + contentType - - + value of the - + contentType - + of the - + Form - + element it belongs to. - -
- +
Form - - - + contentType - - - + application/json - - -
- +
Form - - - + op - - - + Array - + of - + string - + with the elements - + readproperty - + and - + writeproperty - + when - + readOnly - + and - + writeOnly - + are set to - + false - + or - + Array - + of - + string - + with the element - + readproperty - + when - + readOnly - + is set to - + true - + or - + Array - + of - + string - + with the element - + writeproperty - + when - + writeOnly - + is set to - + true -. -
-
+.
If defined within an instance of - + PropertyAffordance - -
- +
Form - - - + op - - - + invokeaction - - + If defined within an instance of - + ActionAffordance - -
- +
Form - - - + op - - - + Array - + of - + string - + with the elements - + subscribeevent - + and - + unsubscribeevent - - + If defined within an instance of - + EventAffordance - -
- +
BasicSecurityScheme - - - -in - - - + +in + header - - -
- +
DigestSecurityScheme - - - -in - - - + +in + header - - -
- +
DigestSecurityScheme - - - + qop - - - + auth - - -
- +
APIKeySecurityScheme - - - -in - - - + +in + query - - -
- +
BearerSecurityScheme - - - -in - - - + +in + header - - -
- +
BearerSecurityScheme - - - + alg - - - + ES256 - - -
- +
BearerSecurityScheme - - - + format - - - + jwt - - -
- - -
-
-

- +

6. - + TD Representation Format -

- - -
-

+

WoT Thing Descriptions @@ -22742,14 +17696,13 @@

structured based on - - + 5. - + TD Information Model -. +. This section defines @@ -22758,65 +17711,58 @@

representation format for - + Things -, +, a serialization of instances of the - + Class - - + Thing - + defined by the - + TD Information Model -. -

-

- +.

A - + TD Processor - - + MUST - + be able to serialize - + Thing Descriptions - + into the JSON format [ - - + RFC8259 - - + ] and/or deserialize - + Thing Descriptions - + from that format, @@ -22826,37 +17772,32 @@

rules noted in - - + 6.1 - + Mapping to JSON Types - + and - - + 6.3 - + Information Model Serialization -. - -

-

+.

The JSON serialization of the - + TD Information Model - + is aligned with @@ -22866,11 +17807,9 @@

JSON-LD 1.1 [ - - + json-ld11 - - + ] in order @@ -22904,17 +17843,13 @@

please refer to - - -C. - -D. - - + +D. + JSON-LD Context Usage - + and the documentation @@ -22923,23 +17858,22 @@

namespace IRIs, e.g., - + https://www.w3.org/2019/wot/td - + ). -

-

+

In order to support interoperable internationalization, - + TDs - + MUST - + be serialized according @@ -22953,50 +17887,40 @@

of RFC8259 [ - - + RFC8259 - - + ] for open ecosystems. - + In summary, this requires the following: -

-
    -
  • - +

    • TDs - + MUST - + be encoded using UTF-8 [ - - + RFC3629 - - + ]. - -
    • -
    • - +
    • Implementations - + MUST NOT - + add a byte @@ -23010,17 +17934,12 @@

      a TD document. - -

    • -
    • - - +
    • TD Processors - - + MAY - + ignore the presence @@ -23036,30 +17955,20 @@

      as an error. - -

    • -
    -
    -
    -

    - +

6.1 - + Mapping to JSON Types -

- - -
-

+

The - + TD Information Model - + is constructed, so @@ -23071,16 +17980,16 @@

mapping between model - + Objects - + and JSON types. Every - + Class - + instances maps to @@ -23093,9 +18002,9 @@

pair of the - + Class - + instance is a @@ -23104,45 +18013,38 @@

the JSON object. -

-

+

Every - + Simple Type - + mentioned in - - + 5.3 - + Class Definitions - + (i.e., - + string -, - +, anyURI -, - +, dateTime -, - +, integer -, - +, unsignedInt -, - +, double -, +, and - + boolean - + ) maps to @@ -23167,45 +18069,37 @@

in name-value pairs: -

-
    -
  • - +

    • Values that are of type - + string - + or - + anyURI - - + MUST - + be serialized as JSON strings. - -
    • -
    • - +
    • Values that are of type - + dateTime - - + MUST - + be serialized as @@ -23218,41 +18112,37 @@

      specified by [ - - + RFC3339 - - + ]. - + Examples would include - + 2019-05-24T13:12:45Z - + and - + 2015-07-11T09:32:26+08:00 -. - +. Values that are of type - + dateTime - - + SHOULD - + use the literal - + Z - + representing the UTC @@ -23262,25 +18152,21 @@

      of an offset. - -

    • -
    • - +
    • Values that are of type - + integer - + or - + unsignedInt - - + MUST - + be serialized as @@ -23292,71 +18178,59 @@

      or exponent part. - -

    • -
    • - +
    • Values that are of type - + double - - + MUST - + be serialized as JSON number. - -
    • -
    • - +
    • Values that are of type - + boolean - - + MUST - + be serialized as JSON boolean. - -
    • -
    -

    +

Every complex type of the - + TD Information Model - + (i.e., - + Arrays -, - +, Maps -, +, and - + Class - + instances) maps to @@ -23373,20 +18247,16 @@

rules listed below: -

-
    -
  • - +

    • A value of type - + Array - - + MUST - + be serialized as @@ -23413,25 +18283,20 @@

      of the pair. - -

    • -
    • - +
    • A value of type - + Map - - + MUST - + be serialized as -a - +a JSON object, with @@ -23444,23 +18309,19 @@

      the JSON object. - -

    • -
    • - +
    • A - + Class - + instance - + MUST - + be serialized as -a - +a JSON object, following @@ -23470,48 +18331,35 @@

      given individually in - - + 6.3 - + Information Model Serialization -. - -

    • -
    -

-
-
-

- +.

6.2 - + Omitting Default Values -

- - -
-

+

A Thing Description serialization may omit - + Vocabulary Term - + for which - + Default Values - + are defined, as @@ -23521,16 +18369,13 @@

table given in - - + 5.4 - + Default Value Definitions -. -

-

+.

The following example @@ -23539,10 +18384,10 @@

TD instance from - + Example 1 - + with a checkbox @@ -23552,10 +18397,10 @@

the members with - + Default Values - + (=checkbox checked). These @@ -23573,10 +18418,10 @@

Note that a - + TD Processor - + interprets these omitted @@ -23591,23 +18436,15 @@

with a given - + Default Value -. -

- -

+

Please note that, depending on the - + Protocol Binding - + used, additional protocol-specific - + Vocabulary Terms - + may apply. They @@ -23749,10 +18591,10 @@

also have associated - + Default Values -, +, and hence can @@ -23770,42 +18612,24 @@

be found in - - + 8.3 - + Protocol Bindings -. -

-

-
-
-

- +.

6.3 - + Information Model Serialization -

- - -
-
-
-

- +

6.3.1 - + Thing Root Object -

- - -
-

+

A Thing Description @@ -23816,16 +18640,14 @@

rooted at an - + Object - + of type - - + Thing - -. +. In turn, a @@ -23850,26 +18672,22 @@

constructed from the - + TD Information Model -. -

-

- +.

The root element of a - -TD Serialization - - + +TD Serialization + MUST - - be + + be a JSON object @@ -23880,9 +18698,9 @@

with the name - + @context - + and a value @@ -23896,12 +18714,9 @@

or respectively contains - + https://www.w3.org/2022/wot/td/v1.1 -. - -

-

+.

In general, this @@ -23923,11 +18738,9 @@

JSON-LD processing [ - - + json-ld11 - - + ], this URI @@ -23938,48 +18751,37 @@

context file. An - + @context - + of type array indicates - + TD Context Extensions - + (see - - + 7. - + TD Context Extensions - + for details). -

-
-
- +

-
{  
-    "@context": "https://www.w3.org/2022/wot/td/v1.1",
-    // ...
+
{      "@context": 
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
+    // ...
 }
-
-
-
-

- +

All name-value pairs @@ -23987,30 +18789,29 @@

an instance of - + Thing -, +, where the name is a - + Vocabulary Term - + in the - + Signature - + of - + Thing -, - +, MUST - + be serialized as @@ -24020,9 +18821,7 @@

the root object. - -

-

+

A TD snippet @@ -24040,125 +18839,117 @@

is given below: -

-
-
- +

Example - + 6 - - -: +: Sample of Thing serializations - -
-
{
-    "@context": "https://www.w3.org/2022/wot/td/v1.1",
-    "@type": "Thing",
-    "id": "urn:uuid:1b37933b-3212-4dad-9c2c-74c6042c3e2b",
-    "title": "MyThing",
-    "titles": {/*...*/},
-    "description": "Human readable information.",
-    "descriptions": {/*...*/},
-    "support": "mailto:support@example.com",
-    "version": {/*...*/},
-    "created": "2018-11-14T19:10:23.824Z",
-    "modified": "2019-06-01T09:12:43.124Z",
-    "securityDefinitions": {/*...*/},
-    "security": /*...*/,
-    "base": "https://servient.example.com/",
-    "properties": {/*...*/},
-    "actions": {/*...*/},
-    "events": {/*...*/},
-    "links": [...],
-    "forms": [...]
+
{    "@context": 
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
+    "@type": 
+"hljs-string">"Thing",
+    "id": 
+"hljs-string">"urn:uuid:1b37933b-3212-4dad-9c2c-74c6042c3e2b",
+    "title": 
+"hljs-string">"MyThing",
+    "titles": {
+"hljs-comment">/*...*/},
+    "description": 
+"hljs-string">"Human readable information.",
+    "descriptions": {
+"hljs-comment">/*...*/},
+    "support": 
+"hljs-string">"mailto:support@example.com",
+    "version": {
+"hljs-comment">/*...*/},
+    "created": 
+"hljs-string">"2018-11-14T19:10:23.824Z",
+    "modified": 
+"hljs-string">"2019-06-01T09:12:43.124Z",
+    
+"hljs-attr">"securityDefinitions": {/*...*/},
+    "security": 
+"hljs-comment">/*...*/,
+    "base": 
+"hljs-string">"https://servient.example.com/",
+    "properties": {
+"hljs-comment">/*...*/},
+    "actions": {
+"hljs-comment">/*...*/},
+    "events": {
+"hljs-comment">/*...*/},
+    "links": [...],    "forms": [...]
 }
-
-
-
-

- +

All values assigned to - + version -, - +, securityDefinitions -, - +, descriptions -, - +, schemaDefinitions -, - +, uriVariables -, - +, properties -, - +, actions -, +, and - + events - + in an instance of the - + Class - - + Thing - - + MUST - + be serialized as JSON objects. - -

-

- +

All values assigned to - + links -, +, and - + forms - + in an instance of the - + Class - - + Thing - - + MUST - + be serialized as @@ -24170,51 +18961,39 @@

as defined in - - + 6.3.8 - - + links - - + and - - + 6.3.9 - - + forms - -, respectively. - -

-

- +, respectively.

The value assigned to - + security - + in an instance of - + Class - - + Thing - - + MUST - - be + + be serialized as -JSON string +JSON string or as JSON @@ -24224,32 +19003,22 @@

are JSON strings. - -

-

-
-
-

- +

6.3.2 - + Human-Readable Metadata -

- - -
-

+

JSON members named - + title - + and - + description - + are used within @@ -24279,19 +19048,15 @@

for user interface. -

-

+

As defined in - - + 5.3.1.1 - - + Thing - -, +, the base text @@ -24330,14 +19095,14 @@

value assigned to - + @language - + in the - + @context -, +, and this, along @@ -24356,7 +19121,7 @@

base text direction. - + However, when interpreting @@ -24366,21 +19131,21 @@

human-readable string value - + MUST - + be processed independently. - + In other words, a - + TD Processor - + cannot carry forward @@ -24405,19 +19170,18 @@

in the TD. -

-

+

A TD snippet using - + title - + and - + description - + is shown below. @@ -24427,17 +19191,17 @@

is set to - + en - + through the definition of the - + @language - + member within a @@ -24445,57 +19209,47 @@

object in the - + @context - + array. -

-
-
- +

-
{
-    "@context": [
-        "https://www.w3.org/2022/wot/td/v1.1",
-        { "@language": "en" }
+
{    "@context": [        
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
+        { "@language": "en" }
     ],
-    "title": "MyThing",
-    "description": "Human readable information.",
-    // ...
-    "properties": {
-        "on": {
-            "title": "On/Off",
-            "type": "boolean",
-            "forms": [...]
+    "title": 
+"hljs-string">"MyThing",
+    "description": 
+"hljs-string">"Human readable information.",
+    // ...    "properties": {        "on": {            "title": 
+"hljs-string">"On/Off",
+            "type": 
+"hljs-string">"boolean",
+            "forms": [...]
         },
-        "status": {
-            "title": "Status",
-            "type": "object",
-            // ...
-            "forms": [...]
+        "status": {            "title": 
+"hljs-string">"Status",
+            "type": 
+"hljs-string">"object",
+            // ...            "forms": [...]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-

+

Strings on the Web [ - - + STRING-META - - + ] recommends the @@ -24505,14 +19259,14 @@

to determine the - + base direction - + of string values. - + Given that the @@ -24525,41 +19279,37 @@

JSON-LD 1.1 [ - - + json-ld11 - - + ], - + @direction - + with the string values - + "ltr" -, - +, "rtl" - + and null value - + null - - + MAY - + be used inside the - + @context - + to indicate the @@ -24576,50 +19326,48 @@

entire TD document. - - + When metadata such as - + @direction - + is not present, TD Consumers - + SHOULD - + use - + first-strong detection - + as a fallback. - - + For the MultiLanguage - + Map -, +, TD Consumers - + MAY - + infer the - + base direction - + from the language @@ -24628,7 +19376,7 @@

the individual strings. - + The example below @@ -24637,81 +19385,70 @@

use of the - + @direction - + term. See [ - - + json-ld11 - - + ] and [ - - + string-meta - - + ] for more detailed information. -

-
-
- +

-
{
-     "@context": [
-         "https://www.w3.org/2022/wot/td/v1.1",
+
{     "@context": [         
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
          { 
-           "@language": "ar-EG",
-           "@direction": "rtl" 
+           "@language": 
+"hljs-string">"ar-EG",
+           
+"hljs-attr">"@direction": "rtl" 
          }
      ],
-     "title": "شيء يخصني يقيس درجة الحرارة",
-     "description": "شيء يقيس درجة الحرارة و يظهر حالته",
-     // ...
-     "properties": {
-         "temp": {
-             "title": "درجة الحرارة",
-             "type": "boolean",
-             "forms": [...]
+     "title": 
+"hljs-string">"شيء يخصني يقيس درجة الحرارة",
+     "description": 
+"hljs-string">"شيء يقيس درجة الحرارة و يظهر حالته",
+     // ...     "properties": {         "temp": {             "title": 
+"hljs-string">"درجة الحرارة",
+             "type": 
+"hljs-string">"boolean",
+             "forms": [...]
          },
-         "status": {
-             "title": "حالة",
-             "type": "object",
-             // ...
-             "forms": [...]
+         "status": {             "title": 
+"hljs-string">"حالة",
+             "type": 
+"hljs-string">"object",
+             // ...             "forms": [...]
          }
      },
-     // ...
+     // ...
 }
-
-
-
-

+

The JSON members named - + titles - + and - + descriptions - + are used within @@ -24730,22 +19467,20 @@

single TD document. - + All name-value pairs of a - + MultiLanguage - - + Map - - + MUST - - be + + be serialized as members @@ -24765,21 +19500,18 @@

defined by [ - - + BCP47 - - + ] (also see - - + W3C - + I18N Glossary - + ) and the @@ -24795,31 +19527,28 @@

by the tag. - + See - - + 5.3.1.7 - - + MultiLanguage - - + for details. - + All - + MultiLanguage - + object within a TD document - + SHOULD - + contain the same @@ -24827,83 +19556,90 @@

of language members. - -

-

+

A TD snippet using - + titles - + and - + descriptions - + at different levels is given below: -

-
-
- +

-
{
-    "@context": "https://www.w3.org/2022/wot/td/v1.1",
-    "title": "MyThing",
-    "titles": {
-        "en": "MyThing",
-        "de": "MeinDing",
-        "ja": "私の物",
-        "zh-Hans": "我的东西", 
-        "zh-Hant": "我的東西"
+
{    "@context": 
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
+    "title": 
+"hljs-string">"MyThing",
+    "titles": {        "en": 
+"hljs-string">"MyThing",
+        "de": 
+"hljs-string">"MeinDing",
+        "ja": 
+"hljs-string">"私の物",
+        "zh-Hans": 
+"hljs-string">"我的东西", 
+        "zh-Hant": 
+"hljs-string">"我的東西"
     },
-    "descriptions": {
-        "en": "Human readable information.",
-        "de": "Menschenlesbare Informationen.",
-        "ja": "人間が読むことができる情報",
-        "zh-Hans": "人们可阅读的信息", 
-        "zh-Hant": "人們可閱讀的資訊"
+    "descriptions": {        "en": 
+"hljs-string">"Human readable information.",
+        "de": 
+"hljs-string">"Menschenlesbare Informationen.",
+        "ja": 
+"hljs-string">"人間が読むことができる情報",
+        "zh-Hans": 
+"hljs-string">"人们可阅读的信息", 
+        "zh-Hant": 
+"hljs-string">"人們可閱讀的資訊"
     },
-    // ...
-    "properties": {
-        "on": {
-            "titles": {
-                "en": "On/Off",
-                "de": "An/Aus",
-                "ja": "オンオフ",
-                "zh-Hans": "开关",
-                "zh-Hant": "開關" },
-            "type": "boolean",
-            "forms": [...]
+    // ...    "properties": {        "on": {            "titles": {                "en": 
+"hljs-string">"On/Off",
+                "de": 
+"hljs-string">"An/Aus",
+                "ja": 
+"hljs-string">"オンオフ",
+                
+"hljs-attr">"zh-Hans": "开关",
+                
+"hljs-attr">"zh-Hant": "開關" },
+            "type": 
+"hljs-string">"boolean",
+            "forms": [...]
         },
-        "status": {
-            "titles": {
-                "en": "Status",
-                "de": "Zustand",
-                "ja": "状態",
-                "zh-Hans": "状态",
-                "zh-Hant": "狀態" },
-            "type": "object",
-            // ...
-            "forms": [...]
+        "status": {            "titles": {                "en": 
+"hljs-string">"Status",
+                "de": 
+"hljs-string">"Zustand",
+                "ja": 
+"hljs-string">"状態",
+                
+"hljs-attr">"zh-Hans": "状态",
+                
+"hljs-attr">"zh-Hant": "狀態" },
+            "type": 
+"hljs-string">"object",
+            // ...            "forms": [...]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-

+

TD instances may @@ -24912,38 +19648,37 @@

the use of - + title - + and - + description - + with - + titles - + and - + descriptions -. - +. When - + title - + and - + titles - + or - + description - + and - + descriptions - + are present within @@ -24954,40 +19689,38 @@

the values of - + title - + and - + description - - + MAY - + be seen as the default text. - - + When - + title - + and - + titles - + or - + description - + and - + descriptions - + are present in @@ -24995,30 +19728,30 @@

TD document, each - + title - + and - + description - + member - + SHOULD - + have a corresponding - + titles - + and - + descriptions - + member, respectively. - + The language of @@ -25043,69 +19776,81 @@

Thing Description instance. -

-
-
- +

-
{
-    "@context": [
-        "https://www.w3.org/2022/wot/td/v1.1",
-        { "@language": "de" }
+
{    "@context": [        
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
+        { "@language": "de" }
     ],
-    "title": "MeinDing",
-    "titles": {
-        "en": "MyThing",
-        "de": "MeinDing",
-        "ja": "私の物",
-        "zh-Hans": "我的东西", 
-        "zh-Hant": "我的東西"
+    "title": 
+"hljs-string">"MeinDing",
+    "titles": {        "en": 
+"hljs-string">"MyThing",
+        "de": 
+"hljs-string">"MeinDing",
+        "ja": 
+"hljs-string">"私の物",
+        "zh-Hans": 
+"hljs-string">"我的东西", 
+        "zh-Hant": 
+"hljs-string">"我的東西"
     },
-    "description": "Menschenlesbare Informationen.",
-    "descriptions": {
-        "en": "Human readable information.",
-        "de": "Menschenlesbare Informationen.",
-        "ja": "人間が読むことができる情報",
-        "zh-Hans": "人们可阅读的信息", 
-        "zh-Hant": "人們可閱讀的資訊"
+    "description": 
+"hljs-string">"Menschenlesbare Informationen.",
+    "descriptions": {        "en": 
+"hljs-string">"Human readable information.",
+        "de": 
+"hljs-string">"Menschenlesbare Informationen.",
+        "ja": 
+"hljs-string">"人間が読むことができる情報",
+        "zh-Hans": 
+"hljs-string">"人们可阅读的信息", 
+        "zh-Hant": 
+"hljs-string">"人們可閱讀的資訊"
     },
-    // ...
-    "properties": {
-        "on": {
-            "title": "An/Aus",
-            "titles": {
-                "en": "On/Off",
-                "de": "An/Aus",
-                "ja": "オンオフ",
-                "zh-Hans": "开关",
-                "zh-Hant": "開關" },
-            "type": "boolean",
-            "forms": [...]
+    // ...    "properties": {        "on": {            "title": 
+"hljs-string">"An/Aus",
+            "titles": {                "en": 
+"hljs-string">"On/Off",
+                "de": 
+"hljs-string">"An/Aus",
+                "ja": 
+"hljs-string">"オンオフ",
+                
+"hljs-attr">"zh-Hans": "开关",
+                
+"hljs-attr">"zh-Hant": "開關" },
+            "type": 
+"hljs-string">"boolean",
+            "forms": [...]
         },
-        "status": {
-            "title": "Zustand",
-            "titles": {
-                "en": "Status",
-                "de": "Zustand",
-                "ja": "状態",
-                "zh-Hans": "状态",
-                "zh-Hant": "狀態" },
-            "type": "object",
-            // ...
-            "forms": [...]
+        "status": {            "title": 
+"hljs-string">"Zustand",
+            "titles": {                "en": 
+"hljs-string">"Status",
+                "de": 
+"hljs-string">"Zustand",
+                "ja": 
+"hljs-string">"状態",
+                
+"hljs-attr">"zh-Hans": "状态",
+                
+"hljs-attr">"zh-Hant": "狀態" },
+            "type": 
+"hljs-string">"object",
+            // ...            "forms": [...]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-

+

Another possibility to @@ -25122,14 +19867,14 @@

such as the - + Accept-Language - + header field of HTTP. - + In cases where @@ -25140,13 +19885,13 @@

been negotiated, an - + @language - + member - + MUST - + be present to @@ -25165,8 +19910,7 @@

the returned content. - - + When the default @@ -25177,9 +19921,9 @@

successfully, TD documents - + SHOULD - + include the appropriate @@ -25188,38 +19932,37 @@

for the members - + title - + and - + description - + in preference to - + MultiLanguage - + objects in - + titles - + and - + descriptions - + members. - - + Note however that Things - + MAY - + choose to not @@ -25237,9 +19980,7 @@

of resource constraints). - -

-

+

There is no @@ -25266,13 +20007,12 @@

risk described in - - + 10.5 - + Script Injection -, +, HTML tags embedded @@ -25316,23 +20056,11 @@

text rendering direction. -

-

-
-
-

- +

6.3.3 - - + version - -

- - -
-

- +

All name-value pairs @@ -25340,31 +20068,30 @@

an instance of - + VersionInfo -, +, where the name is a - + Vocabulary Term - + included in the - + Signature - + of - + VersionInfo -, - +, MUST - + be serialized as @@ -25372,15 +20099,13 @@

members with the - + Vocabulary Term - + as name. - -

-

+

A TD snippet @@ -25392,29 +20117,20 @@

is given below: -

-
-
- +

-
{
-    // ...
-    "version": { "instance": "1.2.1" },
-    // ...
+
{    // ...    "version": { 
+"hljs-attr">"instance": "1.2.1" },
+    // ...
 }
-
-
-
-

+

The - + version - + member is intended @@ -25429,83 +20145,70 @@

information based on - + TD Context Extensions -. +. See - - + 7.1 - + Semantic Annotations - + for details. -

-

-
-
-

- +

6.3.4 - - + securityDefinitions - + and - + security - -

- - -
-

+

In a - + Thing - + instance, the value assigned to - + securityDefinitions - + is a - + Map - + of instances of - + SecurityScheme -. - +. All name-value pairs of a - + Map - + of - + SecurityScheme - + instances - + MUST - - be + + be serialized as members @@ -25518,19 +20221,19 @@

from serializing the - + Map - + ; the name of a pair - + MUST - - be + + be serialized as a @@ -25545,22 +20248,18 @@

an instance of - + SecurityScheme -, - +, MUST - + be serialized as a JSON object. - -

-

- +

All name-value pairs @@ -25571,46 +20270,45 @@

one of the - + Subclasses - + of - + SecurityScheme -, +, where the name is a - + Vocabulary Term - + included in the - + Signature - + of that - + Subclass - + or in the - + Signature - + of - + SecurityScheme -, - +, MUST - + be serialized as @@ -25624,25 +20322,22 @@

from serializing the - + SecurityScheme - - + Subclass - + 's instance, with the - + Vocabulary Term - + as name. - -

-

+

The following TD @@ -25663,20 +20358,20 @@

value given for - + in - + is actually the - + Default Value - + ( - + header - + ) and could @@ -25687,17 +20382,17 @@

security configuration ( - + basic_sc - + ) is given in the - + securityDefinitions - + map. In this @@ -25713,35 +20408,25 @@

name in the - + security - + member. -

-
-
- +

-
{
-    // ...
-    "securityDefinitions": {
-        "basic_sc": {
-            "scheme": "basic",
-            "in": "header"
+
{    // ...    "securityDefinitions": {        "basic_sc": {            "scheme": 
+"hljs-string">"basic",
+            "in": 
+"hljs-string">"header"
         }
     },
-    "security": "basic_sc",
-    // ...
+    "security": 
+"hljs-string">"basic_sc",
+    // ...
 }
-
-
-
-

+

Security configuration in @@ -25749,36 +20434,36 @@

TD is mandatory. - + At least one security definition - + MUST - + be activated through the - + security - + member at the - + Thing level - + (i.e., in the TD root object). - + This configuration can @@ -25794,35 +20479,32 @@

interact with the - + Thing -. - +. Security definitions - + MAY - + also be activated at the -form - level -of +of the form elements - + by including a - + security - + member in form @@ -25837,19 +20519,14 @@

activated at the - + Thing -level. - -level -. - -

-

+level +.

The - + nosec - + security scheme is @@ -25868,72 +20545,67 @@

configuration for a - + Thing - + is activation of the - + nosec - + security scheme at the - + Thing -level, - -level -, +level +, as shown in the following example: -

-
-
- +

-
{
-    "@context": "https://www.w3.org/2022/wot/td/v1.1",
-    "id": "urn:uuid:e9ecb6ad-cd4c-481b-96ce-5b4c57ddb844",
-    "title": "MyThing",
-    "description": "Human readable information.",
-    "support": "https://servient.example.com/contact",
-    "securityDefinitions": { "nosec_sc": { "scheme": "nosec" }},
-    "security": "nosec_sc",
-    "properties": {/*...*/},
-    "actions": {/*...*/},
-    "events": {/*...*/},
-    "links": [/*...*/]
+
{    "@context": 
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
+    "id": 
+"hljs-string">"urn:uuid:e9ecb6ad-cd4c-481b-96ce-5b4c57ddb844",
+    "title": 
+"hljs-string">"MyThing",
+    "description": 
+"hljs-string">"Human readable information.",
+    "support": 
+"hljs-string">"https://servient.example.com/contact",
+    
+"hljs-attr">"securityDefinitions": { "nosec_sc": { "scheme": "nosec" }},
+    "security": 
+"hljs-string">"nosec_sc",
+    "properties": {
+"hljs-comment">/*...*/},
+    "actions": {
+"hljs-comment">/*...*/},
+    "events": {
+"hljs-comment">/*...*/},
+    "links": [
+"hljs-comment">/*...*/]
 }
-
-
-
-
-
-
- +
6.3.4.1 - + Multiple Security Definitions -
- - -
-

+

To give a @@ -25944,15 +20616,15 @@

we have a - + Thing - + where all - + Interaction Affordances - + require basic authentication @@ -25967,19 +20639,19 @@
required. For the - + status - + Property and the - + toggle - + Action, - + basic - + authentication is required @@ -25987,17 +20659,15 @@
defined at the - + Thing -level. - -level -. +level +. For the - + overheating - + Event, however, no @@ -26015,54 +20685,39 @@
the form level. -

-
-
- +

-
{
-    // ...
-    "securityDefinitions": {
-        "basic_sc": {"scheme": "basic"},
-        "nosec_sc": {"scheme": "nosec"}
+
{    // ...    "securityDefinitions": {        "basic_sc": {
+"hljs-attr">"scheme": "basic"},
+        "nosec_sc": {
+"hljs-attr">"scheme": "nosec"}
     },
-    "security": "basic_sc",
-    // ...
-    "properties": {
-        "status": {
-            // ...
-            "forms": [{
-                "href": "https://mylamp.example.com/status"
+    "security": 
+"hljs-string">"basic_sc",
+    // ...    "properties": {        "status": {            // ...            "forms": [{                "href": 
+"hljs-string">"https://mylamp.example.com/status"
             }]
         }
     },
-    "actions": {
-        "toggle": {
-            // ...
-            "forms": [{
-                "href": "https://mylamp.example.com/toggle"
+    "actions": {        "toggle": {            // ...            "forms": [{                "href": 
+"hljs-string">"https://mylamp.example.com/toggle"
             }]
         }
     },
-    "events": {
-        "overheating": {
-            // ...
-            "forms": [{
-                "href": "https://mylamp.example.com/oh",
-                "security": "nosec_sc"
+    "events": {        "overheating": {            // ...            "forms": [{                "href": 
+"hljs-string">"https://mylamp.example.com/oh",
+                
+"hljs-attr">"security": "nosec_sc"
             }]
         }
     }
 }
-
-
-
-

+

TDs can specify @@ -26091,28 +20746,28 @@

authentication on the - + Thing -. +. In the - + digest - + scheme, the - + Default Value - + of - + in - + (i.e., - + header - + ) is omitted, @@ -26137,9 +20792,9 @@
configured in the - + Consumer - + to interact successfully. @@ -26149,46 +20804,41 @@
security definitions, the - + security - + member becomes an array. -

-
-
- +

-
{
-    // ...
-    "securityDefinitions": {
-        "proxy_sc": {
-            "scheme": "digest",
-            "proxy": "https://portal.example.com/"
+
{    // ...    "securityDefinitions": {        "proxy_sc": {            "scheme": 
+"hljs-string">"digest",
+            "proxy": 
+"hljs-string">"https://portal.example.com/"
         },
-        "bearer_sc": {
-            "scheme": "bearer",
-            "in": "header",
-            "format": "jwt",
-            "alg": "ES256",
-            "authorization": "https://servient.example.com:8443/"
+        "bearer_sc": {            "scheme": 
+"hljs-string">"bearer",
+            "in": 
+"hljs-string">"header",
+            "format": 
+"hljs-string">"jwt",
+            "alg": 
+"hljs-string">"ES256",
+            
+"hljs-attr">"authorization": "https://servient.example.com:8443/"
         }
     },
-    "security": ["proxy_sc", "bearer_sc"],
-    // ...
+    "security": [
+"hljs-string">"proxy_sc", "bearer_sc"],
+    // ...
 }
-
-
-
-

- +

However, the use @@ -26204,26 +20854,23 @@

schemes in a - + security - + element is now deprecated, instead a - - + ComboSecurityScheme - - - + SHOULD - + be used. - + In the following @@ -26239,58 +20886,46 @@
this is demonstrated: -

-
-
- +

-
{
-    // ...
-    "securityDefinitions": {
-        "proxy_sc": {
-            "scheme": "digest",
-            "proxy": "https://portal.example.com/"
+
{    // ...    "securityDefinitions": {        "proxy_sc": {            "scheme": 
+"hljs-string">"digest",
+            "proxy": 
+"hljs-string">"https://portal.example.com/"
         },
-        "bearer_sc": {
-            "scheme": "bearer",
-            "in": "header",
-            "format": "jwt",
-            "alg": "ES256",
-            "authorization": "https://servient.example.com:8443/"
+        "bearer_sc": {            "scheme": 
+"hljs-string">"bearer",
+            "in": 
+"hljs-string">"header",
+            "format": 
+"hljs-string">"jwt",
+            "alg": 
+"hljs-string">"ES256",
+            
+"hljs-attr">"authorization": "https://servient.example.com:8443/"
         },
-        "combo_sc": {
-            "scheme": "combo",
-            "allOf": ["proxy_sc", "bearer_sc"]
+        "combo_sc": {            "scheme": 
+"hljs-string">"combo",
+            "allOf": [
+"hljs-string">"proxy_sc", "bearer_sc"]
         }
     },
-    "security": "combo_sc",
-    // ...
+    "security": 
+"hljs-string">"combo_sc",
+    // ...
 }
-
-
-
-

-
-
-
- +
6.3.4.2 - - + security - + in Forms -
- - -
-

+

Security configurations can @@ -26303,10 +20938,10 @@

within the same - + Interaction Affordance -. +. This may be @@ -26323,11 +20958,9 @@
and CoAP [ - - + RFC7252 - - + ], which support @@ -26402,9 +21035,9 @@
in the same - + security - + member combines them @@ -26428,10 +21061,10 @@
activation of the - + Interaction Affordance -. +. Note that activating @@ -26440,66 +21073,53 @@
configuration at the - + Thing level - + is still mandatory. -

-
-
- +

-
{
-    // ...
-    "securityDefinitions": {
-        "basic_sc": { "scheme": "basic" },
-        "digest_sc": { "scheme": "digest" },
-        "bearer_sc": { "scheme": "bearer" }
+
{    // ...    "securityDefinitions": {        "basic_sc": { 
+"hljs-attr">"scheme": "basic" },
+        "digest_sc": { 
+"hljs-attr">"scheme": "digest" },
+        "bearer_sc": { 
+"hljs-attr">"scheme": "bearer" }
     },
-    "security": "basic_sc",
-    // ...
-    "properties": {
-        "status": {
-            // ...
-            "forms": [{
-                "href": "https://mylamp.example.com/status"
+    "security": 
+"hljs-string">"basic_sc",
+    // ...    "properties": {        "status": {            // ...            "forms": [{                "href": 
+"hljs-string">"https://mylamp.example.com/status"
             }, {
-                "href": "https://mylamp.example.com/status",
-                "security": "digest_sc"
+                "href": 
+"hljs-string">"https://mylamp.example.com/status",
+                
+"hljs-attr">"security": "digest_sc"
             }, {
-                "href": "https://mylamp.example.com/status",
-                "security": "bearer_sc"
+                "href": 
+"hljs-string">"https://mylamp.example.com/status",
+                
+"hljs-attr">"security": "bearer_sc"
             }]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-
-
-
-
- +
6.3.4.3 - - + ComboSecurityScheme - -
- - -
-

+

To avoid redundancy @@ -26512,75 +21132,59 @@

details of the - + form - + elements, a - - + ComboSecurityScheme - - + with - + oneOf - + can be used instead. -

-
-
- +

-
{
-    // ...
-    "securityDefinitions": {
-        "basic_sc": { "scheme": "basic" },
-        "digest_sc": { "scheme": "digest" },
-        "bearer_sc": { "scheme": "bearer" },
-        "combo_sc": { 
-            "scheme": "combo", 
-            "oneOf": [ "basic_sc", "digest_sc", "bearer_sc" ] 
+
{    // ...    "securityDefinitions": {        "basic_sc": { 
+"hljs-attr">"scheme": "basic" },
+        "digest_sc": { 
+"hljs-attr">"scheme": "digest" },
+        "bearer_sc": { 
+"hljs-attr">"scheme": "bearer" },
+        "combo_sc": {             "scheme": 
+"hljs-string">"combo", 
+            "oneOf": [ 
+"hljs-string">"basic_sc", "digest_sc", "bearer_sc" ] 
         }
     },
-    "security": "combo_sc",
-    // ...
-    "properties": {
-        "status": {
-            // ...
-            "forms": [{
-                "href": "https://mylamp.example.com/status"
+    "security": 
+"hljs-string">"combo_sc",
+    // ...    "properties": {        "status": {            // ...            "forms": [{                "href": 
+"hljs-string">"https://mylamp.example.com/status"
             }]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-
-
-
-
- +
6.3.4.4 - + OAuth 2.0 usage -
- - -
-

+

As another more @@ -26616,17 +21220,17 @@

that resource (or - + Interaction Affordance - + in the case of - + W3C - + WoT). For example, @@ -26634,31 +21238,31 @@
the following, the - + status - + Property can be read by - + Consumers - + using bearer tokens containing the scope - + limited -, +, but the - + configure - + Action can only @@ -26669,9 +21273,9 @@
token containing the - + special - + scope. Scopes are @@ -26728,13 +21332,13 @@
with both the - + limited - + and - + special - + scopes, while ordinary @@ -26746,70 +21350,52 @@
tokens with the - + limited - + scope. -

-
-
- +

-
{
-    // ...
-    "securityDefinitions": {
-        "oauth2_sc": {
-            "scheme": "oauth2",
-            "flow": "client",
-            "token": "https://example.com/token",
-            "scopes": ["limited", "special"]
+
{    // ...    "securityDefinitions": {        "oauth2_sc": {            "scheme": 
+"hljs-string">"oauth2",
+            "flow": 
+"hljs-string">"client",
+            "token": 
+"hljs-string">"https://example.com/token",
+            "scopes": [
+"hljs-string">"limited", "special"]
         }
     },
-    "security": "oauth2_sc",
-    // ...
-    "properties": {
-        "status": {
-            // ...
-            "forms": [{
-                "href": "https://scopes.example.com/status",
-                "scopes": ["limited"]
+    "security": 
+"hljs-string">"oauth2_sc",
+    // ...    "properties": {        "status": {            // ...            "forms": [{                "href": 
+"hljs-string">"https://scopes.example.com/status",
+                
+"hljs-attr">"scopes": ["limited"]
             }]
         }
     },
-    "actions": {
-        "configure": {
-            // ...
-            "forms": [{
-                "href": "https://scopes.example.com/configure",
-                "scopes": ["special"]
+    "actions": {        "configure": {            // ...            "forms": [{                "href": 
+"hljs-string">"https://scopes.example.com/configure",
+                
+"hljs-attr">"scopes": ["special"]
             }]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-
-
-
-
- +
6.3.4.5 - + API key usage -
- - -
-

+

A Thing can @@ -26884,41 +21470,29 @@

an HTTPS request. -

-
-
- +

-
{
-    // ...
-    "securityDefinitions": {
-        "apikey_key": {
-            "scheme": "apikey",
-            "in": "uri",
-            "name": "adminKey"
+
{    // ...    "securityDefinitions": {        "apikey_key": {            "scheme": 
+"hljs-string">"apikey",
+            "in": 
+"hljs-string">"uri",
+            "name": 
+"hljs-string">"adminKey"
         }
     },
-    "security": "apikey_key",
-    "properties": {
-        "status": {
-            // ...
-            "forms": [{
-                "href": "https://example.com/{adminKey}/status",
-                // ...
+    "security": 
+"hljs-string">"apikey_key",
+    "properties": {        "status": {            // ...            "forms": [{                "href": 
+"hljs-string">"https://example.com/{adminKey}/status",
+                // ...
             }]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-

+

To give another @@ -26928,11 +21502,9 @@

use of the - - + ComboSecurityScheme - - + in addition to @@ -27028,23 +21600,21 @@
two instances of - - + APIKeySecurityScheme - -, +, both using the - + uri - + value for the - + in - + location specifier, to @@ -27063,14 +21633,14 @@
used in the - + href - + in a - + Form - + where the security @@ -27080,51 +21650,42 @@
An example follows: -

-
-
- +

-
{
-    // ...
-    "securityDefinitions": {
-        "apikey_key": {
-            "scheme": "apikey",
-            "in": "uri",
-            "name": "secKey"
+
{    // ...    "securityDefinitions": {        "apikey_key": {            "scheme": 
+"hljs-string">"apikey",
+            "in": 
+"hljs-string">"uri",
+            "name": 
+"hljs-string">"secKey"
         },
-        "apikey_id": {
-            "scheme": "apikey",
-            "in": "uri",
-            "name": "secClientID"
+        "apikey_id": {            "scheme": 
+"hljs-string">"apikey",
+            "in": 
+"hljs-string">"uri",
+            "name": 
+"hljs-string">"secClientID"
         },
-        "apikey_combo": {
-            "scheme": "combo",
-            "allOf": ["apikey_key","apikey_id"]
+        "apikey_combo": {            "scheme": 
+"hljs-string">"combo",
+            "allOf": [
+"hljs-string">"apikey_key","apikey_id"]
         }
     },
-    "security": "apikey_combo",
-    // ...
-    "properties": {
-        "status": {
-            // ...
-            "forms": [{
-                "href": "https://example.com/{secClientID}/status/{secKey}",
-                // ...
+    "security": 
+"hljs-string">"apikey_combo",
+    // ...    "properties": {        "status": {            // ...            "forms": [{                "href": 
+"hljs-string">"https://example.com/{secClientID}/status/{secKey}",
+                // ...
             }]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-

+

While not shown @@ -27141,9 +21702,9 @@

template variables using - + uriVariables - + and include them @@ -27187,14 +21748,12 @@
avoid name conflicts. -

-

- +

API Key in Body: - + Security parameters might @@ -27225,9 +21784,9 @@

a member named - + auth - + whose value is @@ -27237,9 +21796,9 @@
a member called - + key - + containing an access @@ -27265,9 +21824,9 @@
with using the - + body - + security information location. @@ -27277,9 +21836,9 @@
this location, the - + name - + parameter is actually @@ -27293,9 +21852,9 @@
root of the - + DataSchema - + for each interaction @@ -27353,9 +21912,9 @@
these actions the - + /auth/key - + element occurs in @@ -27390,102 +21949,97 @@
security scheme definitions. -

-
-
- +

-
{
-    // ...
-    "securityDefinitions": {
-        "apikey_body": {
-            "scheme": "apikey",
-            "in": "body",
-            "name": "/auth/key"
+
{    // ...    "securityDefinitions": {        "apikey_body": {            "scheme": 
+"hljs-string">"apikey",
+            "in": 
+"hljs-string">"body",
+            "name": 
+"hljs-string">"/auth/key"
         }
     },
-    "security": "apikey_body",
-    // ...
-    "properties": {
-        "color": {
-            // ...
-            "type": "object",
-            "properties": {
-                "brightness": {
-                    "type": "number",
-                    // ...
+    "security": 
+"hljs-string">"apikey_body",
+    // ...    "properties": {        "color": {            // ...            "type": 
+"hljs-string">"object",
+            "properties": {                "brightness": {                    
+"hljs-attr">"type": "number",
+                    // ...
                 },
-                "rgb": {
-                    "type": "array",
-                    // ...
+                "rgb": {                    
+"hljs-attr">"type": "array",
+                    // ...
                 },
-                "auth": {
-                    "type": "object",
-                    "properties": {
-                        "key": {
-                           "type": "string"
+                "auth": {                    
+"hljs-attr">"type": "object",
+                    "properties": {                        "key": {                           
+"hljs-attr">"type": "string"
                         }
                     },
-                    "required": ["key"]
+                    
+"hljs-attr">"required": ["key"]
                 }
             },
-            "required": ["brightness", "rgb", "auth"],
-            "forms": [{
-                "href": "https://example.com/color",
-                // ...
+            
+"hljs-attr">"required": ["brightness", "rgb", "auth"],
+            "forms": [{                "href": 
+"hljs-string">"https://example.com/color",
+                // ...
             }]
         }
     },
-    "action": {
-        "on": {
-            // ...
-            "input": {
-                "auth": {
-                    "type": "object",
-                    "properties": {
-                        "key": {
-                           "type": "string"
+    "action": {        "on": {            // ...            "input": {                "auth": {                    
+"hljs-attr">"type": "object",
+                    "properties": {                        "key": {                           
+"hljs-attr">"type": "string"
                         }
                     },
-                    "required": ["key"]
+                    
+"hljs-attr">"required": ["key"]
                 }
             },
-            "required": ["auth"],
-            "forms": [{
-                "href": "https://example.com/on",
-                // ...
+            
+"hljs-attr">"required": ["auth"],
+            "forms": [{                "href": 
+"hljs-string">"https://example.com/on",
+                // ...
             }]
         },
-        "off": {
-            // ...
-            "input": {
-                "auth": {
-                    "type": "object",
-                    "properties": {
-                        "key": {
-                           "type": "string"
+        "off": {            // ...            "input": {                "auth": {                    
+"hljs-attr">"type": "object",
+                    "properties": {                        "key": {                           
+"hljs-attr">"type": "string"
                         }
                     },
-                    "required": ["key"]
+                    
+"hljs-attr">"required": ["key"]
                 }
             },
-            "required": ["auth"],
-            "forms": [{
-                "href": "https://example.com/off",
-                // ...
+            
+"hljs-attr">"required": ["auth"],
+            "forms": [{                "href": 
+"hljs-string">"https://example.com/off",
+                // ...
             }]
         }
     },
-    // ...
+    // ...
 }
-
-
-
+
However, it is @@ -27523,9 +22077,9 @@
pointer in a - + body - + location will be @@ -27558,146 +22112,121 @@
will effectively be - + created - + for the actions - + on - + and - + off - + to hold just the security information. -
-
- +
-
{
-    // ...
-    "securityDefinitions": {
-        "apikey_body": {
-            "scheme": "apikey",
-            "in": "body",
-            "name": "/auth/key"
+
{    // ...    "securityDefinitions": {        "apikey_body": {            "scheme": 
+"hljs-string">"apikey",
+            "in": 
+"hljs-string">"body",
+            "name": 
+"hljs-string">"/auth/key"
         }
     },
-    "security": "apikey_body",
-    // ...
-    "properties": {
-        "color": {
-            // ...
-            "type": "object",
-            "properties": {
-                "brightness": {
-                    "type": "number",
-                    // ...
+    "security": 
+"hljs-string">"apikey_body",
+    // ...    "properties": {        "color": {            // ...            "type": 
+"hljs-string">"object",
+            "properties": {                "brightness": {                    
+"hljs-attr">"type": "number",
+                    // ...
                 },
-                "rgb": {
-                    "type": "array",
-                    // ...
+                "rgb": {                    
+"hljs-attr">"type": "array",
+                    // ...
                 }
             },
-            "required": ["brightness", "rgb"],
-            "forms": [{
-                "href": "https://example.com/color",
-                // ...
+            
+"hljs-attr">"required": ["brightness", "rgb"],
+            "forms": [{                "href": 
+"hljs-string">"https://example.com/color",
+                // ...
             }]
         }
     },
-    "action": {
-        "on": {
-            // ...
-            "required": ["auth"],
-            "forms": [{
-                "href": "https://example.com/on",
-                // ...
+    "action": {        "on": {            // ...            
+"hljs-attr">"required": ["auth"],
+            "forms": [{                "href": 
+"hljs-string">"https://example.com/on",
+                // ...
             }]
         },
-        "off": {
-            // ...
-            "forms": [{
-                "href": "https://example.com/off",
-                // ...
+        "off": {            // ...            "forms": [{                "href": 
+"hljs-string">"https://example.com/off",
+                // ...
             }]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-
-
-
-
-

- +

6.3.5 - - + properties - -

- - -
-

+

The value assigned to - + properties - + in a - + Thing - + instance is a - + Map - + of instances of - + PropertyAffordance -. - +. All name-value pairs of a - + Map - + of - + PropertyAffordance - + instances - + MUST - - be + + be serialized as members @@ -27710,19 +22239,19 @@

from serializing the - + Map - + ; the name of a pair - + MUST - - be + + be serialized as a @@ -27737,22 +22266,18 @@

an instance of - + PropertyAffordance -, - +, MUST - + be serialized as a JSON object. - -

-

- +

All name-value pairs @@ -27760,40 +22285,38 @@

an instance of - + PropertyAffordance -, +, where the name is a - + Vocabulary Term - + included in (one of) the - + Signatures - + of - + PropertyAffordance -, - +, InteractionAffordance -, +, or - + DataSchema -, - +, MUST - + be serialized as @@ -27807,57 +22330,51 @@

from serializing the - + PropertyAffordance - + instance, with the - + Vocabulary Term - + as name. - + See - - + 6.3.10 - + Data Schemas - + for details on serializing - - + DataSchema - - + instances. -

-

- +

The value assigned to - + forms - + in an instance of - + PropertyAffordance - - + MUST - + be serialized as @@ -27874,136 +22391,116 @@

as defined in - - + 6.3.9 - - + forms - -. - -

-

+.

A snippet for two - + Property - + affordances is given below: -

- -

-
-
-

- +

6.3.6 - - + actions - -

- - -
-

+

In a - + Thing - + instance, the value assigned to - + actions - + is a - + Map - + of instances of - + ActionAffordance -. - +. All name-value pairs of a - + Map - + of - + ActionAffordance - + instances - + MUST - - be + + be serialized as members @@ -28016,19 +22513,19 @@

from serializing the - + Map - + ; the name of a pair - + MUST - - be + + be serialized as a @@ -28043,22 +22540,18 @@

an instance of - + ActionAffordance -, - +, MUST - + be serialized as a JSON object. - -

-

- +

All name-value pairs @@ -28066,37 +22559,36 @@

an instance of - + ActionAffordance -, +, where the name is a - + Vocabulary Term - + included in (one of) the - + Signatures - + of - + ActionAffordance - + or - + InteractionAffordance -, - +, MUST - + be serialized as @@ -28110,93 +22602,81 @@

from serializing the - + ActionAffordance - + instance, with the - + Vocabulary Term - + as name. - -

-

- +

The values assigned to - + input - + and - + output - + in an instance of - + ActionAffordance - - + MUST - + be serialized as JSON objects. - + They rely on the - + Class - - - + DataSchema - -, +, whose serialization is defined in - - + 6.3.10 - + Data Schemas -. -

-

- +.

The value assigned to - + forms - + in an instance of - + ActionAffordance - - + MUST - + be serialized as @@ -28213,17 +22693,11 @@

as defined in - - + 6.3.9 - - + forms - -. - -

-

+.

A TD snippet @@ -28234,110 +22708,101 @@

is given below: -

- -

-
-
-

- +

6.3.7 - - + events - -

- - -
-

+

In a - + Thing - + instance, the value assigned to - + events - + is a map of instances of - + EventAffordance -. - +. All name-value pairs of a - + Map - + of - + EventAffordance - + instances - + MUST - - be + + be serialized as members @@ -28350,19 +22815,19 @@

from serializing the - + Map - + ; the name of a pair - + MUST - - be + + be serialized as a @@ -28377,22 +22842,18 @@

an instance of - + EventAffordance -, - +, MUST - + be serialized as a JSON object. - -

-

- +

All name-value pairs @@ -28400,37 +22861,36 @@

an instance of - + EventAffordance -, +, where the name is a - + Vocabulary Term - + included in (one of) the - + Signatures - + of - + EventAffordance - + or - + InteractionAffordance -, - +, MUST - + be serialized as @@ -28444,96 +22904,83 @@

from serializing the - + EventAffordance - + instance, with the - + Vocabulary Term - + as name. - -

-

- +

The values assigned to - + subscription -, - +, data -, +, and - + cancellation - + in an instance of - + EventAffordance - - + MUST - + be serialized as JSON objects. - + They rely on the - + Class - - - + DataSchema - -, +, whose serialization is defined in - - + 6.3.10 - + Data Schemas -. -

-

- +.

The value assigned to - + forms - + in an instance of - + EventAffordance - - + MUST - + be serialized as @@ -28550,17 +22997,11 @@

as defined in - - + 6.3.9 - - + forms - -. - -

-

+.

A TD snippet @@ -28571,39 +23012,25 @@

is given below: -

- -

+

Event affordances have @@ -28621,11 +23048,9 @@

(e.g., WebSub [ - - + websub - - + ]) or customer-oriented @@ -28636,13 +23061,13 @@

For this reason, - + subscription - + and - + cancellation - + can be defined @@ -28657,53 +23082,38 @@

details in [ - - + WOT-BINDING-TEMPLATES - - + ]. Example - - + A.3 - + Webhook Event Example - + illustrates how Events can use - + subscription - + and - + cancellation - + to describe Webhooks. -

-

- -
-
-

- +

6.3.9 - - + forms - -

- - -
-

- +

All name-value pairs @@ -29042,31 +23401,30 @@

an instance of - + Form -, +, where the name is a - + Vocabulary Term - + included in the - + Signature - + of - + Form -, - +, MUST - + be serialized as @@ -29080,53 +23438,47 @@

from serializing the - + Form - + instance, with the - + Vocabulary Term - + as name. - -

-

- +

If required, form objects - + MAY - + be supplemented with protocol-specific - + Vocabulary Terms - + identified with a prefix. - + See also - - + 8.3 - + Protocol Bindings -. -

-

+.

A TD snippet @@ -29136,60 +23488,42 @@

object in the - + forms - + array is given below: -

- -
-
-
- +
6.3.9.1 - - + uriVariables - -
- - -
-

- +

href - + may also carry @@ -29201,17 +23535,17 @@

variables such as - + lat - + and - + lon - + in - + http://example.org/weather/?lat=35&lon=139 -. +. In that case @@ -29226,18 +23560,13 @@
defined in [ - - + RFC6570 - - + ]: - + http://example.org/weather/{?lat,long} -. -

-

- +.

In such a @@ -29246,26 +23575,26 @@

URI Template variables - + MUST - + be collected in the JSON-object based - + uriVariables - + member either in the - + Thing level - + or in Interaction @@ -29280,10 +23609,7 @@
as JSON names. - -

-

- +

The serialization of @@ -29294,45 +23620,37 @@

map assigned to - + uriVariables - + in an instance of - + Form - - + MUST - + rely on the - + Class - - - + DataSchema - -, +, whose serialization is defined in - - + 6.3.10 - + Data Schemas -. - -

-

+.

A TD snippet @@ -29344,9 +23662,9 @@

query parameters and - + uriVariables - + in the Interaction @@ -29355,70 +23673,68 @@
is given below: -

-
-
- +

-
{
-    "@context": "https://www.w3.org/2022/wot/td/v1.1",
-    // ...
-    "properties": {
-        "weather": {
-            // ...
-            "uriVariables": {
-                "lat": { 
-                    "type": "number", 
-                    "minimum": 0, 
-                    "maximum": 90, 
-                    "description": "Latitude for the desired location in the world" },
-                "long": { 
-                    "type": "number", 
-                    "minimum": -180, 
-                    "maximum": 180, 
-                    "description": "Longitude for the desired location in the world" }
+
{    "@context": 
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
+    // ...    "properties": {        "weather": {            // ...            "uriVariables": {                "lat": {                     
+"hljs-attr">"type": "number", 
+                    
+"hljs-attr">"minimum": 0, 
+                    
+"hljs-attr">"maximum": 90, 
+                    
+"hljs-attr">"description": "Latitude for the desired location in the world" },
+                "long": {                     
+"hljs-attr">"type": "number", 
+                    
+"hljs-attr">"minimum": -180, 
+                    
+"hljs-attr">"maximum": 180, 
+                    
+"hljs-attr">"description": "Longitude for the desired location in the world" }
             },
-            "forms": [{
-              "href": "http://example.org/weather/{?lat,long}",
-              "htv:methodName": "GET"
+            "forms": [{              "href": 
+"hljs-string">"http://example.org/weather/{?lat,long}",
+              
+"hljs-attr">"htv:methodName": "GET"
             }]
         },
-        // ...
+        // ...
     },
-    // ...
+    // ...
 }
-
-
-
-

+

Alternatively, as defined in [ - - + RFC6570 - - + ], - + uriVariables - + can be used for replacing the - + href - + structure. An example @@ -29444,46 +23760,34 @@

GET request to - + http://example.org/weather/bogota -: -

-
-
- +:

-
{
-    ,
-
-    "@context": "http://www.w3.org/2022/wot/td/v1.1",
-    // ...
-    "properties": {
-        "weather": {
-            // ...
-            "uriVariables": {
-                "city": {
-                    "type": "string",
-                    "description": "City name to find the weather information for" 
+
{    "@context": 
+"hljs-string">"http://www.w3.org/2022/wot/td/v1.1",
+    // ...    "properties": {        "weather": {            // ...            "uriVariables": {                "city": {                    
+"hljs-attr">"type": "string",
+                    
+"hljs-attr">"description": "City name to find the weather information for" 
                 }
             },
-            "forms": [{
-                "href": "http://example.org/weather/{city}",
-                "htv:methodName": "GET"
+            "forms": [{                "href": 
+"hljs-string">"http://example.org/weather/{city}",
+                
+"hljs-attr">"htv:methodName": "GET"
             }]
         },
-        // ...
+        // ...
     },
-    // ...
+    // ...
 }
-
-
-
-

+

The two examples @@ -29496,68 +23800,62 @@

using the same - + uriVariables - + feature. An HTTP GET request to - + http://example.org/weather/bogota/?unit=Celsius - + can be described as follows: -

-
-
- +

-
{
-    ,
-
-    "@context": "http://www.w3.org/2022/wot/td/v1.1",
-    // ...
-    "properties": {
-        "weather": {
-            // ...
-            "uriVariables": {
-                "city": {
-                    "type": "string",
-                    "description": "City name to find the weather information for" 
+
{    "@context": 
+"hljs-string">"http://www.w3.org/2022/wot/td/v1.1",
+    // ...    "properties": {        "weather": {            // ...            "uriVariables": {                "city": {                    
+"hljs-attr">"type": "string",
+                    
+"hljs-attr">"description": "City name to find the weather information for" 
                 },
-                "unit": {
-                    "type": "string",
-                    "enum": ["fahrenheit_value","celsius_value"],
-                    "description": "Desired unit for the temperature value"
+                "unit": {                    
+"hljs-attr">"type": "string",
+                    
+"hljs-attr">"enum": ["fahrenheit_value","celsius_value"],
+                    
+"hljs-attr">"description": "Desired unit for the temperature value"
                 }
             },
-            "forms": [{
-                "href": "http://example.org/weather/{city}/{?unit}",
-                "htv:methodName": "GET"
+            "forms": [{                "href": 
+"hljs-string">"http://example.org/weather/{city}/{?unit}",
+                
+"hljs-attr">"htv:methodName": "GET"
             }]
         },
-        // ...
+        // ...
     },
-    // ...
+    // ...
 }
-
-
-
-

- +

uriVariables - + are mainly for @@ -29575,9 +23873,9 @@

necessary to use - + uriVariables - + for actions. In @@ -29587,9 +23885,9 @@
recommended to avoid - + uriVariables - + as much as @@ -29601,26 +23899,15 @@
system is designed. -

-
-
-
-
- +

6.3.9.2 - - + contentType - -
- - -
-

+

The - + contentType - + member is used @@ -29630,11 +23917,9 @@

media type [ - - + RFC2046 - - + ] including media @@ -29646,44 +23931,24 @@
separated by a - + ; - + character. Example: -

-
-
- +

-
{
-    // ...
-    "contentType": "text/plain; charset=utf-8",
-    // ...
+
{    // ...    "contentType": 
+"hljs-string">"text/plain; charset=utf-8",
+    // ...
 }
-
-
-
-

-
-
-
- +
6.3.9.3 - - + response - -
- - -
-

+

In some use @@ -29693,10 +23958,10 @@

metadata of the - + Interaction Affordance - + not only describes @@ -29714,14 +23979,14 @@
instance, an Action - + takePhoto - + defines an - + input - + schema to submit @@ -29741,10 +24006,10 @@
request payload (i.e., - + "contentType": "application/json" - + ). The output @@ -29767,9 +24032,9 @@
such cases, the - + response - + member is used @@ -29783,16 +24048,16 @@
response payload (e.g., - + "contentType": "image/jpeg" - + ). Here no - + output - + schema is required, @@ -29805,75 +24070,66 @@
the representation format. -

-

- +

If present, the value assigned to - + response - + in an instance of - + Form - - + MUST - + be a JSON object. - - + If present, the response object - + MUST - + contain a - + contentType - + member as defined in the - + Class - + definition of - - + ExpectedResponse - -. - -

-

+.

A - + form - + snippet with the - + response - + member is shown @@ -29881,57 +24137,37 @@

based on the - + takePhoto - + Action described above: -

-
-
- +

-
{
-    // ...
-    "actions": {
-        "takePhoto": {
-            // ...
-            "forms": [{
-                "op": "invokeaction",
-                "href": "http://camera.example.com/api/snapshot",
-                "contentType": "application/json",
-                "response": {
-                    "contentType": "image/jpeg"
+
{    // ...    "actions": {        "takePhoto": {            // ...            "forms": [{                "op": 
+"hljs-string">"invokeaction",
+                "href": 
+"hljs-string">"http://camera.example.com/api/snapshot",
+                
+"hljs-attr">"contentType": "application/json",
+                "response": {                    
+"hljs-attr">"contentType": "image/jpeg"
                 }
             }]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-
-
-
-
- +
6.3.9.4 - - + additionalResponses - -
- - -
-

+

In some cases, @@ -29945,10 +24181,10 @@

part of an - + Interaction Affordance - + can differ due @@ -29971,9 +24207,9 @@
In these cases, - + additionalResponses - + terms can be @@ -29982,8 +24218,7 @@
describe this behavior. -

-

+

For example, an @@ -30025,18 +24260,17 @@

not usually used. -

-

+

A - + TD - + snippet with the - + additionalResponses - + member in an @@ -30067,19 +24301,19 @@

described in the - + output -. +. The - + success - + with the value - + false - + refers to the @@ -30093,9 +24327,9 @@
error case and - + schema - + allows linking to @@ -30104,66 +24338,62 @@
description used at - + schemaDefinitions -: -

-
-
- +:

-
{
-    // ...
-    "schemaDefinitions": {
-      "actionErrorPayload": {
-        "type": "object",
-        "properties": {
-          "reason": {
-            "type": "string",
-            "enum": ["cold","hot","maintenance"]
+
{    // ...    "schemaDefinitions": {      "actionErrorPayload": {        "type": 
+"hljs-string">"object",
+        "properties": {          "reason": {            "type": 
+"hljs-string">"string",
+            "enum": [
+"hljs-string">"cold","hot","maintenance"]
           },
-          "timeStamp": {
-            "description": "UNIX time in numbers indicating when the error happened",
-            "type": "number"
+          "timeStamp": {            
+"hljs-attr">"description": "UNIX time in numbers indicating when the error happened",
+            "type": 
+"hljs-string">"number"
           }
         }
       }
     },
-    // ...
-    "actions": {
-        "startEngine": {
-            "output": {
-              "type": "string"
+    // ...    "actions": {        "startEngine": {            "output": {              "type": 
+"hljs-string">"string"
             },
-            "forms": [{
-                "op": "invokeaction",
-                "href": "http://mycar.example.com/api/engine",
-                "contentType": "application/json",
-                "additionalResponses": [{
-                    ,
-
-                    "success": false,
-                    "contentType": "application/json",
-                    "schema": "actionErrorPayload"
+            "forms": [{                "op": 
+"hljs-string">"invokeaction",
+                "href": 
+"hljs-string">"http://mycar.example.com/api/engine",
+                
+"hljs-attr">"contentType": "application/json",
+                
+"hljs-attr">"additionalResponses": [{
+                    
+"hljs-attr">"success": false,
+                    
+"hljs-attr">"contentType": "application/json",
+                    
+"hljs-attr">"schema": "actionErrorPayload"
                 }]
             }]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-

+

The - + additionalResponses - + term can be @@ -30176,15 +24406,15 @@

In that case, - + success - + is set to - + true - + and another schema @@ -30195,26 +24425,15 @@
describe the payload. -

-
-
-
-
- +

6.3.9.5 - - + contentMediaType - + and - + contentEncoding - -
- - -
-

+

In some cases @@ -30237,13 +24456,13 @@

image. The terms - + contentMediaType - + and - + contentEncoding - + can be used @@ -30262,68 +24481,60 @@
sample usage of - + contentMediaType - + and - + contentEncoding - + is shown below: -

-
-
- +

-
{
-    // ...
-    "properties": {
-        "image": { 
-                "description": "Provides latest image", 
-                "type": "string",
-                "contentMediaType": "image/png",
-                "contentEncoding": "base64",
-                "forms": [{ 
-                            "op": "readproperty", 
-                            "href": "coaps://mylamp.example.com/lastPicture", 
-                            "cov:methodName": "GET",
-                            "contentType": "application/json" 
+
{    // ...    "properties": {        "image": {                 
+"hljs-attr">"description": "Provides latest image", 
+                "type": 
+"hljs-string">"string",
+                
+"hljs-attr">"contentMediaType": "image/png",
+                
+"hljs-attr">"contentEncoding": "base64",
+                "forms": [{                             
+"hljs-attr">"op": "readproperty", 
+                            
+"hljs-attr">"href": "coaps://mylamp.example.com/lastPicture", 
+                            
+"hljs-attr">"cov:methodName": "GET",
+                            
+"hljs-attr">"contentType": "application/json" 
                     }] 
         }
     },
-    // ...
+    // ...
 }
-
-
-
-
-
-
-
- +
6.3.9.6 - + Top level - + forms - -
- - -
-

+

When - + forms - + is present at @@ -30341,35 +24552,35 @@

offered by a - + Thing -. +. For example, the operation types - + readallproperties - + and - + writeallproperties - + are for meta interactions with a - + Thing - + by which - + Consumers - + can read, write @@ -30384,9 +24595,9 @@
example below, a - + forms - + member is included @@ -30397,17 +24608,17 @@
object and the - + Consumer - + can use the submission target - + https://mylamp.example.com/properties - + both to read @@ -30416,75 +24627,70 @@
all Properties (i.e., - + on -, - +, brightness -, +, and - + timer - + ) of the - + Thing - + in a single protocol transaction. -

-
-
- +

-
{
-    // ...
-    "properties": {
-        "on": {
-            "type": "boolean",
-            "forms": [...]
+
{    // ...    "properties": {        "on": {            "type": 
+"hljs-string">"boolean",
+            "forms": [...]
         },
-        "brightness": {
-            "type": "number",
-            "forms": [...]
+        "brightness": {            "type": 
+"hljs-string">"number",
+            "forms": [...]
         },
-        "timer": {
-            "type": "integer",
-            "forms": [...]
+        "timer": {            "type": 
+"hljs-string">"integer",
+            "forms": [...]
         }
     },
-    // ...
-    "forms": [{
-        "op": "readallproperties",
-        "href": "https://mylamp.example.com/properties",
-        "contentType": "application/json",
-        "htv:methodName": "GET"
+    // ...    "forms": [{        "op": 
+"hljs-string">"readallproperties",
+        "href": 
+"hljs-string">"https://mylamp.example.com/properties",
+        "contentType": 
+"hljs-string">"application/json",
+        
+"hljs-attr">"htv:methodName": "GET"
     }, 
     {
-        "op": "writeallproperties",
-        "href": "https://mylamp.example.com/properties",
-        "contentType": "application/json",
-        "htv:methodName": "PUT"
+        "op": 
+"hljs-string">"writeallproperties",
+        "href": 
+"hljs-string">"https://mylamp.example.com/properties",
+        "contentType": 
+"hljs-string">"application/json",
+        
+"hljs-attr">"htv:methodName": "PUT"
     }]
 }
-
-
-
-

+

Thing-level - + uriVariables - + can be used @@ -30507,9 +24713,9 @@

names for a - + readmultipleproperties - + operation. In the @@ -30536,68 +24742,68 @@
can be set: -

-
-
- +

-
{
-    // ...
-    "properties": {
-        "temperature": {
-            "type": "number",
-            "forms": [...]
+
{    // ...    "properties": {        "temperature": {            "type": 
+"hljs-string">"number",
+            "forms": [...]
         },
-        "brightness": {
-            "type": "number",
-            "forms": [...]
+        "brightness": {            "type": 
+"hljs-string">"number",
+            "forms": [...]
         },
-        "humidity": {
-            "type": "integer",
-            "forms": [...]
+        "humidity": {            "type": 
+"hljs-string">"integer",
+            "forms": [...]
         }
     },
-    "uriVariables": {
-        "propertyNames": {
-            "type": "string",
-            "description": "Comma separated list of property names to select."
+    "uriVariables": {        "propertyNames": {            "type": 
+"hljs-string">"string",
+            
+"hljs-attr">"description": "Comma separated list of property names to select."
         },
-        "unitSystem": {
-            "type": "string",
-            "enum": ["metric_value","imperial_value","uscustomary_value"],
-            "description": "System of Measurement that will be used for the values"
+        "unitSystem": {            "type": 
+"hljs-string">"string",
+            "enum": [
+"hljs-string">"metric_value","imperial_value","uscustomary_value"],
+            
+"hljs-attr">"description": "System of Measurement that will be used for the values"
         }
-    }
-    : [{
-
-    },
-    "forms": [{
-        "op": "readallproperties",
-        "href": "https://mything.example.com/properties{?unitSystem}",
-        "contentType": "application/json",
-        "htv:methodName": "GET"
+    },
+    "forms": [{        "op": 
+"hljs-string">"readallproperties",
+        "href": 
+"hljs-string">"https://mything.example.com/properties{?unitSystem}",
+        "contentType": 
+"hljs-string">"application/json",
+        
+"hljs-attr">"htv:methodName": "GET"
     }, 
     {
-        "op": "readmultipleproperties",
-        "href": "https://mylamp.example.com/properties{?propertyNames,unitSystem}",
-        "contentType": "application/json",
-        "htv:methodName": "GET"
+        "op": 
+"hljs-string">"readmultipleproperties",
+        "href": 
+"hljs-string">"https://mylamp.example.com/properties{?propertyNames,unitSystem}",
+        "contentType": 
+"hljs-string">"application/json",
+        
+"hljs-attr">"htv:methodName": "GET"
     }]
 }
-
-
-
-

+

For a - + readmultipleproperties - + operation, an example @@ -30607,56 +24813,55 @@

to the URI - + https://mylamp.example.com/properties?propertyNames=humidity,temperature&unitSystem=metric - + would return the values - + humidity - + and - + temperature - + Property Affordances, with the - + metric - + System of Measurement. -

-

+

In the case of operation type - + writeallproperties -, +, it is expected that the - + Consumer - + provides all writable (non - + readOnly - + ) properties and @@ -30670,9 +24875,9 @@

Similarly, for the - + writemultipleproperties - + operation type, it @@ -30680,66 +24885,56 @@
expected that the - + Consumer - + provides writable (non - + readOnly - + ) properties. On the - + Thing - + side, - + Thing - + is expected to return readable (non - + writeOnly - + ) properties in the case of - + readmultipleproperties - + and - + readallproperties - + operation types. -

-
- -
-
-

- +

6.3.10 - + Data Schemas -

- - -
-

+

The data schemas @@ -30751,14 +24946,11 @@

defined through the - - + DataSchema - - - + Class - + are based on @@ -30770,11 +24962,9 @@

Schema terms [ - - + JSON-SCHEMA - - + ]. Thus, serializations @@ -30798,86 +24988,81 @@

data exchanged with - + Things -. -

-

+.

Data schema serialization applies to - + PropertyAffordance - + instances, the values assigned to - + input - + and - + output - + in - + ActionAffordance - + instances, the values assigned to - + subscription -, - +, data -, +, and - + cancellation - + in - + EventAffordance - + instances, and the value assigned to - + uriVariables - + in instances of - + Subclasses - + of - + InteractionAffordance - + (when a - + form object - + uses a URI Template). -

-

- +

All name-value pairs @@ -30888,46 +25073,45 @@

one of the - + Subclasses - + of - + DataSchema -, +, where the name is a - + Vocabulary Term - + included in the - + Signature - + of that - + Subclass - + or in the - + Signature - + of - + DataSchema -, - +, MUST - + be serialized as @@ -30941,104 +25125,90 @@

from serializing the - + DataSchema - - + Subclass - + 's instance, with the - + Vocabulary Term - + as name. - -

-

- +

The value assigned to - + properties - + in an instance of - + ObjectSchema - - + MUST - + be serialized as a JSON object. - -

-

- +

The values assigned to - + enum -, - +, required -, +, and - + oneOf - + in an instance of - + DataSchema - - + MUST - + be serialized as a JSON array. - -

-

- +

The value assigned to - + items - + in an instance of - + ArraySchema - - + MUST - + be serialized as @@ -31052,9 +25222,7 @@

containing JSON objects. - -

-

+

A TD snippet @@ -31077,13 +25245,13 @@

object (e.g., for - + input - + and - + output - + ) or a @@ -31094,65 +25262,65 @@

contain additional members. -

- -

+

The terms - + readOnly - + and - + writeOnly - + can be used @@ -31193,9 +25361,9 @@

of an unconventional - + Thing - + exhibit different data @@ -31219,8 +25387,7 @@

a Thing Description. -

-

+

A TD snippet @@ -31228,77 +25395,59 @@

the usage of - + readOnly - + and - + writeOnly - + is given below: -

-
-
- +

- { - -
{
-    // ...
-    : {
-        : {
-            ,
-            ,
-            : {
-                : {
-                    ,
-                    ],
-                    
-
-    "properties": {
-        "status": {
-            "description": "Read or write On/Off status.",
-            "type": "object",
-            "properties": {
-                "latestStatus": {
-                    "type": "string",
-                    "enum": ["on_value", "off_value"],
-                    "readOnly": true
+
{    // ...    "properties": {        "status": {            
+"hljs-attr">"description": "Read or write On/Off status.",
+            "type": 
+"hljs-string">"object",
+            "properties": {                "latestStatus": {                    
+"hljs-attr">"type": "string",
+                    
+"hljs-attr">"enum": ["on_value", "off_value"],
+                    
+"hljs-attr">"readOnly": true
                 },
-                : {
-                    ,
-                    ],
-                    
-
-                "newStatusValue": {
-                    "type": "string",
-                    "enum": ["on_value", "off_value"],
-                    "writeOnly": true
+                "newStatusValue": {                    
+"hljs-attr">"type": "string",
+                    
+"hljs-attr">"enum": ["on_value", "off_value"],
+                    
+"hljs-attr">"writeOnly": true
                 }
             },
-            : [...]
-
-            "forms": [...]
+            "forms": [...]
         }
     }
-    // ...
+    // ...
 }
-
-
-
-

+

When the - + status - + Property is read, @@ -31309,9 +25458,9 @@

returned using a - + latestStatus - + member in the @@ -31319,9 +25468,9 @@

To update the - + status - + Property, the new @@ -31331,15 +25480,14 @@

provided through a - + newStatusValue - + member in the payload. -

-

+

As an additional @@ -31353,9 +25501,9 @@

usage of a - + unit - + member within data @@ -31391,36 +25539,25 @@

defined in well-known - + Vocabularies -. +. See - - + 7. - + TD Context Extensions - + for an example. -

-

- -
-
-

- +

6.4 - + Identification -

- - -
-

+

The JSON-based serialization @@ -31433,40 +25570,30 @@

the media type - + application/td+json - + or the CoAP Content-Format ID - + 432 - + (see - - + 12. - + IANA Considerations - + ). -

-

-
-
-

- +

6.5 - + Validation -

- - -
-

+

In several contexts @@ -31511,13 +25638,12 @@

assertions listed under - - + 8. - + Behavioral Assertions - + that relate a @@ -31575,20 +25701,12 @@

for different contexts. -

-
-
-

- +

6.5.1 - + Minimal Validation -

- - -
-

+

This level of @@ -31616,8 +25734,7 @@

the TD itself. -

-

+

Minimal Validation is @@ -31643,8 +25760,7 @@

extensions and vocabularies. -

-

+

In practice, these @@ -31674,21 +25790,12 @@

have matching definitions. -

-

-
-
-

- +

6.5.2 - + Basic Validation -

- - -
-

+

This level of @@ -31698,13 +25805,12 @@

those covered by - - + 6.5.1 - + Minimal Validation - + as well as @@ -31713,8 +25819,7 @@

of semantic definitions. -

-

+

Basic validation is @@ -31769,8 +25874,7 @@

used is defined. -

-

+

In this case, @@ -31815,21 +25919,12 @@

to validate extensions. -

-

-
-
-

- +

6.5.3 - + Full Validation -

- - -
-

+

Full validation confirms @@ -31847,13 +25942,12 @@

assertions given in - - + 8. - + Behavioral Assertions - + that confirm the @@ -31865,8 +25959,7 @@

Thing it describes. -

-

+

This level of @@ -31922,50 +26015,35 @@

place after installation. -

-

- - -
-
-

- +

7. - + TD Context Extensions -

- - -
-

- +

This section is non-normative. - -

-

+

In addition to the standard - + Vocabulary - + definitions in - - + 5. - + TD Information Model -, +, the WoT Thing @@ -32004,10 +26082,10 @@

to import additional - + Protocol Bindings - + or new security @@ -32015,55 +26093,51 @@

in the future. -

-

+

For such - + TD Context Extensions -, +, the Thing Descriptions use the - + @context - + mechanism known from JSON-LD [ - - + json-ld11 - - + ]. When using - + TD Context Extensions -, +, the value of - + @context - + of the - + Class - - + Thing - + is an Array @@ -32072,33 +26146,28 @@

elements of type - + anyURI - + identifying JSON-LD context files or - + Map - + containing namespace IRIs as defined in - - + 5.3.1.1 - - + Thing - -. -

-

+.

The serialization rules @@ -32106,89 +26175,72 @@

complex types in - - + 6.1 - + Mapping to JSON Types - + define the serialization of an extended - + @context - + name-value pair. A snippet with - + TD Context Extensions - + is given below: -

-
-
- +

-
{
-    "@context": [
-        "https://www.w3.org/2022/wot/td/v1.1",
+
{    "@context": [        
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
         {
-            "eg": "http://example.org/iot#",
-            "cov": "http://www.example.org/coap-binding#"
+            "eg": 
+"hljs-string">"http://example.org/iot#",
+            "cov": 
+"hljs-string">"http://www.example.org/coap-binding#"
         },
-        "https://schema.org/"
+        "https://schema.org/"
     ],
-    // ...
+    // ...
 }
-
-
-
-
-
-

- +

7.1 - + Semantic Annotations -

- - -
-

- +

TD Context Extensions - + allow for the use of additional - + Vocabulary Terms - + in a Thing @@ -32201,9 +26253,9 @@

are based on - + Class - + definitions such as @@ -32222,9 +26274,9 @@

to annotate any - + Class - + instance of a @@ -32240,9 +26292,9 @@

such an external - + Class - + definition. This is @@ -32250,28 +26302,28 @@

by assigning a - + Class - + name to the - + @type - + name-value pair or including - + Class - + name in its - + Array - + value for multiple @@ -32281,18 +26333,16 @@

serialization rules in - - + 6.1 - + Mapping to JSON Types -, - +, @type - + is either serialized @@ -32305,19 +26355,17 @@

a JSON array. - + @type - + is the JSON-LD keyword [ - - + json-ld11 - - + ] used to @@ -32327,13 +26375,11 @@

of a node. -

-

- +

TD Context Extensions - + also allow the @@ -32347,9 +26393,9 @@

values within any - + Class - + instance of a @@ -32364,10 +26410,10 @@

through the included - + Vocabulary Terms - + and are serialized @@ -32392,9 +26438,9 @@

metadata for the - + Thing - + or units of @@ -32402,8 +26448,7 @@

for data items. -

-

+

The next subsections @@ -32419,23 +26464,15 @@

in Thing Descriptions. -

-
-
-

- +

7.1.1 - + Example I: Additional Basic Metadata -

- - -
-

+

The sample TD @@ -32453,9 +26490,9 @@

as provided in - + @context -. +. The version information @@ -32472,13 +26509,13 @@

used software ( - + s:softwareVersion - + ). - + schema.org - + is used for @@ -32495,13 +26532,13 @@

name of the - + Thing -. +. The - + SAREF - + ontology is used @@ -32512,13 +26549,13 @@

context of the - + Thing - + ( - + saref:TemperatureSensor - + ), and for @@ -32530,31 +26567,26 @@

temperature property the - + Ontology of Units of Measure (OM) - + is used. -

-
-
- +

Note - -
-

+

Please note that these - + Vocabularies - + and ontologies are @@ -32572,76 +26604,69 @@

and use case. -

-

-
-
- +

-
{
-    "@context": [
-        "https://www.w3.org/2022/wot/td/v1.1",
+
{    "@context": [        
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
         {
-            "saref": "https://w3id.org/saref#",
-            "om": "http://www.ontology-of-units-of-measure.org/resource/om-2/",
-             
-
-            "schema": "https://schema.org" 
+            "saref": 
+"hljs-string">"https://w3id.org/saref#",
+            "om": 
+"hljs-string">"http://www.ontology-of-units-of-measure.org/resource/om-2/",
+            "schema": 
+"hljs-string">"https://schema.org" 
         }
     ],
-    "version": {
-        "instance": "1.2.1",
-        "schema:softwareVersion": "1.0.1"
+    "version": {        "instance": 
+"hljs-string">"1.2.1",
+        
+"hljs-attr">"schema:softwareVersion": "1.0.1"
     },
-    "schema:serialNumber": "4CE0460D0G",
-    "schema:manufacturer": {"name": "CompanyName"},
-    // ...
-    "@type": "saref:TemperatureSensor",
-    "properties": {
-        "temperature": {
-            "description": "Temperature value of the weather station",
-            "type": "number",
-            "minimum": -32.5,
-            "maximum": 55.2,
-            "unit": "om:degree_Celsius",
-            "forms": [...]
+    
+"hljs-attr">"schema:serialNumber": "4CE0460D0G",
+    
+"hljs-attr">"schema:manufacturer": {"name": "CompanyName"},
+    // ...    "@type": 
+"hljs-string">"saref:TemperatureSensor",
+    "properties": {        "temperature": {            
+"hljs-attr">"description": "Temperature value of the weather station",
+            "type": 
+"hljs-string">"number",
+            "minimum": 
+"hljs-number">-32.5,
+            "maximum": 
+"hljs-number">55.2,
+            "unit": 
+"hljs-string">"om:degree_Celsius",
+            "forms": [...]
         },
-        // ...
+        // ...
     },
-    // ...
+    // ...
 }
-
-
-
-

-
-
-

- +

7.1.2 - + Example II: State Annotations -

- - -
-

+

In many cases, - + TD Context Extensions - + may be used @@ -32699,10 +26724,10 @@

embedded in the - + TD Document - + and pieces of @@ -32727,8 +26752,7 @@

physical world object. -

-

+

The TD snippet @@ -32744,29 +26768,26 @@

lamp. The external - + Vocabulary Term - - + ssn:forProperty -, +, taken from - + SSN -, +, the Semantic Sensor Network Ontology [ - - + VOCAB-SSN - - + ], is being @@ -32778,12 +26799,11 @@

schema of the - + status - - + Property - + with the actual @@ -32794,76 +26814,84 @@

physical world object. -

-
-
- +

-
{
-    "@context": [
-        "https://www.w3.org/2022/wot/td/v1.1",
+
{    "@context": [        
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
         {
-            "saref": "https://w3id.org/saref#",
-            "ssn": "http://www.w3.org/ns/ssn/"
+            "saref": 
+"hljs-string">"https://w3id.org/saref#",
+            "ssn": 
+"hljs-string">"http://www.w3.org/ns/ssn/"
         }
     ],
-    "id": "urn:uuid:67c9122b-2680-4e1a-b41c-5af07edba1f4",
-    "@type": "saref:LightSwitch",
-    "saref:hasState": {
-        "@id": "urn:uuid:67c9122b-2680-4e1a-b41c-5af07edba1f4/state",
-        "@type": "saref:OnOffState"
+    "id": 
+"hljs-string">"urn:uuid:67c9122b-2680-4e1a-b41c-5af07edba1f4",
+    "@type": 
+"hljs-string">"saref:LightSwitch",
+    "saref:hasState": {        "@id": 
+"hljs-string">"urn:uuid:67c9122b-2680-4e1a-b41c-5af07edba1f4/state",
+        "@type": 
+"hljs-string">"saref:OnOffState"
     },
-    // ...
-    "properties": {
-        "status": {
-            "ssn:forProperty": "urn:uuid:67c9122b-2680-4e1a-b41c-5af07edba1f4/state",
-            "type": "string",
-            "forms": [{"href": "https://mylamp.example.com/status"}]
+    // ...    "properties": {        "status": {            
+"hljs-attr">"ssn:forProperty": "urn:uuid:67c9122b-2680-4e1a-b41c-5af07edba1f4/state",
+            "type": 
+"hljs-string">"string",
+            "forms": [{
+"hljs-attr">"href": "https://mylamp.example.com/status"}]
         },
-        "fullStatus": {
-            "ssn:forProperty": "urn:uuid:67c9122b-2680-4e1a-b41c-5af07edba1f4/state",
-            "type": "object",
-            "properties": {
-                "statusString": { "type": "string" },
-                "statusCode": { "type": "number" },
-                "statusDescription": { "type": "string" }
+        "fullStatus": {            
+"hljs-attr">"ssn:forProperty": "urn:uuid:67c9122b-2680-4e1a-b41c-5af07edba1f4/state",
+            "type": 
+"hljs-string">"object",
+            "properties": {                
+"hljs-attr">"statusString": { "type": "string" },
+                
+"hljs-attr">"statusCode": { "type": "number" },
+                
+"hljs-attr">"statusDescription": { "type": "string" }
             },
-            "forms": [{"href": "https://mylamp.example.com/status?full=true"}]
+            "forms": [{
+"hljs-attr">"href": "https://mylamp.example.com/status?full=true"}]
         },
-        // ...
+        // ...
     },
-    // ...
+    // ...
 }
-
-
-
-

+

In - + Example - + 2 - -, +, the state of the - + Thing - + is given by the - + status - + affordance itself and @@ -32874,9 +26902,9 @@

given by the - + toggle - + affordance. In other @@ -32891,15 +26919,15 @@

directly provides the - + Interaction Affordances - + of the - + Thing -. +. This design is @@ -32927,12 +26955,11 @@

example above, the - + fullStatus - - + Property - + provides an alternative, @@ -32945,23 +26972,14 @@

of the lamp. -

-

-
-
-

- +

7.1.3 - + Example III: Geolocation Annotations -

- - -
-

+

For many use @@ -33001,11 +27019,9 @@

location ontologies (e.g.,[ - - + w3c-basic-geo - - + ], schema.org) depending @@ -33017,34 +27033,29 @@

Also see [ - - + sdw-bp - - + ]. -

-

+

The TD snippet below uses - + lat - + and - + long - + from the [ - - + w3c-basic-geo - - + ] ontology to @@ -33058,35 +27069,27 @@

Thing's top level. -

-
-
- +

-
{
-    "@context": [
-        "https://www.w3.org/2022/wot/td/v1.1",
+
{    "@context": [        
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
         {
-            "geo": "http://www.w3.org/2003/01/geo/wgs84_pos#"        
+            "geo": 
+"hljs-string">"http://www.w3.org/2003/01/geo/wgs84_pos#"        
         }
     ],
-    "@type": "Thing",
-    "geo:lat": "26.58",
-    "geo:long": "297.83",
-    // ...
-    "properties": {
-        // ...
+    "@type": 
+"hljs-string">"Thing",
+    "geo:lat": 
+"hljs-string">"26.58",
+    "geo:long": 
+"hljs-string">"297.83",
+    // ...    "properties": {        // ...
     }
 }
-
-
-
-

+

In some use @@ -33107,66 +27110,63 @@

provided as a - + Property - + that returns the latest - + longitude -, - +, latitude -, +, and - + elevation - + values based on schema.org: -

-
-
- +

-
{
-    "@context": [
-        "https://www.w3.org/2022/wot/td/v1.1",
+
{    "@context": [        
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
         {
-            
-
-            "schema": "https://schema.org#"
+            "schema": 
+"hljs-string">"https://schema.org#"
         }
     ],
-    // ...
-    "properties": {
-        "position": {
-            "type": "object",
-            "@type": "schema:GeoCoordinates",
-            "properties": {
-                    "longitude": { "type": "number" },
-                    "latitude":  { "type": "number" },
-                    "elevation": { "type": "number" }
+    // ...    "properties": {        "position": {            "type": 
+"hljs-string">"object",
+            "@type": 
+"hljs-string">"schema:GeoCoordinates",
+            "properties": {                    
+"hljs-attr">"longitude": { "type": "number" },
+                    
+"hljs-attr">"latitude":  { "type": "number" },
+                    
+"hljs-attr">"elevation": { "type": "number" }
             },
-            "forms": [{"href": "https://robot.example.com/position"}]
+            "forms": [{
+"hljs-attr">"href": "https://robot.example.com/position"}]
         },
-        // ...
+        // ...
     },
-    // ...
+    // ...
 }
-
-
-
-

+

In case a @@ -33176,24 +27176,23 @@

desired for, e.g., - + longitude -, - +, latitude -, +, and - + elevation - + in the data model, the - + jsonld:context - + can be used @@ -33209,11 +27208,9 @@

(also see [ - - + JSON-SCHEMA-ONTOLOGY - - + ], Section 3.3 @@ -33224,73 +27221,56 @@

for data instances): -

-
-
- +

-
{
-    "@context": [
-        "https://www.w3.org/2022/wot/td/v1.1",
+
{    "@context": [        
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
         {
-            
-
-            "schema": "https://schema.org#"
+            "schema": 
+"hljs-string">"https://schema.org#"
         }
     ],
-    // ...
-    "properties": {
-        "position": {
-        "jsonld:context": {
-            
-            ,
-
-            "schema": "https://schema.org/",
-            "long": "schema:longitude",
-            "lat": "schema:latitude",
-            "height": "schema:elevation"
+    // ...    "properties": {        "position": {        "jsonld:context": {            "schema": 
+"hljs-string">"https://schema.org/",
+            "long": 
+"hljs-string">"schema:longitude",
+            "lat": 
+"hljs-string">"schema:latitude",
+            "height": 
+"hljs-string">"schema:elevation"
         },
-        "type": "object",
-        "properties": {
-            "long": { "type": "number" },
-            "lat": { "type": "number" },
-            "height": { "type": "number" }
+        "type": 
+"hljs-string">"object",
+        "properties": {            "long": { 
+"hljs-attr">"type": "number" },
+            "lat": { 
+"hljs-attr">"type": "number" },
+            "height": { 
+"hljs-attr">"type": "number" }
         }
         }
     },
-    // ...
+    // ...
 }
-
-
-
-

- -
-
-

- +

7.2 - + Adding Protocol Bindings -

- - -
-

+

With the - + TD Context Extensions - + in a Thing @@ -33303,55 +27283,45 @@

supplemented or new - + Protocol Bindings - + added through additional - + Vocabulary Terms - + serialized into JSON objects representing a - + Form - + instance. Please see - - + 8.3 - + Protocol Bindings - + for additional details. -

-

-
-
-

- +

7.3 - + Adding Security Schemes -

- - -
-

+

Finally, new security @@ -33361,24 +27331,23 @@

not included in - - + 5.3.3 - + Security Vocabulary Definitions - + can be imported using the - + TD Context Extension - + mechanism. This example @@ -33391,11 +27360,9 @@

based on [ - - + RFC9200 - - + ] that is, @@ -33407,91 +27374,91 @@

the namespace at - + http://www.example.org/ace-security# -. - +. Additional security schemes - + MUST - + be - + Subclasses - + of the - + Class - - - + SecurityScheme - -. - -

-
-
- +.

-
{
-    "@context": [
-        "https://www.w3.org/2022/wot/td/v1.1",
+
{    "@context": [        
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
         {
-            "cov": "http://www.example.org/coap-binding#",
-            "ace": "http://www.example.org/ace-security#"
+            "cov": 
+"hljs-string">"http://www.example.org/coap-binding#",
+            "ace": 
+"hljs-string">"http://www.example.org/ace-security#"
         }
     ],
-    // ...
-    "securityDefinitions": {
-        "ace_sc": {
-            "scheme": "ace:ACESecurityScheme",
-            // ...
-            "ace:as": "coaps://as.example.com/token",
-            "ace:audience": "coaps://rs.example.com",
-            "ace:scopes": ["limited", "special"],
-            "ace:cnonce": true
+    // ...    "securityDefinitions": {        "ace_sc": {            "scheme": 
+"hljs-string">"ace:ACESecurityScheme",
+            // ...            "ace:as": 
+"hljs-string">"coaps://as.example.com/token",
+            
+"hljs-attr">"ace:audience": "coaps://rs.example.com",
+            
+"hljs-attr">"ace:scopes": ["limited", "special"],
+            
+"hljs-attr">"ace:cnonce": true
         }
     },
-    "security": ["ace_sc"],
-    "properties": {
-        "status": {
-            // ...
-            "forms": [{
-                "op": "readproperty",
-                "href": "coaps://rs.example.com/status",
-                "contentType": "application/cbor",
-                "cov:methodName": "GET",
-                "ace:scopes": ["limited"]
+    "security": [
+"hljs-string">"ace_sc"],
+    "properties": {        "status": {            // ...            "forms": [{                "op": 
+"hljs-string">"readproperty",
+                "href": 
+"hljs-string">"coaps://rs.example.com/status",
+                
+"hljs-attr">"contentType": "application/cbor",
+                
+"hljs-attr">"cov:methodName": "GET",
+                
+"hljs-attr">"ace:scopes": ["limited"]
             }]
         }
     },
-    "actions": {
-        "configure": {
-            // ...
-            "forms": [{
-                "op": "invokeaction",
-                "href": "coaps://rs.example.com/configure",
-                "contentType": "application/cbor",
-                "cov:methodName": "POST",
-                "ace:scopes": ["special"]
+    "actions": {        "configure": {            // ...            "forms": [{                "op": 
+"hljs-string">"invokeaction",
+                "href": 
+"hljs-string">"coaps://rs.example.com/configure",
+                
+"hljs-attr">"contentType": "application/cbor",
+                
+"hljs-attr">"cov:methodName": "POST",
+                
+"hljs-attr">"ace:scopes": ["special"]
             }]
         }
     },
-    // ...
+    // ...
 }
-
-
-
-

+

Note that all @@ -33499,14 +27466,13 @@

schemes defined in - - + 5.3.3 - + Security Vocabulary Definitions - + are already part @@ -33522,27 +27488,16 @@

included through a - + TD Context Extension -. -

-

- -
-
-

- +.

8. - + Behavioral Assertions -

- - -
-

+

The following assertions @@ -33616,20 +27571,12 @@

represent such interfaces. -

-
-
-

- +

8.1 - + Security Configurations -

- - -
-

+

To enable secure @@ -33644,18 +27591,14 @@

requirements of the - + Thing -: -

-
    -
  • - +:

    • If a - + Thing - + requires a specific @@ -33666,9 +27609,9 @@

      interaction, that mechanism - + MUST - + be specified in @@ -33679,15 +27622,12 @@

      the Thing Description. - -

    • -
    • - +
    • If a - + Thing - + does not require @@ -33700,10 +27640,10 @@

      interaction, that mechanism - + MUST NOT - + be specified in @@ -33714,10 +27654,7 @@

      the Thing Description. - -

    • -
    -

    +

Some security protocols @@ -33771,21 +27708,12 @@

be considered invalid. -

-

-
-
-

- +

8.2 - + Data Schemas -

- - -
-

+

The data schemas @@ -33805,9 +27733,9 @@

by the described - + Thing - + in the interactions @@ -33817,9 +27745,9 @@

TD. In general, - + Consumers - + should follow the @@ -33843,9 +27771,9 @@

data from the - + Thing - + not given explicitly @@ -33856,25 +27784,25 @@

Description. In general, - + Things - + are - + described - + by WoT Thing Descriptions, but - + Consumers - + are - + constrained - + to follow WoT @@ -33883,34 +27811,30 @@

when interacting with - + Things -. -

-
    -
  • - +.

    • A - + Consumer - + when interacting with another target - + Thing - + described in a WoT Thing Description - + MUST - + generate data organized @@ -33924,17 +27848,14 @@

      the corresponding interactions. - -

    • -
    • - +
    • A WoT Thing Description - + MUST - + accurately describe the @@ -33945,17 +27866,13 @@

      by each interaction. - -

    • -
    • - +
    • A - + Thing - - + MAY - + return additional data @@ -33979,28 +27896,28 @@

      WoT Thing Description. - + This applies to - + ObjectSchema - + and - + ArraySchema - + (when - + items - + is an Array of - + DataSchema - + ) where there @@ -34018,40 +27935,35 @@

      behaves as if - + "additionalProperties":true - + or - + "additionalItems":true - + as defined in [ - - + JSON-SCHEMA - - + ]. -

    • -
    • - +
    • A - + Consumer - + when interacting with another - + Thing - - + MUST - + accept without error @@ -34072,31 +27984,30 @@

      of the target - + Thing -. - +. This applies to - + ObjectSchema - + and - + ArraySchema - + (when - + items - + is an Array of - + DataSchema - + ) where there @@ -34114,41 +28025,36 @@

      behaves as if - + "additionalProperties":true - + or - + "additionalItems":true - + as defined in [ - - + JSON-SCHEMA - - + ]. -

    • -
    • - +
    • A - + Consumer - + when interacting with another - + Thing - - + MUST NOT - + generate data not @@ -34164,27 +28070,22 @@

      Description of that - + Thing -. - -

    • -
    • - +.
    • A - + Consumer - + when interacting with another - + Thing - - + MUST - + generate URIs according @@ -34206,13 +28107,9 @@

      of the target - + Thing -. - -

    • -
    • - +.
    • URI Templates, base @@ -34225,52 +28122,40 @@

      WoT Thing Description - + MUST - + accurately describe the - + WoT Interface - + of the - + Thing -. - -

    • -
    -

-
-
-

- +.

8.3 - + Protocol Bindings -

- - -
-

+

A - + Protocol Binding - + is the mapping from an - + Interaction Affordance - + to concrete messages @@ -34282,57 +28167,46 @@

as HTTP [ - - + RFC7231 - - + ], CoAP [ - - + RFC7252 - - + ], or MQTT [ - - + MQTT - - + ]. - + Protocol Bindings - + of - + Interaction Affordances - + are serialized as - + forms - + as defined in - - + 6.3.9 - - + forms - -. -

-

+.

Every form in @@ -34349,25 +28223,23 @@

given by the - + href - + member, as indicated in - + Form -. +. The URI scheme [ - - + RFC3986 - - + ] of this @@ -34375,21 +28247,19 @@

target indicates what - + Protocol Binding - + the - + Thing - + implements [ - - + wot-architecture11 - - + ]. For instance, @@ -34398,30 +28268,30 @@

target starts with - + http - + or - + https -, +, a - + Consumer - + can then infer the - + Thing - + implements the - + Protocol Binding - + based on HTTP @@ -34438,21 +28308,17 @@

(see next section, - - + 8.3.1 - + Protocol Binding based on HTTP - + ). -

-
    -
  • - +

    • Every form in @@ -34460,40 +28326,35 @@

      WoT Thing Description - + MUST - + follow the requirements of the - + Protocol Binding - + indicated by the URI scheme [ - - + RFC3986 - - + ] of its - + href - + member. - -

    • -
    • - +
    • Every form in @@ -34501,9 +28362,9 @@

      WoT Thing Description - + MUST - + accurately describe requests @@ -34515,22 +28376,15 @@

      accepted by the - + Thing - + in an interaction. - -

    • -
    -
    -
    - +
Note - -
-

+

Optimally, the protocols @@ -34545,20 +28399,18 @@

IANA registry [ - - + IANA-URI-SCHEMES - - + ]). This guarantees a unique - + Protocol Binding - + assignment. In case @@ -34600,10 +28452,10 @@

the scheme, the - + Protocol Binding - + document will provide @@ -34621,24 +28473,15 @@

context of WoT. -

- -
-
-

- +

8.3.1 - + Protocol Binding based on HTTP -

- - -
-

+

Per default the @@ -34646,10 +28489,10 @@

Description supports the - + Protocol Binding - + based on HTTP @@ -34661,19 +28504,17 @@

vocabulary definitions from - + HTTP Vocabulary in RDF 1.0 - + [ - - + HTTP-in-RDF10 - - + ]. This vocabulary @@ -34690,22 +28531,22 @@

of the prefix - + htv -, +, which points to - + http://www.w3.org/2011/http# -. +. Further details of - + Protocol Binding - + based on HTTP @@ -34714,35 +28555,32 @@

found in [ - - + WOT-BINDING-TEMPLATES - - + ]. -

-

+

To interact with a - + Thing - + that implements the - + Protocol Binding - + based on HTTP, a - + Consumer - + needs to know @@ -34771,27 +28609,27 @@

the method, i.e., - + htv:methodName -. +. For the sake of conciseness, the - + Protocol Binding - + based on HTTP defines - + Default Values - + for the operation @@ -34808,9 +28646,9 @@

methods expected by - + Things - + (e.g., GET to @@ -34818,7 +28656,7 @@

PUT to write). - + When no method @@ -34829,21 +28667,20 @@

form representing an - + Protocol Binding - + based on HTTP, a - + Default Value - - + MUST - + be assumed as @@ -34852,15 +28689,11 @@

the following table. - -

- -
- -Table - +

- - - - - - - - - - - - - - - - - - - - - - - - -
+Table + 32 - + Default values of @@ -34888,123 +28721,72 @@

HTTP URI Scheme -

- +
Vocabulary term - - + Default value - + Context -
- +
htv:methodName - - - + GET - - - + Form - + with operation type - + readproperty -, - +, readallproperties -, - +, readmultipleproperties - -
- +
htv:methodName - - - + PUT - - - + Form - + with operation type - + writeproperty -, - +, writeallproperties -, - +, writemultipleproperties - -
- +
htv:methodName - - - + POST - - - + Form - + with operation type - + invokeaction - -
-

+

For example, the - + Example 1 - + in - - + 1. - + Introduction - + does not contain @@ -35018,10 +28800,10 @@

forms. The following - + Default Values - + should be assumed @@ -35030,24 +28812,14 @@

forms in the - + Example 1 -: -

- -

+

In the case of a - + forms - + entry that has multiple - + op - + values the usage of the - + htv:methodName - + is not permitted. A - + TD Processor - + will extend the multiple - + op - + values to separate - + forms - + entries and associates @@ -35224,9 +29010,9 @@

address information (e.g. - + href - + ) and other @@ -35238,133 +29024,124 @@

the extended version. -

- -

-
-
-

- +

8.3.2 - + Other Protocol Bindings -

- - -
-

+

The number of - + Protocol Bindings - + a - + Thing - + can implement is not restricted. Other - + Protocol Bindings - + (e.g., for CoAP, @@ -35384,32 +29161,30 @@

as a protocol - + Vocabulary - + similar to - + HTTP Vocabulary in RDF 1.0 - + [ - - + HTTP-in-RDF10 - - + ] or specifications including - + Default Value - + definitions. Such protocols @@ -35425,33 +29200,29 @@

usage of the - + TD Context Extension - + mechanism (see - - + 7. - + TD Context Extensions - + ). -

-

+

Please refer to [ - - + WOT-BINDING-TEMPLATES - - + ] for information @@ -35463,35 +29234,17 @@

platforms and ecosystems. -

-

- - -
-
-

- +

9. - + Thing Model -

- - -
-
-
-

- +

9.1 - + Basic Concept -

- - -
-

+

The figure below @@ -35500,20 +29253,20 @@

relation of the - + Thing Model - + and - + Thing Description -. +. A - + Thing Model - + mainly describes interaction @@ -35521,26 +29274,25 @@

such as the - + Properties -, - +, Actions -, +, and - + Events - + and common metadata. - + When a - + Thing Descriptions - + is instantiated by @@ -35550,9 +29302,9 @@

Thing Model, it - + SHOULD - + be valid according @@ -35560,7 +29312,7 @@

that Thing Model. - + This paradigm can @@ -35582,17 +29334,11 @@

objects (~Thing Descriptions). -

-
-Thing Model and its relation to the Thing Description -
- +

Thing Model and its relation to the Thing Description
Figure - + 5 - - - + Thing Model and @@ -35602,15 +29348,12 @@

the Thing Description. - -

-
-

+

The - + Thing Model - + is a logical @@ -35622,28 +29365,27 @@

possible interaction with - + Thing - + 's - + Properties -, - +, Actions -, +, and - + Events -, +, however it does not contain - + Thing - + instance-specific information, such @@ -35712,12 +29454,10 @@

also be given. -

-

- +

Thing Model - + can be serialized @@ -35738,10 +29478,10 @@

Note that a - + Thing Model - + cannot be validated @@ -35750,10 +29490,10 @@

same way as - + Thing Description - + instances due to @@ -35779,37 +29519,36 @@

types declared in - + TD Information Model -. +. For example, the value of - + minimum - + needs to be an - + integer -, +, unless a placeholder is used. -

-

+

You can use - + the JSON Schema @@ -35817,7 +29556,7 @@

the GitHub repository - + to validate TM @@ -35827,14 +29566,9 @@

serialized as JSON. -

-
-
- +

Note - -
-

+

The link for @@ -35850,52 +29584,40 @@

one before publication. -

-

-

-
-
-

- +

9.2 - + Thing Model Declaration -

- - -
-

+

A - + Thing Model - + is recognized by the top level - + @type -. - - +. Thing Model - + definitions - + MUST - + use the keyword - + @type - + at top level @@ -35912,11 +29634,9 @@

or respectively contains - + tm:ThingModel -. - - +. Additionally, in order @@ -35927,20 +29647,20 @@

a JSON-LD document, - + Thing Model - + definitions - + MUST - + use the keyword - + @context - + at top level @@ -35951,39 +29671,38 @@

a Thing Description. - + The prefix - + tm - + is defined within - + Thing Descriptions - + ' context and points to the - + Thing Model - + namespace as defined in - - + 4. - + Namespaces -. +. It is intended @@ -35991,18 +29710,18 @@

vocabulary from the - + tm - + context only be used in - + Thing Model - + definitions and are @@ -36010,44 +29729,40 @@

or replaced when - + Thing Descriptions - + are generated (also see - - + 9.4 - + Derivation of Thing Description Instances - + ). -

-

- +

A - + Thing Model - - + MAY - + NOT contain instance specific - + Protocol Binding - + and security information @@ -36055,12 +29770,12 @@

as endpoint addresses. - + Consequently, - + Thing Model - + definitions will also @@ -36073,23 +29788,20 @@

JSON members like - + forms -, - +, base -, - +, securityDefinitions -, +, and - + security -. - +. Thing Models - + are also valid @@ -36109,57 +29821,45 @@

mandatory members like - + href - + are omitted. -

-

- +

Example - + 3 - - + shows a valid sample lamp - + Thing Model - + without any protocol and security information. -

-

-
-
-

- +

9.3 - + Modeling Tools -

- - -
-

+

In the context of - + Thing Model - + definitions specific features @@ -36170,58 +29870,49 @@

be used for - + Thing - + modelling. -

-
-
-

- +

9.3.1 - + Versioning -

- - -
-

- +

When the - + Thing Model - + definitions change over time, this - + SHOULD - + be reflected in the version container. - + The string-based term - + model - + is used within the - + version - + container to provide @@ -36230,11 +29921,9 @@

information, like [ - - + SEMVER - - + ]. The following @@ -36243,75 +29932,64 @@

the usage of - + model - + in a Thing Model instance. -

-
-
- +

Example - + 52 - - -: +: Thing Model versioning - -
-
{
-    // ...
-    "@type": "tm:ThingModel",
-    "title": "Lamp Thing Model",
-    "description": "Lamp Thing Description Model",
-    "version" : {"model": "1.0.0"},
-    // ...
+
{    // ...    "@type": 
+"hljs-string">"tm:ThingModel",
+    "title": 
+"hljs-string">"Lamp Thing Model",
+    "description": 
+"hljs-string">"Lamp Thing Description Model",
+    "version" : {
+"hljs-attr">"model": "1.0.0"},
+    // ...
 }
-
-
-
-

- +

Due to the definition of - + Thing Model - + the term - + instance - - + MUST - + be omitted within the - + version - + container. - -

-

+

When - + Thing Models - + are updated and @@ -36323,10 +30001,10 @@

may affect other - + Thing Models - + that use the @@ -36336,14 +30014,13 @@

features (see Section - - + 9.3.2 - + Extension and Import - + ). In some @@ -36370,50 +30047,41 @@

identify the version. -

-

-
-
-

- +

9.3.2 - + Extension and Import -

- - -
-

+

A - + Thing Model - + can extend an existing - + Thing Model - + by using the - + tm:extends - + mechanism announced in the - + links - + definition: - + When a Thing @@ -36425,37 +30093,37 @@

at least one - + links - + entry with - + "rel": "tm:extends" - + that targets a - + Thing Model - + that is be extended - + MUST - + be used. - + The - + Thing Model - + will inherit all @@ -36463,10 +30131,10 @@

from the extended - + Thing Model -. +. There is the @@ -36492,14 +30160,13 @@

information model ( - - + 5. - + TD Information Model - + ) or using @@ -36508,20 +30175,19 @@

extension concept ( - - + 7. - + TD Context Extensions - + ). A - + Thing Model - + can also overwrite @@ -36529,13 +30195,13 @@

definitions such as - + title(s) - + and - + maximum - + etc.. For this @@ -36543,16 +30209,15 @@

exist two limitations: - + A - + Thing Model - - + SHOULD NOT - + overwrite the JSON @@ -36560,33 +30225,29 @@

defined within the - + properties -, - +, actions -, +, and/or - + events - - + Map - + of the extended - + Thing Model -. - - +. Definitions - + SHOULD NOT - + be overwritten in @@ -36607,7 +30268,7 @@

origin extended definitions. - + Those assertions preserve @@ -36617,10 +30278,10 @@

of the extended - + Thing Model -. +. E.g., it is @@ -36628,29 +30289,29 @@

allowed that a - + "minimum":2 - + from a extended - + Thing Model - + can be overwritten with - + "minimum":0 -. +. Meanwhile, overwriting with - + "minimum":5 - + would work since @@ -36665,24 +30326,22 @@

of the extended - + Thing Model - + (also see Figure - + Figure - + 6 - - + for further explanation). -

-

+

Lets assume we @@ -36697,37 +30356,28 @@

the following example: -

-
-
- +

Example - + 53 - - -: +: Basic On/Off Thing Model Definition - -
-
{
-    "@context": ["https://www.w3.org/2022/wot/td/v1.1"], 
-    "@type": "tm:ThingModel",
-    "title": "Basic On/Off Thing Model",
-    "properties": {
-        "onOff": {
-            "type": "boolean"
+
{    "@context": [
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1"], 
+    "@type": 
+"hljs-string">"tm:ThingModel",
+    "title": 
+"hljs-string">"Basic On/Off Thing Model",
+    "properties": {        "onOff": {            "type": 
+"hljs-string">"boolean"
         }
     }
 }
-
-
-
-

+

Now a new @@ -36768,60 +30418,53 @@

it with a - + dim - + property: -

-
-
- +

Example - + 54 - - -: +: Smart Lamp Control Thing Model Definition - -
-
{
-    "@context": ["https://www.w3.org/2022/wot/td/v1.1"], 
-    "@type": "tm:ThingModel",
-    "title": "Smart Lamp Control with Dimming",
-    "links" : [{
-        "rel": "tm:extends",
-        "href": "http://example.com/BasicOnOffTM",
-        "type": "application/tm+json"
+
{    "@context": [
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1"], 
+    "@type": 
+"hljs-string">"tm:ThingModel",
+    "title": 
+"hljs-string">"Smart Lamp Control with Dimming",
+    "links" : [{        "rel": 
+"hljs-string">"tm:extends",
+        "href": 
+"hljs-string">"http://example.com/BasicOnOffTM",
+        "type": 
+"hljs-string">"application/tm+json"
      }],
-    "properties" : {
-        "dim" : {
-            
-            ,
-
-            "title": "Dimming level",
-            "type": "integer",
-            "minimum": 0,
-            "maximum": 100
+    "properties" : {        "dim" : {            "title": 
+"hljs-string">"Dimming level",
+            "type": 
+"hljs-string">"integer",
+            "minimum": 
+"hljs-number">0,
+            "maximum": 
+"hljs-number">100
         }
    }
 }
-
-
-
-

+

Please note that the - + title - + is overwritten and @@ -36839,23 +30482,21 @@

the next subsection - - + 9.4 - + Derivation of Thing Description Instances - + ). -

-

+

The - + tm:extends - + feature only permits @@ -36864,10 +30505,10 @@

definitions of one - + Thing Model -. +. In many use @@ -36887,11 +30528,10 @@

or more existing - + Thing Models -. - +. For importing pieces @@ -36902,14 +30542,14 @@

or more existing - + Thing Models -, +, the - + tm:ref - + term is introduced @@ -36922,46 +30562,42 @@

existing (sub-)definition that - + SHOULD - + be reused. - - + The - + tm:ref - + value - + MUST - + follow the pattern -that +that starts with the - file location as URI [ - - + RFC3986 - - + ](Section 4.1)), followed by - + # - + character, and followed @@ -36969,14 +30605,12 @@

JSON Pointer [ - - + RFC6901 - - + ] definition. - + Note that the @@ -36990,20 +30624,18 @@

same-document reference [ - - + RFC3986 - - + ](Section 4.4)). In this case, the - + tm:ref - + is supposed to @@ -37013,12 +30645,12 @@

a relative reference. - + Every time - + tm:ref - + is used, the @@ -37031,9 +30663,9 @@

by context extension) - + MUST - + be assumed at @@ -37041,21 +30673,15 @@

new defined definition. - -

-
-
- +

Note - -
-

+

Portions of the - + tm:ref - + value might contain @@ -37073,9 +30699,9 @@

escapes to a - + tm:ref - + value, implementations should @@ -37087,9 +30713,7 @@

not already encoded. -

-

-

+

The following example @@ -37106,56 +30730,45 @@

of the property - + onOff - + from - + Example - + 53 - - + into the new property definition - + switch -. -

-
-
- +.

Example - + 55 - - -: +: Smart Lamp Control imports existing definition - -
-
{
-    "@context": ["https://www.w3.org/2022/wot/td/v1.1"], 
-    "@type": "tm:ThingModel",
-    "title": "Smart Lamp Control",
-    "properties" : {
-        "switch" : {
-            "tm:ref": "http://example.com/BasicOnOffTM.tm.jsonld#/properties/onOff"
+
{    "@context": [
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1"], 
+    "@type": 
+"hljs-string">"tm:ThingModel",
+    "title": 
+"hljs-string">"Smart Lamp Control",
+    "properties" : {        "switch" : {            "tm:ref": 
+"hljs-string">"http://example.com/BasicOnOffTM.tm.jsonld#/properties/onOff"
         }
    }
 }
-
-
-
-

+

As an example @@ -37163,9 +30776,9 @@

relative imports using - + tm:ref -, +, the following Thing @@ -37176,9 +30789,9 @@

(see below) a - + genericTemperature - + property in two @@ -37195,16 +30808,11 @@

temperature value, respectively. -

-
-
- +

Example - + 56 - - -: +: Multi Sensor Thing @@ -37214,37 +30822,40 @@

with relative imports - -

-
{
-    "@context": "https://www.w3.org/2022/wot/td/v1.1", 
-    "@type": "tm:ThingModel",
-    "title": "Multi Sensor",
-    "properties": {
-        "genericTemperature": {
-            "type": "number",
-            "unit": "C"
+
{    "@context": 
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1", 
+    "@type": 
+"hljs-string">"tm:ThingModel",
+    "title": 
+"hljs-string">"Multi Sensor",
+    "properties": {        "genericTemperature": {            "type": 
+"hljs-string">"number",
+            "unit": 
+"hljs-string">"C"
         },
-        "innerTemperature": {
-            "tm:ref": "#/properties/genericTemperature",
-            "title": "The inner temperature",
-            "minimum": 10
+        "innerTemperature": {            "tm:ref": 
+"hljs-string">"#/properties/genericTemperature",
+            "title": 
+"hljs-string">"The inner temperature",
+            "minimum": 
+"hljs-number">10
         },
-        "outerTemperature": {
-            "tm:ref": "#/properties/genericTemperature",
-            "title": "The outer temperature",
-            "description": "The outer temperature is measured in Kelvin",
-            "unit": "K"
+        "outerTemperature": {            "tm:ref": 
+"hljs-string">"#/properties/genericTemperature",
+            "title": 
+"hljs-string">"The outer temperature",
+            
+"hljs-attr">"description": "The outer temperature is measured in Kelvin",
+            "unit": 
+"hljs-string">"K"
         }
     },
-    "tm:optional": [
-        "/properties/genericTemperature"
+    "tm:optional": [        
+"hljs-string">"/properties/genericTemperature"
     ]
 }
-
-
-
-

+

At the place @@ -37270,7 +30881,7 @@

the referenced definition. - + If the intention @@ -37284,16 +30895,16 @@

pair definition from - + tm:ref -, +, the same JSON name - + MUST - + be used at @@ -37302,24 +30913,23 @@

level of the - + tm:ref - + declaration that provides a new value. - - + The process to overwrite - + MUST - + follow the JSON @@ -37346,9 +30956,7 @@

JSON name-value pairs. - -

-

+

It is noted @@ -37362,24 +30970,24 @@

on a JSON - + object - + or - + array -, +, or simply be a - + null - + value. - + null - + would result to @@ -37393,14 +31001,12 @@

in the target. -

-

- +

Similar to - + tm:extends - + and to keep @@ -37408,10 +31014,10 @@

semantic meaning, definitions - + SHOULD NOT - + be overwritten in @@ -37432,9 +31038,7 @@

origin referenced definition. - -

-

+

The following example @@ -37446,42 +31050,35 @@

that overwrites ( - + maximum - + ), enhances ( - + unit - + ), and removes ( - + title - + ) existing definitions from - + Example - + 54 - -. -

-
-
- +.

Example - + 57 - - -: +: Smart Lamp Control @@ -37490,25 +31087,24 @@

overwrite existing definitions - -

-
{
-    "@context": ["https://www.w3.org/2022/wot/td/v1.1"], 
-    "@type": "tm:ThingModel",
-    "title": "Smart Lamp Control",
-    "properties" : {
-        "dimming" : {
-            "tm:ref": "http://example.com/SmartLampControlwithDimming.tm.jsonld#/properties/dim",
-            "title": null,
-            "maximum": 80,
-            "unit": "%"
+
{    "@context": [
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1"], 
+    "@type": 
+"hljs-string">"tm:ThingModel",
+    "title": 
+"hljs-string">"Smart Lamp Control",
+    "properties" : {        "dimming" : {            "tm:ref": 
+"hljs-string">"http://example.com/SmartLampControlwithDimming.tm.jsonld#/properties/dim",
+            "title": 
+"hljs-literal">null,
+            "maximum": 
+"hljs-number">80,
+            "unit": 
+"hljs-string">"%"
         }
    }
 }
-
-
-
-

+

Based on the @@ -37517,12 +31113,12 @@

Patch algorithm the - + {"title": null,"maximum": 80,"unit": "%"} - + would act as @@ -37533,7 +31129,7 @@

referenced origin content - + {"title": "Dimming level", @@ -37543,22 +31139,20 @@

0, "maximum": 100} -. -

-

+.

The - + tm:extends - + and the import mechanism based on - + tm:ref - + can also be @@ -37578,48 +31172,40 @@

the TM from - + Example - + 53 - - + and imports the - + status - + and - + dim - + definitions from - + Example - + 3 - - + and - + Example - + 54 - - + respectively. -

-
-
- +

Example - + 58 - - -: +: Smart Lamp Control @@ -37630,43 +31216,41 @@

and import mechanism - -

-
{
-    "@context": ["https://www.w3.org/2022/wot/td/v1.1"], 
-    "@type": "tm:ThingModel",
-    "title": "Smart Lamp Control",
-    "links" : [{
-        "rel": "extends",
-        "href": "http://example.com/BasicOnOffTM",
-        "type": "application/tm+json"
+
{    "@context": [
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1"], 
+    "@type": 
+"hljs-string">"tm:ThingModel",
+    "title": 
+"hljs-string">"Smart Lamp Control",
+    "links" : [{        "rel": 
+"hljs-string">"extends",
+        "href": 
+"hljs-string">"http://example.com/BasicOnOffTM",
+        "type": 
+"hljs-string">"application/tm+json"
      }],
-    "properties" : {
-        "status" : {
-            "tm:ref": "http://example.com/LampTM.tm.jsonld#/properties/status"
+    "properties" : {        "status" : {            "tm:ref": 
+"hljs-string">"http://example.com/LampTM.tm.jsonld#/properties/status"
         },
-        "dimming" : {
-            "tm:ref": "http://example.com/LampWithDimmingTM.tm.jsonld#/properties/dim"
+        "dimming" : {            "tm:ref": 
+"hljs-string">"http://example.com/LampWithDimmingTM.tm.jsonld#/properties/dim"
         }
    }
 }
-
-
-
-

+

The - + tm:extends - + and the import mechanism based on - + tm:ref - + explicitly supports transitive @@ -37686,9 +31270,9 @@

which defines a - + tm:extends - + of the TM @@ -37697,9 +31281,9 @@

itself defines a - + tm:extends - + of the TM @@ -37716,7 +31300,7 @@

"B" and "C". - + Recursive extensions leading @@ -37724,15 +31308,13 @@

an infinite loop - + MUST NOT - + be defined. - -

-

+

The following figure @@ -37753,19 +31335,19 @@

this section. Three - + Thing Models - + use the - + tm:ref - + or - + tm:extends - + feature to reuse @@ -37776,33 +31358,33 @@

Smart Lamp Control - + Thing Model -. +. The first - + Thing Model - + imports and overwrites the - + maximum - + value to - + 120 - + within the - + dimmer - + property. However, this @@ -37823,18 +31405,18 @@

of the original - + dim - + definition between - + 0 - + and - + 100 - + of the dim @@ -37849,10 +31431,10 @@

Thus, such a - + Thing Model - + definition is not @@ -37863,14 +31445,14 @@

overwrites the property - + type - + value by - + number -. +. Again, this will @@ -37878,9 +31460,9 @@

result in numeric - + dim - + values that are @@ -37892,9 +31474,9 @@

of the origin - + dim - + type definition (integer) @@ -37903,10 +31485,10 @@

Smart Lamp Control - + Thing Model -. +. The last model @@ -37920,9 +31502,9 @@

new ranges of - + dim - + produce potential instance @@ -37934,44 +31516,26 @@

by the original - + dim - + definition. -

-
-Overwriting behavior -
- +

Overwriting behavior
Figure - + 6 - - - + Overwriting behavior of - + Thing Models -. - -
-
-

-
-
-

- +.

9.3.3 - + Composition -

- - -
-

+

In some applications, @@ -37981,10 +31545,10 @@

to reuse existing - + Thing Model - + definitions and compose @@ -38010,171 +31574,186 @@

of two sub/child - + Thing Model - + definitions such as a Ventilation - + Thing Model - + that provides - + on/off - + and - + adjustRpm - + capabilities, and an LED - + Thing Model - + that provides - + dimmable - + and - + RGB - + capabilities. -

- -

+

Such composition can @@ -38185,11 +31764,11 @@

usage of the - + links - + container. - + If it is @@ -38199,53 +31778,50 @@

information that a - + Thing Model - + consists of one or more (sub-) - + Thing Models -, +, the - + links - + entries - + MUST - + use the - + "rel": "tm:submodel" - + that targets to the (sub-) - + Thing Models -. - - +. Optionally an - + instanceName - - + MAY - + be provided to @@ -38257,21 +31833,20 @@

the composed (sub-) - + Thing Model -. - +. This is useful when multiple similar - + Thing Model - + definitions are composed @@ -38280,8 +31855,7 @@

to be distinguished. -

-

+

Different strategies can @@ -38289,16 +31863,16 @@

followed to generate - + Thing Descriptions - + from composed - + Thing Model - + definitions. The default @@ -38311,28 +31885,27 @@

parent and sub/child - + Thing Model - + a corresponding - + Thing Descriptions - + (also see - - + 9.4 - + Derivation of Thing Description Instances - + ). The composition @@ -38342,13 +31915,13 @@

reflected by the - + collection - + and - + item - + relation types in @@ -38357,10 +31930,10 @@

container of the - + Thing Descriptions -. +. An example based @@ -38370,217 +31943,253 @@

is given here: -

- -

+

A single TD @@ -38597,10 +32206,10 @@

the top level/parent - + Thing Model - + and all interaction @@ -38608,23 +32217,22 @@

of all sub/child - + Thing Models -. - +. Thereby the generation process - + MUST - + avoid possible name collisions. - + The following example @@ -38633,26 +32241,21 @@

potential generated (self-contained) - + Thing Description - + of the Smart Ventilator Thing Model. -

-
-
- +

Example - + 61 - - -: +: Self-contained TD of @@ -38660,129 +32263,146 @@

Smart Ventilator TM - -

-
{
-    "@context": "https://www.w3.org/2022/wot/td/v1.1",
-    "title": "Smart Ventilator",
-    "securityDefinitions": {
-        "basic_sc": {
-            "scheme": "basic",
-            "in": "header"
+
{    "@context": 
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1",
+    "title": 
+"hljs-string">"Smart Ventilator",
+    "securityDefinitions": {        "basic_sc": {            "scheme": 
+"hljs-string">"basic",
+            "in": 
+"hljs-string">"header"
         }
     },
-    "security": "basic_sc",
-    "links": [
+    "security": 
+"hljs-string">"basic_sc",
+    "links": [
         {
-            "rel": "type",
-            "href": "./SmartVentilator.tm.jsonld",
-            "type": "application/tm+json"
+            "rel": 
+"hljs-string">"type",
+            "href": 
+"hljs-string">"./SmartVentilator.tm.jsonld",
+            "type": 
+"hljs-string">"application/tm+json"
         }
     ],
-    "properties": {
-        "status": {
-            "type": "string",
-            "enum": [
-                "on_value",
-                "off_value",
-                "error_value"
+    "properties": {        "status": {            "type": 
+"hljs-string">"string",
+            "enum": [                "on_value",                "off_value",                "error_value"
             ],
-            "forms": [
+            "forms": [
                 {
-                    "href": "http://127.0.13.232:4563/status"
+                    
+"hljs-attr">"href": "http://127.0.13.232:4563/status"
                 }
             ]
         },
-        "switch": {
-            "type": "boolean",
-            "description": "True=On; False=Off",
-            "forms": [
+        "switch": {            "type": 
+"hljs-string">"boolean",
+            
+"hljs-attr">"description": "True=On; False=Off",
+            "forms": [
                 {
-                    "href": "http://127.0.13.212:4563/switch"
+                    
+"hljs-attr">"href": "http://127.0.13.212:4563/switch"
                 }
             ]
         },
-        "adjustRpm": {
-            "type": "number",
-            "minimum": 200,
-            "maximum": 1200,
-            "forms": [
+        "adjustRpm": {            "type": 
+"hljs-string">"number",
+            "minimum": 
+"hljs-number">200,
+            "maximum": 
+"hljs-number">1200,
+            "forms": [
                 {
-                    "href": "http://127.0.13.212:4563/adjustRpm"
+                    
+"hljs-attr">"href": "http://127.0.13.212:4563/adjustRpm"
                 }
             ]
         },
-        "R": {
-            "type": "number",
-            "description": "Red color",
-            "forms": [
+        "R": {            "type": 
+"hljs-string">"number",
+            
+"hljs-attr">"description": "Red color",
+            "forms": [
                 {
-                    "href": "http://127.0.13.211:4563/R"
+                    
+"hljs-attr">"href": "http://127.0.13.211:4563/R"
                 }
             ]
         },
-        "G": {
-            "type": "number",
-            "description": "Green color",
-            "forms": [
+        "G": {            "type": 
+"hljs-string">"number",
+            
+"hljs-attr">"description": "Green color",
+            "forms": [
                 {
-                    "href": "http://127.0.13.211:4563/G"
+                    
+"hljs-attr">"href": "http://127.0.13.211:4563/G"
                 }
             ]
         },
-        "B": {
-            "type": "number",
-            "description": "Blue color",
-            "forms": [
+        "B": {            "type": 
+"hljs-string">"number",
+            
+"hljs-attr">"description": "Blue color",
+            "forms": [
                 {
-                    "href": "http://127.0.13.211:4563/B"
+                    
+"hljs-attr">"href": "http://127.0.13.211:4563/B"
                 }
             ]
         }
     },
-    "actions": {
-        "fadeIn": {
-            "title": "fadeIn",
-            "input": {
-                "type": "number",
-                "description": "fadeIn in ms"
+    "actions": {        "fadeIn": {            "title": 
+"hljs-string">"fadeIn",
+            "input": {                "type": 
+"hljs-string">"number",
+                
+"hljs-attr">"description": "fadeIn in ms"
             },
-            "forms": [
+            "forms": [
                 {
-                    "href": "http://127.0.13.211:4563/fadeIn"
+                    
+"hljs-attr">"href": "http://127.0.13.211:4563/fadeIn"
                 }
             ]
         },
-        "fadeOut": {
-            "title": "fadeOut",
-            "input": {
-                "type": "number",
-                "description": "fadeOut in ms"
+        "fadeOut": {            "title": 
+"hljs-string">"fadeOut",
+            "input": {                "type": 
+"hljs-string">"number",
+                
+"hljs-attr">"description": "fadeOut in ms"
             },
-            "forms": [
+            "forms": [
                 {
-                    "href": "http://127.0.13.211:4563/fadeOut"
+                    
+"hljs-attr">"href": "http://127.0.13.211:4563/fadeOut"
                 }
             ]
         }
     }
 }
-
-
-
-

-
-
-

- +

9.3.4 - + tm:optional -

- - -
-

+

In some cases @@ -38807,12 +32427,12 @@

implemented in a - + Thing Description - + instance. - + If interaction models @@ -38824,35 +32444,31 @@

implemented in a - + Thing Description - + instance, - + Thing Model - + definitions - + MUST - + use the JSON member name - + tm:optional -. - - - +. tm:optional - - + MUST - + be a JSON @@ -38861,26 +32477,22 @@

the top level. - - + The value of - + tm:optional - - + MUST - + provide JSON Pointer [ - - + RFC6901 - - + ] references to @@ -38889,18 +32501,16 @@

interaction model definitions. - - + The JSON Pointers of - + tm:optional - - + MUST - + resolve to an @@ -38909,9 +32519,7 @@

affordance Map definition. - -

-

+

The following sample @@ -38919,28 +32527,22 @@

the usage of - + tm:optional - + for the - + Event - + interaction - + overheating -. -

-
-
- +.

Example - + 62 - - -: +: Thing Model with @@ -38950,47 +32552,47 @@

for interaction affordances. - -

-
{
-    "@context": ["https://www.w3.org/2022/wot/td/v1.1"], 
-    "@type": "tm:ThingModel",
-    "title": "Lamp Thing Model",
-    "description": "Lamp Thing Model Description",
-    "tm:optional": [
-        "/events/overheating"
+
{    "@context": [
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1"], 
+    "@type": 
+"hljs-string">"tm:ThingModel",
+    "title": 
+"hljs-string">"Lamp Thing Model",
+    "description": 
+"hljs-string">"Lamp Thing Model Description",
+    "tm:optional": [        "/events/overheating"
     ],
-    "properties": {
-        "status": {
-            "description": "current status of the lamp (on|off)",
-            "type": "string",
-            "readOnly": true
+    "properties": {        "status": {            
+"hljs-attr">"description": "current status of the lamp (on|off)",
+            "type": 
+"hljs-string">"string",
+            "readOnly": 
+"hljs-literal">true
         }
     },
-    "actions": {
-        "toggle": {
-            "description": "Turn the lamp on or off"
+    "actions": {        "toggle": {            
+"hljs-attr">"description": "Turn the lamp on or off"
         }
     },
-    "events": {
-        "overheating": {
-            "description": "Lamp reaches a critical temperature (overheating)",
-            "data": {"type": "string"}
+    "events": {        "overheating": {            
+"hljs-attr">"description": "Lamp reaches a critical temperature (overheating)",
+            "data": {
+"hljs-attr">"type": "string"}
         }
     }
 }
-
-
-
-

+

Since the - + Event - - + overheating - + is not mandatory @@ -39001,13 +32603,12 @@

available in a - + Thing Description - + instance. -

-

+

Please note that @@ -39016,10 +32617,10 @@

definition in a - + Thing Model - + definition can be @@ -39032,27 +32633,21 @@

extended by another - + Thing Model - + through the use of - + tm:ref -: -

-
-
- +:

Example - + 63 - - -: +: Thing Model overwrites @@ -39063,47 +32658,39 @@

Thing Model example. - -

-
{
-    "@context": ["https://www.w3.org/2022/wot/td/v1.1"], 
-    "@type": "tm:ThingModel",
-    "title": "Lamp Thing Model (All Mandatory)",
-    "description": "Lamp Thing Model description expects all interaction affordances (status, toggle, and overheating)",
-    "links": [
+
{    "@context": [
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1"], 
+    "@type": 
+"hljs-string">"tm:ThingModel",
+    "title": 
+"hljs-string">"Lamp Thing Model (All Mandatory)",
+    "description": 
+"hljs-string">"Lamp Thing Model description expects all interaction affordances (status, toggle, and overheating)",
+    "links": [
        {
-          "rel": "tm:extends",
-          "href": "./lampThingModel.tm.jsonld",
-          "type": "application/tm+json"
+          "rel": 
+"hljs-string">"tm:extends",
+          "href": 
+"hljs-string">"./lampThingModel.tm.jsonld",
+          "type": 
+"hljs-string">"application/tm+json"
        }
     ],
-    "events": {
-        "overheating": {
-            "tm:ref": "./lampThingModel.tm.jsonld#/events/overheating" 
+    "events": {        "overheating": {            "tm:ref": 
+"hljs-string">"./lampThingModel.tm.jsonld#/events/overheating" 
         }
     }
 }
-
-
-
-

-
-
-

- +

9.3.5 - + Placeholder -

- - -
-

+

A - + Thing Model - + can specify which @@ -39127,7 +32714,7 @@

during TD instantiation. - + In a case @@ -39146,23 +32733,22 @@

the placeholder labeling - + MAY - + be used in a Thing Model. - - + The placeholder labeling - + MUST - + be substituted with @@ -39187,17 +32773,16 @@

the Thing Model. - - + The string-based pattern of the placeholder - + MUST - + follow a valid @@ -39207,31 +32792,29 @@

the regular expression - + {{2}[ -~]+}{2} - + (e.g., - + {{ - - + PLACEHOLDER_IDENTIFIER - - + }} - + ). The characters between - + {{ - + and - + }} - + are used as @@ -39254,13 +32837,12 @@

the substitution process. - - + A placeholder - + MUST - + be applied within @@ -39271,8 +32853,7 @@

JSON name-value pair. - - + If a non @@ -39288,15 +32869,15 @@

placeholder, the value - + MUST - + be (temporarily) typed as string. - + After replacing the @@ -39318,8 +32899,7 @@

corresponding replaced value. -

-

+

The following Thing @@ -39344,116 +32924,118 @@

intended value type. -

- -

-
-
-
-

- +

9.4 - + Derivation of Thing Description Instances -

- - -
-

- +

Thing Models - + can be used @@ -39462,10 +33044,10 @@

to generate a - + Thing Description - + based on the @@ -39473,23 +33055,21 @@

defined in Sections - - + 5. - + TD Information Model - + and - - + 6. - + TD Representation Format -. +. During this process @@ -39508,20 +33088,19 @@

to create valid - + Thing Description - + instances. - + A - + Thing Model - - + MUST - + be defined in @@ -39538,10 +33117,10 @@

result in a - + Thing Description - + not being able @@ -39553,74 +33132,68 @@

described in Section - - + 5. - + TD Information Model - + and - - + 6. - + TD Representation Format -. - +. A TM-to-TD generator to derive a - + Thing Description - + instance from a - + Thing Model - + transforms it to a - + Partial TD - + using the following steps: -

-
    -
  • - +

    • Copy all definitions from the input - + Thing Model - + to the resulting - + Partial TD - + instance. If used, @@ -39629,163 +33202,141 @@

      and imports feature - + MUST - + be resolved and represented in the - + Partial TD - + instance according to - - + 9.3.2 - + Extension and Import -. - -

    • -
    • - +.
    • If used, - + links - + element entry with - + "rel":"tm:extends" - - + MUST - + be removed from the current - + Partial TD - - -
    • -
    • - +
    • The - + tm:ThingModel - + value of the top-level - + @type - - + MUST - + be removed in the - + Partial TD - + instance. - -
    • -
    • - +
    • All required interactions (not listed in - + tm:optional - + ) - + MUST - + be taken over to the - + Partial TD - + instance. - -
    • -
    • - +
    • All optional interactions (listed in - + tm:optional - + ) - + MAY - + be taken over to the - + Partial TD - + instance. - -
    • -
    • - +
    • If used, all placeholders (see Section - - + 9.3.5 - + Placeholder - + ) in the - + Thing Model - - + MUST - + be replaced with @@ -39795,14 +33346,10 @@

      value in the - + Partial TD -. - -

    • -
    -

    +.

Finally, a TM-to-TD @@ -39811,109 +33358,92 @@

take the resulting - + Partial TD - + and transform it into a - + Thing Description - + with this last step -

-

It is recommended that the - + id - + value of a - + Thing Model - + provides a placeholder such as - + "id": "urn:example: - - + {{ - - + RANDOM_ID_PATTERN - - + }} - - + " - + for the TD @@ -39925,24 +33455,22 @@

metadata in the - + id - + pattern. -

-

- +

Thing Description - + instances that follow a - + Thing Model - + can carry the @@ -39951,10 +33479,10 @@

which type of - + Thing Model - + is derived. In @@ -39967,21 +33495,18 @@

be used with - + "rel": "type" - + (also see Section - - + 5.3.4.1 - - + Link - - + ), as shown @@ -39989,18 +33514,11 @@

the following example: -

- -

+

Please note that @@ -40071,28 +33594,28 @@

for Thing Descriptions: - + The - + links - + array - + MUST - + use the entry with - + "rel": "type" - + a maximum of once. - + If it is @@ -40118,68 +33641,52 @@

considered (see Section - - + 9.3.3 - + Composition - + ). -

-

-
-
-

- +

9.5 - + Examples -

- - -
-

+

The following - + Thing Model - + extends the model as shown in - + Example - + 54 - - + and overwrites the - + maximum - + value of the - + dim - + property -

-
-
- +

Example - + 66 - - -: +: Extending Smart Control @@ -40189,41 +33696,38 @@

modified dim constrained - -

-
{
-    "@context": ["https://www.w3.org/2022/wot/td/v1.1"], 
-    "@type": "tm:ThingModel",
-    "links" : [{
-        "rel": "tm:extends",
-        "href": "http://example.com/SmartControlLampTM",
-        "type": "application/tm+json"
+
{    "@context": [
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1"], 
+    "@type": 
+"hljs-string">"tm:ThingModel",
+    "links" : [{        "rel": 
+"hljs-string">"tm:extends",
+        "href": 
+"hljs-string">"http://example.com/SmartControlLampTM",
+        "type": 
+"hljs-string">"application/tm+json"
      }],
-    "properties" : {
-        "dim" : {
-            "maximum": 200
+    "properties" : {        "dim" : {            "maximum": 
+"hljs-number">200
         }
    }
 }
-
-
-
-

+

The expected - + Thing Description - + that is derived from this - + Thing Model - + would be (with @@ -40233,113 +33737,58 @@

basic security applied): -

-
-
- +

Example - + 67 - - -: +: Thing Description - -
-
{
-    "@context": ["https://www.w3.org/2022/wot/td/v1.1"], 
-    "@type": "Thing",
-    "title": "Smart Lamp Control",
-    "securityDefinitions": {
-        "basic_sc": {"scheme": "basic", "in": "header"}
+
{    "@context": [
+"hljs-string">"https://www.w3.org/2022/wot/td/v1.1"], 
+    "@type": 
+"hljs-string">"Thing",
+    "title": 
+"hljs-string">"Smart Lamp Control",
+    "securityDefinitions": {        "basic_sc": {
+"hljs-attr">"scheme": "basic", "in": "header"}
     },
-    "security": "basic_sc",
-    "links" : [{
-        "rel": "type",
-        "href": "url/to/SmartLampControlModifiedDimTM",
-        "type": "application/tm+json"
+    "security": 
+"hljs-string">"basic_sc",
+    "links" : [{        "rel": 
+"hljs-string">"type",
+        "href": 
+"hljs-string">"url/to/SmartLampControlModifiedDimTM",
+        "type": 
+"hljs-string">"application/tm+json"
      }
    ],
-   "properties" : {
-        "onOff": {
-            "type": "boolean",
-            "forms": [{"href": "https://smartlamp.example.com/onoff"}]
+   "properties" : {        "onOff": {            "type": 
+"hljs-string">"boolean",
+            "forms": [{
+"hljs-attr">"href": "https://smartlamp.example.com/onoff"}]
         },
-        "dim" : {
-            "type": "integer",
-            "minimum": 0,
-            "maximum": 200,
-            "forms": [{"href": "https://smartlamp.example.com/dim"}]
+        "dim" : {            "type": 
+"hljs-string">"integer",
+            "minimum": 
+"hljs-number">0,
+            "maximum": 
+"hljs-number">200,
+            "forms": [{
+"hljs-attr">"href": "https://smartlamp.example.com/dim"}]
         }
    }
 }
-
-
-
-

- -
-
-

- +

10. - + Security Considerations -

- - -
-Several -assertions -in -the -following -are -at -risk, -as -indicated -by -yellow -highlighting. -These -represent -best -practices -but -at -the -time -of -CR -transition -have -insufficient -implementation -experience. -These -will -be -converted -to -informative -statements -if -sufficient -implementation -experience -is -not -obtained -by -time -of -PR -transition. - -

+

In general the @@ -40404,11 +33853,9 @@

informative document [ - - + WOT-SECURITY-GUIDELINES - - + ]. Many WoT @@ -40447,11 +33894,9 @@

Top 10 [ - - + OWASP-Top-10 - - + ] for web @@ -40479,8 +33924,7 @@

WoT Thing Description. -

-

+

A WoT Thing @@ -40518,8 +33962,7 @@

to be expected. -

-

+

The use of @@ -40544,22 +33987,14 @@

some possible mitigations. -

-
-
-

- +

10.1 - + TD Interception and Tampering -

- - -
-

+

Intercepting and tampering @@ -40592,18 +34027,14 @@

or manipulate data. -

-
-
+

Mitigation: -
-
- +
Thing Descriptions - + SHOULD - + be obtained only @@ -40612,15 +34043,15 @@

authenticated secure channels. - + Mutual authentication ensures that the - + Consumer - + and the TD @@ -40658,7 +34089,7 @@

cases (privacy risk). - + In cases where @@ -40672,9 +34103,9 @@

e.g. browsers, TDs - + MAY - + be obtained through @@ -40687,25 +34118,14 @@

provider is authenticated. - -

-
-

-
-
-

- +

10.2 - + Context Interception and Tampering -

- - -
-

+

Intercepting and tampering @@ -40728,14 +34148,13 @@

Context extensions (see - - + 7. - + TD Context Extensions - + ) that are @@ -40762,29 +34181,27 @@

may modify the - + TD Information Model - + in ways that could compromise security. -

-

+

As recommended in - - + 11.1 - + Context Fetching -, +, on constrained implementations @@ -40840,12 +34257,9 @@

general semantic processing. -

-
-
+

Mitigation: -
-
+
Ideally context definition @@ -40909,10 +34323,7 @@

file, an implementation -SHOULD - -should - +should first attempt to @@ -40928,23 +34339,13 @@

URL is given. -

-
-

-
-
-

- +

10.3 - + Limited Duration Accesses -

- - -
-

+

In some scenarios, @@ -41052,13 +34453,9 @@

after one week. -

-
-
+

Mitigations: -
-
- +
To limit the @@ -41070,15 +34467,15 @@

to Things, tokens - + SHOULD - + be used to manage access. - + Note that this @@ -41155,28 +34552,16 @@

duration. See [ - - + RFC9200 - - + ]. -

-
-

-
-
-

- +

10.4 - + Vulnerability Auditing -

- - -
-

+

An attacker with @@ -41209,12 +34594,9 @@

attacks on them. -

-
-
+

Mitigation: -
-
+
Deployers of IoT @@ -41341,16 +34723,16 @@

to those TDs. - + The - + auto - + security scheme - + MAY - + be used if @@ -41359,23 +34741,12 @@

is a concern. - -

-
-

-
-
-

- +

10.5 - + Script Injection -

- - -
-

+

Many strings given @@ -41387,21 +34758,21 @@

values carried in - + title - + / - + titles - + and - + description - + / - + descriptions -, +, are meant to @@ -41532,9 +34903,9 @@

by the TD - + producer - + and the dashboard @@ -41553,12 +34924,9 @@

cross-site-scripting (XSS) attack. -

-
-
+

Mitigation: -
-
+
Strings sourced from @@ -41691,13 +35059,13 @@

in bidirectional text. - + HTML markup - + SHOULD NOT - + be used for @@ -41706,29 +35074,18 @@

in TD strings. - -

-
-

-
-
-

- +

10.6 - + JSON Parsing -

- - -
-

+

See - -RFC 8259, + +RFC 8259, section 12 -: +: JSON should not @@ -41737,9 +35094,9 @@

as JavaScript using - + eval() -. +. A WoT Thing @@ -41754,9 +35111,9 @@

exchange format for - + Thing - + metadata, not for @@ -41784,23 +35141,19 @@

of a system. -

-
-
+

Mitigation: -
-
- +
A WoT Thing Description JSON-LD serialization - + MUST NOT - + be passed through @@ -41811,29 +35164,21 @@

such as JavaScript's - + eval() - + function to be parsed. - -

-
-
-
- +
Editor's note - -: +: Other Injection Risks - -
-

+

There are additional @@ -41843,11 +35188,9 @@

discussed in [ - - + WOT-DISCOVERY - - + ]. Other strings @@ -41859,13 +35202,13 @@

values given for - + title - + and - + description -, +, should be sanitized @@ -41894,22 +35237,12 @@

when parsing JSON. -

-

-

-
-
-

- +

10.7 - + JSON-LD Expansion -

- - -
-

+

JSON-LD processing usually @@ -41923,11 +35256,9 @@

longer IRIs [ - - + RFC3987 - - + ]. For this @@ -41966,19 +35297,13 @@

exploitable buffer overflow. -

-
-
+

Mitigation: -
-
- - +
Consumers - - + SHOULD - + set and enforce @@ -41996,72 +35321,12 @@

during JSON-LD processing. - -

-
-

- -
-
-

- +

11. - + Privacy Considerations -

- - -
-Several -assertions -in -the -following -are -at -risk, -as -indicated -by -yellow -highlighting. -These -represent -best -practices -but -at -the -time -of -CR -transition -have -insufficient -implementation -experience. -These -will -be -converted -to -informative -statements -if -sufficient -implementation -experience -is -not -obtained -by -time -of -PR -transition. - -

+

Privacy risks will @@ -42119,11 +35384,9 @@

informative document [ - - + WOT-SECURITY-GUIDELINES - - + ]. This section @@ -42141,8 +35404,7 @@

WoT Thing Description. -

-

+

The use of @@ -42167,20 +35429,12 @@

some possible mitigations. -

-
-
-

- +

11.1 - + Context Fetching -

- - -
-

+

WoT Thing Descriptions @@ -42193,11 +35447,9 @@

1.1 processor [ - - + json-ld11 - - + ], which typically @@ -42211,14 +35463,13 @@

context extensions, see - - + 7. - + TD Context Extensions - + ) automatically, resulting @@ -42233,9 +35484,9 @@

request of the - + Consumer - + for each one. @@ -42337,15 +35588,14 @@

leaks. See also - - + 10.2 - + Context Interception and Tampering -, +, which is a @@ -42361,12 +35611,9 @@

the following mitigations. -

-
-
+

Mitigation: -
-
+
Implementations on resource-constrained @@ -42405,20 +35652,18 @@

WoT Profile [ - - + WOT-PROFILE - - + ], for example. - + Constrained implementations - + SHOULD - + use vetted versions @@ -42437,20 +35682,19 @@

secure update process. - - + Constrained implementations - + SHOULD NOT - + follow links to remote contexts. - + In this case @@ -42467,22 +35711,12 @@

fetch their definitions. -

-
-

-
-
-

- +

11.2 - + Immutable Identifiers -

- - -
-

+

A Thing Description @@ -42490,9 +35724,9 @@

an identifier ( - + id - + ) may describe @@ -42545,59 +35779,54 @@

track that person. -

-
-
+

Mitigation: -
-
-

- +

All identifiers used in a TD - + SHOULD - + be mutable, and in particular there - + SHOULD - + be a mechanism to update the - + id - + of a - + Thing - + when necessary. - + Specifically, the - + id - + of a - + Thing - + should not be @@ -42751,10 +35980,7 @@

required immutable identifiers -SHOULD - -should - +should only be made @@ -42814,29 +36040,18 @@

such immutable identifiers. -

-

-
-

-
-
-

- +

11.3 - + Fingerprinting -

- - -
-

+

As noted above, the - + id - + member in a @@ -42850,9 +36065,9 @@

even if the - + id - + is updated as @@ -42885,8 +36100,7 @@

person, through fingerprinting. -

-

+

Even if a @@ -42938,19 +36152,15 @@

a medical condition. -

-
-
+

Mitigation: -
-
- +
Only authorized users - + SHOULD - + be provided access @@ -42960,11 +36170,9 @@

Description for a - + Thing -. - - +. Only the amount @@ -42980,15 +36188,15 @@

the use case - + SHOULD - + be provided in a TD. - + If the TD @@ -43067,9 +36275,9 @@

the Thing, the - + id - + can be omitted. @@ -43104,29 +36312,19 @@

likewise be omitted. -

-
-

-
-
-

- +

11.4 - + ID Metadata -

- - -
-

+

The value of the - + id - + field of a @@ -43150,9 +36348,9 @@

value of the - + id - + contains embedded metadata, @@ -43174,27 +36372,23 @@

infer personal information. -

-
-
+

Mitigation: -
-
- +
The value of the - + id - + of a TD - + SHOULD NOT - + contain metadata describing @@ -43205,8 +36399,7 @@

the TD itself. - - + Any temporary ID @@ -43224,10 +36417,10 @@

or directory service, - + SHOULD NOT - + contain metadata describing @@ -43238,42 +36431,31 @@

the TD itself. - + Using random UUIDs as recommended in - - + 11.5 - + Globally Unique Identifiers - + also mitigates this risk. -

-
-

-
-
-

- +

11.5 - + Globally Unique Identifiers -

- - -
-

+

Globally unique identifiers @@ -43302,16 +36484,13 @@

of the identifiers. -

-
-
+

Mitigation: -
-
+
The - + id - + field in TDs @@ -43413,12 +36592,12 @@

home or factory. - + TD identifiers - + SHOULD - + be generated using @@ -43435,40 +36614,28 @@

probability of uniqueness. - - + TD identifiers - + SHOULD NOT - + be generated using a centralized authority. - -

-
-

-
-
-

- +

11.6 - + Inferencing of Personally Identifiable Information -

- - -
-

+

In many locales, @@ -43569,12 +36736,9 @@

about that person. -

-
-
+

Mitigation: -
-
+
As a matter @@ -43630,17 +36794,17 @@

generated by a - + Thing - + is often obtained when a - + Thing - + is paired with @@ -43684,9 +36848,9 @@

data from a - + Thing - + can be combined @@ -43699,9 +36863,9 @@

Description of the - + Thing -. +. As a second @@ -43735,91 +36899,56 @@

consent was given. -

-
-

- -
-
-

- +

12. - + IANA Considerations -

- - -
-
-
-

- +

12.1 - - + application/td+json - + Media Type Registration -

- - -
-
-
+
Type name: -
-
+
application -
-
+
Subtype name: -
-
+
td+json -
-
+
Required parameters: -
-
+
None -
-
+
Optional parameters: -
-
+
None -
-
+
Encoding considerations: -
-
+
See - -RFC 6839, + +RFC 6839, section 3.1 -. -
-
- +.
Editor's note - -: +: Other Encoding Considerations - -
-

+

The cited section @@ -43839,61 +36968,48 @@

(8-bit compatible, RFC2045). -

-

-
-
+

Security considerations: -
-
+
See - - + 10.2 - + Context Interception and Tampering -, - - +, 10.6 - + JSON Parsing -, - - +, 10.7 - + JSON-LD Expansion -, +, and - - + 11.1 - + Context Fetching - + in the published specification. -
-
+
Interoperability considerations: -
-
+
See - -RFC 8259 -. -

+ +RFC 8259 +.

Rules for processing @@ -43907,17 +37023,12 @@

in this specification. -

-

-
+

Published specification: -
-
- - +
W3C - + Web of Things @@ -43926,18 +37037,12 @@

Description 1.1: https://www.w3.org/TR/wot-thing-description11/ - -
-
- +
Editor's note - -: +: Versions - -
-

+

This has been @@ -43967,47 +37072,41 @@

to the content? -

-

-

-
+

Applications that use this media type: -
-
+
All participating entities in the - + W3C - + Web of Things, that is, - + Things -, - +, Consumers -, +, and Intermediaries as defined in the - - + W3C - + Web of Things @@ -44015,35 +37114,27 @@

Architecture 1.1: https://www.w3.org/TR/wot-architecture11/ - + document. -

-
+
Fragment identifier considerations: -
-
+
See - -RFC 6839, + +RFC 6839, section 3.1 -. -
-
- +.
Editor's note - -: +: Other Fragment Identifier Considerations - -
-

+

We may want @@ -44059,11 +37150,9 @@

fragment identifier [ - - + RFC6901 - - + ]. There is @@ -44076,9 +37165,9 @@

in TMs for - + tm:optional -. +. These are internal @@ -44086,9 +37175,9 @@

however, so we - + might - + not have to @@ -44112,41 +37201,25 @@

but td+json could. -

-

-
-
+

Additional information: -
-
-
-
+
Magic number(s): -
-
+
Not Applicable -
-
+
File extension(s): -
-
-.jsontd -
-
- +
.jsontd
Editor's note - -: +: Other Extensions - -
-

+

We have been @@ -44201,21 +37274,14 @@

html and htm. -

- -

-
+

Macintosh file type code(s): -
-
+
TEXT -
-
- -
+
Person & email @@ -44225,50 +37291,36 @@

for further information: -

-
+
Matthias Kovatsch <w3c@kovatsch.net> -
-
- +
Editor's note - -: +: Update Contact - -
-

+

Should the contact be updated? -

-
-
-
+

Intended usage: -
-
+
COMMON -
-
+
Restrictions on usage: -
-
+
None -
-
+
Author(s): -
-
+
The Web of @@ -44287,127 +37339,90 @@

Things Working Group. -

-
+
Change controller: -
-
- +
W3C - -
- -
-
-
-

- +

12.2 - - + application/tm+json - + Media Type Registration -

- - -
-
-
+
Type name: -
-
+
application -
-
+
Subtype name: -
-
+
tm+json -
-
+
Required parameters: -
-
+
None -
-
+
Optional parameters: -
-
+
None -
-
+
Encoding considerations: -
-
+
See - -RFC 6839, + +RFC 6839, section 3.1 -. -
-
+.
Security considerations: -
-
+
See - - + 10.2 - + Context Interception and Tampering -, - - +, 10.6 - + JSON Parsing -, - - +, 10.7 - + JSON-LD Expansion -, +, and - - + 11.1 - + Context Fetching - + in the published specification. -
-
+
Interoperability considerations: -
-
+
See - -RFC 8259 -. -

+ +RFC 8259 +.

Rules for processing @@ -44421,17 +37436,12 @@

in this specification. -

-

-
+

Published specification: -
-
- - +
W3C - + Web of Things @@ -44439,72 +37449,65 @@

Thing Description 1.1 - -

-
+
Applications that use this media type: -
-
+
All participating entities in the - + W3C - + Web of Things, that is, - + Things -, - +, Consumers -, +, and Intermediaries as defined in the - - + W3C - + Web of Things (WoT) Architecture 1.1 - + document. -
-
+
Fragment identifier considerations: -
-
+
See -RFC 6901, - +RFC 6901, + section 3 - + and - + section 6 -. +. Note that reserved @@ -44513,44 +37516,32 @@

be percent encoded. -

-
+
Additional information: -
-
-
-
+
Magic number(s): -
-
+
Not Applicable -
-
+
File extension(s): -
-
.jsontm, +
.jsontm, .tm.json, .tm.jsonld (preferred file extension) -
-
+
Macintosh file type code(s): -
-
+
TEXT -
-
- -
+
Person & email @@ -44560,29 +37551,22 @@

for further information: -

-
+
Sebastian.Kaebisch@siemens.com -
-
+
Intended usage: -
-
+
COMMON -
-
+
Restrictions on usage: -
-
+
None -
-
+
Author(s): -
-
+
The Web of @@ -44601,32 +37585,18 @@

Things Working Group. -

-
+
Change controller: -
-
- +
W3C - -
- -
-
-
-

- +

12.3 - + CoAP Content-Format Registration -

- - -
-

+

IANA assigns compact @@ -44638,27 +37608,25 @@

types in the - + CoAP Content-Formats - + subregistry within the - + Constrained RESTful Environments (CoRE) Parameters - + registry [ - - + RFC7252 - - + ]. The Content-Format @@ -44678,46 +37646,30 @@

is - (tbd). -

-
-
-

- +

12.3.1 - + WoT Thing Description -

- - -
-
-
+

Media Type: -
-
+
application/td+json -
-
+
Encoding: -
-
+
- -
-
+
ID: -
-
+
432 -
-
+
Reference: -
-
+
[ - + "Web of Things @@ -44727,50 +37679,32 @@

1.1", April 2022 - + ] -

-
-
-
-
-

- +

12.3.2 - + WoT Thing Model -

- - -
-
-
+

Media Type: -
-
+
application/tm+json -
-
+
Encoding: -
-
+
- -
-
+
ID: -
-
+
433 -
-
+
Reference: -
-
+
[ - + "Web of Things @@ -44780,71 +37714,44 @@

1.1", April 2022 - + ] -

-
-

-
-
-
-
-

- +

A. - + Example Thing Description Instances -

- - -
-

- +

This section is non-normative. - -

-
-
-

- +

A.1 - + MyLampThing Example with CoAP Protocol Binding -

- - -
-

+

Feature list of the - + Thing -: -

-
    -
  • +:

    • Title: MyLampThing -
    • -
    • +
    • Context Extensions: none -
    • -
    • +
    • Offered affordances: 1 @@ -44853,254 +37760,254 @@

      Action, 1 Event -

    • -
    • +
    • Security: PSKSecurityScheme -
    • -
    • +
    • Protocol Binding: CoAP [ - - + RFC7252 - - + ] over TLS -
    • -
    • +
    • Comment: Also see - - + 7.2 - + Adding Protocol Bindings -. -
    • -
    -
-
-
-
-

- +

A.2 - + MyIlluminanceSensor Example with MQTT Protocol Binding -

- - -
-

+

Feature list of the - + Thing -: -

-
    -
  • +:

    • Title: MyIlluminanceSensor -
    • -
    • +
    • Context Extensions: none -
    • -
    • +
    • Offered affordances: 1 Event -
    • -
    • +
    • Security: none -
    • -
    • +
    • Protocol Binding: MQTT [ - - + MQTT - - + ] -
    • -
    • +
    • Comment: An MQTT @@ -45119,9 +38026,9 @@

      to the topic - + /illuminance - + by the MQTT @@ -45130,135 +38037,107 @@

      behind the address -192.168.1.187:1883. - - -192.168.1.187:1883 -. -

    • -
    -
-
-
-
-

- +

A.3 - + Webhook Event Example -

- - -
-

+

Feature list of the - + Thing -: -

-
    -
  • +:

    • Title: WebhookThing -
    • -
    • +
    • Context Extensions: use HTTP - + Protocol Binding - + supplements (htv prefix @@ -45267,34 +38146,30 @@

      in TD context) -

    • -
    • +
    • Offered affordances: 1 Event -
    • -
    • +
    • Security: none -
    • -
    • +
    • Protocol Binding: HTTP -
    • -
    • +
    • Comment: - + WebhookThing - + provides an Event affordance - + temperature - + which periodically pushes @@ -45304,18 +38179,18 @@

      value to the - + Consumer - + using a Webhook mechanism, where the - + Thing - + sends POST requests @@ -45326,49 +38201,49 @@

      provided by the - + Consumer -. +. To describe this, the - + subscription - + member defines a write-only parameter - + callbackURL -, +, which must be submitted through the - + subscribeevent - + form. The read-only parameter - + subscriptionID - + is returned by the subscription. The - + WebhookThing - + will then periodically @@ -45382,38 +38257,38 @@

      payload defined by - + data -. +. To unsubscribe, the - + Consumer - + has to submit the - + unsubscribeevent - + form with the - + subscriptionID - + as described in - + cancellation -. +. Alternatively, - + uriVariables - + approache can be @@ -45421,15 +38296,15 @@

      that informs the - + Consumer - + to include the - + subscriptionID - + string into the @@ -45451,9 +38326,9 @@

      such setup, the - + cancellation - + container can be @@ -45469,206 +38344,243 @@

      by using a - + TD Context Extension - + to include proper - + semantic -annotations. - -annotations -. -

    • -
    -
-
-
- -Editor's -note - -Note - - -
-

+

+Note +

Instead of a -periodically - -periodic - +periodic POST -call -of - -request +request to - the -Thing - -Thing, - +Thing, the -consumer - - -Consumer - + +Consumer + may provide -a - response data with @@ -45677,92 +38589,45 @@

the next POST -request - +request should be provided by the Thing. -The -WoT -WG - -This - +This is -currently -working -on -a -definition -that -covers -this -scenario -for -the -next -update -of - -described +described by using - the -TD -document -( -W3C -TD -1.1 -CR). - - -dataResponse - + +dataResponse + field. - -

-

-
-
-
-
-

- +

B. - + JSON Schema for TD Instance Validation -

- - -
-

- +

This section is non-normative. - -

-

+

A JSON Schema [ - - + JSON-SCHEMA - - + ] document for @@ -45779,11 +38644,11 @@

is available in - + the GitHub repository -. +. This JSON Schema @@ -45793,10 +38658,10 @@

the terms with - + Default Values - + to be present. @@ -45804,31 +38669,25 @@

the terms with - + Default Values - + are optional. (see also - - + 5.4 - + Default Value Definitions - + ) -

-
-
- +

Note - -
-

+

The Thing Description @@ -45843,19 +38702,17 @@

vocabularies by using - + @context - + mechanism known from JSON-LD [ - - + json-ld11 - - + ], and the @@ -45874,14 +38731,13 @@

terms defined in - - + 5. - + TD Information Model -. +. For this reason, @@ -45901,18 +38757,18 @@

the value of - + additionalProperties - + schema property - + true - + with - + false - + in different scopes/levels @@ -45930,19 +38786,13 @@

vocabularies are used. -

-

-
-
- +

Note - -
-

+

The - + $id - + field in the @@ -45968,21 +38818,15 @@

to the schema. -

-

-

-
-
-

- -C. +

+C. contentType usage in Thing Descriptions -

+

This section is @@ -46001,7 +38845,7 @@

are explained at - + 5.3.4.2.2 Response-related @@ -46098,11 +38942,11 @@

after the tables. -

+

Table - + 33 - + Single contentType case, @@ -46616,11 +39460,11 @@

above and below. -

+

Table - + 34 - + Multiple contentType case, @@ -47338,42 +40182,28 @@

the output header. -

-
-
-

- -C. - -D. - - +

+D. + JSON-LD Context Usage -

- - -
-

- +

This section is non-normative. - -

-

+

The present specification introduces the - + TD Information Model - + as a set @@ -47381,16 +40211,16 @@

constraints over different - + Vocabularies -, +, i.e. sets of - + Vocabulary Terms -. +. This section briefly @@ -47414,22 +40244,21 @@

of the mandatory - + @context - + of a TD document. -

-

+

Accessing the - + TD Information Model - + from a TD @@ -47489,23 +40318,21 @@

by client programs. -

-

+

All - + Vocabulary Terms - + referenced in - - + 5. - + TD Information Model - + are serialized as @@ -47536,11 +40363,9 @@

Data principle [ - - + LINKED-DATA - - + ]. The mappings @@ -47552,9 +40377,9 @@

is what the - + @context - + value of a @@ -47566,89 +40391,40 @@

the file at -

-

- +

https://www.w3.org/2022/wot/td/v1.1 - -

-

+

includes the following mappings (among others): -

- - - -
- +

- - - - - - - - - - - - - - - - - - - - - - -
properties - - + → - - + https://www.w3.org/2019/wot/td#hasPropertyAffordance - -
- +
object - - + → - - + https://www.w3.org/2019/wot/json-schema#ObjectSchema - -
- +
basic - - + → - - + https://www.w3.org/2019/wot/security#BasicSecurityScheme - -
- +
href - - + → - - + https://www.w3.org/2019/wot/hypermedia#hasTarget - -
... -
-

+

...

This JSON file @@ -47658,11 +40434,9 @@

1.1 syntax [ - - + JSON-LD11 - - + ]. Numerous JSON-LD @@ -47671,9 +40445,9 @@

automatically process the - + @context - + of a TD @@ -47685,14 +40459,13 @@

strings it includes. -

-

+

Once every - + Vocabulary Term - + of a TD @@ -47714,31 +40487,27 @@

fragments of the - + TD Information Model - + that refer to that - + Vocabulary Term -. +. For instance, dereferencing the IRI -

-

- +

https://www.w3.org/2019/wot/json-schema#ObjectSchema - -

-

+

results in an @@ -47748,23 +40517,23 @@

that the term - + ObjectSchema - + is a - + Class - + and more precisely, a sub-class of - + DataSchema -. +. Such logical axioms @@ -47787,11 +40556,9 @@

Schema axioms [ - - + RDF-SCHEMA - - + ]. Moreover, these @@ -47811,22 +40578,18 @@

Turtle format [ - - + TURTLE - - + ]: -

-
<https://www.w3.org/2019/wot/json-schema#ObjectSchema>
+

+"nohighlight"><https://www.w3.org/2019/wot/json-schema#ObjectSchema>
     a rdfs:Class .
 <https://www.w3.org/2019/wot/json-schema#ObjectSchema>
 rdfs:subClassOf
 <https://www.w3.org/2019/wot/json-schema#DataSchema>
 .
-
-
-

+

By default, if @@ -47859,37 +40622,22 @@

the HTTP header - + Accept: text/turtle - + in their request. -

- -
-
-

- -D. - -E. - - +

+E. + Recent Specification Changes -

- - -
-
-
-

- -E.1 - +

+E.1 + Changes from the @@ -47898,12 +40646,8 @@

19 January 2023 -

- -

-
    -
  • -At-risk +

-
-
-

- -D.1 - -E.2 - - +

+E.2 + Changes from Fourth @@ -47996,12 +40733,7 @@

3 August 2022 -

- - -

-
    -
  • +

- -
-
-

- -D.2 - -E.3 - - +

+E.3 + Changes from Third @@ -48185,21 +40882,15 @@

11 March 2022 -

- - -

-
    -
  • +

- -
-
-

- -D.3 - -E.4 - - +

+E.4 + Changes from Second @@ -48638,20 +41273,14 @@

7 June 2021 -

- - -

-
    -
  • +

- -
-
-

- -D.4 - -E.5 - - +

+E.5 + Changes from First @@ -49553,11 +42008,7 @@

24 November 2020 -

- - -

-

+

Changes from First @@ -49571,30 +42022,16 @@

described in the - + Second Public Working Draft -. -

- - -
-
-

- -E. - -F. - - +.

+F. + Acknowledgements -

- - -
-

+

The editors would @@ -49653,16 +42090,15 @@

guidance and expertise. -

-

+

Also, many thanks to the - + W3C - + staff and all @@ -49674,9 +42110,9 @@

Participants of the - + W3C - + Web of Things @@ -49703,8 +42139,7 @@

to this document. -

-

+

Finally, special thanks @@ -49740,15 +42175,9 @@

the Thing Description. -

- -
-
- +

Note - -
-

+

Temporary ReSpec fix @@ -49756,126 +42185,81 @@

non-listed references: [ - - + RFC6068 - - + ], [ - - + RFC3966 - - + ], [ - - + html - - + ], [ - - + RFC6750 - - + ], [ - - + RFC7519 - - + ], [ - - + RFC7797 - - + ], [ - - + RFC8392 - - + ], [ - - + RFC7516 - - + ], [ - - + LDML - - + ], [ - - + SEMVER - - + ], [ - - + RFC7617 - - + ], [ - - + RFC7616 - - + ] -

-

-

- - -F. +

+G. + References - -G. - References -

- -

- -F.1 +

+G.1 + Normative references - -G.1 - Normative references -

- -
+

[APPMANIFEST] -
- -Web +
+Web Application Manifest - -Web Application Manifest - - -. +. Marcos Caceres; Kenneth @@ -49889,29 +42273,23 @@

Anssi Kostiainen. W3C. -20 -December -2022. +2 +May +2023. W3C Working Draft. URL: - -. Marcos Caceres; Kenneth Christiansen; Matt Giuca; Aaron Gustafson; Daniel Murphy; Anssi Kostiainen. W3C. 2 May 2023. W3C Working Draft. URL: + https://www.w3.org/TR/appmanifest/ -

+
[BCP47] -
- -Tags +
+Tags for Identifying Languages - -Tags for Identifying Languages - - -. +. A. Phillips, Ed.; @@ -49925,38 +42303,26 @@

Current Practice. URL: - -. A. Phillips, Ed.; M. Davis, Ed.. IETF. September 2009. Best Current Practice. URL: + https://www.rfc-editor.org/rfc/rfc5646 -

+
[ECMA-262] -
- -ECMAScript +
+ECMAScript Language Specification - -ECMAScript Language Specification - - -. +. Ecma International. URL: - -. Ecma International. URL: + https://tc39.es/ecma262/multipage/ -
+
[json-ld11] -
- -JSON-LD +
+JSON-LD 1.1 - -JSON-LD 1.1 - - -. +. Gregg Kellogg; Pierre-Antoine @@ -49970,31 +42336,23 @@

W3C Recommendation. URL: - -. Gregg Kellogg; Pierre-Antoine Champin; Dave Longley. W3C. 16 July 2020. W3C Recommendation. URL: + https://www.w3.org/TR/json-ld11/ -

+
[OWASP-Top-10] -
- -OWASP +
+OWASP Top Ten - -OWASP Top Ten - - -. +. OWASP. URL: - -. OWASP. URL: + https://owasp.org/www-project-top-ten -
+
[RFC2045] -
- -Multipurpose +
+Multipurpose Internet Mail Extensions @@ -50006,11 +42364,7 @@

Internet Message Bodies - -Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies - - -. +. N. Freed; N. @@ -50021,14 +42375,12 @@

Draft Standard. URL: - -. N. Freed; N. Borenstein. IETF. November 1996. Draft Standard. URL: + https://www.rfc-editor.org/rfc/rfc2045 -

+
[RFC2046] -
- -Multipurpose +
+Multipurpose Internet Mail Extensions @@ -50037,11 +42389,7 @@

Two: Media Types - -Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types - - -. +. N. Freed; N. @@ -50052,14 +42400,12 @@

Draft Standard. URL: - -. N. Freed; N. Borenstein. IETF. November 1996. Draft Standard. URL: + https://www.rfc-editor.org/rfc/rfc2046 -

+
[RFC2119] -
- -Key +
+Key words for use @@ -50069,11 +42415,7 @@

Indicate Requirement Levels - -Key words for use in RFCs to Indicate Requirement Levels - - -. +. S. Bradner. IETF. @@ -50083,25 +42425,19 @@

Current Practice. URL: - -. S. Bradner. IETF. March 1997. Best Current Practice. URL: + https://www.rfc-editor.org/rfc/rfc2119 -

+
[RFC3339] -
- -Date +
+Date and Time on the Internet: Timestamps - -Date and Time on the Internet: Timestamps - - -. +. G. Klyne; C. @@ -50112,25 +42448,19 @@

Proposed Standard. URL: - -. G. Klyne; C. Newman. IETF. July 2002. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc3339 -

+
[RFC3629] -
- -UTF-8, +
+UTF-8, a transformation format of ISO 10646 - -UTF-8, a transformation format of ISO 10646 - - -. +. F. Yergeau. IETF. @@ -50139,24 +42469,18 @@

Internet Standard. URL: - -. F. Yergeau. IETF. November 2003. Internet Standard. URL: + https://www.rfc-editor.org/rfc/rfc3629 -

+
[RFC3966] -
- -The +
+The tel URI for Telephone Numbers - -The tel URI for Telephone Numbers - - -. +. H. Schulzrinne. IETF. @@ -50165,24 +42489,18 @@

Proposed Standard. URL: - -. H. Schulzrinne. IETF. December 2004. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc3966 -

+
[RFC3986] -
- -Uniform +
+Uniform Resource Identifier (URI): Generic Syntax - -Uniform Resource Identifier (URI): Generic Syntax - - -. +. T. Berners-Lee; R. @@ -50195,22 +42513,16 @@

Internet Standard. URL: - -. T. Berners-Lee; R. Fielding; L. Masinter. IETF. January 2005. Internet Standard. URL: + https://www.rfc-editor.org/rfc/rfc3986 -

+
[RFC3987] -
- -Internationalized +
+Internationalized Resource Identifiers (IRIs) - -Internationalized Resource Identifiers (IRIs) - - -. +. M. Duerst; M. @@ -50221,14 +42533,12 @@

Proposed Standard. URL: - -. M. Duerst; M. Suignard. IETF. January 2005. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc3987 -

+
[RFC4279] -
- -Pre-Shared +
+Pre-Shared Key Ciphersuites for @@ -50236,11 +42546,7 @@

Layer Security (TLS) - -Pre-Shared Key Ciphersuites for Transport Layer Security (TLS) - - -. +. P. Eronen, Ed.; @@ -50253,25 +42559,19 @@

Proposed Standard. URL: - -. P. Eronen, Ed.; H. Tschofenig, Ed.. IETF. December 2005. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc4279 -

+
[RFC4648] -
- -The +
+The Base16, Base32, and Base64 Data Encodings - -The Base16, Base32, and Base64 Data Encodings - - -. +. S. Josefsson. IETF. @@ -50280,22 +42580,16 @@

Proposed Standard. URL: - -. S. Josefsson. IETF. October 2006. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc4648 -

+
[RFC6068] -
- -The +
+The 'mailto' URI Scheme - -The 'mailto' URI Scheme - - -. +. M. Duerst; L. @@ -50308,20 +42602,14 @@

Proposed Standard. URL: - -. M. Duerst; L. Masinter; J. Zawinski. IETF. October 2010. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc6068 -

+
[RFC6570] -
- -URI +
+URI Template - -URI Template - - -. +. J. Gregorio; R. @@ -50338,23 +42626,17 @@

Proposed Standard. URL: - -. J. Gregorio; R. Fielding; M. Hadley; M. Nottingham; D. Orchard. IETF. March 2012. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc6570 -

+
[RFC6749] -
- -The +
+The OAuth 2.0 Authorization Framework - -The OAuth 2.0 Authorization Framework - - -. +. D. Hardt, Ed.. @@ -50364,23 +42646,17 @@

Proposed Standard. URL: - -. D. Hardt, Ed.. IETF. October 2012. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc6749 -

+
[RFC6901] -
- -JavaScript +
+JavaScript Object Notation (JSON) Pointer - -JavaScript Object Notation (JSON) Pointer - - -. +. P. Bryan, Ed.; @@ -50395,23 +42671,17 @@

Proposed Standard. URL: - -. P. Bryan, Ed.; K. Zyp; M. Nottingham, Ed.. IETF. April 2013. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc6901 -

+
[RFC7252] -
- -The +
+The Constrained Application Protocol (CoAP) - -The Constrained Application Protocol (CoAP) - - -. +. Z. Shelby; K. @@ -50424,14 +42694,12 @@

Proposed Standard. URL: - -. Z. Shelby; K. Hartke; C. Bormann. IETF. June 2014. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc7252 -

+
[RFC8174] -
- -Ambiguity +
+Ambiguity of Uppercase vs @@ -50441,11 +42709,7 @@

2119 Key Words - -Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words - - -. +. B. Leiba. IETF. @@ -50455,23 +42719,17 @@

Current Practice. URL: - -. B. Leiba. IETF. May 2017. Best Current Practice. URL: + https://www.rfc-editor.org/rfc/rfc8174 -

+
[RFC8252] -
- -OAuth +
+OAuth 2.0 for Native Apps - -OAuth 2.0 for Native Apps - - -. +. W. Denniss; J. @@ -50483,14 +42741,12 @@

Current Practice. URL: - -. W. Denniss; J. Bradley. IETF. October 2017. Best Current Practice. URL: + https://www.rfc-editor.org/rfc/rfc8252 -

+
[RFC8259] -
- -The +
+The JavaScript Object Notation @@ -50498,11 +42754,7 @@

Data Interchange Format - -The JavaScript Object Notation (JSON) Data Interchange Format - - -. +. T. Bray, Ed.. @@ -50512,20 +42764,14 @@

Internet Standard. URL: - -. T. Bray, Ed.. IETF. December 2017. Internet Standard. URL: + https://www.rfc-editor.org/rfc/rfc8259 -

+
[RFC8288] -
- -Web +
+Web Linking - -Web Linking - - -. +. M. Nottingham. IETF. @@ -50534,39 +42780,13 @@

Proposed Standard. URL: - -. M. Nottingham. IETF. October 2017. Proposed Standard. URL: + https://httpwg.org/specs/rfc8288.html -[RFC8628] -OAuth -2.0 -Device -Authorization -Grant -. -W. -Denniss; -J. -Bradley; -M. -Jones; -H. -Tschofenig. -IETF. -August -2019. -Proposed -Standard. -URL: -https://www.rfc-editor.org/rfc/rfc8628 - -

+
[RFC9112] -
- +
HTTP/1.1 - -. +. R. Fielding, Ed.; @@ -50582,35 +42802,27 @@

Internet Standard. URL: - -. R. Fielding, Ed.; M. Nottingham, Ed.; J. Reschke, Ed.. IETF. June 2022. Internet Standard. URL: + https://www.rfc-editor.org/rfc/rfc9112 -

+
[SEMVER] -
- -Semantic +
+Semantic Versioning 2.0.0 - -Semantic Versioning 2.0.0 - - -. +. Tom Preston-Werner. 26 December 2017. URL: - -. Tom Preston-Werner. 26 December 2017. URL: + https://semver.org/ -
+
[STRING-META] -
- -Strings +
+Strings on the Web: @@ -50618,11 +42830,7 @@

and Direction Metadata - -Strings on the Web: Language and Direction Metadata - - -. +. Richard Ishida; Addison @@ -50636,16 +42844,13 @@

Group Note. URL: - -. Richard Ishida; Addison Phillips. W3C. 4 August 2022. W3C Working Group Note. URL: + https://www.w3.org/TR/string-meta/ -

+
[websub] -
- +
WebSub - -. +. Julien Genestoux; Aaron @@ -50657,55 +42862,45 @@

W3C Recommendation. URL: - -. Julien Genestoux; Aaron Parecki. W3C. 23 January 2018. W3C Recommendation. URL: + https://www.w3.org/TR/websub/ -

+
[wot-architecture11] -
- -Web +
+Web of Things (WoT) Architecture 1.1 - -Web of Things (WoT) Architecture 1.1 - - -. +. Michael Lagally; Ryuichi Matsukura; +Michael +McCool; Kunihiko Toumura. W3C. -7 -September -2022. +19 +January +2023. W3C -Working -Draft. +Candidate +Recommendation. URL: - -. Michael Lagally; Ryuichi Matsukura; Michael McCool; Kunihiko Toumura. W3C. 19 January 2023. W3C Candidate Recommendation. URL: + https://www.w3.org/TR/wot-architecture11/ -
+
[WOT-PROFILE] -
- -Web +
+Web of Things (WoT) Profile - -Web of Things (WoT) Profile - - -. +. Michael Lagally; Michael @@ -50720,15 +42915,12 @@

November 2020. URL: - -. Michael Lagally; Michael McCool; Ryuichi Matsukura; Sebastian Kaebisch; Tomoaki Mizushima. W3C. November 2020. URL: + https://www.w3.org/TR/wot-profile/ -[WOT-SECURITY-GUIDELINES] - -

[WOT-SECURITY-GUIDELINES] -
- -Web +
+[WOT-SECURITY-GUIDELINES] +
+Web of Things (WoT) @@ -50736,11 +42928,7 @@

and Privacy Guidelines - -Web of Things (WoT) Security and Privacy Guidelines - - -. +. Michael McCool; Elena @@ -50749,25 +42937,18 @@

July 2021. URL: - -. Michael McCool; Elena Reshetova. W3C. July 2021. URL: + https://w3c.github.io/wot-security/ -[wot-thing-description] - -

[wot-thing-description10] -
- -Web +
+[wot-thing-description10] +
+Web of Things (WoT) Thing Description - -Web of Things (WoT) Thing Description - - -. +. Sebastian Käbisch; Takuki @@ -50785,13 +42966,12 @@

W3C Recommendation. URL: -https://www.w3.org/TR/wot-thing-description/ + +https://www.w3.org/TR/wot-thing-description10/ +

[XMLSCHEMA11-2-20120405] - -. Sebastian Käbisch; Takuki Kamiya; Michael McCool; Victor Charpenay; Matthias Kovatsch. W3C. 9 April 2020. W3C Recommendation. URL: -https://www.w3.org/TR/wot-thing-description10/ -
[XMLSCHEMA11-2-20120405]
-W3C +
+W3C XML Schema Definition @@ -50801,10 +42981,7 @@

Part 2: Datatypes - - W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes - -. +. David Peterson; Sandy @@ -50827,30 +43004,19 @@

W3C Recommendation. URL: - -. David Peterson; Sandy Gao; Ashok Malhotra; Michael Sperberg-McQueen; Henry Thompson; Paul V. Biron et al. W3C. 5 April 2012. W3C Recommendation. URL: + https://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/ -

- -F.2 +

+G.2 + Informative references - -G.2 - Informative references -

- -
+

[html] -
- -HTML +
+HTML Standard - -HTML Standard - - -. +. Anne van Kesteren; @@ -50866,23 +43032,17 @@

Living Standard. URL: - -. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: + https://html.spec.whatwg.org/multipage/ -

+
[HTTP-in-RDF10] -
- -HTTP +
+HTTP Vocabulary in RDF 1.0 - -HTTP Vocabulary in RDF 1.0 - - -. +. Johannes Koch; Carlos @@ -50899,46 +43059,35 @@

Group Note. URL: - -. Johannes Koch; Carlos A. Velasco; Philip Ackermann. W3C. 2 February 2017. W3C Working Group Note. URL: + https://www.w3.org/TR/HTTP-in-RDF10/ -

+
[IANA-MEDIA-TYPES] -
- -Media +
+Media Types - -Media Types - - -. +. IANA. URL: - -. IANA. URL: + https://www.iana.org/assignments/media-types/ -
+
[IANA-URI-SCHEMES] -Uniform +
+Uniform Resource Identifier (URI) Schemes - -
-Uniform Resource Identifier (URI) Schemes - - -. +. IANA. URL: + https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml - -. IANA. URL: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml -
+
[JSON-SCHEMA] -JSON +
+JSON Schema Validation: A @@ -50948,12 +43097,7 @@

Validation of JSON - -
-JSON Schema Validation: A Vocabulary for Structural Validation of JSON - - -. +. Austin Wright; Henry @@ -50966,22 +43110,16 @@

2018. Internet-Draft. URL: -https://tools.ietf.org/html/draft-handrews-json-schema-validation-01 + +https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01 +

[JSON-SCHEMA-ONTOLOGY] - -. Austin Wright; Henry Andrews; Geraint Luff. IETF. 19 March 2018. Internet-Draft. URL: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01 -

[JSON-SCHEMA-ONTOLOGY] -
- -JSON +
+JSON Schema in RDF - -JSON Schema in RDF - - -. +. Victor Charpenay; Maxime @@ -50993,14 +43131,12 @@

July 2022. URL: - -. Victor Charpenay; Maxime Lefrançois; María Poveda Villalón. W3C. July 2022. URL: + https://www.w3.org/2019/wot/json-schema -

+
[LDML] -
- -Unicode +
+Unicode Technical Standard #35: @@ -51010,11 +43146,7 @@

Markup Language (LDML) - -Unicode Technical Standard #35: Unicode Locale Data Markup Language (LDML) - - -. +. Mark Davis; CLDR @@ -51022,22 +43154,16 @@

March 2022. URL: - -. Mark Davis; CLDR Contributors. March 2022. URL: + https://unicode.org/reports/tr35/ -

+
[LINKED-DATA] -
- -Linked +
+Linked Data Design Issues - -Linked Data Design Issues - - -. +. Tim Berners-Lee. W3C. @@ -51047,12 +43173,12 @@

W3C-Internal Document. URL: - -. Tim Berners-Lee. W3C. 27 July 2006. W3C-Internal Document. URL: + https://www.w3.org/DesignIssues/LinkedData.html -

+
[LINKSET-MEDIA-TYPES] -Linkset: +
+Linkset: Media Types and @@ -51063,12 +43189,7 @@

for Link Sets - -
-Linkset: Media Types and a Link Relation Type for Link Sets - - -. +. Erik Wilde; Herbert @@ -51077,20 +43198,15 @@

Sompel. IETF. URL: + https://datatracker.ietf.org/doc/draft-ietf-httpapi-linkset/ - -. Erik Wilde; Herbert Van de Sompel. IETF. URL: https://datatracker.ietf.org/doc/draft-ietf-httpapi-linkset/ -

+

[MQTT] -MQTT +
+MQTT Version 3.1.1 - -
-MQTT Version 3.1.1 - - -. +. Andrew Banks; Rahul @@ -51105,22 +43221,16 @@

Errata 01. URL: + http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html - -. Andrew Banks; Rahul Gupta. OASIS. December 2015. OASIS Standard Incorporating Approved Errata 01. URL: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html -

+
[OPENAPI] -
- -OpenAPI +
+OpenAPI Specification: Version 3.0.1 - -OpenAPI Specification: Version 3.0.1 - - -. +. Darrel Miller; Jeremy @@ -51141,21 +43251,15 @@

December 2017. URL: - -. Darrel Miller; Jeremy Whitlock; Marsh Gardiner; Mike Ralphson; Ron Ratovsky; Uri Sarid. OpenAPI Initiative, Linux Foundation. 6 December 2017. URL: + https://spec.openapis.org/oas/v3.0.1 -

+
[RDF-SCHEMA] -
- -RDF +
+RDF Schema 1.1 - -RDF Schema 1.1 - - -. +. Dan Brickley; Ramanathan @@ -51167,14 +43271,12 @@

W3C Recommendation. URL: - -. Dan Brickley; Ramanathan Guha. W3C. 25 February 2014. W3C Recommendation. URL: + https://www.w3.org/TR/rdf-schema/ -

+
[RFC6750] -
- -The +
+The OAuth 2.0 Authorization @@ -51182,11 +43284,7 @@

Bearer Token Usage - -The OAuth 2.0 Authorization Framework: Bearer Token Usage - - -. +. M. Jones; D. @@ -51197,25 +43295,19 @@

Proposed Standard. URL: - -. M. Jones; D. Hardt. IETF. October 2012. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc6750 -

+
[RFC7231] -
- -Hypertext +
+Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content - -Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content - - -. +. R. Fielding, Ed.; @@ -51228,22 +43320,16 @@

Proposed Standard. URL: - -. R. Fielding, Ed.; J. Reschke, Ed.. IETF. June 2014. Proposed Standard. URL: + https://httpwg.org/specs/rfc7231.html -

+
[RFC7516] -
- -JSON +
+JSON Web Encryption (JWE) - -JSON Web Encryption (JWE) - - -. +. M. Jones; J. @@ -51254,22 +43340,16 @@

Proposed Standard. URL: - -. M. Jones; J. Hildebrand. IETF. May 2015. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc7516 -

+
[RFC7519] -
- -JSON +
+JSON Web Token (JWT) - -JSON Web Token (JWT) - - -. +. M. Jones; J. @@ -51282,22 +43362,16 @@

Proposed Standard. URL: - -. M. Jones; J. Bradley; N. Sakimura. IETF. May 2015. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc7519 -

+
[RFC7616] -
- -HTTP +
+HTTP Digest Access Authentication - -HTTP Digest Access Authentication - - -. +. R. Shekh-Yusef, Ed.; @@ -51311,23 +43385,17 @@

Proposed Standard. URL: - -. R. Shekh-Yusef, Ed.; D. Ahrens; S. Bremer. IETF. September 2015. Proposed Standard. URL: + https://httpwg.org/specs/rfc7616.html -

+
[RFC7617] -
- -The +
+The 'Basic' HTTP Authentication Scheme - -The 'Basic' HTTP Authentication Scheme - - -. +. J. Reschke. IETF. @@ -51336,25 +43404,19 @@

Proposed Standard. URL: - -. J. Reschke. IETF. September 2015. Proposed Standard. URL: + https://httpwg.org/specs/rfc7617.html -

+
[RFC7797] -
- -JSON +
+JSON Web Signature (JWS) Unencoded Payload Option - -JSON Web Signature (JWS) Unencoded Payload Option - - -. +. M. Jones. IETF. @@ -51363,22 +43425,16 @@

Proposed Standard. URL: - -. M. Jones. IETF. February 2016. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc7797 -

+
[RFC8392] -
- -CBOR +
+CBOR Web Token (CWT) - -CBOR Web Token (CWT) - - -. +. M. Jones; E. @@ -51393,14 +43449,12 @@

Proposed Standard. URL: - -. M. Jones; E. Wahlstroem; S. Erdtman; H. Tschofenig. IETF. May 2018. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc8392 -

+
[RFC9200] -
- -Authentication +
+Authentication and Authorization for @@ -51412,11 +43466,7 @@

2.0 Framework (ACE-OAuth) - -Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth) - - -. +. L. Seitz; G. @@ -51433,25 +43483,19 @@

Proposed Standard. URL: - -. L. Seitz; G. Selander; E. Wahlstroem; S. Erdtman; H. Tschofenig. IETF. August 2022. Proposed Standard. URL: + https://www.rfc-editor.org/rfc/rfc9200 -

+
[sdw-bp] -
- -Spatial +
+Spatial Data on the Web Best Practices - -Spatial Data on the Web Best Practices - - -. +. Jeremy Tandy; Linda @@ -51469,12 +43513,12 @@

Group Note. URL: - -. Jeremy Tandy; Linda van den Brink; Payam Barnaghi. W3C. 28 September 2017. W3C Working Group Note. URL: + https://www.w3.org/TR/sdw-bp/ -

+
[SMARTM2M] -ETSI +
+ETSI TS 103 264 @@ -51488,32 +43532,21 @@

and oneM2M Mapping - -
-ETSI TS 103 264 V2.1.1 (2017-03): SmartM2M; Smart Appliances; Reference Ontology and oneM2M Mapping - - -. +. ETSI. March 2017. Published. URL: + http://www.etsi.org/deliver/etsi_ts/103200_103299/103264/02.01.01_60/ts_103264v020101p.pdf - -. ETSI. March 2017. Published. URL: http://www.etsi.org/deliver/etsi_ts/103200_103299/103264/02.01.01_60/ts_103264v020101p.pdf -
+

[TURTLE] -
- -RDF +
+RDF 1.1 Turtle - -RDF 1.1 Turtle - - -. +. Eric Prud'hommeaux; Gavin @@ -51525,22 +43558,16 @@

W3C Recommendation. URL: - -. Eric Prud'hommeaux; Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: + https://www.w3.org/TR/turtle/ -

+
[VOCAB-SSN] -
- -Semantic +
+Semantic Sensor Network Ontology - -Semantic Sensor Network Ontology - - -. +. Armin Haller; Krzysztof @@ -51561,23 +43588,17 @@

W3C Recommendation. URL: - -. Armin Haller; Krzysztof Janowicz; Simon Cox; Danh Le Phuoc; Kerry Taylor; Maxime Lefrançois. W3C. 19 October 2017. W3C Recommendation. URL: + https://www.w3.org/TR/vocab-ssn/ -

+
[w3c-basic-geo] -
- -Basic +
+Basic Geo (WGS84 lat/long) Vocabulary - -Basic Geo (WGS84 lat/long) Vocabulary - - -. +. Dan Brickley. W3C @@ -51589,25 +43610,18 @@

February 2006. URL: - -. Dan Brickley. W3C Semantic Web Interest Group. 1 February 2006. URL: + https://www.w3.org/2003/01/geo/ -[WOT-BINDING-TEMPLATES] - -

[WOT-BINDING-TEMPLATES] -
- -Web +
+[WOT-BINDING-TEMPLATES] +
+Web of Things (WoT) Binding Templates - -Web of Things (WoT) Binding Templates - - -. +. Michael Koster; Ege @@ -51621,23 +43635,17 @@

Group Note. URL: - -. Michael Koster; Ege Korkan. W3C. 30 January 2020. W3C Working Group Note. URL: + https://www.w3.org/TR/wot-binding-templates/ -

+
[WOT-DISCOVERY] -
- -Web +
+Web of Things (WoT) Discovery - -Web of Things (WoT) Discovery - - -. +. Andrea Cimmino; Michael @@ -51647,32 +43655,26 @@

Kunihiko Toumura. W3C. -10 -August -2022. +19 +January +2023. W3C -Working -Draft. +Candidate +Recommendation. URL: - -. Andrea Cimmino; Michael McCool; Farshid Tavakolizadeh; Kunihiko Toumura. W3C. 19 January 2023. W3C Candidate Recommendation. URL: + https://www.w3.org/TR/wot-discovery/ -

+
[xml] -
- -Extensible +
+Extensible Markup Language (XML) 1.0 (Fifth Edition) - -Extensible Markup Language (XML) 1.0 (Fifth Edition) - - -. +. Tim Bray; Jean @@ -51692,186 +43694,152 @@

W3C Recommendation. URL: - -. Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. 26 November 2008. W3C Recommendation. URL: + https://www.w3.org/TR/xml/ -