Subject: Re: [urn] draft-ietf-urnbis-rfc2141bis-urn-16: 'name' and 'namespace'

From: Peter Saint-Andre <[email-masked]>
Date: Tue, 28 Jun 2016 17:54:31 -0600

On 5/5/16 5:48 AM, Henry S. Thompson wrote:
> The words 'namespace' and 'name' are used throughout the spec in ways
> that for this reader at least appear to have different meanings at
> different points, sometimes to the point of apparent contradiction.

Thanks for pointing out these discrepancies.

> Consider for example the following from section 2.2:
>
>   "Depending on the rules governing a namespace, strings that are
>    valid in an NSS associated with that namespace might contain
>    characters that are not allowed by the "pchar" production
>    referenced above (e.g., characters outside the ASCII range or,
>    consistent with the restrictions in RFC 3986, the characters '/',
>    '?', '#', '[', and ']').  While such a string might be a valid
>    name, it is not a valid URN until it has been translated into a
>    conformant NSS."
>
> Stripping out a lot of detail, this says "[there are] strings that are
> valid in an NSS [which render it not] a conformant NSS".
>
> While some readers will be familiar with the sense of these words
> which I think you are relying on, where e.g. 0-205-31342-6 is a name
> in the ISBN namespace, others will not be.
>
> I would strongly recommend that you adhere much more closely to, and
> document, something close to the pattern of usage in the following,
> from section 1:
>
>   Some URN namespaces create names that exist only as URNs, whereas
>   others create URNs out of names that already exist in other
>   identifier systems
>
> That is, always use
>   'URN namespace' when you mean the thing assigned to an NID;
>   'identifier systems' when you mean other (usually pre-existing)
>      kinds of managed collections of names;
>   'URN' when you mean a member of a URN namespace;
>   'NSS' when you mean the URN-namespace-specific part of a URN;
>   'name' _only_ when you mean a member of a non-URN identifier system.

All of those make sense to me except the last one. After all, a URN is a 
uniform resource *name* so it must be a kind of name. I would prefer to 
use the term 'identifier' to refer to a member of a non-URN identifier 
system.

> And make these definitions explicit in 1.2, and make it explicit that
> by 'URN namespace' you mean _only_ the set of URNs allowed by the
> rules governing that URN namespace (extension) or those rules
> themselves (intension), _not_ the corresponding names or management of
> any related non-URN namespace.
>
> It will be tedious, and occasionally lead to less concise statements,
> to make a pass over the document to do this, but the improvement in
> clarity will IMO be worth it.  Give me the write token for a week, and
> I'll do it, if you like.

I'll be happy to make these fixes in the next version.

Peter