[urn] Feedback on draft-ietf-urnbis-rfc2141bis-urn-16

Julian Reschke <julian.reschke@gmx.de> Wed, 27 April 2016 18:11 UTC

Return-Path: <julian.reschke@gmx.de>
X-Original-To: urn@ietfa.amsl.com
Delivered-To: urn@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E917A12DB8A for <urn@ietfa.amsl.com>; Wed, 27 Apr 2016 11:11:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NAOpt1d2wLvs for <urn@ietfa.amsl.com>; Wed, 27 Apr 2016 11:11:49 -0700 (PDT)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A2B9712DB8F for <urn@ietf.org>; Wed, 27 Apr 2016 11:11:48 -0700 (PDT)
Received: from [192.168.178.20] ([84.187.39.170]) by mail.gmx.com (mrgmx001) with ESMTPSA (Nemesis) id 0LcSAg-1bNhwK02uE-00jqmi for <urn@ietf.org>; Wed, 27 Apr 2016 20:11:46 +0200
To: "urn@ietf.org" <urn@ietf.org>
From: Julian Reschke <julian.reschke@gmx.de>
Message-ID: <ed99a67a-10b6-c505-f223-2250fac836c0@gmx.de>
Date: Wed, 27 Apr 2016 20:11:48 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.0
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:9O04sBbE2lzC8Ql+6821liqq97Kk5ZZHRFzIl5fbMfz3hBfkRwD dVoFnh1VEG5/gWRH6aHioFiNk+evKPJbRLzxJRyLnyndgcSobOmdVJbqtZpBlIAssGO22QJ pPsxHy67rDLd/d9sU46zyoBtgTVMXcH8k539rL6j7qJ0aC/4Ko4GLxOQuQRxBPQvq1rw/jf fqv68p5uKPPGXmmsMLeMA==
X-UI-Out-Filterresults: notjunk:1;V01:K0:higUJ5UXD8A=:OoG3eZvak1Rt41uGEBPls+ ufufojRbiZ4bc+gvgJYwX1/yoy6327nOdP6ZwF6Y99OhSrsssKA+T8GLefZ3jE3L8vmePuefd xo6fNYRIVdiWKu2ZCTTPzhKok+k9r3YOXbQi3NGeYBQ41BtOD4BRehE1Y56f9zgko/KelwqvE HoTKfK3Plg4sKzs02Y/qtivxSeUXh0w8dz3Tfr3+Hov/nMrCV9Dk+4GvjCy4wcypb5Jaanqhd zo8zqKjDOyUCbTf8FGvu/48gU3NOG4YMCywpeEjuUmrwEA6OuQlr0aLB8YhR+23yV+tzOl8OX poT9N3PDL18Bs9gSwkZX5YONpVh1nhoPuubq20gSlA0lsQP9Sw/GDrq+MUWRUgqR6XBVO9HOM issfRGGLocY3DbFmJ8Iao4bijZywP+xLOIKJe2h1DvtBknNakGJvbyJXItBuT3TYV+z5i5LdR SNslbEXgJRfq8sZTJ7O8U5HQhqhNke7Y63+y4F3eoSfVGyfeDgJGz0cgbsB+XoAZUH/Kos8nh xA1kpkD3c2B9v8H5zx+LimoGLSycbMzPUz3PiUY4kbcFIu4kNNfUDxBqi6Uol0KUc3KgO1Sg4 DzLiobk3T/zpKbfezgH5vtkRFAUlTCV95EE93ymyzRFdlDq9wnO+BxWOrgGYdEfjsCBth4vWs nFuh88llBV0l9rsFjjTwKCrFArqUZwXol4x63CNtnn5tcu6gHS2xBZFWmSDzMgJpc7Q7j5WtO sSDf1nBOeW7g80mm4FwEgSugwZ9oPw7mtB8f3DSocdCacEtZQfO1G3xxPYfKsGp+WhFqh06l6 PEzGss1
Archived-At: <http://mailarchive.ietf.org/arch/msg/urn/ZCJLyKmtRA5EW3QmPVYSuVWgR88>
Subject: [urn] Feedback on draft-ietf-urnbis-rfc2141bis-urn-16
X-BeenThere: urn@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Revisions to URN RFCs <urn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/urn>, <mailto:urn-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/urn/>
List-Post: <mailto:urn@ietf.org>
List-Help: <mailto:urn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/urn>, <mailto:urn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 Apr 2016 18:11:59 -0000

