Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Appropropriate URN namespace now that X- is deprecated?

As recently as 2002 the IETF was recommending in RFC 3406 that we should use x- prefixes for URN namespaces we didn't want to register, e.g. urn:x-acme:foobar. Now that the IETF has deprecated the x- prefix in RFC 6648, how are we supposed to construct URNs for namespaces we don't intend to register?

As an aside, I note that RFC 6648 specifically mentions URNs: "In almost all application protocols that make use of protocol parameters (including ... URNs ...), the name space is not limited or constrained in any way, so there is no need to assign a block of names for private use or experimental purposes." I find this an odd thing to say, as RFC 3406 claims, "The space of URN namespaces is managed. I.e., not all syntactically correct URN namespaces (per the URN syntax definition) are valid URN namespaces."

So what is best to use for custom but unregistered URN namespaces? Can I just drop the x- and use, for my example company Acme, a URN such as urn:acme:foobar?

like image 494
Garret Wilson Avatar asked Sep 07 '14 15:09

Garret Wilson


People also ask

What is URN namespace?

A URN namespace itself has an identifier in order to - ensure global uniqueness of URNs - (where desired) provide a cue for the structure of the identifier For example, ISBNs and ISSNs are both collections of identifiers used in the traditional publishing world; while there may be some number (or numbers) that is both ...

Are URNs case sensitive?

Syntax. The leading scheme ( urn: ) is case-insensitive.

What is a URN in HTTP?

A URN (Uniform Resource Name) is an Internet resource with a name that, unlike a URL, has persistent significance - that is, the owner of the URN can expect that someone else (or a program) will always be able to find the resource.

What is URN in oauth?

The registration procedure for new entries requires a request in the form of the following template and is "Specification Required" per RFC 5226 [RFC5226]. URN: The URI that identifies the registered functionality. Common Name: The name by which the functionality being registered is generally known.


1 Answers

RFC 6648 says:

Does not override existing specifications that legislate the use of "X-" for particular application protocols […]; this is a matter for the designers of those protocols.

So it’s still fine to use experimental NIDs as defined by RFC 3406.

And what RFC 6648 recommends for new protocols (and, I assume, updates of existing protocols) is essentially what is currently the case with URNs anyway (minus the experimental X- prefix):

  • there is a "potentially unlimited value-space" for NIDs
  • there are "clear registration procedures" defined (I have no idea what they understand under "simple")

So in case experimental X- NIDs should get deprecated in an updated RFC, I wouldn’t expect an alternative to having to register NIDs.

If you don’t want to register NIDs (even not an Informal NID), you might want to use a different URI scheme. tag comes to mind (tag:example.com,2013:foobar).

like image 142
unor Avatar answered Sep 27 '22 23:09

unor