# URN

Key: `technology.internet.urn`

Uniform Resource Name — a persistent, location-independent identifier in the format urn:nid:nss. Used for namespaced identifiers like ISBN URNs, OIDs, and UUID URNs.

Page: <https://meridian.online/docs/projects/finetype/types/technology/internet/urn>

Samples: `urn:isbn:0451450523`, `urn:ietf:rfc:2648`, `urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66`, `urn:oid:2.16.840`

## Background

### Origin

RFC 2141 describes URNs as intended to serve as persistent, location-independent resource identifiers.[[1]](https://www.rfc-editor.org/rfc/rfc2141.txt) RFC 2141 says URNs are designed to make it easy to map other namespaces into URN-space.[[1]](https://www.rfc-editor.org/rfc/rfc2141.txt)

RFC 8141, Uniform Resource Names (URNs), was written by P. Saint-Andre and J. Klensin and published in April 2017.[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt) RFC 8141 obsoletes both RFC 2141 and RFC 3406.[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt) RFC 8141 defines a URN as a URI that is assigned under the urn URI scheme and a particular URN namespace.[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt) RFC 8141 states that all URN namespaces and URNs that were valid under the earlier specifications remain valid.[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt) Under RFC 8141, a URN's assigned name is the string urn, a colon, a namespace identifier (NID), a colon and a namespace specific string (NSS).[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt) RFC 8141 says the syntactical correctness of a name starting with urn: is not sufficient to make it a URN, because the NID must also be registered.[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt)

IANA's Uniform Resource Names (URN) Namespaces page calls itself the official IANA registry of URN namespaces.[[3]](https://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml) The IANA registry lists formal URN namespaces as registered by expert review, per Section 6 of RFC 8141.[[3]](https://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml) RFC 8141 reserves NIDs made of urn- followed by digits, such as urn-7, for informal URN namespaces, whose NIDs IANA assigns.[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt)

RFC 3061, A URN Namespace of Object Identifiers, gives urn:oid:1.3.6.1 among its examples.[[4]](https://www.rfc-editor.org/rfc/rfc3061.txt) RFC 9562 gives urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 as an example of the URN namespace for UUIDs.[[5]](https://www.rfc-editor.org/rfc/rfc9562.txt) RFC 3187 discusses how International Standard Book Numbers can be supported within the URN framework.[[6]](https://www.rfc-editor.org/rfc/rfc3187.txt) The IANA registry lists the isbn namespace against the International ISBN Agency.[[3]](https://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml)

### Use

RFC 8141 notes that some URN namespaces assign URNs based on names already created in non-URN identifier systems, such as ISBNs, ISSNs or RFCs.[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt) RFC 7946, The GeoJSON Format, says its coordinate reference system is equivalent to the one identified by the OGC URN urn:ogc:def:crs:OGC::CRS84.[[7]](https://www.rfc-editor.org/rfc/rfc7946.txt) Treat a URN column as an identifier to join on and look up, not as a link to fetch. (Meridian's view)

RFC 8141 says any r-component, q-component or f-component in a URN must be ignored when determining URN-equivalence.[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt) RFC 8141 allows a URN namespace definition to add its own equivalence rules, such as case insensitivity of the NSS.[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt) RFC 3187 quotes RFC 2288 as saying that, before two ISBN URNs are compared, it is appropriate to remove all hyphens and convert any letter X to upper case.[[6]](https://www.rfc-editor.org/rfc/rfc3187.txt) Before joining two tables on URNs, apply the namespace's own equivalence rules rather than matching raw strings. (Meridian's view)

RFC 8141 allows the / character in the NSS, which earlier specifications did not permit.[[2]](https://www.rfc-editor.org/rfc/rfc8141.txt) Split a URN at its first two colons only, and keep everything after the second colon together as the namespace specific string. (Meridian's view)

### Where you'll meet it

The German National Library administrates and assigns URNs from the namespace urn:nbn:de.[[8]](https://www.dnb.de/EN/Professionell/Services/URN-Service/urn-service_node.html) The German National Library offers a URN resolving service for Germany and Switzerland.[[8]](https://www.dnb.de/EN/Professionell/Services/URN-Service/urn-service_node.html) According to the German National Library, other European national libraries also use urn:nbn.[[8]](https://www.dnb.de/EN/Professionell/Services/URN-Service/urn-service_node.html) The German National Library's resolver at nbn-resolving.org makes a URN operable as a link when the URN is added to the resolver address.[[8]](https://www.dnb.de/EN/Professionell/Services/URN-Service/urn-service_node.html)

## Sources

1. [URN Syntax](https://www.rfc-editor.org/rfc/rfc2141.txt) — standard
2. [Uniform Resource Names (URNs)](https://www.rfc-editor.org/rfc/rfc8141.txt) — standard
3. [Uniform Resource Names (URN) Namespaces](https://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml) — documentation
4. [A URN Namespace of Object Identifiers](https://www.rfc-editor.org/rfc/rfc3061.txt) — standard
5. [Universally Unique IDentifiers (UUIDs)](https://www.rfc-editor.org/rfc/rfc9562.txt) — standard
6. [Using International Standard Book Numbers as Uniform Resource Names](https://www.rfc-editor.org/rfc/rfc3187.txt) — standard
7. [The GeoJSON Format](https://www.rfc-editor.org/rfc/rfc7946.txt) — standard
8. [DNB  -  URN service](https://www.dnb.de/EN/Professionell/Services/URN-Service/urn-service_node.html) — organisation
