I don't think we want to tie a URI to a format, version or language.
If a document has a link to http://foo.com/lksjfli4jlij43, which is
some sort of picture and I am at a color workstation with a fast network
link I want to retrive whatever image looks best in color, regardless of
(data) size. If I am at a workstation with a slow link, and a monochrome
display, I want the smallest image that looks good in monochrome.
Both pictures should show me the same object. Both may be diffrent
Also http://foo.com/dr.fun/most_recent.jpg, should not be constained to
pointing at one image, it should be free to change from day to day.
If you want to cache at the application level, you can assume whatever
object you fetched last is still valid, unless the user changed some
defualt or other that might effect things ('color/monochrome'). You
should also timeout data when it expires (if the protocall has a TTL or
expire date like HTTP), or after some fixed length of time (a few hours).
If you are doing caching _outside_ the application (like a gateway) you
need to understand enough of the protocall being used to figure out what
version of the bits is being fetched, and either handle it from the cache,
or fetch it from the real source.
-- Not speaking for UUNET Technolgies