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

Roy Fielding (fielding@beach.w3.org)
Sun, 09 Jul 1995 22:57:50 -0400


Message-Id: <199507100257.WAA15240@beach.w3.org>
To: Daniel LaLiberte <liberte@ncsa.uiuc.edu>
Cc: uri@bunyip.com
Subject: Re: I-D: How Roy would Implement URNs and URCs Today 
In-Reply-To: Your message of "Sun, 09 Jul 1995 20:07:47 CDT."
             <9507100107.AA13546@void.ncsa.uiuc.edu> 
Date: Sun, 09 Jul 1995 22:57:50 -0400
From: Roy Fielding <fielding@beach.w3.org>

More good points from Dan.

>Are you suggesting that if you get back a MIME type of urc/*, then
>what you have must be metadata?

More than that -- what you have is metadata which is not the resource
you are looking for, but rather a pointer to the various representations
of that resource.

> If so, how does an author of a
>document point a user at some URC as the data to be looked at
>without giving the user instructions like "do the shift-alt-click
>thingy on this link otherwise you won't see the URC"?  

That's a difficult question.  I don't see any problem with telling
someone to select a UI toggle of some sort.  Of course, with the
exception of the text/html urc hack, you could always just define
a parallel namespace for the URCs and return the data under its
normal media type.

>How do you get the metadata for the URC itself, supposing there is any?

Ugh, but I suppose you are right -- I believe anything should be allowed
to be a first-class object.

>...
>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.  If being able to link to a
URC itself is important, then a parallel namespace is in order.
As an example, let

   hdl:/whoswho/Fielding/Roy/Thomas

be a URN for my homepages (I now have two).  Then

   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.  [sorry if I've misused the hdl syntax here].

Note also that the data returned by

   hdl:/whoswho/Fielding/Roy/Thomas
   hdl:/whoswho/Fielding/Roy/Thomas;urc

is identical, with the exception that the first is typed as urc/sgml
and the second as text/sgml  (or whatever format the URC is in).

[or, at least, that's the idea]

 ....Roy T. Fielding  Department of ICS, University of California, Irvine USA
                                       <fielding@ics.uci.edu>
                      <URL:http://www.ics.uci.edu/dir/grad/Software/fielding>