Hey Mark,

A few comments after my first read through on this:

1. This appears to be addressed at solving the same problem as Bob Wyman's RFC3229+feed proposal [http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html]. Do you have any empiracle data similar to what Bob provides @ http://bobwyman.pubsub.com/main/2004/10/massive_bandwid.html that would indicate that your approach is a better solution to this problem? These are actually not mutually exclusive solutions, they're just different and could be used for different scenarios -- e.g. Bob's tends to make a lot of sense for blog dashboard feeds like what we use within IBM to show all post and commenting activity within our internal blogs server while your mechanism would work rather well for things like Top Ten lists, etc. I would just like to see a bit of a compare/contrast on the two approaches.

2. Is the feed state mechanism a way of paging through the current contents of a collection or a snapshot-in-time view of a feed? That is...

   is it

A) Collection has a bunch of entries. Each feed representation has 15 entries and the prev link acts like a paging mechanism similar to what we see currently use in search results. Deleting the first ten entries out of the collection would cause all of the entries in the feed to "shift backwards"
            in the feeds

B) Each prev link is representative of how the feed looked at a given point in time. E.g. the feed as it would
             have appeared at a given hour of a given day

If it's A, then Bob's RFC3229+feed solution seems much more efficient. (see #1)

If it's B, then I'm wondering why you don't just use an ETag based approach, e.g.

      <fs:Stateful>1</fs:Stateful>
      <fs:prev>{ETag}</fs:prev>

This would allow clients to only ever have to deal with a single URI for a feed and use conditional-gets with ETag to differentiate which snapshot of the feed they want to get and would likely make it easier to remediate potential recursive reference attacks, (e.g. feed A references feed B which references feed C which is a blind redirect to Feed A).

3. Microsoft's RSS Lists spec uses <cf:treatAs /> to attach behavioral semantics to a feed. This proposal uses <fs:Stateful /> to attach behavioral semantics. It would be nice if we could come up with a relatively simple and standardizable way of attaching behavioral semantics. For example, a standardized <treatAs /> element:

   <atomex:treatAs>stateful</atomex:treatAs>

The value of the treatAs element would be a list of tokens with defined semantics. Each token SHOULD be registered with IANA. Unknown tokens would be ignored. Incompatible tokens would be ignored with first-in-the-list takes precedence semantics. For example:

   <atomex:treatAs>stateful list</atomex:treatAs>

Indicates that the feed should be treated as a list whose past states can be queried using the kind of mechanism you've defined.

- James


Mark Nottingham wrote:


Hi Danny,

Thanks for the comments.

On 29/06/2005, at 1:57 AM, Danny Ayers wrote:


Trivial: might 1/0 be confusing compared to something clearly binary:
true/false or yes/no, and difficult to extend: true/false/unknown


ack

What is the Stateful nature of a feed *without* a Stateful element,
the default if you will? (Could be per-case or 'indeterminate', but I
think some comment on this would be helpful).


Yes, that's the intent; if you don't have a flag, there isn't any information about what it is (or isn't), and you act as you would today.

 If you're talking about feed reconstruction, might it not make sense
to have something like an "all" (which could appear as a minimal list
of dated URIs of entries) to avoid countless GET/interpret cycles?


I put that forth in the original Pace <http://www.intertwingly.net/ wiki/pie/PaceFeedState> (see history), and it got very negative reviews, because it requires a lot of work to maintain, and can be a bandwidth hog. I'm of two minds about it.

--
Mark Nottingham     http://www.mnot.net/



Reply via email to