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

Roy Fielding (
Sun, 09 Jul 1995 22:57:50 -0400

Message-Id: <>
To: Daniel LaLiberte <>
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."
Date: Sun, 09 Jul 1995 22:57:50 -0400
From: Roy Fielding <>

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:">
>  <A HREF="ilu:post(URL:,subject=CGI)">
>  <A HREF="ilu:meta(meta(URL:">

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


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

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


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