Re: URI-protocol mapping (was Re: How to add new "protocols" ?)

touch@isi.edu
Thu, 20 Feb 1997 09:34:08 -0800


From: touch@isi.edu
Date: Thu, 20 Feb 1997 09:34:08 -0800
Message-Id: <199702201734.AA04288@ash.isi.edu>
To: touch@isi.edu, liberte@ncsa.uiuc.edu
Subject: Re: URI-protocol mapping (was Re: How to add new "protocols" ?)
Cc: uri@bunyip.com

> From liberte@sdgmail.ncsa.uiuc.edu Thu Feb 20 09:22:52 1997
> 
> touch@isi.edu writes:
>  > > From: Daniel LaLiberte <liberte@ncsa.uiuc.edu>
>  > > 
>  > > ... The point is that there is a choice
>  > > that *can* be made in how to resolve any URI (not just http URLs).
>  > 
>  > Then it is no longer a URL, it is a URN (or perhaps URI, depending
>  > on how each is defined).
> 
> You can say it that way, but I was including http URLs, so you could
> equivalently say that URLs and URNs are indistinguishable from this
> perspective.

No. See below.

>  > However, it adding that 2-level binding to URLs removes any notion
>  > of the base, static case which has proven so useful in bootstrapping
>  > the Web protocols.
> 
> It doesn't.  In a chain of URI redirections, the last URI should be
> used as the base if the document itself (or its container) does not
> specify the base.  This is a clarification of the relative URL spec.
> Roy concurs.

Then we're just talking semantics.

I've been using URL as the last step in that chain.

In every indirection system, there is an arbitrarily
long chain of symbolic names, then one real name. The URL is
the 'real name', and uniquely specifies the protocol to be used,
or at least as I've been using URL.

> Specs can be in error by missing current practice, or as current

And current practice can equally be missing the basic theory.
The use of symbolic indirection in both languages and
communication has a long and distinguished history which is
directly applicable here. 

There is a need to restrict the last step in that chain, contrary
to popular belief. It avoids naming circularities, and locks down
the behavior of the protocol.

LISP avoided this, but it caused many problems when constants like "1"
were redefinable symbols, rather than base-cases.

Joe
----------------------------------------------------------------------
Joe Touch - touch@isi.edu		    http://www.isi.edu/~touch/
ISI / Project Leader, ATOMIC-2, LSAM       http://www.isi.edu/atomic2/
USC / Research Assistant Prof.                http://www.isi.edu/lsam/