On 22 May 2005, at 06:29, Tim Bray wrote:
News flash! Bob and I agree!
I have been following this discussion and am finding I am also
agreeing with
Tim, Bob and Aristotle P. The points are subtle.
This made me wonder if the points are not playing themselves out a
different
level. Perhaps the problem is that we are not clear about the
difference between
semantics and what is being said.
At the level of semantics an entry as identified by its id has a
number of
dated representations. These representations can be grouped in
different ways
according to different identity criteria. One very precise such
identity criteria
would be string identity. Two representations are identical if they
are character
by character identical. Another identity criteria, lets call it
update identity,
says that two such representations are equivalent if they have the
same atom:updated
time stamp. This is a very vague identity criterion, which leaves it
up to the
interaction between users and consumers to set constraints on the
criterion. The
user has to face the fact that consumers may drop some of his changes
(conceived of
as changes under the criterion of string identity) if he does not
change the date.
So let us think of this from the point of view of the three players
in this game: the
original publisher, the final consumer, and the intermediary.
The original publisher
----------------------
When the publisher is the same person as the person defining the
identity criteria,
then it makes sense that he should not publish two entries in a feed
that are identical
according to his own criteria. This can not be conceived to be a
restriction on him.
The final consumer
------------------
The final consumer may have different identity criteria to the
publisher of the
feed, but since he is not the one to publish the feed there is not
much for him
to do. He cannot force the original publisher to be more precise,
because that
would be to ask the person who is publishing to see a distinction
where he sees
none. And this does not even take into account that other consumers
may disagree
with him anyhow.
The aggregator
--------------
The problematic case comes from those aggregating feeds. And I think
here I can identify
two different problems:
a- The aggregator may say he has different identity criteria
from the publisher. If he
has then one can simply answer: your business is to be transparent,
not to place yourself
in between your user and his public.
b- The aggregator wants to be completely transparent. But has a
problem because he is
not sure who to trust, and different people are making different
claims about the same
thing (the id). In everyday life there is a well known method for
doing this honestly: we
quote the source of who said what. If Smith says that the red car is
his and John says that
the car is his, I don't need to say that the car belongs to Smith and
to John, I can just say
"Smith says that 'the car is his' and John says that 'the car is
his'". I just need to
quote what others have said.
If this is the problem faced by Bob then I don't think
atom:modified is going to help.
That would be being precise in the wrong place. What would have
helped was perhaps the solution proposed by Roy Fielding a few months
ago, namely that a feed should be able to contain a feed. Bob's pub
sub service would then be just able to quote what others (feeds) have
said. It would
then have been correct to hold the position currently held that no
feed should *directly*
contain an entry with the same atom:updated value. It would allow
that a feed could contain two
feeds each with different entries containing the same id and the same
atom:updated time stamp.
It would then be up to the consumer to decide which one it trusts.
Henry Story