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-base.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 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 / PEN” 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:pen:(pen-base10):
(Alternative Notation for PEN WEID)
weid:pen:(pen-base10):xxx-?
is an alias of weid:pen:(pen-base36)-xxx-?
weid:pen:37476:7PR-?
is equal to weid:pen:SX0-7PR-?
weid:uuid:
(Also called “Class B / UUID” WEID)
2.25
2.25.2098739235139107623796528785225371043.37476
can be written as weid:uuid:3D576PEXUZ1EVVF3MKRKOTYB-SX0-?
weid:uuid:(uuid-base16):
(Alternative Notation for UUID WEID)
weid:uuid:(uuid-base16):xxx-?
is an alias of weid:uuid:(uuid-base36)-xxx-?
2.25.2098739235139107623796528785225371043.37476
can be written as weid:uuid:019433d5-535f-7098-9e0b-f7b84cf74da3:SX0-?
weid:root:
(Also called “Class A” WEID)
2.999
can be written as weid:root:2-RR-2
(2
is the check digit)weid:<domain.tld>:
(Also called “Domain / Class D” WEID)
weid:<sub>.<domain>.<tld>:...
is an alternative notation of weid:DNS-<TLD>-<DOMAIN>-<SUB>-...
weid:example.com:HELLO-WORLD-?
is equal to weid:DNS-COM-EXAMPLE-HELLO-WORLD-?
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:
namespace (that represents OID 1.3.6.1.4.1.37553.8
), new namespaces weid:root:
(which represents the root OID) and weid:pen:
(which represents OID 1.3.6.1.4.1
) are introduced.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).Changes with Spec Change 12: URN Namespace:
urn:x-weid:
(whereas x-
stands for an unregistered experimental URN). Hence, weid:2-RR-2
can be written as urn:x-weid:2-RR-2
.Changes with Spec Change 13: UUID WEID:
weid:uuid:<uuid-base16>:...
(Also called “Class B / UUID” WEID) is equal to weid:root:2-P-<uuid-base36>:...
which is equal to the root OID 2.25.<uuid-base10>....
Changes with Spec Change 14: UUID WEID Update:
weid:uuid:?
to be an alias of weid:root:2-P-3
which is OID 2.25
.Changes with Spec Change 15: UUID+PEN WEID Update:
weid:uuid:(uuid-base16):xxx-?
to be an alias of weid:uuid:(uuid-base36)-xxx-?
(which itself is an alias of weid:root:2-P-(uuid-base36)-xxx-?
) which represents OID 2.25.(uuid-base10).xxx
.weid:pen:(pen-base10):xxx-?
to be an alias of weid:pen:(pen-base36)-xxx-?
(which itself is an alias of weid:root:1-3-6-1-4-1-(pen-base36)-xxx-?
) which represents OID 1.3.6.1.4.1.(pen-base10).xxx
.Additional notes:
6ba7b812-9dad-11d1-80b4-00c04fd430c8
according to IETF RFC 9562).The current version of the specification is 15, which is identified with the OID 1.3.6.1.4.1.37553.8.1.8.1.6.1.15 (weid:1-8-1-6-1-F-8).
The standard is also released as ViaThinkSoft/Webfan Standard No. 3
© WEID is developed by Daniel Marschall / ViaThinkSoft and Melanie Wehowski.