1 of 22

W3C Web of Things Community Group

TPAC 2023 - Quick Intro to WoT

Cristiano Aguzzi - Ege Korkan

September 11th and 14th, 2023

1

Web of Things Community Group | TPAC 2023 | 2023-09-14

2 of 22

With a browser, you can access all the content in the Web

2

Web of Things Community Group | TPAC 2023 | 2023-09-14

3 of 22

You don’t have that with IoT

WoT is here to fix it!

3

Web of Things Community Group | TPAC 2023 | 2023-09-14

4 of 22

What is different in IoT?

  • Not just HTTP, welcome CoAP, MQTT, Modbus, OPC UA, BACnet and more…
  • Not just about a server serving data, there is influence of/on the real world
  • Walled gardens
    • No interoperability across vendors
    • Dependency to SDKs

Overall, there is a fragmentation problem

4

Web of Things Community Group | TPAC 2023 | 2023-09-14

5 of 22

A small part of the landscape

5

Web of Things Community Group | TPAC 2023 | 2023-09-14

6 of 22

Each domain has its own set of protocols, standards, tools, vocabularies

6

Web of Things Community Group | TPAC 2023 | 2023-09-14

7 of 22

Web of Things Now

7

Was a proposal on how to build REST APIs for IoT devices

Is about describing any kind of API for IoT devices using any protocol

Web of Things Community Group | TPAC 2023 | 2023-09-14

8 of 22

Now 4 normative deliverables (from WG), participants from over 35 organizations, dozens of implementations

8

Web of Things Community Group | TPAC 2023 | 2023-09-14

9 of 22

Mashups at Standardization Events (since 2016!)

9

Web of Things Community Group | TPAC 2023 | 2023-09-14

10 of 22

10

Family of W3C Standards

Open Source

Market Adoption

Developer Friendly

(Re)Usable API Descriptions for every Thing

Royalty Free and Open

Web of Things Community Group | TPAC 2023 | 2023-09-14

11 of 22

Web of Things, not a Protocol

11

Narrow Waist Model

Network Protocols

Bindings

Interaction Affordances

Semantics

Applications

Thing

Description

Web of Things Community Group | TPAC 2023 | 2023-09-14

12 of 22

Core Specification: Thing Description (TD)

12

Protocols

Domain Knowledge via

Semantic Annotations

Semantic Context

Security

Properties

Data Schema

Forms

Links

Actions

Data Schema

Forms

Events

Data Schema

Forms

JSON-LD Serialization

Effect in the real world

Discovery and

Usage by Clients

Web of Things Community Group | TPAC 2023 | 2023-09-14

13 of 22

What to do with a TD

  • Communicating with the Thing
  • Device Proxying and Protocol Translation
  • UI generation
  • Device Management
  • Business/Application Logic Composition (MAS and Mashups)

13

Web of Things Community Group | TPAC 2023 | 2023-09-14

14 of 22

Quick Deeper look into the Thing Description

14

Version 1.1 almost out!

Web of Things Community Group | TPAC 2023 | 2023-09-14

15 of 22

Deeper look: Thing Level

15

{

"@context": [

"https://www.w3.org/2022/wot/td/v11",

{"iot":"http://iotschema.org"}

],

"@type":"SprinklerStation",

"id": "urn:dev:ops:Agriculture-7331",

"title": "SoilStation",

"description": "A soil management station for use in agriculture",

"securityDefinitions": { "basic_sc": {"scheme": "basic"} },

"security": "basic_sc",

"properties": {

"temperature": {...}

},

"actions": {

"startSprinkler": {...}

},

"events": {

"tooDry": {...}

},

"links":["href":"docs", "rel":"about", "type":"text/html"]

}

Thing

Metadata

Definitions of

Interaction Affordances

Semantic Annotations

Security

Metadata

Links to other

Documents

Web of Things Community Group | TPAC 2023 | 2023-09-14

16 of 22

Deeper look: Interaction Level

16

"properties": {

"temperature": {

"title": "Temperature",

"type": "number",

"unit": "Celsius",

"forms": [...]

},

"actions": {

"startSprinkler":{

"description": "Run sprinkler for a set time",

"input": {

"type": "object",

"properties": {"timeout": {...}},

},

"forms": [...]

},

"events": {

"tooDry": {

"data": {"type": "string"},

"forms": [...]

}

Interaction

Metadata

JSON Schema

Concrete Protocol Information

Web of Things Community Group | TPAC 2023 | 2023-09-14

17 of 22

Deeper look: Protocol Level

17

"forms": [

{

"href": "http://example.com/light/currentdimmer",

"contentType": "application/json",

"op": "readproperty",

"htv:methodName": "GET"

},

{

"href": "mqtt://example.com/",

"op": "observeproperty",

"mqv:filter": "example/light/currentdimmer”,

"mqv:controlPacket": "subscribe"

}

]

Protocol and URI

of the Resource

Intended WoT

Operation

Protocol Specific Vocabulary

Web of Things Community Group | TPAC 2023 | 2023-09-14

18 of 22

Other WoT Specifications

18

Web of Things Community Group | TPAC 2023 | 2023-09-14

19 of 22

19

Binding

Templates

Scripting

API

Common Reference, Deployment Patterns,

Relationship between specifications

Extending TDs for different protocols, media types, ecosystems, etc.

How to find TDs in a network, TD management via a REST API

Programming API for building Consumer and Thing applications

Architecture

REC

Discovery

REC

A mechanism for creating subset of TD for less flexibility but easier implementability

Profile

REC*

Use Cases and Requirements

Where different WoT specifications get motivation for new features

Web of Things Community Group | TPAC 2023 | 2023-09-14

20 of 22

Where to Learn More?

20

Official Web Page of W3C WoT

Read documentation and

watch some videos on the official page

Join one of the CG office hours

Web of Things Community Group | TPAC 2023 | 2023-09-14

21 of 22

Stay in Touch with the CG

21

Web of Things Community Group | TPAC 2023 | 2023-09-14

22 of 22

WoT Related Events at TPAC

WoT CG Calendar: https://www.w3.org/groups/cg/wot/calendar/

WoT WG Calendar: https://www.w3.org/groups/wg/wot/calendar/

22

Web of Things Community Group | TPAC 2023 | 2023-09-14