Re: I-D: How Roy would Implement URNs and URCs Today

Daniel LaLiberte (liberte@ncsa.uiuc.edu)
Mon, 10 Jul 95 00:23:27 CDT


Date: Mon, 10 Jul 95 00:23:27 CDT
From: liberte@ncsa.uiuc.edu (Daniel LaLiberte)
Message-Id: <9507100523.AA24718@void.ncsa.uiuc.edu>
To: fielding@beach.w3.org
Subject: Re: I-D: How Roy would Implement URNs and URCs Today
Cc: uri@bunyip.com

More good counterpoints from Roy.  

> From: Roy Fielding <fielding@beach.w3.org>

> >But this won't help us get the metadata for the URC unless the URC has
> >its own URL.  If it does, fine, but a more general scheme would let us
> >refer to an object by an arbitrary expression including all parameters
> >to method calls.  Such an identifier might be usable to cache the
> >data.  Here are some examples of what I am thinking.  Ignore the
> >syntax if you can.
> >
> >  <A HREF="ilu:get(URL:http://www.ncsa.uiuc.edu/)">
> >  <A HREF="ilu:post(URL:http://www.ncsa.uiuc.edu/cgi-bin/search,subject=CGI)">
> >  <A HREF="ilu:meta(meta(URL:http://www.ncsa.uiuc.edu/))">

> No, then you are combining the notions of both identifiers and actions,
> which is verboten as far as I'm concerned.  

Hmm, well I've been leaning against the idea myself, but two things:
what is an expression, and what is not an expression?
The agent people seem to want to think of not just expressions but
also associated code as URIs. (Am I getting the gist of it Leslie?) 
There is a continuum connecting all of this, but I am hesitant to
venture too fast in this direction.  On the other hand, a plain
old http URL is an expression that identifies hostname, port, path,
etc that is interpreted by the client and server to result in some
resource.  

In other words, a declared action in an expression does not mean you
have to invoke the action in any particular way.  The ilu expression
syntax I was exploring in the example is just an expression
like any other.

Another counterargument is that whatever actions are taken in
retrieving an object, whatever parameters were part of those actions,
they may all be significant in fully identifying the object for the
purpose of caching, or for requesting associated info from other
places, such as independent metadata.  Perhaps it would be sufficient
for the server to return a fully qualified, preferred URI for the
object.

>    hdl:/whoswho/Fielding/Roy/Thomas;urc      -- URC for my homepages
>    hdl:/whoswho/Fielding/Roy/Thomas;urc;urc  -- URC for a URC for my homepages
>    hdl:/whoswho/Fielding/Roy/Thomas/UCI;urc  -- URC for my UCI homepage
>    hdl:/whoswho/Fielding/Roy/Thomas/UCI;urc;urc;urc;urc

> ad nauseum.  Note that the choice of syntax is arbitrary -- all that
> matters is that some syntax defines what you want to identify for the
> given URI scheme.  

The appended ";urc"s might be considered action declarations, but you
might counter that even so, it is not part of the protocol, just part
of the opaque string of the name.  But if a convention is used so much
that it is recognized as being useful to many people, then it becomes
time to standardize it as a public part of the protocol.

> [sorry if I've misused the hdl syntax here].

[Looks like a fine path URN though. :)]

Daniel LaLiberte (liberte@ncsa.uiuc.edu)
National Center for Supercomputing Applications
http://union.ncsa.uiuc.edu/~liberte/