using query filters when fetching TDs from a directory).
- The second special case is a Thing Link. This is also a Thing Description,
- but rather than describing a Thing directly holds a link to
- a Thing Descriptions hosted elsewhere.
+ The second special case is a Thing Link. This is also a Thing Description,
+ but rather than describing a Thing directly holds a link to
+ a Thing Descriptions hosted elsewhere.
A Thing Description Directory can also store Thing Links
which can redirect to other Thing Description Directories, allowing for a linked
directory structure.
@@ -394,7 +394,8 @@
Discoverer Process
A Discoverer MUST be able to identify whether a TD fetched from an
- Introduction URL is a Thing Description Directory or a Thing Link.
+ Introduction URL has Thing Directory
+ or Thing Link type.
This implies that the Discoverer needs to be able
to check the @type field and make this distinction.
@@ -414,14 +415,14 @@
Discoverer Process
might be prohibitively expensive.
- A Discoverer MAY fetch source TDs from the targets of the links in a Thing Link
+ A Discoverer MAY fetch source TDs from the targets of the links in a Thing Link
described in its initial set of TDs and add them into the set of TD results.
This only adds the results of fetching TDs from a Thing Link to the set of
results. These new results do not delete the original TD describing the Thing Link.
A Discoverer implementation can decide whether or not to fetch the targets of Thing Links.
- A Discoverer MAY fetch additional TDs iteratively from any Thing Link or
+ A Discoverer MAY fetch additional TDs iteratively from any Thing Link or
Exploration mechanism described in its set of TDs and add them into the set of TD results.
This only adds the results of fetching TDs from an Exploration mechanism to the set of
results. These new results do not delete the original TD describing the Exploration mechanism.
@@ -448,7 +449,7 @@
Discoverer Process
The above process supports a way to let Directories reference other Directories without duplicating their TDs:
- a Directory wanting to reference other Directories should include a Thing Link with a "describedby" relation to the
+ a Directory wanting to reference other Directories should include a Thing Link with a "describedby" relation to the
TD of the other Directory service. Then the above process would expand the Thing Link to obtain the actual TD of the Directory,
and then (optionally) use the appropriate Directory affordance to access the contents of the linked Directory.
Note that such a Thing Link points at the TD of the Directory, not at the Directory itself. These
@@ -648,135 +649,145 @@
Exploration Mechanisms
To do: Description of supported explorations, and requirements for
new exploration mechanisms.
+
-
+
+
Overview
+
- [[[#exploration-class-diagram]]] depicts the high-level information
- model for self-describing and directory services.
- A directory may contain TDs and at the same time provide a TD
- and act as a self-describing Thing.
- The exploration mechanisms are described in
- [[[#exploration-self]]] and [[[#exploration-directory]]].
-
-
+ [[[#exploration-class-diagram]]] depicts the high-level information
+ model for self-describing and directory services.
+ A directory may contain TDs and at the same time provide a TD
+ and act as a self-describing Thing.
+ The exploration mechanisms are described in
+ [[[#exploration-self]]] and [[[#exploration-directory]]].
+
+
+
Ontology
+
-
- [[[#discovery-class-diagram-ontology]]] illustrates the Discovery ontology
- as an extension of the Thing ontology.
-
-
- The ontology includes a class for metadata that are associated with
- TDs stored in a directory.
- This class is called `RegistrationInformation` and described as part
- of the directory specification in [[[#exploration-directory-registration-info]]].
-
+
+ [[[#discovery-class-diagram-ontology]]] illustrates the Discovery ontology
+ as an extension of the Thing ontology.
+
+
+ The ontology includes a class for metadata that are associated with
+ TDs stored in a directory.
+ This class is called `RegistrationInformation` and described as part
+ of the directory specification in [[[#exploration-directory-registration-info]]].
+
-
- Moreover, the Discovery ontology defines two new Thing Description classes
- that may be used to model special exploratory metadata:
-
+
+ Moreover, the Discovery ontology defines two new Thing Description classes
+ that may be used to model special exploratory metadata:
+
-
- The type URIs used below are tentative and subject to change.
-
+
+
`ThingDirectory`
+
+ The type URIs used below are tentative and subject to change.
+
-
Thing Directory
-
-
- A TD which describes a Thing Description Directory instance MUST use type `ThingDirectory` from the
- discovery context or URI `https://www.w3.org/2021/wot/discovery#ThingDirectory`.
-
-
- [[[#directory-api-spec]]] which describes the API of the
- Thing Description Directory is an example of this TD class.
-
-
-
-
Thing Link
-
-
- A TD which describes a reference to another TD MUST use type `ThingLink` from the
- discovery context or URI `https://www.w3.org/2021/wot/discovery#ThingLink`.
-
-
- A Thing Link MUST define the referenced TD as a Link with
- `describedby` link relation type, `application/td+json` media type
- and `href` set to the target URL.
-
+
+ A TD which describes a Thing Description Directory instance MUST use type `ThingDirectory` from the
+ discovery context or URI `https://www.w3.org/2021/wot/discovery#ThingDirectory`.
+
+
+ A TD of this class can be derived from Directory's Thing Model; see [[[#directory-api-spec]]].
+
+
+
+
+
`ThingLink`
+
+ The type URIs used below are tentative and subject to change.
+
+
+
+ A TD which describes a reference to another TD MUST use type `ThingLink` from the
+ discovery context or URI `https://www.w3.org/2021/wot/discovery#ThingLink`.
+
+
+ A Thing Link MUST define the referenced TD as a Link with
+ `describedby` link relation type, `application/td+json` media type
+ and `href` set to the target URL.
+
-
- [[[#example-td-link-type]]] is an example Thing Link.
-
+
+ [[[#example-td-link-type]]] is an example Thing Link.
+
-
-
+
+ A Thing Link can be used in various scenarios. For example:
+
+
+ A self-describing Thing with limited computational resources intends
+ to describe itself: host a minimal TD (Thing Link) locally
+ and references a larger one with the full details hosted at a
+ different URL, perhaps in a directory.
+
+
+ A self-describing Thing or proxy has a very large or dynamic description:
+ registers a small or static TD (Thing Link) in a
+ directory which references the actual TD hosted at the edge.
+