Subject: Re: [urn] CTS and CITE2 URNs

From: Peter Saint-Andre <[email-masked]>
Date: Fri, 28 Jun 2019 15:35:22 -0600

My apologies for the delayed reply.

On 3/6/19 8:55 PM, Dale R. Worley wrote:
> Comments on these registrations:
> 
> As Julian points out, using '#' as part of the URN assigned-name is
> not allowed.
> 
> 
> CTS URN registration
> 
>    CTS URNs provide permanent, canonical, scholarly references to
>    texts or passages of text associated with the unique cultural
>    phenomena that humanists study.
> 
> s/unique cultural phenomena/cultural phenomena/ -- I can't see any
> manner in which the enormous number of humanistic phenomena are each
> "unique".

I defer to the registrants on that topic.

>    Syntax:
> 
>    The general structure of a CTS URN is as follows:
> 
>    urn:cts:SUBNAMESPACE:WORK:PASSAGE@SUBREFERENCE
> 
>    ...
> 
>    A detailed definition of CTS syntax can be found at:
> 
>    http://cite-architecture.org/ctsurn/
> 
> Unfortunately, neither this registration nor the pointed-to syntax
> definition gives an exact description of the syntax.  E.g., at every
> location where I noticed a part of the syntax described as "optional",
> there was no exact statement regarding what adjacent separating
> characters could or could not be omitted.  BNF is necessary.

ABNF is always good. I'm not sure if the registrants are familiar with
ABNF but I'm sure we'd be happy to coach them.

>    o An optional passage reference refers either to an individual
>      passage or to a range of passages within a work. [...]
> 
>    o An optional subreference identifies a span within a single
>      citation unit using indexed substrings. [...]
> 
> No assignment process is specified for either of these components.

As far as I can see, those constructs would not need formal assignment.
Indeed, it's probably best for them to be represented by an f-component:

   The f-component is intended to be interpreted by the client as a
   specification for a location within, or region of, the named
   resource.  It distinguishes the constituent parts of a resource named
   by a URN.

Thus we would have URNs like this (note the `#`):

urn:cts:SUBNAMESPACE:WORK#PASSAGE@SUBREFERENCE

Peter