Hi there,

below some notes on draft-ietf-urnbis-rfc2141bis-urn-16 (I didn't read 
all of the spec once I realized that it's the other spec that concerns 
me more :-)

(again, sorry for the format)

Best regards, Julian

-- snip --


    The basic syntax for a URN is defined using the Augmented Backus-Naur
    Form (ABNF) as specified in [RFC5234].  Rules not defined here
    (specifically: alphanum, fragment, and pchar) are defined as part of
    the URI syntax [RFC3986] and used here to point out the syntactic
    relationship with the terms used there.  The definitions of some of
    the terms used below are not complete; additional restrictions are
    imposed sections of the document that are specific to those terms.

Maybe "imposed in the sections"?

       rq-components =  ( "?="  q-component
                           [ "?+" r-component ] ) /
                        ( "?+" r-component
                           [ "?="  q-component ] )
       q-component   = pchar *( pchar / "/" / "?" )
       r-component   = pchar *( pchar / "/" / "?" )
       f-component   = fragment

These come as a surprise to anybody not already familiar to what led to 
the spec.

Either introduce them later, or insert some prose explaining where they 
come from.

Also, it would be good if there was a discussion about compatibility 
with existing use of queries, as these essentially reserve certain 
variants of queries for generic use.


    The NSS specified in this document allows characters not permitted by
    earlier specifications (see Appendix B.  In particular, the "/"
    character, which is now allowed, effectively makes it possible to
    encapsulate hierarchical identifiers from other naming systems.  For

s/(see Appendix B/(see Appendix B)/

    For the sake of consistency with RFC 3986, neither the general syntax
    nor the semantics of q-components are defined by, or dependent on,
    the namespace of the URN.  In parallel with RFC 3896, specifics of
    syntax and semantics, e.g., which keywords or terms are meaningful,
    of course may depend on a particular namespace or even a particular
    resource.

I agree that this is the right thing to do, but I'm not sure what this 
has to do with 3986.  3986 allows a scheme to mandate a specific syntax, no?

       urn:example:foo-bar-baz-qux?+CCResolve: cc=uk

Whitespace? Huh?

    For the sake of consistency with RFC 3986, neither the general syntax
    nor the semantics of f-components are defined by, or dependent on,
    the namespace of the URN.  In parallel with RFC 3896, specifics of
    syntax and semantics, e.g., which keywords or terms are meaningful,
    of course may depend on a particular namespace or even a particular
    resource.

s/3896/3986/

    Section 5.2 of [RFC3986] describes an algorithm for converting a URI
    reference that might be relative to a given base URI into "parsed
    components" of the target of that reference, which can then be
    recomposed per RFC 3986 Section 5.3 into a target URI.  This

s/RFC3986//

    algorithm cannot be applied directly to URNs because their syntax

Well, it can be applied (and will be by software developed according to 
RFC 3986). It's just that the result won't be helpful.

    does not support the necessary path components.  Whenever a URN
    resolves to a URL which may be used to access the resource, there is
    a more specific interpretation of q-component and f-component: the
    q-component is copied verbatim to the query portion of the URL (if
    that URL scheme supports query), and the f-component is copied
    verbatim to the fragment portion of the URL.  Even though the notion
    of a URN as a "persistent", "permanent" identifier does not reconcile
    easily with relative referencing, resources named with URNs may
    contain relative references that do not apply to the URN itself.

I find this very problematic. The URN spec of course can specify a 
URN-specific algorithm for resolution against a base URI. What it can't 
do easily is override what RFC 3986 without clearly saying so (updates: 
3986) and getting consensus for that.

Maybe it would make sense to step back and to consider what software is 
supposed to implement this algorithm. Browsers? If so, what are the 
plans of this WG to actually get them to do this?

I'm sure there are other use cases that are specific to URNs; do those 
really require overriding RFC 3986, or could they be addressed differently?