Re: PaceRepeatIdInDocument solution

2005-02-20 Thread Sam Ruby
Bob Wyman wrote:
	Given that history shows that publishing repeated ids has never
bothered anyone enough to cause them to complain, we should permit this
benign practice to continue. 
I have exactly the opposite experience.  I have people who have thanked 
me for noticing that they have repeated ids as it indicated an error in 
their software.

- Sam Ruby


Re: PaceRepeatIdInDocument solution

2005-02-20 Thread Graham
On 20 Feb 2005, at 4:07 am, Bob Wyman wrote:
PubSub regularly produces feeds with multiple instances of the same 
atom:id.
Which part of universally unique didn't you understand?
	It is particularly important to avoid prohibiting this benign
practice since it is so important to generators of aggregated feeds.
Aggregated feed generators are supposed to maintain atom:id unchanged 
when
they copy entries into an aggregate feed.
This is a fair point. I concede that multiple versions of entries with 
the same id is acceptable if and only if they have different feed ids 
in their head-in-entry, since essentially then they aren't in the same 
feed.

Graham


Re: PaceRepeatIdInDocument solution

2005-02-20 Thread Eric Scheid

On 20/2/05 4:34 PM, Graham [EMAIL PROTECTED] wrote:

 That's not what I meant. I opposed atom:modified because this use case
 wasn't on the table then. I oppose multiple ids partly because we don't
 have atom:modified. You can't have one without the other.

if this use case was on the table back then, and you were to consider the
question in that light, where would you stand?

