The presented additional terms for the WoT Thing Description of this Companion Specification is identified by the following URI:

http://opcfoundation.org/UA/WoT-Binding/

In this specification, the prefix uav is used and associated to this namespace.

Vocabulary term

Description

Assignment

Type

uav:id

NodeId value as defined in OPC 10000-6: UA Part 6: Mappings (5.1.12 QualifiedName, NodeId and ExpandedNodeId String Encoding).

required

string

The OPC UA binding does not need mandatory UA specific forms terms, the default forms terms from WoT Thing Description can be reused. Associated NodeId information for an interaction affordance (properties or actions) are reflected by the corresponding href as specified in 6.2..

The UA services are expressed by the TD op term and its corresponding values. In the following, the op values will correspond the following OPC UA Services:

readproperty

UA Service Read

writeproperty

UA Service Write

observeproperty

UA Service Monitor

invokeaction

UA Service Call

If the default serialization of the OPC UA server is used, the contentType should be assigned with the value "application/octet-stream".

Optional, following term can be used within the WoT TD forms container:

Vocabulary term

Description

Assignment

Type

uav:browsePath

Provides information about the path of a UA node as string, following the guideline of OPC UA Part 4 (v104) in Chapter A.2, starting from the root node of an OPC UA address space. E.g., "/Root/Object/1:Machine/1:Pressure"

optional

String

The following table gives an overview of the additional terms that can be used within a WoT Thing Description.

Vocabulary term

Description

Assignment

Type

uav:object

Semantic annotation for @type of the TD root level to express that this TD instance represent a UA Object from the top level.

optional

-

uav:objectType

Semantic annotation for @type at root level to express that this instance represent a UA ObjectType (in TD context, this is called Thing Model (TM))Note: This annotation is only applicable in a Thing Model definition.

optional

-

uav:variable

Semantic annotation for @type of a TD property to associate a UA Variable.

optional

-

uav:variableType

Semantic annotation for @type of a Thing Model property to associate a UA Variable Type.Note: This annotation is only applicable in a Thing Model definition.

optional

-

uav:method

Semantic annotation for @type of a TD action to associate a UA Method.

optional

-

uav:hasComponent

Term to express there is one or more has-child relationship. The value entry is a nodeId of the child node.

Note: uav:hasComponent is equivalent to <Reference ReferenceType="HasComponent" IsForward="true">

optional

Array of String

uav:componentOf

Term to express there is one or more is-child-of relationship. The value entry is a nodeId of the parent node.

Note: uav:componentOf is equivalent to <Reference ReferenceType="HasComponent" IsForward="false">

optional

Array of String

uav:browseName

Provides the origin browse name of the UA node. The uav:browseName can be used at the top level to provide the browse name of the UA Object or UA ObjectType, and within the property or action level to give the browse name of the UA variable or UA method respectively.

optional

String

uav:mapToNodeId

This term can be used within a property definition to express that the associated runtime datapoint can be mapped to a (external) target OPC UA node (e.g. UA variable) with the corresponding NodeId.This term can be not used at the forms level.

See Section 8.2 for example usage.

optional

string

uav:mapToType

This term can be used within a property definition to express that the associated runtime datapoint can be mapped to a (external) target OPC UA type with the corresponding NodeId.This term can be not used at the forms level.

See Section 8.2 for example usage.

optional

string

uav:mapByFieldPath

This term can be only used with the uav:mapToType term. In the case that the target type of uav:mapToType is complex (e.g. based on BaseType 0:Structure), a specific field name can be addressed within this complex type definition to which the runtime data can be mapped to.

See Section 8.2 for example usage.

optional

string

Typically, OPC UA server uses namespaces from the OCP UA core, Companion Specifications and application specific namespaces. If it should be evident in the TD that different namepaces are used (e.g., visible by the uav:browseName or uav:browsePath terms), then these should be specified in the @context of the TD. The associated namespace index id should be associated as prefix value in the TD.

Example:

Lets assume there are namespaces used in a OPC UA server as described in the following nodeset:

image016.png

If the Thing Description (TD) utilizes definitions from these namespaces, they should be specified within the TD @context with the corresponding namespace index as a prefix, as illustrated here:

image017.png