Re: [urn] q-component copied verbatim

John C Klensin <john-ietf@jck.com> Sun, 15 May 2016 11:57 UTC

Return-Path: <john-ietf@jck.com>
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 A6AE912D103 for <urn@ietfa.amsl.com>; Sun, 15 May 2016 04:57:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.326
X-Spam-Level:
X-Spam-Status: No, score=-3.326 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-1.426] 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 0QN914JZQgQY for <urn@ietfa.amsl.com>; Sun, 15 May 2016 04:57:48 -0700 (PDT)
Received: from bsa2.jck.com (bsa2.jck.com [70.88.254.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E0FB812B037 for <urn@ietf.org>; Sun, 15 May 2016 04:57:47 -0700 (PDT)
Received: from [198.252.137.10] (helo=JcK-HP8200.jck.com) by bsa2.jck.com with esmtp (Exim 4.82 (FreeBSD)) (envelope-from <john-ietf@jck.com>) id 1b1ug1-000ITo-0H; Sun, 15 May 2016 07:57:41 -0400
Date: Sun, 15 May 2016 07:57:35 -0400
From: John C Klensin <john-ietf@jck.com>
To: Sean Leonard <dev+ietf@seantek.com>, "Hakala, Juha E" <juha.hakala@helsinki.fi>, urn@ietf.org
Message-ID: <97D4658A88D0D88E2CB054FC@JcK-HP8200.jck.com>
In-Reply-To: <8FB16EBB-71D8-4A90-8244-AFB4C7005AAA@seantek.com>
References: <f5b4mac21bq.fsf@troutbeck.inf.ed.ac.uk> <2C60969953BC849FDA35733E@JcK-HP8200.jck.com> <53928f62-3de9-567b-e8dc-444a5c66d477@gmx.de> <2F02EA4EFFCD81CD6ADBB789@JcK-HP8200.jck.com> <f5by47nruyd.fsf@troutbeck.inf.ed.ac.uk> <VI1PR07MB1727C6FCA17248B8CDB0EE11FA740@VI1PR07MB1727.eurprd07.prod.outlook.com> <8FB16EBB-71D8-4A90-8244-AFB4C7005AAA@seantek.com>
X-Mailer: Mulberry/4.0.8 (Win32)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
X-SA-Exim-Connect-IP: 198.252.137.10
X-SA-Exim-Mail-From: john-ietf@jck.com
X-SA-Exim-Scanned: No (on bsa2.jck.com); SAEximRunCond expanded to false
Archived-At: <http://mailarchive.ietf.org/arch/msg/urn/ERW_NL0AtkXVvR9E0qrfciU6c28>
Cc: Julian Reschke <julian.reschke@gmx.de>
Subject: Re: [urn] q-component copied verbatim
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: Sun, 15 May 2016 11:57:50 -0000


--On Sunday, May 15, 2016 01:37 -0700 Sean Leonard
<dev+ietf@seantek.com> wrote:

>...
> In your very useful example, you are saying that the URN
> resolver is going to see the q-component, and put it in the
> resulting URL(s).
> 
> But in prior discussions, a motivator for the q-component was
> "privacy", namely, that resolvers can see the r-component
> but not the q-component. The implication was that URN client
> applications would take the results of the resolver and do
> their own merging on the client side.

I don't recall that discussion, certainly not that a privacy
claim of that sort was dominant in the q-component discussion.
AFAICT, it is not reflected in 2141bis in any way, especially
because I've tried to carefully guard against (over Juha's
objections btw) turning the architectural description of the
pieces and components associated into URNs for a requirement
about a particular implementation model.  

> This example supports the premise that URN resolvers see the
> entire query production (q-component and r-component), and are
> expected to return complete URLs to a URN client, with the
> q-component folded into the URLs. Consequently, we have a
> distinction without a difference between q-component and
> r-component. They should be merged into one (i.e., query ===
> r-component).

No.  There is still a difference.  The WG has discussed it at
great length.  Just as we should not constrain that
implementation model out of existence by the language of the
spec, we should not require it.  Put differently, Juha gave an
example of a situation and implementation strategy.  He did not
claim it was the only possible one.

>...

>...
> The example provided here is fine for HTTP/HTTPS URLs, but it
> fails on everything else. Try copying the URN q-component
> "verbatim" into the following URI schemes: 
> data
> ldap
> ftp

First, the text says that the q-component relationships,
including the "copied" sentence, applies only to URLs, so
arbitrary URI schedules are not relevant here.  If you are
making a case that scope statement should really say "HTTP or
HTTPPS URLs" and there is sympathy for that in the WG, the scope
sentence is easily changed.   However, it appears to me that,
for URLs including at least most of those you have listed, the
non-specific language in 3986 about what URI (really URL)
processors (or "resources" are supposed to do with queries they
don't understand would seem to cover the situations.

>...
> ...and none of them work the way you want them to (except,
> perhaps, Gopher, and that is a stretch because there are all
> of 70 servers left).

I won't comment here on what I think a criterion of "there are
only 70 servers, therefore the protocol or scheme doesn't count"
would, if generalized, mean to the Internet.

> Making the URN resolver map the query production to the
> resulting URL provides much more flexibility and protocol
> independence. For example, the URN resolver can break out the
> components (version, operation, startRecord, etc.) and
> reassemble them into the scheme-specific string, such as
> something like
> <ldap:///cn=book,serialNumber=0888543433??version=1.1,operatio
> n=searchRetrieve>.

Speaking personally, I've argued all along for allowing (but not
requiring) that sort of implementation model.  I believe that
the WG decided rather firmly against it during the discussion of
whether q-component handling was a function of the namespace
(much less the namespace and specific component string or
intermediate resource).  AFAICT, the WG decided that q-component
handling should be strictly a function of the URN scheme and
Peter reflected that in 2141bis in the only way that reflected
that WG discussion and made sense, i.e., by direct and
uncritical copying.   I am still not convinced that was the
right decision, but, as long as we allow some implemention
flexibility, don't see sufficient justification for reopening
the question.

If you do, please take it up with the co-chairs.

     john