(actually, we could have atom:modified while still outlawing multiple id's,
but you are right that atom:modified is required to disambiguate if multiple
id's are allowed.)

 My real problem with atom:modified is that it's unnecessarily tied to
 the Last Modification Date semantic, when it would work just as well
 for this purpose if it weren't. We just need a date with the constraint
 date(a)date(b) whenever entry instance a is older than entry instance
 b. This would make it easier to generate in various scenarios, and
 sidestep the problem of defining what a modification is.

heh -- one way to then generate to fit your requirements would be

atom:modified := atom:published + sequential-number

that is, increment the atom:modified by one second for every version.

Semantically, it would work ... for comparing two instances of one entry. It
wouldn't work for establishing if an entry was modified before or after
[some event moment] (eg. close of the stock exchange).

As to defining modification ... I was writing spec text which attempted
just that ... I was working towards the idea that any changes in values of
atom:entry elements, other than serialisation (including character encoding
and element order), and ignoring any changes in referenced resources.

 Nonsense. That's like arguing that http agents should only support those
 mime-types which were already defined oh so many years ago. No software
 currently exists that can possibly be expecting application/foo, but that
 doesn't mean application/foo is an illegal mime-type.
 
 No, since the HTTP spec says that any mime type is possible, whereas the Atom
 spec says ids are universally unique. If it's wrong to then think you won't
 find the same id twice in the same document, the spec needs to say so.

My apologies: I was making an analogy, not providing an example. As such,
ignore the specifics of the analogy. I should have just written Spec FOO is
silent on X, therefore X is verboten. Which is a nonsense position.

e.



Re: PaceRepeatIdInDocument solution

2005-02-20 Thread Henry Story

On 20 Feb 2005, at 17:10, Graham wrote:
On 20 Feb 2005, at 4:07 am, Bob Wyman wrote:
PubSub regularly produces feeds with multiple instances of the same 
atom:id.
Which part of universally unique didn't you understand?
Ok, I see so you interpret the universally unique in
[[
An Identity construct is an element whose content  conveys a permanent, 
universally unique identifier for  the construct's parent. Its content 
MUST be a URI, as  defined by [RFC3986]. Note that  the definition of 
URI excludes relative references.
]]

to mean that there can only be one entry in a feed with the same id, and
presumably across all feeds, or else why use the word universally and
not feedally?
Why could we not then allow another id construct, call it entryId that
would be what all entries that are just editorial changes of one another
have in common?
This would be something like:
feed
...
entry
idtag:bblfish.net/entry1/version1/id
entryidtag:bblfish.net/entry1//entryid
titleAtom Robots Run Amok/title
...
/entry
entry
idtag:bblfish.net/entry1/version2/id
entryidtag:bblfish.net/entry1//entryid
titleAtom-Powered Robots Run Amok/title
...
/entry

/feed
As you can see in the above feed there are no two entries with
the same id. Yet there are two entries with the same entryid.
Would the above be an ok feed for you, or are there some other
reasons why a entryid node would be illegal?
	It is particularly important to avoid prohibiting this benign
practice since it is so important to generators of aggregated feeds.
Aggregated feed generators are supposed to maintain atom:id unchanged 
when
they copy entries into an aggregate feed.
This is a fair point. I concede that multiple versions of entries with 
the same id is acceptable if and only if they have different feed ids 
in their head-in-entry, since essentially then they aren't in the same 
feed.
So should we replace universally unique above with unique in a feed 
then?

Graham



Re: PaceRepeatIdInDocument solution

2005-02-20 Thread Walter Underwood

About logical clocks in atom:modified:

--On February 21, 2005 3:30:13 AM +1100 Eric Scheid [EMAIL PROTECTED] wrote:

 Semantically, it would work ... for comparing two instances of one entry. It
 wouldn't work for establishing if an entry was modified before or after
 [some event moment] (eg. close of the stock exchange).

Establishing sequences of events is rather tricky. See Leslie Lamport's
Time, Clocks, and the Ordering of Events in Distributed Systems for how
to do it with logical clocks. The core part of the paper is short, maybe
five pages, and definitely worth reading if you care about this stuff.

 http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf

Synchronized clocks make this simpler. If Atom depends on comparing timestamps
from different servers, then synchronized clocks are a SHOULD. See the text in
PaceCaching for an example.

Synchronized clocks are already a SHOULD for HTTP.

wunder
--
Walter Underwood
Principal Architect, Verity



Re: PaceRepeatIdInDocument solution

2005-02-20 Thread Graham
On 20 Feb 2005, at 4:30 pm, Eric Scheid wrote:
if this use case was on the table back then, and you were to consider 
the
question in that light, where would you stand?
I like the model where the feed content is approximately The current 
version of the latest entries. I don't think anything else makes much 
sense, least of all Various states past and present of various entries 
(some assembly required).

heh -- one way to then generate to fit your requirements would be
My idea would be that the originating server would simply stamp entries 
with the current time during feed generation, so if they get mixed up 
in transit by third parties or caches the later version would still be 
known. Note the originating server doesn't have to store or keep track 
of anything.

As to defining modification ... I was writing spec text which 
attempted
just that ... I was working towards the idea that any changes in 
values of
atom:entry elements, other than serialisation (including character 
encoding
and element order), and ignoring any changes in referenced resources.
But that gets complicated to generate cleanly. When you edit your feed 
template you need to do something like:

  if (entry modification date  date template was edited)
 print date template was edited
  else
 print entry modification date
Generating a last modification date according to someone else's idea of 
modification is not pretty.

My apologies: I was making an analogy, not providing an example. As 
such,
ignore the specifics of the analogy. I should have just written Spec 
FOO is
silent on X, therefore X is verboten. Which is a nonsense position.
I wouldn't define the phrase universally unique as Atom being silent. 
It is massively open to interpretation since the literal meaning is 
nonsense, and I suppose conveying no useful information could be 
interpreted as silence.

Graham


RE: PaceRepeatIdInDocument solution

2005-02-20 Thread Bob Wyman

Graham wrote:
 My idea would be that the originating server would simply stamp 
 entries with the current time during feed generation, so if they
 get mixed up in transit by third parties or caches the later version
 would still be known. Note the originating server doesn't have to
 store or keep track of anything.
You propose timestamps, yet you oppose atom:modified -- which was
intended to provide precisely the timestamps you suggest. Or, is there
something I am missing? (atom:modified was entry-specific but you seem to be
suggesting a feed-global timestamp...)
Is the problem in your comment that the originating server doesn't
have to store or keep track of anything? Does this imply that your
timestamp is really just the atom:updated of the feed and would change every
time that the feed was updated? If this is the case, should we reword the
definition of atom:updated to say that when it is used as feed metadata, it
MUST be updated every time the feed is changed in ANY way? Should the
significant change words only apply to atom:updated in entries? (Note:
Since the feed's atom:updated is an element of Head, this implies that if
HeadInEntry stands, the feed's atom:updated would or could be in the
entry.)
If your timestamp is really the same as the feed's atom:updated,
then what is the impact of your proposal on signatures? Would all individual
entries in a feed need to be re-signed every time any change was made to the
feed such as inserting a new entry? Would this be the case even if the
change did not otherwise modify the signed entry? 
Does your timestamp proposal imply that an entry which appeared in
multiple feeds would have a different timestamp in each feed it appeared?
(Note: That would have the odd effect of tending to make error-prone copies
consistently appear to be the 'last modifications.' One tends to write to
the main feed first and then later to category feeds... Copies will
generally have timestamps later than the originals.)

 Generating a last modification date according to someone else's
 idea of modification is not pretty.
Yes! This is the problem that an intermediary in the channel faces.
The intermediary (a proxy, retrospective search engine, prospective matching
engine, etc.) needs to know which entry is the most recent modification.
However, Atom provides no mechanism by which the last modification can be
identified without heuristics. (atom:updated only tells you the time of the
last significant modification but that leaves you unable to determine
which of various alternative insignificant modifications should be passed
on by the intermediary.
Without help from the Atom format, the best an intermediary can do
is keep track of date_entry_was_found. However, this can cause problems
since entries can exist in multiple feeds. Thus, the order in which the
feeds are read can cause old entries to over-write newer ones.
 
bob wyman




Author tag

2005-02-20 Thread Tennessee Leeuwenburg
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Hi guys,
I looked at the mail archive. It's a shame it doesn't have a search
facility on the web page. In any case, I am writing some Atom parsing
libraries for Java, as I found the existing ones to be old and usually
only partial implementations. I'm basically where I need to be, except
I could use some additional clarity on the Author element. If I look
at the Feedburder feed for my blog
(feeds.feedburner.com/Melbournephilosopher) I notice that the author
element is
author
~name MelbournePhilosopher /name
/author
while the spec makes no mention of this.
Cheers,
- -Tennessee
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCGYADFp/Peux6TnIRArPfAJ9gmHZQMhcdNV80soSulorjtKnqvACfSJvR
I9vBueXuSxtihUIjIMZNCA0=
=GIux
-END PGP SIGNATURE-


Re: Author tag

2005-02-20 Thread Tennessee Leeuwenburg
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Clarification: The spec makes no mention of the sub-element name. It
looks like the author tag is the leaf node, and should contain only text.
| Hi guys,
|
| I looked at the mail archive. It's a shame it doesn't have a search
|  facility on the web page. In any case, I am writing some Atom
| parsing libraries for Java, as I found the existing ones to be old
| and usually only partial implementations. I'm basically where I
| need to be, except I could use some additional clarity on the
| Author element. If I look at the Feedburder feed for my blog
| (feeds.feedburner.com/Melbournephilosopher) I notice that the
| author element is
|
| author ~name MelbournePhilosopher /name /author
|
| while the spec makes no mention of this.
|
| Cheers, -Tennessee
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCGYZGFp/Peux6TnIRAq7lAJ4iwgjgx6AOqOX/Xzv6xEm/2nIrSwCePqoP
C+F5+lbgzPM2RsYPCp8eTHM=
=+Xsb
-END PGP SIGNATURE-


Re: Author tag

2005-02-20 Thread Isofarro
Tennessee Leeuwenburg wrote:
author
~name MelbournePhilosopher /name
/author
Current draft specification:
http://www.ietf.org/internet-drafts/draft-ietf-atompub-format-05.txt
atom:author element is defined on page 20
atom:author uses the Person Construct. So have a look at Section 
3.2 Person Constructs page 9.