Identifiers
Atomic data object classes and instances often need to be uniquely and globally identified. Classes and instances are identified by an id.
Identifiers must be unique within the library, device or system class containing the object being defined.
Referencing Objects
When referencing defined atomic data objects, the identifier may either be relative or fully qualified. Relative identifiers refer to objects defined in the same library, device or system class, while fully qualified identifiers reference objects defined in other libraries or device classes.
All fully qualified identifiers begin with a Qualified Identifier,
and are followed by the unique identifier separated by a /
.
Relative identifiers begin with a /
and are always reference from the root of the containing library, device or
system.
If object classes are found nested inside categories, their URI shall include the
ids of the category hierarchy within the path, for instance: org.esta.lib.intensity.1/strobe/waveform
.
The following characters are reserved, and shall not be used in class or instance identifiers.
Reserved |
? # [ ] @ $ . : |
These characters are reserved and may not be used |
Path |
/ |
Delimiter for path components |
Instance |
! |
Delimiter for the instance number of a repeating atomic data object |
Modifier |
; |
Delimiter for modifiers |
Organization Identifier
An organization identifier namespaces other classes under a given organization. By convention, an organization
identifier is an organization’s registered domain name, reversed; for example, ACME corp headquartered at
acme.com would begin a qualified identifiers with com.acme
.
This follows the convention of reverse domain name notation.
Qualified Identifier
Libraries and Device Classes are identified by a qualified identifier. A qualified identifier is a string that begins with an Organization Identifier.
The organization identifier is followed by a type identifier, separated by a dot. Type identifiers can be any of the following:
Object |
Type Identifier |
---|---|
Library |
lib |
Device Class |
dev |
System |
sys |
The type identifier is followed by an identifying string for the library or device, separated by a dot.
The last part of the qualified identifier is a version number. This must be an integer in string representation, which must increment when any change is made to a published library or device.
Putting it all together, version 1 of ACME’s color library could have the qualified identifier
com.acme.lib.color.1
, or version 2 of ACME’s SuperLight could have the qualified identifier
com.acme.dev.superlight.2
.