Conneg over time?

I would encourage an examination of:

http://arxiv.org/abs/1003.3661

This paper cites TimBL's genont work (oddly enough, without giving a
'date accessed'!!) in justifying the assertion that time should simply
be another content negotiation parameter.

This contradicts the way I would like to describe the semantics of
HTTP; I want to say that
   1. the GET request comes in
   2. the server considers all current webarch-representations of the resource
   3. the server picks one of those webarch-representations by best
effort respect of conneg parameters
   4. the server responds with the chosen webarch-representation
   5. the client can conclude that the response carries a current
webarch-representation of the resource

To get the memento framework to work, this would have to change to:
   1. the GET request comes in
   1a. if there is no Accept-datetime: header, limit conneg to be
restricted to the current time
              [nasty issues: ranges, wildcards, clock skew, race conditions]
   2. the server considers all webarch-representations of the resource
(over all time)
   3-4. (as above)
   5. the client can conclude that the response is or once was a
webarch-representation at some time

i.e., if R is a webarch-representation of X at time t, then R is a
webarch-representation of X at all times, hence conneg can be used to
select a webarch-representation of X at any desired time.

The problem is that this regime gives the server freedom to respond
with stale information, and therefore leaves clients in doubt as to
whether information is current. Of course a server is unlikely to want
to do this, but 'unlikely' isn't exactly a sound foundation, is it?

You could say that Accept-datetime: defaults to the current time, but
respect for Accept-* headers is only governed by SHOULD, not by MUST,
so you can't really conclude anything from a 200 by virtue of the
Accept-* headers in the request. (Unless an exception is made for this
new header.)

This means we always need to be excruciatingly careful about the time
quantification of "R is a webarch-representation of X", which I
suppose is a good idea in any case.

Conneg over time makes me uncomfortable. What do others think?

I think Memento is a good test of AWWSW and vice versa, so it's worth
looking at. We ought to be able to use an AWWSW theory to either
confirm or refute the soundness of Memento. (Whether it's a good
design is a different question.)

Jonathan

Received on Monday, 28 June 2010 18:49:35 UTC