WEID

WEID Notation | Implementations | Protocols | Products | WEID Consortium


WEID Specification

1. Introduction / What is a WEID?

  1. A WEID (WEhowski IDentifier) is a list of Base36 identifiers (0..9, A..Z), called arcs, delimited with dashes, and with a Luhn-based check-digit as the last arc.
  2. Examples of WEID are:
    • urn:x-weid:HELLO-WORLD-ABC-?
    • urn:x-weid:O-2-RR-?
    • urn:x-weid:D-COM-EXAMPLE-123-?
  3. The check-digit can either be calculated (see chapter 4), or it can be replaced with a ? which denotes a check-digit wildcard. 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.
  4. A WEID begins with the unofficial URN namespace urn:x-weid: (in accordance with IETF RFC 3406, x- stands for an unregistered experimental URN). The URN namespace (urn:x-weid:) is case-insensitive, but it is recommended to write it in lowercase.
  5. WEID are only valid if they are registered at the Frdlweb Registration Authority, or if one of the standard schemas (see chapter 2) is used.
  6. WEID has support for namespace-internal NSS qualifiers, expressed as colon-separated suffixes. For example, urn:x-weid:ABC-DEF-?:xyz123:456:/789 defines a qualifier xyz123:456:/789 that is meaningful for an application that knows how to handle urn:x-weid:ABC-DEF-?.
  7. Every WEID (excluding the information in NSS qualifiers) can be converted to an OID and vice versa using mappings (see chapter 3)
  8. The arcs in a WEID should be written in upper-case, but lowercase can be interpreted, too.
  9. Padding with 0 characters is valid (e.g., urn:x-weid:000EXAMPLE-?), but not recommended. The paddings do not count towards the WeLuhn check digit.

2. Acquiring a WEID

(2.1) WEID based on Object Identifiers (OID)

If you own an OID or want to have a WEID that describes an OID, then you may use the root urn:x-weid:O-.... The arcs of the OID are converted from Base10 to Base36.

For example: The OID 2.999 will become urn:x-weid:O-2-RR-?.

To receive an OID in accordance with Recommendation ITU-T X.600, 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:

(2.2) WEID based on Object Identifiers (OID) inside the IANA PEN root

Since many OIDs are inside the IANA PEN root 1.3.6.1.4.1, a shortcut has been established to ensure shorter identifiers. The WEID root is urn:x-weid:P-..., followed by the PEN and any other OID arcs that are converted from Base10 to Base36.

For example, PEN 37476 will become urn:x-weid:P-SX0-? and the OID 1.3.6.1.4.1.37476.9999 will become urn:x-weid:P-SX0-7PR-?.

You can register a PEN here: https://pen.iana.org/pen/PenApplication.page

(2.3) WEID based on Universally Unique Identifier (UUID)

If you want to create a WEID based on a UUID, then you may use the root urn:x-weid:U-.... The next arc will be the UUID converted from Base128 to Base36. (This means, the numeric value which would be below OID 2.25, just coded as Base36 instead of Base10).

For example, the UUID 271b73c9-2b52-4581-8d71-b4a02d55813c will become urn:x-weid:U-2BCJZ644V24W81UOAX4BK4QWS-? which is equal to OID 2.25.51982432266164560271085076081362174268.

Any other WEID arcs are synchronous to the OID arcs, just converted between base10 and base36.

For example, urn:x-weid:U-2BCJZ644V24W81UOAX4BK4QWS-7PR-? is equal to OID 2.25.51982432266164560271085076081362174268.9999.

UUIDs can be created with a lot of tools, for example: https://misc.daniel-marschall.de/tools/uuid_mac_decoder/

(2.4) WEID based on Domain Name System (DNS) names

If you own a DNS name (e.g., a domain name) or want to have a WEID based on a DNS name, then you may use the root urn:x-weid:D-.... The next arcs will be the DNS name in reverse order, encoded in (NOT converted to!) Base36.

For example, example.com will become urn:x-weid:D-COM-EXAMPLE-?.

Any other WEID arcs are synchronous to the OID arcs, just converted between base10 and base36.

For example, urn:x-weid:D-COM-EXAMPLE-7PR-? is equal to OID 1.3.6.1.4.1.37553.8.13.16438.32488192274.9999.

TLD-Only domains such as urn:x-weid:D-MICROSOFT-? are allowed for the purpose of forming a Domain-WEID.

Any amount of subdomains such as urn:x-weid:D-DOM-EXAMPLE-SUB-? are allowed for the purpose of forming a Domain-WEID.

(2.5) Other WEID

Any other WEID (such as urn:x-weid:EXAMPLE-?) needs a registration/request at registry.frl.de. During that registration/request, an entry in the WEID root (together with an OID and, if required, an OID redirection) will be added.

3. Mapping a WEID to the OID tree

4. Calculation of the WeLuhn check-digit

The WeLuhn check digit of urn:x-weid:P-SX0-? is calculated as follows:

The online converter can be used to calculate the check digit (enter a WEID that ends with -? and receive the calculated check digit).

5. Deprecated notations

The following notations are deprecated, but are still valid for backwards compatibility:

(5.1) weid:

weid: is a deprecated notation of urn:x-weid:.

(5.2) urn:x-weid:pen:<pen-as-base36>-<base36>-?

urn:x-weid:pen:<pen-as-base36>-<base36>-? is a deprecated alternative notation of OID 1.3.6.1.4.1.<base10>.<base10>.

