Re: PaceOriginalAttribute

2005-05-10 Thread Graham
-1
An entry only needs one identifier. The way to solve this problem (if  
it needs solving) is allowing duplicate ids under some or all  
circumstances.

Graham


Re: PaceOriginalAttribute

2005-05-10 Thread Robert Sayre

On 5/10/05, Graham [EMAIL PROTECTED] wrote:
 On 11 May 2005, at 1:22 am, Robert Sayre wrote:
 
  Hmm. I'd be curious to hear what you think the problem is. Every
  system I can think of that does forwarding or versioning assigns
  multiple identifiers. Perhaps you have an example system in mind?
 
 atompub-format-08:
 
 When an Atom document is relocated, migrated, syndicated,
 republished, exported or imported, the content of its atom:id element
 MUST NOT change.

No, I mean a deployed system.

Robert Sayre



Re: PaceOriginalAttribute

2005-05-06 Thread Sam Ruby
Tim Bray wrote:
+1
I'm not 100% convinced it solves the problems Rob says it does, but it 
seems cheap, lightweight, and unlikely to cause any harm. -Tim
I'm growing increasingly comfortable with the concept of allowing 
redistributors to assign new ids as long as they track the original 
(i.e.: not immediate predecessor!) entry.

That being said, I have two things I want to think more about w.r.t. how 
this Pace is currently worded.  (Note: the first is actually only a nit 
concerning the current draft, not the Pace itself):

1) MAY be preserved
   I would prefer if this were recast not so much as an RFC 2119
   interoperability statement, but rather as a definitional one.
   original attributes in atom:source elements are used to
   indicate...  Something along those lines.
2) Atom feeds MUST NOT contain duplicate atom:id values
   How did that get in there?  Depending on how you read it, this Pace
   is incompatible with PaceAllowDuplicateIDs, implying that Tim's
   +1 above can be construed as voting against a Pace he authored!
Whether or not the work group comes to consensus about allowing multiple 
entries to share the same ID in a feed, it still is true that entries 
may change over time.  Perhaps atom:source elements could also define an 
@updated attribute.  As atom:updated is a required element for 
atom:entry, it would not be an unreasonable burden to require @updated 
attributes on atom:source elements.

- Sam Ruby


Re: PaceOriginalAttribute

2005-05-06 Thread Antone Roundy
On Thursday, May 5, 2005, at 05:21  PM, Robert Sayre wrote:
On 5/5/05, Antone Roundy [EMAIL PROTECTED] wrote:
Yeah, they think they are, or at least claim to think so.  But isn't
that the same thing that is stated if you see the following in two
feeds?
feed
idbar:bar/id
entry
idfoo:bar/id
source
idfoo:foo/id
/source
titleI may be an imposter/title
/title
/feed

This says that this feed is (or at least claims it is) forwarding the
entry with the id foo:bar from the feed foo:foo.
OK, now let's say you're subscribed to imposter in PubSub.
feed
  idbar:bar/id
  entry
 idquux:quux1/id
 source orginal=foo:bar
 idfoo:foo/id
 /source
 titleI may be an imposter/title
/entry
  entry
 idquux:quux2/id
 source orginal=foo:bar
 idbaz:baz/id
 /source
 titleI may be an imposter/title
/entry
 /feed
Sorry, I don't understand the point of this example.  I read it as 
saying that these two entries from different feeds claimed the same id. 
 I don't know whether they really are the same entry, or whether one or 
