W3C home > Mailing lists > Public > xml-uri@w3.org > May 2000

Re: URI versus URI Reference

From: Paul W. Abrahams <abrahams@valinet.com>
Date: Fri, 26 May 2000 12:27:53 -0400
Message-ID: <392EA609.E481F8F9@valinet.com>
To: michaelm@netsol.com
CC: abrahams@acm.org, Tim Berners-Lee <timbl@w3.org>, xml-uri@w3.org
Michael Mealling wrote:

> On Thu, May 25, 2000 at 10:13:07PM -0400, Paul W. Abrahams wrote:
> > Tim Berners-Lee wrote:
> > > >There's also the oddity of Section A, which is entitled ``Collected BNF for
> > > URI'' but does not define the nonterminal URI.
> > >
> > > Good point.
> > >
> > > It uses the term absoluteURI.
> > > http://www.ietf.org/rfc/rfc2396.txt
> > > page 26.
> >
> > > This is the language term what is referred to generally as a URI.
> > > Perhaps a revision is in order to clear this up.
> >
> > Yes!!!!   I don't think the cleanup of RFC2396 would be a huge job, and I'd
> > even be willing to help with it (though I have zero travel money).   I think
> > it's possible to develop terminology that's almost consistent with the
> > terminology now in use and to be explicit about all the statements that are
> > now implicit or preassumed.
>
> As long as you are talking about turning this:
>
> [From Appendix A: Collected BNF for URI page 27]
>
>       URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
>       absoluteURI   = scheme ":" ( hier_part | opaque_part )
>       relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]
>
> to
>
>       URI-reference = [ URI | relativeURI ] [ "#" fragment ]
>       URI   = scheme ":" ( hier_part | opaque_part )
>       relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]
>
> Then I'm fine with that. Anymore and we start changing what things
> mean and that changes technical content which people have come
> to rely on...

That's the idea, except that I'd go further in the direction I think most people
want:

    URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
    absoluteURI = URI
    URI   = scheme ":" ( hier_part | opaque_part )
    relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]

I'd also add a couple of sentences of explanation as to what is going on.  In
particular:

``A relative URI is a syntactic construct that specifies a URI in a manner
dependent on the context in which it appears.  A relative URI is not a URI, just as
mock turtle soup is not turtle soup.''

Frankly, I think saying that a relative URI is not a URI, as most folks here
insist, is counterintuitive.  But if the usage is too deeply embedded to overturn,
then the next best thing is to explain that what one considers counterintutive is
nonetheless true.

I'd also add the missing definition at the very beginning of Sec 1 of RFC 2396:

``A Uniform Resource Identifier (URI) is a compact string of characters that
identifies an abstract or physical resource.  A URI is absolute, i.e., its meaning
does not depend on the context in which it appears.''

Paul Abrahams
Received on Friday, 26 May 2000 12:28:05 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:32:42 UTC