Uniform resource name
In computing, a uniform resource name (URN) is the historical name for a uniform resource identifier (URI) that uses the
urn scheme. A URI is a string of characters used to identify a name of a web resource. Such identification enables interaction with representations of the web resource over a network, typically the World Wide Web, using specific protocols.
Defined in 1997 in RFC 2141, URNs were intended to serve as persistent, location-independent identifiers, allowing the simple mapping of namespaces into a single URN namespace. The existence of such a URI does not imply availability of the identified resource, but such URIs are required to remain globally unique and persistent, even when the resource ceases to exist or becomes unavailable.
Since RFC 3986 in 2005, the use of the term has been deprecated in favor of the less-restrictive "URI", a view proposed by a joint working group between the World Wide Web Consortium (W3C) and Internet Engineering Task Force (IETF). Both URNs and uniform resource locators (URLs) are URIs, and a particular URI may be a name and a locator at the same time.
URNs were originally intended in the 1990s to be part of a three-part information architecture for the Internet, along with URLs and uniform resource characteristics (URCs), a metadata framework. However, URCs never progressed past the conceptual stage, and other technologies such as the Resource Description Framework later took their place.
<URN> ::= "urn:" <NID> ":" <NSS>
This renders as:
urn: sequence is case-insensitive.
<NID> is the namespace identifier, which determines the syntactic interpretation of
<NSS>, the namespace-specific string. The functional requirements for uniform resource names are described in RFC 1737.
In order to ensure the global uniqueness of URN namespaces, their identifiers (NIDs) are required to be registered with the IANA. Registered namespaces may be "formal" or "informal". An exception to the registration requirement is made for "experimental namespaces".
Formal namespaces are those where some Internet users are expected to benefit from their publication, and are subject to several restrictions. They must:
- not be an already-registered NID
- not start with
x-(see "Experimental namespaces", below)
- not start with
- not start with
XY-, where XY is any combination of two ASCII letters
- be more than two letters long.
Informal namespaces are registered with IANA and assigned a number sequence (chosen by IANA on a first-come-first-served basis) as an identifier, in the format
Informal namespaces are fully fledged URN namespaces and can be registered in global registration services.
Experimental namespaces take the form
Namespaces of this form are intended only for use within internal or limited experimental contexts, and are not required or expected to be globally unique.
RFC 6648 deprecates the the use of "X-" notation for new ID names, but makes no recommendation on substituting existing "X-" names, and does not override existing specifications that require the use of "X-". 
||The 1968 book The Last Unicorn, identified by its book number.|
||The 2002 film Spider-Man, identified by its audiovisual number.|
||The scientific journal Science of Computer Programming, identified by its serial number.|
||The IETF's RFC 2648.|
||The default namespace rules for MPEG-7 video metadata.|
||The OID for the United States.|
||A version 1 UUID.|
||A National Bibliography Number for a document, indicating country (
||A directive of the European Union, using the Lex URN namespace.|
A URN resolver is responsible for initiating and sequencing the queries that ultimately lead to a full resolution (translation) of a URN name or a "resolution request", e.g., a request for translation of a URN name into a URL.
Absence of DOI namespace
The maintainers of the digital object identifier (DOI) system have deliberately not registered a DOI namespace for URNs, stating that:
URN architecture assumes a DNS-based Resolution Discovery Service (RDS) to find the service appropriate to the given URN scheme. However no such widely deployed RDS schemes currently exist.... DOI is not registered as a URN namespace, despite fulfilling all the functional requirements, since URN registration appears to offer no advantage to the DOI System. It requires an additional layer of administration for defining DOI as a URN namespace (the string urn:doi:10.1000/1 rather than the simpler doi:10.1000/1) and an additional step of unnecessary redirection to access the resolution service, already achieved through either http proxy or native resolution. If RDS mechanisms supporting URN specifications become widely available, DOI will be registered as a URN.
— International DOI Foundation, Factsheet: DOI System and Internet Identifier Specifications
- Archival Resource Key (ARK)
- .arpa — urn.arpa is for dynamic discovery
- Extensible resource identifier (XRI)
- Handle System
- Life Science Identifiers (LSID)
- The Magnet URI scheme, which uses URNs
- Persistent Uniform Resource Locator (PURL)
- Sollins, Karen; Masinter, Larry (December 1994). "Request for Comments: 1737: Functional Requirements for Uniform Resource Names". IETF. Retrieved 2012-12-07.
- Moats, Ryan (May 1997). "Request for Comments: 2141: URN Syntax". IETF. Retrieved 2012-12-07.
- Daigle, Leslie L.; van Gulik, Dirk-Willem; Faltstrom, Patrik (October 2002). "Request for Comments: 3406: Uniform Resource Names (URN) Namespace Definition Mechanisms". IETF. Retrieved 2012-12-07.
- Berners-Lee, Tim; Fielding, Roy; Masinter, Larry (January 2005). "Request for Comments: 3986: Uniform Resource Identifier (URI): Generic Syntax". IETF. Retrieved 2012-12-07.
- "Factsheet: DOI System and Internet Identifier Specifications". International DOI Foundation. October 2012. Retrieved 2012-12-06.
- W3C/IETF URI Planning Interest Group (21 September 2001). "URIs, URLs, and URNs: Clarifications and Recommendations 1.0". W3C. Retrieved 2012-12-07.
- Official IANA Registry of URN Namespaces
- Uniform Resource Names working group at IANA (now concluded)
- URNs and bibliographic citations in web authoring
- An example server-side URN resolver is described in RFC 2169.