An aspect is a service that provides data about the asset represented by a digital twin. The aspect provides an endpoint for one of the supported aspect data transports (HTTP or MQTT). Once a data consumer — usually a service that intends to work with the data — has found a relevant Digital Twin in the Digital Twin Registry, it can obtain the aspect’s endpoint and the identifier of the Aspect Model corresponding to the aspect’s runtime data from that digital twin.

The data consumer can then arbitrarily retrieve data from the aspect. It is the aspect’s implementer’s duty to ensure that the runtime data sent by the aspect corresponds to the respective Aspect Model.

A consumer of aspect data can be implemented specifically for one type of aspect. This can be done by referring to the corresponding Aspect Model at development time, or by generating client and deserialization code from it. Alternatively, it can be implemented generically by interpreting an Aspect Model at runtime and using that to deserialize corresponding data.