In most IoT projects, developers deal with a variety of technologies from multiple vendors. They need to handle different communication protocols, data models, and security requirements. Since IoT applications are usually tailored for particular uses, they can be challenging to expand, maintain, or reuse later on.

The Web of Things (WoT) simplifies IoT application development by using standard technology building blocks based on the successful Web paradigm. This approach enhances flexibility, interoperability, and cross-domain application use while enabling the reuse of established standards and tools. WoT also addresses the commercial limitations caused by IoT fragmentation.

WoT offers a simple interaction model with properties, events, and actions. Any IoT network interface can be described in terms of this abstraction. By using this abstraction, applications have a common anchor to retrieve an IoT service’s metadata as well as way to understand what and how the data and an IoT services' functions can be accessed.

The metadata of an IoT device, which includes all necessary information to enable a common abstraction, is documented in what is known as a WoT Thing Description (TD). The TD is a key component in the W3C Web of Things and serves as the entry point for an IoT instance, similar to how index.html functions for a website. It provides details on available data and functions, the protocols used, data encoding and structure, security mechanisms for access control, and additional machine-readable and human-readable metadata. A TD is written in JSON-LD and can be supplied by the IoT device itself or hosted externally in a repository such as a TD Directory.

In general, WoT is a protocol agnostic approach and provides a common mechanism to define how specific protocols such as MQTT, HTTP, CoAP or Modbus can be mapped to the WoT’s interaction properties-action-event abstraction.

This mapping and protocol specific metadata are provided by the WoT Binding Templates. A binding template for a specific protocol provides a guideline how a client can activate each WoT interaction abstraction through a corresponding network-facing interface for that protocol.