Syntax References represent established works of other organizations. Such works – among others – can define semantic information, topologies, a language for a code set, or dictionaries and facilitate the programmatic evaluation or the lookup of a quantity or unit e.g. in a dictionary or ontology. They can be publicly defined by standard bodies such as IEC or proprietary (e.g. vendor-specific dictionaries).

The Quantities and Unit Model provides a powerful way to relate quantities and units to such Syntax References using the Dictionary References model defined in OPC 10000-19.

Table 33 lists Syntax References that are applied in certain markets. This list can be extended in future versions. Vendors or organizations can also specify additional Syntax References.

An overview for each Syntax Reference in this table is provided in Annex C.

Table 33 – List of Syntax References

Common Name

Syntax Reference URI

Full Name

UCUM

https://ucum.org

Unified Code for Units of Measure

QUDT

https://qudt.org

Quantities, Units, Dimensions and Types Ontology

IEC CDD

https://cdd.iec.ch/

Common Data Dictionary

UNECE

https://unece.org/trade/uncefact/cl-recommendations

Codes for Units of Measure Used in International Trade

LATEX_SIUNITX

https://www.namsu.de/Extra/pakete/Siunitx.html

LaTeX SI Unit Extension

HasDictionaryEntry is used to define the relationship to a Syntax Reference by referencing from quantity or unit Nodes to an instance of a SyntaxReferenceEntryType. Each quantity or unit instance can have zero, one or more such references.

Instances of SyntaxReferenceEntryType have a well-defined NodeId as defined in Table 34.

Table 34 – Definition of NodeId for instances of the SyntaxReferenceEntryType

Name

Type

Definition for instances of the SyntaxReferenceEntryType

NodeId

structure

namespaceIndex

UInt16

The NamespaceTable index for the Syntax Reference URI (see Table 33).

IdType

Enum

String

identifier

*

The Syntax Reference identifier (SyntaxReferenceId), see 6.3.3

When calling the Browse Service for a Quantity or Unit Node, the response includes the HasDictionaryEntry Reference together with the well-defined NodeId for the SyntaxReferenceEntryType instance. The actual instance therefore is not required in the AddressSpace.

Figure 7 provides an example of References to external works.

image010.png

Figure 7 – References to external works

Table 35 defines the identifiers for each Syntax Reference.

Table 35 – List of Syntax Reference Identifiers

Common Name

Identifier

UCUM

QuantityType instances:

The UCUM Syntax ReferenceID for quantities shall include the prefix “quantityKind:” followed by the name of the quantity.

UnitType instances:

The UCUM SyntaxReferenceId for units shall include an expression based on the UCUM syntax making use of the symbols named in the “C/S” entry of the UCUM spec (https://ucum.org/ucum.html).

Codes (expressions) for common units are defined in Annex B.

QUDT

QuantityType instances:

The QUDT Syntax ReferenceID for quantities shall include the prefix “quantityKind:” followed by the name of the quantity as in .

Example quantities are in C.2

UnitType instances:

The QUDT Syntax ReferenceID for units shall include the prefix “unit:” followed by the name of the unit as in .

Example units are in

IEC CDD

QuantityType instances:

The IEC CDD SyntaxReferenceId shall include the IRDI of the respective quantity.

Example quantities are in C.4.

UnitType instances:

The IEC CDD SyntaxReferenceId shall include the IRDI of the respective unit.

Example units are in C.4.

UNECE

QuantityType instances:

There are no UNECE Syntax References for quantities.

UnitType instances:

The UNECE SyntaxReferenceId shall include the common code from “Codes for Units of Measurement” published by the “United Nations Centre for Trade Facilitation and Electronic Business” (see REF UNECE \h \* MERGEFORMAT UNECE).

Example units are in C.3.

LATEX_SIUNITX

QuantityType instances:

There are no LATEX_SIUNITX Syntax References for quantities.

UnitType instances:

The LATEX_SIUNITX SyntaxReferenceId shall include the leading slash, the keyword of the macro as well as the entire argument.

Example units are in C.5.