At 00:12 05/05/07, Bob Wyman wrote:
> Right. We have abstract feeds and entries and we have concrete feeds >and entries. The abstract feed is the actual stream of entries and updates >to entries as they are created over time. Feed documents are "concrete" >snapshots of this stream or abstract feed of entries. An abstract entry is >made "concrete" in entry documents or entry elements. An abstract entry may >change over time and may have one or more concrete instantiations. > Some applications are only interested in being exposed to those >concrete entries that reflect the "current" or "most recent" state of the >abstract entries -- these apps would prefer to see no duplicate ids in >concrete feed documents even though these duplicates *will* occur in the >abstract feed. Other applications will require visibility to the entire >stream of changes to abstract entries -- these applications will wish to see >concrete feeds that may contain multiple, differing concrete instantiations >of abstract entries. i.e. they will want the concrete feed to be an accurate >representation of the abstract feed. Two needs, to views...
You say 'some applications' and 'other applications', as if they were on the same footing. In my view, the 'some applicaitons' (only interested in latest version) should be the usual case, and the 'other applications' (interested in more than one version) should be the exception.
Mapping that back to the origin, applications generating feeds that in one way or another rely on the user getting more than one, or more than the latest, versions of their entries have made a design error, they have taken the wrong thing for the 'entry'. If they think that they have two different kinds of audiences, interested in two different things, they should publish two feeds. Some people claim that we need a definition for 'entry' to finish this discussion, but once we confirm that a feed can only contain one version of an entry with the same ID, the definition of entry is as clear as we need it to be.
This is just the same as for Web pages. If somebody puts up a Web page for the current weather, there is nothing in HTTP that will help me get the past versions of this page. If the publisher thinks that people may be interested in past weather info, they will make up separate pages. If we think that it would be valuable to be able to correlate the entries in both feeds, we should define an extension for that, not mess around with the basic model. An extension would be rather easy, we only need two rel values for links in entries. One rel value could be called "permaentry", the other could be called "updatingentry". Maybe a third called "updatingfeed", if there is an updating feed for a single changing entry. I'm sure there are better names.
The main use I see for documents with multiple entries with the same ID is archives. Everything else can be handled by the creater doing the right thing, or by an immediary offering a new feed with versions of the entry (no guarantee to have all of them, in that case). Even archives could be handled that way if really needed, but it's difficult to immagine that everybody will publish an archive feed. We can easily define an <archive> top level element, and that problem is solved.
For aggregators, wanting to forward two or more entries with the same ID for me means that they are simply not doing their job. Aggregators should aggregate, not just function as GIGO (garbage in, garbage out) processors.
So it should be clear that I'm -1 on PaceAllowDuplicateIDs.
Regards, Martin.