For example urn:x-weid:pen:SX0-7PR-? is equal to OID 1.3.6.1.4.1.37476.9999.

Use urn:x-weid:P-SX0-7PR-? instead (note that the check digit will be different).

(5.3) urn:x-weid:pen:<pen-as-base10>:<base36>-?

urn:x-weid:pen:<pen-as-base10>:<base36>-? is a deprecated alternative notation of OID 1.3.6.1.4.1.<base10>.<base10>.

For example urn:x-weid:pen:37476:7PR-? is equal to OID 1.3.6.1.4.1.37476.9999.

Use urn:x-weid:P-SX0-7PR-? instead (note that the check digit will be different).

(5.4) urn:x-weid:uuid:<uuid-as-base36>-<base36>-?

urn:x-weid:uuid:<uuid-as-base36>-<base36>-? is a deprecated alternative notation of OID 2.25.<base10>.<base10>.

For example, urn:x-weid:uuid:3D576PEXUZ1EVVF3MKRKOTYB-7PR-? is equal to OID 2.25.2098739235139107623796528785225371043.9999.

Use urn:x-weid:U-3D576PEXUZ1EVVF3MKRKOTYB-7PR-? instead (note that the check digit will be different).

(5.5) urn:x-weid:uuid:<uuid-as-split-base16>:<base36>-?

urn:x-weid:uuid:<uuid-as-split-base16>:<base36>-? is a deprecated alternative notation of OID 2.25.<base10>.<base10>.

For example, urn:x-weid:uuid:019433d5-535f-7098-9e0b-f7b84cf74da3:7PR-? is equal to OID 2.25.2098739235139107623796528785225371043.9999.

Use urn:x-weid:U-3D576PEXUZ1EVVF3MKRKOTYB-7PR-? instead (note that the check digit will be different).

(5.6) urn:x-weid:root:?

urn:x-weid:root:? is a deprecated alternative notation of the OID root.

For example, urn:x-weid:root:2-RR-? is equal to OID 2.999.

Use urn:x-weid:O-2-RR-? instead (note that the check digit will be different).

(5.7) urn:x-weid:<domain>.<tld>:?

urn:x-weid:<domain>.<tld>:? is a deprecated alternative notation of urn:x-weid:9-DNS-<tld>-<domain>-?.

In this NSS prefix, TLD-Only domains ARE NOT allowed for the purpose of forming a Domain-WEID, since it may collide with other NSS prefixes.

Use urn:x-weid:D-<tld>-<domain>-? instead (note that the check digit will be different).

(5.8) urn:x-weid:x-weid:x-...:...

urn:x-weid:x-weid:x-...:..., i.e., NSS prefixes starting with x- and not containing a dot (.), is a deprecated feature called “vendor-specific WEID”, creating WEID that are fully proprietary with custom rules, and they may or may not have a representation as OID.

The only use was urn:x-weid:x-frdl:[Base36_NS]-[SubNS]:[Base36_ID]-[CheckDigit] to be defined/implemented by Frdlweb (base idea here).

Instead of using a vendor-specific WEID, please use a regular WEID and add a namespace-internal NSS qualifier to that WEID.

(5.9) urn:x-weid:<tbd>:?

Although the list above is complete, it should be stated explicitly that any NSS prefixes are deprecated.

6. Additional notes

At www.weid.info, you can find more information and announcements of changes.

At https://co.weid.info/implementations.html, you can find an online converter that converts WEID to OID and vice versa, which can also calculate check-digits (enter a WEID with -? suffix, and you will get the correct check digit back).

The current version of the specification is 16, which is identified with the OID 1.3.6.1.4.1.37553.8.1.8.1.6.1.16 (urn:x-weid:1-8-1-6-1-G-?).

The standard is also released as ViaThinkSoft/Webfan Standard No. 3

Appendix A: Specification Change Changelog

The following change log entries are just for information. They might contain features that are already deprecated. Hence, only information outside the “Changelog” chapter may be used for implementations.

Changes as of Spec Change 1 - 7

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.

The detailed descriptions of the changes of Spec Change 1 through 7 are not available anymore. Only a short description from the OID RA exists:

  1. weid-spec-change-2013-6-27-1-identifier
  2. weid-spec-change-2013-6-27-2-weix-canceled-and-replaced
  3. weid-spec-change-2013-6-27-3-rooting-url-look-up-url-meaning-revision
  4. weid-spec-change-2013-0-1-commercial-repository
  5. weid-spec-change-2013-6-27-4-determine-seperator-colon
  6. weid-spec-change-2013-10-2-camel-case-identifier
  7. weid-spec-change-2013-10-2-thesaurus

Changes as of Spec Change 8: NSS prefixes (also called sub-namespaces)

Changes as of Spec Change 9: Wildcard check digit

Changes with Spec Change 10: Domain-WEID

Changes with Spec Change 11: Proprietary Namespaces

Changes with Spec Change 12: URN Namespace

Changes with Spec Change 13: UUID WEID

Changes with Spec Change 14: UUID WEID Update

Changes with Spec Change 15: UUID+PEN WEID Update

Changes with Spec Change 16: Large revamp of WEID

Appendix B: Future changes for consideration

© WEID is developed by Daniel Marschall / ViaThinkSoft and Melanie Wehowski.




Home - Frdlweb Network Webhosting - HickelSOFT - Software für den Getränkehandel -
Legal Terms - Privacy Policy - Imprint