[urn] query component in URNs

Peter Saint-Andre <stpeter@stpeter.im> Thu, 21 February 2013 04:49 UTC

Return-Path: <stpeter@stpeter.im>
X-Original-To: urn@ietfa.amsl.com
Delivered-To: urn@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 1F92221E808F for <urn@ietfa.amsl.com>; Wed, 20 Feb 2013 20:49:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.293
X-Spam-Status: No, score=-102.293 tagged_above=-999 required=5 tests=[AWL=-0.294, BAYES_00=-2.599, J_CHICKENPOX_34=0.6, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id yQ-FPOUXLWPP for <urn@ietfa.amsl.com>; Wed, 20 Feb 2013 20:49:20 -0800 (PST)
Received: from stpeter.im (mailhost.stpeter.im []) by ietfa.amsl.com (Postfix) with ESMTP id E68C921F8DD1 for <urn@ietf.org>; Wed, 20 Feb 2013 20:49:19 -0800 (PST)
Received: from [] (unknown []) (Authenticated sender: stpeter) by stpeter.im (Postfix) with ESMTPSA id 36C4B403CD for <urn@ietf.org>; Wed, 20 Feb 2013 21:56:49 -0700 (MST)
Message-ID: <5125A74A.4030301@stpeter.im>
Date: Wed, 20 Feb 2013 21:49:14 -0700
From: Peter Saint-Andre <stpeter@stpeter.im>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130216 Thunderbird/17.0.3
MIME-Version: 1.0
To: "urn@ietf.org" <urn@ietf.org>
X-Enigmail-Version: 1.5
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Subject: [urn] query component in URNs
X-BeenThere: urn@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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: Thu, 21 Feb 2013 04:49:21 -0000

Hash: SHA1

In the interest of moving forward with rfc2141bis and with my document
editor hat on, I've been reviewing list discussions and earlier
document versions so that we can be clear about open issues.

Because the fragment identifier issue is quite large and has received
a lot of discussion, I've decided to focus first on the issue of query
components in URNs.

Juha Hakala mentioned the topic in late 2010:


"From the PersID point of view, both <query> and <fragment> are
vitally important. We support the idea of reserving <query> for the
transfer of service parameters as a part of the resolution process."

In March 2011, Juha again mentioned query components:


"As regards the URN syntax, the key issue - at least from my point of
view - that should be discussed more widely is the usage of <fragment>
and <query> in the way suggested in RFC2141bis. The reason why it is
vital to make firm decisions concerning these features is that there
are projects that intend to use both of them, and must have explicit
permission and guidelines for doing that."

Martin Duerst pointed out that nothing is really stopping us from
allowing query components:


"That's quite different from the query part; if the urn spec wants to
allow a "?" and some following stuff, it can do so, and it can put on
the syntactic restrictions (as long as they are within the bounds of
the URI spec) and semantic restrictions the WG deems appropriate."

Although I don't claim to fully understand the proposed use of query
components in URNs, it appears to be something that could be supported
in, say, an HTTP-based resolution service. Thus a URN of
urn:isbn:978-951-1-25645-8 could be resolved over HTTP:


However, that would not necessitate adding query components to URNs
themselves. This appears to be consistent with something that Juha
sent in August of 2011:


"The reason why URN:ISBN namespace does not allow fragments has to do
with ISBN syntax. This is OK:


but I am not allowed to add anything to the namespace specific string
even if the media type in which this book is published would allow
that. Of course, adding <query> would be OK since it would not be part
of the identifier. "



"According to the RFC2141bis, fragment ID - if we allow its use in the
URN syntax - will be part of the identifier. An identifier which
consists of and ISBN and a fragment no longer identifies the book as a
whole but a component part of it. Whereas ISBN with <query> still
identifies the book as a whole; the role of the <query> is to specify
the resolution service the user wants."

The issue arose again in December of 2011:


"No, I was just emphasizing the point that if we piggyback service
parameters in <query> they will not be part of the URN itself.
Whenever there are fundamental changes in technology, the URN itself
remains the same, but the service parameters may be encoded differently."

Confusingly (at least to me), in March of 2012 Juha made the following


"As an aside, rfc3187bis is still out of date in the sense that it
assumes (erroneously) that the <fragment> is part of the NSS. If this
were so, you could not use <fragment> in the ISBN namespace since the
ISBN standard does not allow the users to add anything to the ISBN
string. But a construct where ISBN forms the NSS and <fragment> and
<query> may be added to it, gives us free hands. I shall revise the
I-D in this respect in the near future. Such revision requires also
discussions with the International ISBN Agency, since via <fragment>
usage URN:ISBN gains functionality which is not available in the ISBN
itself. "

Notwithstanding that statement, Section 2.3 of
draft-ietf-urnbis-rfc2141bis-urn-03 contained the following text:

   The <query> part MUST NOT be present in any *assigned* URN.  A
   <query> part can only be added to an assigned URN and appear in a URI
   *reference* [RFC3986] to a URN that is intended to be used with URN
   resolution services, and, in the spirit of the general specification
   of this part in RFC 3986, its purpose is restricted to indicate the
   requested URN resolution service and particular service aspects of
   the intended resolution response, e.g., the kind of metadata or
   content sought that are bound to a given object identified by the
   basic, assigned URN.

I draw two conclusions:

1. A query component would not be needed to provide a persistent,
location-independent identifer for, say, an ISBN resource like

2. Aside from a possibly ambiguous statement from Juha, no one has
proposed that we modify the URN syntax to allow query components in URNs.

Unless someone objects, I shall consider this issue closed.


- -- 
Peter Saint-Andre

Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/