both of their original ids were minted erroneously (accidentally 
duplicating another entry's id) or maliciously (attempting to DOS 
someone else's entry).  I can't see any way of resolving that question 
that I wouldn't have if PubSub had given me this instead:

feed
  idbar:bar/id
  entry
 idfoo:bar/id
 source
 idfoo:foo/id
 /source
 titleI may be an imposter/title
/entry
  entry
 idfoo:bar/id
 source
 idbaz:baz/id
 /source
 titleI may be an imposter/title
/entry
 /feed


PaceOriginalAttribute

2005-05-05 Thread Antone Roundy
-1.
I don't see that this solves any problem.  It may help people avoid 
accidentally generating invalid feeds (if we stick to not to allowing 
duplication of atom:id within a feed), but it does it by simply 
shunting the issue off into a different element which doesn't have 
duplication constraints.  It doesn't address the DOS problem--neither 
accidental nor intentional.  And it doesn't make it any easier to 
determine whether or not entries in different feeds with the same 
atom:id are really the same entry or not.  In fact, it just complicates 
the task by requiring the inspection of two elements instead of one.



Re: PaceOriginalAttribute

2005-05-05 Thread Robert Sayre

On 5/5/05, Antone Roundy [EMAIL PROTECTED] wrote:
 
 -1.
 
 I don't see that this solves any problem.  

I suggest you reread it. Your analysis is deeply flawed.

 It may help people avoid
 accidentally generating invalid feeds (if we stick to not to allowing
 duplication of atom:id within a feed), but it does it by simply
 shunting the issue off into a different element which doesn't have
 duplication constraints. 

Incorrect. Think harder about what PubSub services do. They take an
entry, and munge it (people like that). They move the feed data to
atom:source, and probably add their own extension elements to it. I
think they are forwarding a message. My proposal preserves the
identity of the original message, while requiring the service to mint
an identifier for its forwarded message.

 It doesn't address the DOS problem--neither
 accidental nor intentional.  

Oh yes it does. Each entry's provenance is documented. The data format
accurately states that the intermediary has munged the original entry.

 And it doesn't make it any easier to
 determine whether or not entries in different feeds with the same
 atom:id are really the same entry or not.  In fact, it just complicates
 the task by requiring the inspection of two elements instead of one.

Incorrect. What it does is explicitly state that two different feeds
think they are fowarding the same entry.

Robert Sayre



Re: PaceOriginalAttribute

2005-05-05 Thread Antone Roundy
On Thursday, May 5, 2005, at 10:14  AM, Robert Sayre wrote:
On 5/5/05, Antone Roundy [EMAIL PROTECTED] wrote:
It may help people avoid
accidentally generating invalid feeds (if we stick to not to allowing
duplication of atom:id within a feed), but it does it by simply
shunting the issue off into a different element which doesn't have
duplication constraints.
Incorrect. Think harder about what PubSub services do. They take an
entry, and munge it (people like that). They move the feed data to
atom:source, and probably add their own extension elements to it. I
think they are forwarding a message. My proposal preserves the
identity of the original message, while requiring the service to mint
an identifier for its forwarded message.
Okay, the forwarded message has it's own all-in-one-element identifier. 
 This sounds useful...except that someone may accidentally or 
intentionally duplicate that identifier too.

It doesn't address the DOS problem--neither
accidental nor intentional.
Oh yes it does. Each entry's provenance is documented. The data format
accurately states that the intermediary has munged the original entry.
Maybe I am missing something, but if so...well, by definition, I'm not 
seeing it.  Let's look at an example.  Say your aggregator sees these 
in different feeds:

feed
idfoo:foo/id
entry
idfoo:bar/id
titleI'm the real thing/title
/entry
/feed
feed
idbar:bar/id
entry
idbar:foo/id
source
idfoo:foo/id
originalfoo:bar/original
/source
titleI may be an imposter/title
/title
/feed
Do you display one or both?  How would your decision making process 
differ from if you were to see the following in the second case?

feed
idbar:bar/id
entry
idfoo:bar/id
source
idfoo:foo/id
/source
titleI may be an imposter/title
/title
/feed
And what if we added a third case?
feed
idqwerty:bar/id
entry
idbar:foo/id
source
idfoo:foo/id
originalfoo:bar/original
/source
titleI'm definitely an imposter/title
/title
/feed
And it doesn't make it any easier to
determine whether or not entries in different feeds with the same
atom:id are really the same entry or not.  In fact, it just 
complicates
the task by requiring the inspection of two elements instead of one.
Incorrect. What it does is explicitly state that two different feeds
think they are fowarding the same entry.
Yeah, they think they are, or at least claim to think so.  But isn't 
that the same thing that is stated if you see the following in two 
feeds?

feed
idbar:bar/id
entry
idfoo:bar/id
source
idfoo:foo/id
/source
titleI may be an imposter/title
/title
/feed
This says that this feed is (or at least claims it is) forwarding the 
entry with the id foo:bar from the feed foo:foo.

I am honestly trying to see more in this, but as yet, I don't.


PaceOriginalAttribute

2005-05-05 Thread Tim Bray
+1
I'm not 100% convinced it solves the problems Rob says it does, but it 
seems cheap, lightweight, and unlikely to cause any harm. -Tim



PaceOriginalAttribute (was: PaceDuplicateIDWithSource2)

2005-05-04 Thread Robert Sayre

http://www.intertwingly.net/wiki/pie/PaceOriginalAttribute

On 5/3/05, Martin Duerst [EMAIL PROTECTED] wrote:
 
 I'm not really happy with this.

I found Martin's comments (copied in full below) to be accurate. So, I
thought I would try another approach. Comments, suggestions, and
alterations are welcome.

Robert Sayre


== Abstract ==

Preserve the original ID elsewhere, and require republishers to mint
new IDs for *their entries*.

== Status ==

Open

== Rationale ==

Duplicate entry ids in feeds are too easy to create unintentionally,
and the legitimate uses can't be verified as updates unless they come
from the originating feed.

== Proposal ==

Add an 'original' attribute to atom:source and reword as follows:

{{{

   If an atom:entry is copied from one feed into another feed, then the
   source atom:feed's metadata (all child elements of atom:feed other
   than the atom:entry elements) MAY be preserved within the copied
   entry by adding an atom:source child element, if it is not already
   present in the entry, and including some or all of the source feed's
   metadata elements as the atom:source element's children.  Such
   metadata SHOULD be preserved if the source atom:feed contains any of
   the child elements atom:author, atom:contributor, atom:copyright, or
   atom:category and those child elements are not present in the source
   atom:entry.

 4.2.11.1 The 'original' Attribute
 
   Atom entries can be republished and altered by intermediaries, but 
   Atom feeds MUST NOT contain duplicate atom:id values. The 'original' 
   attribute contains the entry's initial atom:id value. atom:source 
   elements MUST have an 'original' attribute.

}}}


== Impacts ==


== Notes ==



CategoryProposals


On 5/3/05, Martin Duerst [EMAIL PROTECTED] wrote:
 
 I'm not really happy with this. Conceptually, it seems to replace
 an ID for an entry with a pair (ID,feed). As IDs are URIs/IRIs
 (remember what they expand to), that doesn't make sense.
 What guarantee do we have that two feeds will be different?
 (yes, these days, we get feeds over http, but there are other
 ways to get feeds, where things may not be that easy).
 
 If we don't have a solution for the malicious case, and we
 think we need one, we should work on some security stuff.
 
 If we think that accidential ID duplication is a problem,
 then let's look at how we can improve the explanation.
 After that, there may still be an occasional accident,
 but the spec should be worded to catch that, not to
 provide a loophole.
 
 If we have to allow duplicate IDs, I'd rather prefer we
 do it without all this feed/source/... stuff: I.e. if
 you are an aggregator and can't manage to do duplicate
 elimination, you can just delegate the problem to the
 next place in the feeding chain.
 
 Regards,Martin.