6.3 Syntax References

6.3.1 General

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 38 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 38 – List of Syntax References
Common Name Syntax Reference URI Full Name
UCUMhttps://ucum.orgUnified Code for Units of Measure
QUDThttps://qudt.orgQuantities, Units, Dimensions and Types Ontology
IEC CDDhttps://cdd.iec.ch/Common Data Dictionary
UNECEhttps://unece.org/trade/uncefact/cl-recommendationsCodes for Units of Measure Used in International Trade
LATEX_SIUNITXhttps://www.namsu.de/Extra/pakete/Siunitx.htmlLaTeX SI Unit Extension

6.3.2 Using Dictionary References

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 39.

Table 39 – Definition of NodeId for instances of the SyntaxReferenceEntryType
NameTypeDefinition for instances of the SyntaxReferenceEntryType
NodeIdstructure

namespaceIndex

UInt16The NamespaceTable index for the Syntax Reference URI (see Table 38).

IdType

EnumString

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 8 provides an example of References to external works.

Figure 8 – References to external works

6.3.3 Syntax Reference Identifier

Table 40 defines the identifiers for each Syntax Reference.

Table 40 – 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 https://www.qudt.org/doc/DOC_VOCAB-QUANTITY-KINDS.html.

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 https://www.qudt.org/doc/DOC_VOCAB-UNITS.html.

Example units are in C.2.

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 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.