An Object Identifier (OID) is an extensively used identification mechanism jointly developed by ITU-T and ISO/IEC for naming any type of object, concept, or “thing” with a globally unambiguous name. (More information about OIDs can be found at www.oid-info.com)
There are three well-known notations for OIDs:
2.999
{joint-iso-itu-t(2) example(999)}
/Joint-ISO-ITU-T/Example
WEID (WEhowski IDentifier) is another notation for OIDs, developed by Till Wehowski and Daniel Marschall:
weid:root:2-RR-2
In the initial version of the WEID specification of 2011, only OIDs below the WEID root arc 1.3.6.1.4.1.37553.8 could be used. In a later definition by Daniel Marschall, any existing OID can be written in WEID notation, by defining sub-namespaces.
The registry of sub-namespaces (URN prefixes) has currently the following entries:
weid:
(Also called “Class C” WEID)
1.3.6.1.4.1.37553.8
1.3.6.1.4.1.37553.8.32488192274
can be written as weid:EXAMPLE-3
(3
is the check digit)weid:pen:
(Also called “Class B” WEID)
1.3.6.1.4.1
1.3.6.1.4.1.37476.9999
can be written as weid:pen:SX0-7PR-6
(6
is the check digit)weid:root:
(Also called “Class A” WEID)
2.999
can be written as weid:root:2-RR-2
(2
is the check digit)To get an OID in accordance with Recommendation ITU-T X.600 assigned, you need to find a Registration Authority that assigns you an OID. You can obtain an OID as WEID and manage your own arc, e.g. by:
The construction of a WEID is demonstrated with the example OID 2.999:
2
and 999
) are converted from base 10 to base 36, so the arcs become 2
and RR
.-
, so we have now 2-RR
.weid:root:
, so we now have weid:root:2-RR
In the end, a Luhn-based check digit (called WeLuhn) is added. If the WEID contains at least one arc, then the check digit is preceded by a hyphen.
2.999
)2-RR
. Padding zeros must not be present and need to be stripped.2RR
.A
will be replaced with 10
, B
will be replaced with 11
, etc., so we now have 22727
This number is the payload for the normal Luhn algorithm. https://en.wikipedia.org/wiki/Luhn_algorithm which works as follows:
s
.((10-s mod 10) mod 10)
.
2
2.999
is weid:root:2-RR-2
.Recommendations for WEID notation (as of Spec Change 8):
weid:pen:SX0-7PR-6
should be chosen rather than weid:root:1-3-6-1-4-1-SX0-7PR-6
weid:
, weid:pen:
, weid:root:
) is case insensitive, but it is recommended to write it in lowercase.0
characters is valid (e.g. weid:000EXAMPLE-3
), but not recommended. The paddings do not count toward the WeLuhn check digit.Recommendations for WEID notation (as of Spec Change 9):
weid:root:2-RR-?
instead of weid:root:2-RR-2
. One useful scenario can be the documentation of incomplete/template WEIDs. Another usage is converters (like our online converter) which can help you replace the wildcard with the correct checksum.Changes with Spec Change 10: Domain-WEID:
.
) are treated as domain names.weid:example.com:ABC-DEF-?
is equal to weid:9-DNS-COM-EXAMPLE-ABC-DEF-?
.Changes with Spec Change 11: Proprietary Namespaces:
x-
, for example: weid:x-contoso:ABC-DEF-?
could be a WEID defined by Contoso Ltd..
).Currently, the following custom namespaces are known:
weid:x-frdl:[Base36_NS]-[SubNS]:[Base36_ID]-[CheckDigit]
to be defined/implemented by Frdlweb (base idea here).Additional notes:
6ba7b812-9dad-11d1-80b4-00c04fd430c8
according to IETF RFC-4122).The current version of the specification is 11, which is identified with the OID 1.3.6.1.4.1.37553.8.1.8.1.6.1.11 (weid:1-8-1-6-1-B-7).
© WEID is developed by Daniel Marschall / ViaThinkSoft and Till Wehowski.