UX design
The use of Information Management in the Watson IoT Platform is an optional capability.
- Operators can view raw event data in JSON format sent by devices to the IoT platform
- Developers can build IoT applications that depend on the custom JSON message payload retrieved from the last event cache using the IoT platform APIs
However, using Information Management in Watson IoT Platform developers can get the benefits of parsing, transforming, normalizing, enriching, and abstracting data using the Information Management data processing pipeline. The Operator or Developer configures Information Management using the Interface section on a Device Type.

The user experience with the Information Management user experience is separated into two modes; a simple flow and an advanced flow.
The user experience with the Information Management user experience is separated into two modes; a simple flow and an advanced flow. The simple flow uses a simple interface editor and lets users select and filter the data properties that represent the device state. The advanced flow uses an advanced interface editor and provides richer capabilities to define an event type schema. Developers can also perform filtering and transformation of event data to multiple reusable interfaces that normalize device states across multiple device types.
Designing a Simple User Experience for Device State Properties
The simple interface editor appeals to early adaptors getting started with IoT, Devices, and Device State. It is essential to quickly get started, connect devices, identify the properties exposed by the devices and make them available to other capabilities in the IoT platform. The simple model allows users to look at incoming events, select the data that is of interest, and create the readable name and data types for the exposed properties.
The simple interface editor user experience lets users view the message payload of a device event. The user then selects the properties that should be exposed and chooses a data type for the data property.
The Information Management processing pipeline will receive the event, filter the data, and expose the state properties. The state is exposed in the IoT platform dashboard and accessible through the IoT platform APIs.
Using the simple interface editor to expose a temperature property “t” from the TemperatureSensor device.
Designing an Advanced User Experience using Physical and Logical Interfaces
The advanced interface editor exposed a richer set of capabilities and flexibility in defining the information model. Two additional concepts are exposed to the user in the user experience; physical interfaces and logical interfaces.
A physical interface is used to model the interface between a physical device and Watson IoT Platform. Event types can be associated with physical interfaces. The physical interface editor has been designed to support multiple ways of defining an event-type schema. Developers can
- Let the IoT platform listen for events from devices and reverse engineer an event type schema from the event payload.
- Manually edit an event type schema by adding event properties
- Import an existing event type schema from a file
Using the simple interface editor to define a ‘t’ : Number temperature state property for the TemperatureSensor device type
A logical interface is used to define the normalized view onto the device state in the Watson IoT Platform and is usually consumed by applications. A logical interface must be associated with a logical interface schema that defines the state properties. The state is updated in response to inbound device events. The advanced interface editor provides a guided user experience in creating a logical interface.
As logical interfaces are highly reusable across device types is recommended to use an interface name that states the purpose of the abstraction, rather than the name of the device type. For example, it is recommended to use names like ‘iTemperature’ and ‘iHumidity’ for logical interfaces than ‘TiSenstorTag-Temperature’ that makes it less reusable across an ecosystem of temperature sensor products. The advanced editor also exposes the library of schemas and interfaces for reuse.
State property in a logical interface is bound to event properties using a mapping expression. Such a mapping expression may be as simple as just referencing the event property. It may also be as complex as a JSONata expression that computes a typed value using event properties, other state property values, constant values. JSONata expression provides arithmetic functions, string, array and time functions, and other utilities.
Using the advanced interface editor to define a ‘iTemperature’ logical interface with an exposed temperature state property “Temperature” from a TiSensorTag device.
Designing an Advanced User Experience for Multiple Logical Interfaces
Developers using the advanced interface editor can add multiple logical interfaces to a device type. Such added interfaces can be new definitions or reused interfaces selected from the Interface Library. A shared logical interface provides a fixed set of state properties and a new set of mapping expressions that binds the fixed state properties to the event properties defined in the physical interface of the device type.
Using the advanced interface editor to define a second ‘iHumidity’ logical interface with an exposed temperature state property “Humidity” from a TiSensorTag device.
Designing an Advanced User Experience for Activating Draft Interfaces
The advanced interface editor will save changes to physical and logical interfaces as Draft versions of the resources. A draft resource needs to be Activated to be added to the Information Management processing pipeline. The design of the advanced interface editor clearly indicates the state of an interface resource. The timestamp of the activation (deployment) is shown in the user interface.

Updating a resource will create a draft version.

Changes to interface resources have to be activated to be deployed into the Information Management processing pipeline.
Designing an Advanced User Experience for Mapping Expressions
State property in a logical interface is bound to event properties using a mapping expression. Such a mapping expression may be as simple as just referencing the event property. It may also be as complex as a JSONata expression that computes a typed value using event properties, other state property values, constant values. JSONata expression provides arithmetic functions, string, array and time functions, and other utilities.
The expression editor user experience design provides two editor modes; an expression builder and a code editor mode. The expression builder provides a graphical interface for selecting expression elements like payload properties, values, arithmetical operators. The code editor design provides a text editor for JSONata expressions. Expressions use keywords like $event to reference physical interface event properties by name, or $state to reference logical interface state properties by name. For example, “= $event.d.ambientTemp” to reference the ambient temperature event property in the TiSensorTag status event.
Using the Expression Editor to bind state properties to event properties.
Note, a state property may be an object of values. In the example above a Temperature property exposes the Celsius value. The state object exposed computed temperature values converted to Fahrenheit, Celsius, and Kelvin using mapping expressions all bound to the TiSensorTag ambient temperature value.
Related Designs
New designs for Information Management are currently developed
- Design for Things Types and Thing Instance user experience
- Design for an Interface Library user experience
- Design for new Types vs Instance navigation user experience
Getting Started with Watson IoT Platform Data Management
DevZone Quick Lab at Think 2018 on Data Management.