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/

Reply via email to