Use of URNs for PMIs

I took an action item to investigate the state of play around 
registration of URNs. The executive summary is that we should be just 
fine, as long as we're willing to do a little bit of work in the IETF 
and agree on measures to assure uniqueness within a namespace.

In many ways, sing URNs turns out to be simpler than I originally 
anticipated. The general process [1] is to publish an RFC through the 
IETF to reserve the namespace. The IETF does not manage sub-namespaces: 
that's the responsibility of the registrant or some third party they 
identify. Among other more mundane things, the registering RFC has to 
identify a specific authority responsible for the namespace as well as a 
description of how uniqueness and persistence of identifiers is achieved.

The OID URN space is a reasonably good example, as its registration 
document [3] is short, and provides a clear delegation model.

The trick for us would be describing the exact mechanism we plan to use 
to maintain uniqueness. I know the W3C has historically been wary of 
setting up a formal registration function, and I doubt we're going to 
change that for the payments effort [4]. One approach for allowing the 
W3C to be an authority over a unique namespace (which I believe would be 
valid, although others have disagreed in the past) would be to state 
that uniqueness of URNs is enforced by a requirement that URN-identified 
payment methods are only valid when they appear in W3C-published 
documents. I'll note that this is, for example, how the uniqueness of 
property and method names on "window" is enforced at the moment, and 
that appears to be working just fine.

____

[1] https://tools.ietf.org/html/rfc3406

[2] Technically, there are three different kinds of URNs with different 
processes involved: formal, informal, and experimental. In practice, the 
only one that makes even a little bit of sense for what we're trying to 
do is a formal namespace.

[3] https://tools.ietf.org/html/rfc3061

[4] To be clear, I believe such a registration function would be ideal 
for this and myriad other cases. If Ian has some notion that running 
this flag up the hill once more isn't likely to be completely fruitless, 
I'd recommend trying it again.
-- 
Adam Roach
Principal Platform Engineer
Office of the CTO

Received on Monday, 8 August 2016 21:35:21 UTC