Skip to main content

5. URN Namespaces

A URN namespace is a collection of names that obey three constraints: each name is (1) unique, (2) assigned in a consistent way, and (3) assigned according to a common definition.

  1. Uniqueness constraint: A name within the URN namespace is never assigned to more than one resource and never reassigned to a different resource. This holds true even if the name itself is deprecated or becomes obsolete.

  2. Consistent assignment constraint: A name within the URN namespace is assigned by an organization or created in accordance with a process or algorithm that is always followed.

  3. Common definition constraint: There are clear definitions for the syntax of names within the URN namespace and for the process of assigning or creating them.

A URN namespace is identified by a particular NID to ensure the global uniqueness of URNs and, optionally, to provide a cue regarding the structure of URNs assigned within a URN namespace.

Because the colon character (":") is used to separate "urn" from the NID and the NID from the NSS, it's tempting to think of the entire URN as being structured by colon characters. However, there is no implicit structure unless specified by a particular NID specification.

There are two types of URN namespaces: formal and informal. These are distinguished by the expected level of service, the information needed to define the URN namespace, and the procedures for registration.