- From: Patrick Stickler <patrick.stickler@nokia.com>
- Date: Mon, 9 Oct 2006 09:12:43 -0500
- To: "ext noah_mendelsohn@us.ibm.com" <noah_mendelsohn@us.ibm.com>
- Cc: "Dan Connolly" <connolly@w3.org>, "ext Booth, David (HP Software - Boston)" <dbooth@hp.com>, raman@google.com, "Williams, Stuart (HP Labs, Bristol)" <skw@hp.com>, www-tag@w3.org
On Oct 6, 2006, at 22:05, ext noah_mendelsohn@us.ibm.com wrote:
> Patrick Stickler writes:
>
>> (b) if is known (by extra-web means) that a given URI denotes a
>> representation, then the agent is licensed to expect that every time
>> it dereferences that URI it will get the same exact byte sequence
>
> Yes, if you really mean "that" representation, but I think we're
> glossing
> over an ambiguity.
>
> Consider one of my favorite examples, which is a clock resource. The
> clock updates in real time, and representations of it change
> accordingly.
> For this example, assume that the clock resource at
> http://example.org/clock supports content negotiation. It returns the
> representation of the clock as your choice of text/plain, in which
> case
> you get back the date and time as text, or image/jpeg, in which
> case you
> get the image of a round analog clock showing the current time.
>
> Your analysis seems to apply to the case where we want a URI for the
> particular resource returned at, say 3PM, and I think your analysis is
> coherent for that case. I don't think it's the main case of interest.
> What I think we're mostly considering is more along the lines of two
> additional resources which might be named:
>
> http://example.org/clock?rep=text
> http://example.org/clock?rep=image
>
> These would not in fact return the same representation on successive
> accesses, but would invariably return representations using the
> particular
> media types.
I this case, I'd argue that these URIs do not in fact denote
Representations,
but rather resources which are tightly related to the clock resource,
and
corresponding to particular "modes of view", and which share
representations
with the clock resource -- such that at any given time, both the URI
of the
clock and the URI of the mode of view may resolve to the exact same
representation, yet neither of those resources are themselves
Representations.
It is perhaps a similar relationship as between a novel, and
different editions
and/or translations of that work.
There are many different distinct ways to interact with a given
clock, based on different
senses -- visually looking at the clock, listening to the chimes of
the clock,
reading a written report of the state of the clock, even feeling the
physcal location
of the hands of the clock (though not necessarily relevant to a web
application),
and we may speak of all of those modes of view, or ways of
interacting with the
state of the clock, without confusing the clock itself, or presuming
that any of
those modes of view correspond to representations returned to a web
client by
a web server.
While one cannot conclude that a given URI denotes a Representation
because
it seems to always return the same octet stream, if any URI ever returns
different octet streams then one should be licensed to conclude that
that
URI does *not* denote a Representation.
Many resources denoted by URIs can share the same set of
representations.
One can have a URI denoting a clock and a URI denoting a picture of a
clock both resolve to the same octet stream, the same shared
representation.
Just because two resources might share representations does not mean
they are
the same resource, only that the URI owner chose to reuse the same octet
stream to represent the state of both resources, as he/she felt that was
sufficiently useful and correct. (one may disagree with a given URI
owners
choice of representations, but that is entirely irrelevant to the
architecture)
If in your example, the owner of the URIs and publisher of the
representations
is aware that the representations are time specific and (presumably)
generated
in some automated manner, and wants to provide unique URIs for the
actual
representations, then that owner should choose URIs for the actual
representations
which will always return the same octet stream. E.g. including
the time to some reasonable degree of precision:
http://example.org/clock?rep=text&time=11:32:22
http://example.org/clock?rep=image&time=11:32:22
which in this case would probably be sufficient URIs for those
Representations
such that they would always resolve to the same octet stream
consistent with
the maximal resolution of the particular mode of view.
> I also think this is an appropriate use of URIs for
> representations. So, I don't think that in all useful cases "URI
> denotes
> representation" implies "denoted representation octet stream is
> invariant". I think the two URIs above denote representations of the
> original clock resource if the authority at example.org says they do.
And I would conclude that, because the two URIs
http://example.org/clock?rep=text
http://example.org/clock?rep=image
do not always return the same octet stream, that they do not in fact
denote Representations and that if they should, then either your server
is not behaving properly or there is ambiguity (URI overloading)
resulting
in inconsistent behavior.
>
> Also, I think I'm right that the term "representation" is
> appropriately
> applied not just to the octet sequence returned, but to some of the
> associated control data such as Content-type that's typically
> carried in
> some of the returned HTTP headers.
I don't think so.
A representation of course has descriptive metadata, and presumably
all of the HTTP
headers in the response describe the representation, the octet
stream, not the resource
denoted by the request URI.
However, regarding Content-type, note that a given representation, a
given octet
stream may conform to multiple Content-type values that might be
definable for that octet stream.
So even with a given representation, which is always the same octet
stream, one could
expect that with content negotiation where the server is confirming
to the client that
it understood the requested content type by reporting the Content-
type value
to be the same as specified in the request, yet due to the fact that
the same
octet stream may correspond/conform to more than one content type/
encoding, that
the same representation (octet stream) may be served to multiple
clients over time
with different Content-type values in the response header, yet still
be the same
octet stream, the same representation.
Thus, a given representation, a given octet stream is not bound to
one and only
one consistently reported Content-type value.
Eh?
Cheers,
Patrick
>
> Noah
>
> --------------------------------------
> Noah Mendelsohn
> IBM Corporation
> One Rogers Street
> Cambridge, MA 02142
> 1-617-693-4036
> --------------------------------------
>
>
>
>
Received on Monday, 9 October 2006 14:13:19 UTC