On Oct 17, 2005, at 3:44 PM, Mark Nottingham wrote:
On 17/10/2005, at 12:31 PM, James M Snell wrote:
Debating how the entries are organized is fruitless. The Atom
spec already states that the order of elements in the feed has no
significance; trying to get an extension to retrofit order-
significance into the feed is going to fail... just as I
discovered with my Feed Index extension proposal.
Here's what the spec says: "This specification assigns no
significance to the order of atom:entry elements within the
feed." ...but there may be some. ...but there's no action you can
take based on it unless something else tells you what the
significance is. ...which, yes, is very difficult to specify.
For the purposes of this discussion, it doesn't matter what the order
of atom:entry elements within a feed document is. But the order of
chunks of atom:entry elements within a linked series of feed
documents may have significance, and in fact, unless you just want to
reconstruct the complete feed state, working with a series of feed
documents with no specific order would be fairly unwieldy. Imagine
paging though a feed of search results with no idea of whether you'd
just jumped from the most to the least significant results, or to the
second most significant results. Imagine trying to catch up on a
fast-moving incremental feed without having any idea whether a link
would take you to the first entries ever added to a feed or the one's
you just missed.
I do believe that a "last" link relation would be helpful for
completeness
...and "last" certainly seems to imply SOME sort of ordering of
chunks, even if we know nothing about the order of the entries in
each chunk.
To each of the following, perhaps we could add something to indicate
that these link relations are all used to page through the current
state of a feed, and not to navigate among various states of a feed.
The fact that most people wouldn't have a clue what that means
without some discussion of incremental and non-incremental feeds may
be an argument for having a spec document to provide more explanation
(rather than embedding an identical explanation in each
Description). Example:
"At any point in time, a feed may be represented by a series of Feed
documents, each containing some of the entries that exist in the feed
at that point in time. In other words, a feed may contain more
entries than exist in the Feed document that one retrieves when
dereferencing the subscription URI, and there may be other documents
containing representations of those additional entries. The link
relations defined in this specification are used to navigate between
Feed documents containing pages or chunks of those entries which
exist simultaneously within a feed.
"Note that this specification does not address navigation between the
current and previous states of a type of feed which does not
simultaneously contain it's current and past entries. For example, a
"Top 100 Songs" feed might at any point in time only contain entries
for the top 100 songs for a single week, which entries may or may not
be divided among a number of Feed documents. The entries for the top
100 songs from the previous week are not only no longer part of the
Feed document or Feed documents representing the current state of the
feed--they are no longer part of the feed at all. Another
specification may describe a method of navigating between the current
and previous states of such a feed. The link relations defined in
this specification are only used to navigate between the various Feed
documents representing any single state of such a feed."
- Attribute Value: prev
- Description: A stable URI that, when dereferenced, returns a
feed document containing entries that sequentially precede those in
the current document. Note that the exact nature of the ordering
between the entries and documents containing them is not defined by
this relation; i.e., this relation is only relative.
- Expected display characteristics: Undefined.
- Security considerations: Because automated agents may follow
this link relation to construct a 'virtual' feed, care should be
taken when it crosses administrative domains (e.g., the URI has a
different authority than the current document).
- Attribute Value: next
- Description: A stable URI that, when dereferenced, returns a
feed document containing entries that sequentially follow those in
the current document. Note that the exact nature of the ordering
between the entries and documents containing them is not defined by
this relation; i.e., this relation is only relative.
- Expected display characteristics: Undefined.
- Security considerations: Because automated agents may follow
this link relation to construct a 'virtual' feed, care should be
taken when it crosses administrative domains (e.g., the URI has a
different authority than the current document).
- Attribute Value: first
- Description: A stable URI that, when dereferenced, returns a
feed document containing those entries furthest preceding those in
the current document at the time it was minted. Note that the exact
nature of the ordering between the entries and documents containing
them is not defined by this relation; i.e., this relation is only
relative.
- Expected display characteristics:
- Security considerations:
- Attribute Value: last
- Description: A stable URI that, when dereferenced, returns a
feed document containing those entries furthest following those in
the current document at the time it was minted. Note that the exact
nature of the ordering between the entries and documents containing
them is not defined by this relation; i.e., this relation is only
relative.
- Expected display characteristics: Undefined.
- Security considerations: