On 14/10/2005, at 10:24 PM, James M Snell wrote:
My answer would be: if "last" is used, it's a closed set; if
"last" is not used, it's an open set.
Can you walk me through a use case where this would be desirable?
E.g. what would the subscription URI be, would any of the entries
be updated, and how if so? In what scenario would having a closed
set feed be useful?
An archive for a blog that is no longer being updated? An archive
of entries pertaining to an event with a fixed endpoint? A
discussion forum that has been closed.
How are implementations supposed to use this information? Stop
polling the feed? Consider its items immutable? I'm concerned if
something so innocent-looking as "last" has these sorts of implications.
The "first" may not be relevant in the Feed history case but
does come into play when thinking about paged search results,
sequences of linked, non-incremental feeds, etc.
How? Can you give us a bit more flesh for the use case? Again,
I'm not saying it's bad, but I don't see how it's useful in a
feed (as opposed to a Web page).
Suppose that I perform a search on some feed searching service and
get back an entry from a feed in the middle of a set. I see the
next and previous links and realize that the entry I found is part
of a larger set. In order to get the full context, I want to
navigate to the beginning of the set and work my way down through
the links to the end.
You seem to have a human in mind for your use case, when these
relations are just there to allow machines to reconstruct the feed.
In other words, the ordering used for presentation to people is
logically separate from the ordering of feed documents (although the
reconstructed, native feed ordering may be used). As such, your use
case could be met without specifying 'first'; just follow the normal
walk-back-from-the-subscription-feed method to reconstruct state.
2) What's the relationship between these feed documents and the
feed document that people subscribe to?
I think the subscription feed needs to be pinned to one end of
the set (which is what FH does now). Otherwise, it becomes
difficult to figure out whether you have the complete set or
not by polling.
I think this will be dependent on the context in which the link
rels are used. The "subscription" link rel you've suggested is
a good solution to this problem. Within any of the feeds in the
set, the "subscription" link rel would point to the feed that
should be subscribed to -- regardless of whether the
subscription feed appears at the start or end of the set.
What would the algorithm be for assuring that you have the
complete state of the feed, without necessitating traversal of
the entire feed every time?
Not sure. I suppose that it would be the same as it is with your
existing fh:prev element.
It would have to be modified to specify the rules for walking forward
from the first document, and then subsequent updates would need to be
caught by working backwards from the subscription document using "prev."
My current take is that "last" is actively harmful if it implies a
closed set, and misleading if it doesn't, and "next" and "first" are
mostly harmless, but don't really have supporting use cases and add
complexity to both the spec and implementations. I'd really like to
keep it simple. Are there any other use cases?
--
Mark Nottingham http://www.mnot.net/