UserPreferences

PaceReverseLinks


Abstract

Reverse the Directionality of the "previous" and "next" link relations, to bring APP in line with Mark Nottingham's Feed-History I-D.

Rationale

The directionality of the "previous" and "next" linked relations used for APP's collection paging facility clashes with the directionality of said relations assumed be the Feed-History I-D. This introduces interoperability problems with clients supporting both APP and Feed-History. (For further details see http://www.imc.org/atom-protocol/mail-archive/msg04645)

Proposal

Replace in the fourth paragraph of "section 9, Listing Collections" its last two sentences

Such partial feed documents MUST have an atom:link with a "next"
relation whose "href" value is the URI of the next partial listing
of the collection (the least recently updated member resources)
where it exists.  This is called "collection paging".

with

Such partial feed documents MUST have an atom:link with a "previous"
relation whose "href" value is the URI of the previous partial
listing of the collection (the least recently updated member
resources) where it exists.  This is called "collection paging".

To aid readability, reorder the link relations in "section 9.1, Collection Paging", i.e., change in its first paragraph the last sentence

Instead, the Atom feed document MAY contain link elements with "rel"
attribute values of "next", "previous", "first" and "last" that can
be used to navigate through the complete set of matching entries.

to

Instead, the Atom feed document MAY contain link elements with "rel"
attribute values of "previous" and "next", "first" and "last" that
can be used to navigate through the complete set of matching
entries.

Furthermore, replace, in the second paragraph of "section 9.1",

The Atom feed document
for the collection will then represent the first 'page' in a set of
10 linked feed documents.  The "first" relation will reference the
initial feed document in the set and the "last" relation references
the final feed document in the set.  Within each document, the "next"
and "previous" link relations reference the preceding and subsequent
documents.

with

The Atom feed document for the collection will then represent the
most recent 'page' in a set of 10 linked feed documents. The "first"
relation will reference the initial, least recent feed document in
the set whereas the "last" relation references the final, most recent
feed document in the set. Within each document, the "previous" and
"next" link relations reference the preceding and subsequent documents.

Also, replace the example in "section 9.1, Collection Paging"

 <feed xmlns="http://www.w3.org/2005/Atom">
       <link rel="first"
             href="http://example.org/entries/go" />
       <link rel="next"
             href="http://example.org/entries/2" />
       <link rel="last"
             href="http://example.org/entries/10" />
       ...
     </feed>

   The "next" and "previous" link elements for the feed 'page' located
   at "http://example.org/entries/2" would look like this:

     <feed xmlns="http://www.w3.org/2005/Atom">
       <link rel="first"
             href="http://example.org/entries/go" />
       <link rel="previous"
             href="http://example.org/entries/go" />
       <link rel="next"
             href="http://example.org/entries/3" />
       <link rel="last"
             href="http://example.org/entries/10" />
       ...
     </feed>

with

 <feed xmlns="http://www.w3.org/2005/Atom">
       <link rel="first"
             href="http://example.org/entries/1" />
       <link rel="previous"
             href="http://example.org/entries/9" />
       <link rel="last"
             href="http://example.org/entries/go" />
       ...
     </feed>

   The "previous" and "next" link elements for the feed 'page' located
   at "http://example.org/entries/9" would look like this:

     <feed xmlns="http://www.w3.org/2005/Atom">
       <link rel="first"
             href="http://example.org/entries/1" />
       <link rel="previous"
             href="http://example.org/entries/8" />
       <link rel="next"
             href="http://example.org/entries/go" />
       <link rel="last"
             href="http://example.org/entries/go" />
       ...
     </feed>

Impacts

All current APP implementations, since their collection paging routine no longer has follow a chain of "next" relations, but one of "previous" relations.

The change does allow, however, Feed-History implementations, to traverse an APP collection in the same way as a chain of Subscription and Archive Documents.

Notes

See also http://www.ietf.org/internet-drafts/draft-nottingham-atompub-feed-history-05.txt for information on the Feed-History I-D.


CategoryProposals