4

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?

Garret Wilson
  • 14,167
  • 20
  • 115
  • 211
  • Out of interest, if you don’t want to register your NID, why do you want to use `urn` in the first place? Couldn’t you use a different URI scheme? – unor Sep 07 '14 at 19:37
  • 1
    URNs are prettier. `http` scheme URLs are confusing to the developers less well trained on the intricacies of resource identification, etc. But it doesn't matter. I just wanna use `urn`s. They were made exactly for what I want to do. The IETF says I no longer need to use `x-` prefixes and that the "name space is not limited or constrained in any way". So what is recommended? That's the question, and that question would remain relevant and useful even if I later decided not to use URNs in this particular project. – Garret Wilson Sep 08 '14 at 16:19

1 Answers1

5

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).

unor
  • 82,883
  • 20
  • 183
  • 315
  • 1
    Thanks for sharing about tag! I like the idea of "federating" the minting of new identifiers. The tag scheme certainly fits the bill. Anyone with a domain or an email address can create them! – LexH May 13 '19 at 23:25