Re: [apps-discuss] Scope of RFC3986 and successor - what is a URI?

Sam Ruby <rubys@intertwingly.net> Sat, 17 January 2015 20:21 UTC

Return-Path: <rubys@intertwingly.net>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C86A31AD0A9 for <apps-discuss@ietfa.amsl.com>; Sat, 17 Jan 2015 12:21:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.3
X-Spam-Level:
X-Spam-Status: No, score=-1.3 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_38=0.6, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=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 UoyRIvxBueeB for <apps-discuss@ietfa.amsl.com>; Sat, 17 Jan 2015 12:21:29 -0800 (PST)
Received: from cdptpa-oedge-vip.email.rr.com (cdptpa-outbound-snat.email.rr.com [107.14.166.227]) by ietfa.amsl.com (Postfix) with ESMTP id 34A9A1AD06A for <apps-discuss@ietf.org>; Sat, 17 Jan 2015 12:21:29 -0800 (PST)
Received: from [98.27.51.253] ([98.27.51.253:59571] helo=rubix) by cdptpa-oedge03 (envelope-from <rubys@intertwingly.net>) (ecelerity 3.5.0.35861 r(Momo-dev:tip)) with ESMTP id 15/87-15759-844CAB45; Sat, 17 Jan 2015 20:21:28 +0000
Received: from [192.168.1.102] (unknown [192.168.1.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: rubys) by rubix (Postfix) with ESMTPSA id 433A6140AEA; Sat, 17 Jan 2015 15:21:28 -0500 (EST)
Message-ID: <54BAC447.7030706@intertwingly.net>
Date: Sat, 17 Jan 2015 15:21:27 -0500
From: Sam Ruby <rubys@intertwingly.net>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: mike amundsen <mamund@yahoo.com>
References: <20140926010029.26660.82167.idtracker@ietfa.amsl.com> <54B1B211.3050807@seantek.com> <54B1B682.3070609@intertwingly.net> <012001d02d91$6ec42300$4001a8c0@gateway.2wire.net> <54B2781C.4040505@intertwingly.net> <018e01d02dc6$1d03b0a0$4001a8c0@gateway.2wire.net> <54B2CC75.5080900@intertwingly.net> <54B79930.3070009@ninebynine.org> <54B7AEC2.9010109@intertwingly.net> <CAKHUCzz=jZAF-i2_pwGpkER5vNhv95CMwdBCMwigPJ0FA_t4_A@mail.gmail.com> <54B7BD4A.1090803@intertwingly.net> <54B7CF28.7060408@gmx.de> <54B7D605.2060307@intertwingly.net> <f5boaq0gdw5.fsf@troutbeck.inf.ed.ac.uk> <54B806A2.8020803@intertwingly.net> <CAKHUCzzN4Eu6R_f2Sf8EtiAp-8w3ds5Yp3-PBHK+B0wGRxEtmw@mail.gmail.com> <54b9381b.8ca1e00a.243f.ffffcae4@mx.google.com> <98A81DE7-1845-46EC-A3EB-F00438863ECB@seantek.com> <54B93F2A.5070900@intertwingly.net> <54BA7EE2.1040102@ninebynine.org> <54BAB143.1080006@intertwingly.net> <CAPW_8m6ju6QFmp_pvby72KXYAyOCOVOvhbf9VfP384=5QKFwUA@mail.gmail.com>
In-Reply-To: <CAPW_8m6ju6QFmp_pvby72KXYAyOCOVOvhbf9VfP384=5QKFwUA@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-RR-Connecting-IP: 107.14.168.142:25
X-Cloudmark-Score: 0
Archived-At: <http://mailarchive.ietf.org/arch/msg/apps-discuss/JAXo8mxOMj3UOSCHpLInfBdj2r4>
Cc: Graham Klyne <gk@ninebynine.org>, IETF Apps Discuss <apps-discuss@ietf.org>
Subject: Re: [apps-discuss] Scope of RFC3986 and successor - what is a URI?
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss/>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 17 Jan 2015 20:21:31 -0000

On 01/17/2015 02:58 PM, mike amundsen wrote:
> Sam:
>
> i might be missing some key points but..
>
> <snip>
> What is effectively being said is that documenting how things actually
> work will break things, which is clearly untrue.
> </snip>
>
> let's not confuse "changing the specification" with "documenting."
>   documenting NEVER breaks things. changing a specification MAY break
> things.
>
> if all this is about is writing *documentation*, have at it. if you want
> to write some BCPs, no worries.
>
> but if the work involves changing specifications, as long as those
> changes are made in ways that do not break existing *spec-compliant*
> implementations, i have no problem with the work.

I have trouble with the words "existing *spec-compliant* implementations".

Either that term is meaningless, or I have yet to find one.

LDAP schemas that make use of IA5String can be said to be spec compliant 
in that they accept all RFC 3986 compliant URIs.  But that's quite a 
different matter than saying that they implement RFC 3986 in any 
meaningful way.

I've taken a look at a lot of libraries that produce and consume URIs 
(some call them URLs, but lets not worry about that for the moment).  I 
have yet to find one that is spec compliant.

> changing shared specs to match one or more existing non-compliant
> implementations is rarely the right approach.

There are a large and growing number of non-RFC 3986 compliant 
applications today.

I am working with a small and growing number of developers of these 
libraries.  I am building a shared specification to which these 
applications will be compliant.  When done I will have a large list of 
compliant applications that I can point to.

I would like to see that there be an update to RFC 3986 so that I can 
build upon that as a base.  But that's merely a desire, not a blocker.

> mamund
> +1.859.757.1449
> skype: mca.amundsen
> http://amundsen.com/blog/
> http://twitter.com/mamund
> https://github.com/mamund
> http://linkedin.com/in/mamund

- Sam Ruby

> On Sat, Jan 17, 2015 at 2:00 PM, Sam Ruby <rubys@intertwingly.net
> <mailto:rubys@intertwingly.net>> wrote:
>
>     On 01/17/2015 10:25 AM, Graham Klyne wrote:
>
>         On 16/01/2015 16:41, Sam Ruby wrote:
>
>             As to what the breakage it, that is less clear to me.  There
>             are existing
>             parsers that don't percent encode square brackets when they
>             occur at
>             some point
>             after a question mark is encountered in the input. Perhaps those
>             parsers lose
>             the ability to claim that they are "RFC 3986 compliant".
>
>
>         Surely, it's not the role of a *parser* to %-encode, but a
>         *generator*
>         of URIs?
>
>         The primary role of a URI parser is to simply decide if a given
>         string
>         is or is not a valid URI.  A parser can only be
>         RFC3986-compliant in the
>         extent to which it correctly makes this determination in
>         accordance with
>         RFC3986.  Of course, parsers may do more than this, but the
>         detail of
>         such behaviour is not specified by RFC3986.
>
>         (I would say that a *generator* of URIs that does not %-encode
>         square
>         brackets in fragments is not RFC3986 compliant.)
>
>
>     As many people have pointed out, nomenclature seems to be a big
>     problem here.  I started to write a reply that spells this out, but
>     I realized that I was repeating things that I've said before, and
>     figured it made sense to pull it out into a separate blog post that
>     I can point to:
>
>     http://intertwingly.net/blog/__2015/01/17/RFC-3986bis
>     <http://intertwingly.net/blog/2015/01/17/RFC-3986bis>
>
>     TL;DR: URL parsers consume URLs and generate URIs.  Such URIs are
>     not RFC 3986 complaint.  I’d like to fix that.
>
>         #g
>         --
>
>
>     - Sam Ruby
>
>     _________________________________________________
>     apps-discuss mailing list
>     apps-discuss@ietf.org <mailto:apps-discuss@ietf.org>
>     https://www.ietf.org/mailman/__listinfo/apps-discuss
>     <https://www.ietf.org/mailman/listinfo/apps-discuss>
>
>