forked from w3c/wot-thing-description
/
vocabulary.template
134 lines (103 loc) · 4.62 KB
/
vocabulary.template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<section id="sec-vocabulary-definition">
<h1>Information Model</h1>
<!-- h1>Vocabulary</h1 -->
<section>
<h2>Overview</h2>
<p>
The W3C Thing Description provides a set of vocabulary for describing
physical and virtual Things.
To increase interoperability
the vocabulary terms are defined using the
Resource Description Framework (RDF).
<span class="rfc2119-assertion" id="td-vocabulary">
All vocabulary restrictions noted in these tables MUST be followed,
including mandatory items and default values.
</span></p>
<p>
In general, the Thing Description vocabulary set is grouped in three modules:
the core Thing Description vocabulary reflecting WoT's paradigm of
<code>Properties</code>, <code>Actions</code>,
and <code>Events</code> (also see [[!WOT-ARCHITECTURE]]);
the data schema vocabulary reflecting a subset of the terms defined in
JSON Schema [[?JSON-SCHEMA-VALIDATION]] in a
linked data representation;
and the security vocabulary used to define security mechanism
configuration requirements.
</p>
<p>
An overview of this vocabulary with its class context and class relation
is given by the following three figures: the TD core model,
the TD data schema model, and the TD security model.
Please note that the figures reflect the vocabulary terms and structure
as they would be used in a Thing Description
instance
(see Section <a href="#sec-td-serialization"></a>).
The full ontology definitions of the different modules
can be viewed by following the namespaces as provided in Section
<a href="#namespaces"></a>.
</p>
<!--<p><a href="http://visualdataweb.de/webvowl/#iri=https://rawgit.com/w3c/wot-thing-description/TD-JSON-LD-1.1/ontology/td.ttl">Click here for the visualization</a></p>-->
<figure id="td-core-model">
<img src="td-core-model/td-core-model.svg" alt="TD core model figure"/>
<figcaption>TD core model</figcaption>
</figure>
<figure id="td-data-schema-model">
<img src="td-core-model/td-data-schema-model.svg" alt="TD data schema model figure"/>
<figcaption>TD data schema model</figcaption>
</figure>
<figure id="td-security-model">
<img src="td-core-model/td-security-model.svg" alt="TD security model figure"/>
<figcaption>TD security model</figcaption>
</figure>
<p class="ednote" title="Default Values and Mandatory Attributes">
In the figures above, and in the tables to follow,
items which have default values are indicated as being optional.
However, technically,
these are optional <em>only in the JSON serialization</em>.
They are actually mandatory parts of the
information model and are also mandatory in the JSON-LD serialization.
</p>
<p>A detailed description of the vocabulary of the TD core model and
TD data schema model is given in the next sub-section.</p>
</section>
<section id="sec-core-vocabulary-definition">
<h2>Core Vocabulary Definition</h2>
{#coreClasses}
{>class/}
{/coreClasses}
</section>
<section id="sec-data-schema-vocabulary-definition">
<h2>Data Schema Vocabulary Definition</h2>
{#schemaClasses}
{>class/}
{/schemaClasses}
</section>
<section id="sec-security-vocabulary-definition">
<h2>Security Vocabulary Definition</h2>
<p>
For the core TD vocabulary only well-established security
mechanisms are supported, such as those built into protocols supported by WoT
or already in wide use with those protocols.
The current set of HTTP security schemes is partly based on
<a href="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#securitySchemeObject">OpenAPI 3.0.1</a> (see also [[?OPENAPI]]).
Note however that while the HTTP security schemes,
vocabulary and syntax given in this specification share many similarities
with OpenAPI they are not fully compatible.
Also, since OpenAPI primarily targets web services built around HTTP, it does not
cover the full set of use cases required for the IoT.
Security schemes appropriate
for IoT-centered protocols such as CoAP and MQTT are therefore also included.
</p>
<p class="ednote" title="Security Scheme Extensions">
The vocabulary extension mechanism of the
WoT Thing Description allows for additional security schemes if needed.
However, for more information about what additional security schemes
or modifications are under discussion for the core WoT vocabulary
(and to file issues if you have a request) please visit the
<a href="https://github.com/w3c/wot-security">WoT Security TF repository.</a>
</p>
{#securityClasses}
{>class/}
{/securityClasses}
</section>
</section>