Re: Feed Thread Draft Updated

2006-04-27 Thread David Powell


Saturday, April 22, 2006, 1:53:26 AM, James M Snell wrote:

 So this is what I've got:

  count = element thr:count {
attribute xml:base { atomUri }?,
attribute ref { atomUri }?,
attribute updated { date-time }?,
( nonNegativeInteger )
  }

I think that is ok.

Aristotle's suggestion is ok, in that it saves a bit of typing in the
common case where there is only one link - but in the case where there
is more than one link, a combined count seems pretty useless: if there
are multiple comment links, then either the consumer can cope with
them and process both the links and counts, or the consumer can't cope
with them and can only process the combined count - but the count
alone without any links to reach the comments isn't very useful, so
why bother with it - consumers that can cope with multiple comments
links will be able to manage addition of the counts if necessary.

A variation would be to go with your proposal, but to say that ref is
optional if there is only one comments link, but would that be
fragile?  People would have to remember to fix things up if they added
extra comment links - but is that going to be a common occurrence?
And implementations that add comment links will presumably be aware of
the semantics of comment links, and will therefore know about the need
to add missing refs?

Anyway, I think that any of these options is better than the current
situation.

 The value of ref is the href of a replies link appearing in the
 entry/feed/source.  Where that gets nasty, of course, is when the href
 is relative and xml:base is being used to set the Base URI.

xml:base always gets nasty, but I don't see it as being a big problem
in this case.

 The updated spec would have an appendix that would explain that previous
 versions of the extension defined the attributes and that some
 implementations have been deployed that use the attributes.  The spec
 will indicate that those attributes are deprecated in favor of the
 thr:count element but that feed consumers have the discretion of whether
 or not to support them.

Maintaining compatibility with an expired Internet Draft?  I don't
really support that.  Is it really needed:

Stage 1: Implementation X has no support for FTE
Stage 2: Implementation X supports obsolete draft of FTE
Stage 3: Implementation X supports final version of FTE

Nobody is going to consider the obsolete form to be invalid. All that
would happen if consumers don't support it, is that they won't see the
thread counts. This isn't a big deal, as before the implementations
had implemented support for FTE consumers wouldn't see the thread
counts anyway. Eventually those implementations that support the
obsolete form will be updated, and consumers will be able to process
the thread counts.

(I think the moral of this story is to, in future, not to specify
IANA-namespaced link rel until a specification has been finalised.
During development there are bound to be changes, and IANA links don't
allow versioning, or DO-NOT-DEPLOY banners in the URI (like the one we
put in Atom draft namespace). Although, to be honest, I'm amazed if
there is any real reluctance to make breaking changes to an Internet
Draft.)

 Does this work?

 - James

-- 
Dave



Re: Feed Thread Draft Updated

2006-04-22 Thread M. David Peterson

That, or You lied to me when you told me this was a web feed!

(credit: 'href (http://plasmasturm.org/code/))

A friend of mine in a compiler writing class produced a compiler with
one error message 'you lied to me when you told me this was a
program'.
– Pete Fenelon

On 4/21/06, James M Snell [EMAIL PROTECTED] wrote:

 The feedvalidator really does need a ValidButPositivelyIdiotic warning.

 - James

 Eric Scheid wrote:
  On 22/4/06 10:53 AM, James M Snell [EMAIL PROTECTED] wrote:
 
  Where that gets nasty, of course, is when the href
  is relative and xml:base is being used to set the Base URI.  Publisher
  would need to make sure that the href/ref combo match up properly
 
  Would this be considered a match?
 
link rel=replies
  href=comments
  xml:base=/06/04/21/blah/ /
thr:count ref=/06/04/21/blah/comments
   updated=...5/thr:count
 
  You just know there'll be a few idiots that will try that on.
 
  e.
 
 




--
M:D/

M. David Peterson
http://www.xsltblog.com/



RE: Feed Thread Draft Updated

2006-04-21 Thread Byrne Reese

Returning from the beyond to cast a vote.

 James M Snell wrote:
  a. Status quo. Leave things the way they are in the current draft

+1

  b. Drop thr:count and thr:when from the spec.

-1

I have yet to hear personally an argument compelling to me to believe
why these elements should be eliminated. Unless they violate an existing
specification, which they don't to my knowledge, I find these incredibly
useful. Furthermore, I am pretty sure James added these at [partially]
my request, so I feel it important for me to provide the use case that
was the catalyst for this feature.

A Six Apart partner (Friendster in this case) desired a way of keeping
tabs on what posts within TypePad were getting new comments, with the
purpose of being able to email its subscribers saying - You have a new
comment on your blog, or your friend has a new comment on their blog.


On one hand this partner could just grab each comments feed individually
and crunch the stats they needed that way, but their IDEAL solution
involved them being able to fetch a single document that contained this
information. The alternative: fetching a feed, then fetching the comment
feed for each entry, parsing those feeds and determining a) when the
last comment was, and how many comments there are in total seemed like
overkill to me

And I have to agree. There should be no need for a client to have to
fetch and parse so much XML on its own to get such simple meta data.
Thus my desire to have these added.

What was especially interesting about our implementation was that we did
not implement comment feeds themselves. We implemented comment meta data
only. You will not find comment feeds on Friendster, but you will find
an easy way for a client to extract meaningful data about comment
activity from the system. It was a light weight solution with minimal
impacts for us and Friendster alike.

Example:
http://byrnereese.blogs.friendster.com/my_blog/atom.xml 

  c. Create a new replies extension element

-0.5

Given that we have an implementation in the wild I tend to say, no, I
like it as-is. But I have no grounds to hold up progress on this draft
because of Six Apart's preference. But 1.5 million blogs using the
replies link relation ain't insignificant. :)

  d. Create a supplemental extension element

+0



Re: Feed Thread Draft Updated

2006-04-21 Thread Robert Sayre

 James M Snell wrote:
 Maybe, but given that WG messed up in not making the link element
 formally extensible, it's not likely to be pretty.

Nice one.

  a. Status quo. Leave things the way they are in the current draft.

-1.

James M Snell wrote:
 None of the implementors I'm aware of are currently making use of
 multiple replies link relations

It doesn't work in the Windows Feed API, client implementors haven't
been too excited about it, and it's not based on existing practice. I
don't really have a problem parsing it, I just don't know what I would
do with a group of those figures, or why it's even needed.


  b. Drop thr:count and thr:when from the spec.

+ 0.5. thr:when seems pretty useless.


  d. Create a supplemental extension element

+1.

Robert Sayre



Re: Feed Thread Draft Updated

2006-04-21 Thread A. Pagaltzis

* James M Snell [EMAIL PROTECTED] [2006-04-13 09:05]:
 Maybe, but given that WG messed up in not making the link
 element formally extensible, it's not likely to be pretty.

Yes. WGs mess up. It’s just life. In a perfect world, this would
be different, but Atom took long enough to ship. What we shipped
feels very solid and robust to me, despite the occasional hole or
oversight.

So let’s just accept that what we have is somewhat imperfect, and
try to get as close to pretty as we can within the constraints.

 Also, keep in mind that the uglier and more complicated the
 correct approach looks, the more implementors are going to
 gravitate towards less-than-correct approaches that meet their
 immediate needs.

I know.

 a. Status quo. Leave things the way they are in the current
draft with a firm warning to implementors that not all atom
impls will be capable of supporting them.

-0.5. As David and Byrne pointed out, having this information is
clearly useful, otherwise these attributes would not be part of
the spec; so it’s worth making an effort to make them available.

 b. Drop thr:count and thr:when from the spec.

+0

Though -0.5 if that’s all that would happen. *Some* mechanism for
providing this information should be available.

 c. Create a new replies extension element
thr:replies href=...
 type=...
 hreflang=...
 title=...
 count=...
 when=... /

+0.5

 d. Create a supplemental extension element
 
d1:
link rel=replies href=... /
thr:replies ref=... count=... when=... /
 
Where the ref attribute in thr:replies / is a
unique identifier that can be matched to the
resource linked by the replies link.  If only a
single replies link is specified, ref can be
omitted.  There could be one thr:replies for
each replies link.

+0.5

I’d instead propose a `thr:count` element with content, with
attributes `ref` and `updated` (`when` is too vague, IMO; I’d
prefer names suggestive of RFC4287 vernacular, particularly when
the semantics are comparable). If `ref` is omitted, this is a
global reply count. If it is present, this is a local reply count
for that resource, and the content of the `ref` attribute must be
identical with the `href` attribute of the corresponding link.
`updated` is, of course, optional.

A single global reply count is always permitted, in addition to
local reply counts, of which there may be exactly one per
resource referenced in a `replies` link.

This reduces the typical use case to a single Simple Extension
Element:

thr:count5/thr:count

This accomodates developers with modest immediate needs neatly.

The most complex scenario then looks something like this, where
there are several additional Structured Extension Elements:

link rel=replies href=http://example.org/06/04/21/blah/comments; 
type=application/atom+xml /
link rel=replies href=http://example.org/06/04/21/blah/trackbacks; 
type=application/atom+xml /
thr:count ref=http://example.org/06/04/21/blah/comments; 
updated=2006-04-22T00:50:55+02004/thr:count
thr:count ref=http://example.org/06/04/21/blah/trackbacks; 
updated=2006-04-21T22:21:37+02001/thr:count
thr:count5/thr:count

It’s somewhat ugly, but I think I can stomach it.

How does that look?

So far I’m not decided about whether there should be any language
to suggest some interpretation of a discrepance between a global
reply count and the sum of local reply counts, but I’m leaning
strongly towards no. Since local reply counts would not have to
be given for *every* resource, any constraint that the sum of
local replies match up with global reply count would have to be
qualified to apply only when local reply counts are present for
*all* linked `replies` resources. So not only is it questionable
whether such a constraint would really be useful in the first
place, rather than an unnecessary burden, but it also would be
complex, and yet feeble. That makes it seem like a bad idea.

d2:
link rel=replies href=... /
thr:replies count=... when=... /
 
only one thr:replies would be specified regardless
of the number of replies links. count would be
reflective of the total number of known replies
across all links.

-1. Having per-link information allows mapping scenarios more
complex than the weblog model, such as a Usenet-ish landscape of
multiple related, but independent distributed feeds. I’d rather
not throw those out.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/



Re: Feed Thread Draft Updated

2006-04-21 Thread James M Snell

grumble ... I'm not really happy with it but this would work.

To be absolutely honest, David's comments here [1] really got me
thinking.  It's definitely worth a read and alone was sufficient to sway
me on this.  I don't like it; the use of the supplemental element is
ugly, but it's better than what's currently out there (e.g. slash:count)
and at the very least preserves the use case.

So this is what I've got:

 count = element thr:count {
   attribute xml:base { atomUri }?,
   attribute ref { atomUri }?,
   attribute updated { date-time }?,
   ( nonNegativeInteger )
 }

The value of ref is the href of a replies link appearing in the
entry/feed/source.  Where that gets nasty, of course, is when the href
is relative and xml:base is being used to set the Base URI.  Publisher
would need to make sure that the href/ref combo match up properly, e.g.:

  link rel=replies
href=comments
xml:base=/06/04/21/blah/ /
  thr:count ref=comments
 xml:base=/06/04/21/blah/
 updated=...5/thr:count

The updated spec would have an appendix that would explain that previous
versions of the extension defined the attributes and that some
implementations have been deployed that use the attributes.  The spec
will indicate that those attributes are deprecated in favor of the
thr:count element but that feed consumers have the discretion of whether
or not to support them.

Does this work?

- James

[1]http://www.oreillynet.com/xml/blog/2006/04/if_its_not_broken_dont_fix_it.html#comment-25193

A. Pagaltzis wrote:
[snip]
 I’d instead propose a `thr:count` element with content, with
 attributes `ref` and `updated` (`when` is too vague, IMO; I’d
 prefer names suggestive of RFC4287 vernacular, particularly when
 the semantics are comparable). If `ref` is omitted, this is a
 global reply count. If it is present, this is a local reply count
 for that resource, and the content of the `ref` attribute must be
 identical with the `href` attribute of the corresponding link.
 `updated` is, of course, optional.
 
 A single global reply count is always permitted, in addition to
 local reply counts, of which there may be exactly one per
 resource referenced in a `replies` link.
 
 This reduces the typical use case to a single Simple Extension
 Element:
 
 thr:count5/thr:count
 
 This accomodates developers with modest immediate needs neatly.
 
 The most complex scenario then looks something like this, where
 there are several additional Structured Extension Elements:
 
 link rel=replies href=http://example.org/06/04/21/blah/comments; 
 type=application/atom+xml /
 link rel=replies href=http://example.org/06/04/21/blah/trackbacks; 
 type=application/atom+xml /
 thr:count ref=http://example.org/06/04/21/blah/comments; 
 updated=2006-04-22T00:50:55+02004/thr:count
 thr:count ref=http://example.org/06/04/21/blah/trackbacks; 
 updated=2006-04-21T22:21:37+02001/thr:count
 thr:count5/thr:count
 
 It’s somewhat ugly, but I think I can stomach it.
 
 How does that look?
 
 So far I’m not decided about whether there should be any language
 to suggest some interpretation of a discrepance between a global
 reply count and the sum of local reply counts, but I’m leaning
 strongly towards no. Since local reply counts would not have to
 be given for *every* resource, any constraint that the sum of
 local replies match up with global reply count would have to be
 qualified to apply only when local reply counts are present for
 *all* linked `replies` resources. So not only is it questionable
 whether such a constraint would really be useful in the first
 place, rather than an unnecessary burden, but it also would be
 complex, and yet feeble. That makes it seem like a bad idea.
 
d2:
link rel=replies href=... /
thr:replies count=... when=... /

only one thr:replies would be specified regardless
of the number of replies links. count would be
reflective of the total number of known replies
across all links.
 
 -1. Having per-link information allows mapping scenarios more
 complex than the weblog model, such as a Usenet-ish landscape of
 multiple related, but independent distributed feeds. I’d rather
 not throw those out.
 
 Regards,



Re: Feed Thread Draft Updated

2006-04-21 Thread A. Pagaltzis

* James M Snell [EMAIL PROTECTED] [2006-04-22 03:05]:
 grumble ... I'm not really happy with it but this would work.

That’s roughly how I feel about it. :-)

It has in fact been the theme all throughout the Thread extension
development discussion…

 To be absolutely honest, David's comments here [1] really got me
 thinking.

Yeah, same here. Credit for my proposition really goes to him,
because his arguments about this matter (not just there, but
taken in entirety) where what drove it.

 I don't like it; the use of the supplemental element is ugly,

Yeah; well sorta: it’s specifically goobering up the document
with duplicate data in the necessary `ref` attributes that annoys
me. But I can’t think of any prettier approach that satisfies all
design goals as per David’s argument.

 Where that gets nasty, of course, is when the href is relative
 and xml:base is being used to set the Base URI.

Augh. Nasty indeed. However, it doesn’t concern me much, because
in Atom, `atom:link` has no children and only a single
URI-carrying attribution. Extensions will probably avoid adding
namespaced attributes or elements to it (cf. current discussion).
This means there’s little reason to apply an `xml:base` to an
individual `atom:link`.

 The updated spec would have an appendix that would explain that
 previous versions of the extension defined the attributes and
 that some implementations have been deployed that use the
 attributes. The spec will indicate that those attributes are
 deprecated in favor of the thr:count element but that feed
 consumers have the discretion of whether or not to support
 them.

I feel uncomfortable about it being codified for “eternity.”
There are still Atom 0.2 feeds in the wild, even though they’re
extremely rare. And we’re not seeing the end of Atom 0.3 anytime
soon. With that experience in mind I’d really prefer that the
previous approach not be legitimised even slightly, because
that’s likely to lead consumer developers to feel that they need
to support the old approach, and might lead publishers to probe
that support. So I’d prefer that there be some pressure for the
old approach to die quickly before it gets implemented in enough
venues for the Atom 0.3 Effect to set in.

I understand why you want it, though.

-0.5, I suppose?

I don’t know what to say about this.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/



Re: Feed Thread Draft Updated

2006-04-21 Thread Eric Scheid

On 22/4/06 10:53 AM, James M Snell [EMAIL PROTECTED] wrote:

 Where that gets nasty, of course, is when the href
 is relative and xml:base is being used to set the Base URI.  Publisher
 would need to make sure that the href/ref combo match up properly

Would this be considered a match?

  link rel=replies
href=comments
xml:base=/06/04/21/blah/ /
  thr:count ref=/06/04/21/blah/comments
 updated=...5/thr:count

You just know there'll be a few idiots that will try that on.

e.



Re: Feed Thread Draft Updated

2006-04-21 Thread James M Snell

The feedvalidator really does need a ValidButPositivelyIdiotic warning.

- James

Eric Scheid wrote:
 On 22/4/06 10:53 AM, James M Snell [EMAIL PROTECTED] wrote:
 
 Where that gets nasty, of course, is when the href
 is relative and xml:base is being used to set the Base URI.  Publisher
 would need to make sure that the href/ref combo match up properly
 
 Would this be considered a match?
 
   link rel=replies
 href=comments
 xml:base=/06/04/21/blah/ /
   thr:count ref=/06/04/21/blah/comments
  updated=...5/thr:count
 
 You just know there'll be a few idiots that will try that on.
 
 e.
 
 



Re: Feed Thread Draft Updated

2006-04-17 Thread James Holderness


James M Snell wrote:

a. Status quo. Leave things the way they are in the current draft


+1


b. Drop thr:count and thr:when from the spec.


+0.5


c. Create a new replies extension element


-1


d. Create a supplemental extension element


+0



Re: Feed Thread Draft Updated

2006-04-13 Thread James M Snell

A. Pagaltzis wrote:
[snip]
 Maybe we can think of other ways to expose this information so
 that it fits the Atom extension model? Are those attributes
 really the only possible approach to this issue?

 Regards,

Maybe, but given that WG messed up in not making the link element
formally extensible, it's not likely to be pretty.  Also, keep in mind
that the uglier and more complicated the correct approach looks, the
more implementors are going to gravitate towards less-than-correct
approaches that meet their immediate needs.

So, with that, let's catalog the options.

a. Status quo. Leave things the way they are in the current draft
   with a firm warning to implementors that not all atom impls
   will be capable of supporting them.

b. Drop thr:count and thr:when from the spec.

c. Create a new replies extension element
   thr:replies href=...
type=...
hreflang=...
title=...
count=...
when=... /

d. Create a supplemental extension element

   d1:
   link rel=replies href=... /
   thr:replies ref=... count=... when=... /

   Where the ref attribute in thr:replies / is a
   unique identifier that can be matched to the
   resource linked by the replies link.  If only a
   single replies link is specified, ref can be
   omitted.  There could be one thr:replies for
   each replies link.

   d2:
   link rel=replies href=... /
   thr:replies count=... when=... /

   only one thr:replies would be specified regardless
   of the number of replies links. count would be
   reflective of the total number of known replies
   across all links.

Of the options above, I'm fine with (a) and (b) ...in that order

IMHO (c) is not a viable option, (d1) is ugly as hell and (d2)
sacrifices the use case for a cleaner implementation.

Please suggest additional options and/or arguments in-favor/against the
options above.

- James



Re: Feed Thread Draft Updated

2006-04-13 Thread Eric Scheid

On 13/4/06 8:02 AM, David Powell [EMAIL PROTECTED] wrote:

 In terms of the considerations to the interoperability of running
 code, thr:replies seems to beat atom:link in every way. It even
 manages to be more concise (you don't need the @rel), and you wouldn't
 need to put thr:count and thr:when into a namespace (namespaced
 attributes confuse people).

atom:link beats thr:replies on the basis that I don't need to understand
what replies are to discover that there is a link from this thing to that
thing.

atom processors know what atom:link is, but it wouldn't know what to do with
this:

 xyz:qwerty foo=opaque-string
   bar=opaque-string
   qaz=opaque-string
   zak=opaque-string /

e.



Re: Feed Thread Draft Updated

2006-04-13 Thread David Powell


Thursday, April 13, 2006, 6:11:32 AM, Eric Scheid wrote:

 atom:link beats thr:replies on the basis that I don't need to understand
 what replies are to discover that there is a link from this thing to that
 thing.

 atom processors know what atom:link is, but it wouldn't know what to do with
 this:

  xyz:qwerty foo=opaque-string
bar=opaque-string
qaz=opaque-string
zak=opaque-string /


But what would processors do with an atom:link? Atom Protocol uses
edit, there have been calls for a stylesheet. Links aren't
necessarily things that you'd display to users (check HTML out for
examples of that: favicon, P3P, Atom/RSS, GRDDL)


-- 
Dave



Re: Feed Thread Draft Updated

2006-04-13 Thread James Holderness


David Powell wrote:

But what would processors do with an atom:link? Atom Protocol uses
edit, there have been calls for a stylesheet. Links aren't
necessarily things that you'd display to users (check HTML out for
examples of that: favicon, P3P, Atom/RSS, GRDDL)


Well if you've got a decent feed API (hint: not the Microsoft one) you could 
ask it for a list of links on an entry without it having to know what all 
the link types are, and without you having to parse the XML yourself. If it 
was a really nice API it might even provide you with a set of extension 
attributes included with each link.


Regards
James



Re: Feed Thread Draft Updated

2006-04-13 Thread David Powell


Thursday, April 13, 2006, 8:24:48 AM, Thomas Broyer wrote:

 c. Create a new replies extension element
thr:replies href=...
 type=...
 hreflang=...
 title=...
 count=...
 when=... /

 -0.5, it *is* a link

thr:in-reply-to is a link too. An extension element was used for
thr:in-reply-to, because atom:link wasn't up to the job. atom:link
isn't up to the job for replies either.

I think that slavishly adhering to convention, at the cost of
interoperability is unwise.


I'm bothered about this because I think requiring people to process
undefined foreign markup is harmful to Atom.

With something like an XHTML document, the only sensible way to
process it is by using XML tools. XPath, XSLT, whatever - they work
well.

With Atom, an Atom Feed Document alone isn't very useful. Almost all
applications will work in terms of Atom Feeds - streams of entries,
and feed metadata. To process this, you need to think of Atom in terms
of entities: Feeds and Entries, not a set of XML Feed documents.
Implementations are based on OO classes and databases, and model
entries in terms of titles, content, links, extensions etc. The Atom
RFC is clear enough, that you can model an Atom Feed in terms of OO
classes, rather than XML documents without losing any data.

This all falls apart when people sprinkle the XML with undefined
markup that can't be represented outside the context of an XML
document.

-- 
Dave



RE: Feed Thread Draft Updated

2006-04-13 Thread Kirit Sælensminde

See below...

http://www.kirit.com/

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:owner-atom-
 [EMAIL PROTECTED] On Behalf Of David Powell
 Sent: Thursday, April 13, 2006 4:49 PM
 To: Thomas Broyer
 Cc: Atom-Syntax
 Subject: Re: Feed Thread Draft Updated
 
 
 I'm bothered about this because I think requiring people to process
 undefined foreign markup is harmful to Atom.
 
 With something like an XHTML document, the only sensible way to
 process it is by using XML tools. XPath, XSLT, whatever - they work
 well.
 
 With Atom, an Atom Feed Document alone isn't very useful. Almost all
 applications will work in terms of Atom Feeds - streams of entries,
 and feed metadata. To process this, you need to think of Atom in terms
 of entities: Feeds and Entries, not a set of XML Feed documents.
 Implementations are based on OO classes and databases, and model
 entries in terms of titles, content, links, extensions etc. The Atom
 RFC is clear enough, that you can model an Atom Feed in terms of OO
 classes, rather than XML documents without losing any data.
 
 This all falls apart when people sprinkle the XML with undefined
 markup that can't be represented outside the context of an XML
 document.

This depends on what sort of application you're building though. As a content 
publisher it doesn't really make that much difference as I will choose the 
markup that I feels best represents my internal data and models (and which I 
think will be best understood and most relevant to my audience).

If I am writing a desktop display tool then I'll work out which extensions are 
going to be of most use to somebody reading the contents of the feed. I'll 
probably ignore all sorts of things that are not relevant or I don't 
understand. My OO model is going to reflect what I'm going to draw on screen 
and so long as I can map incoming feeds to show them it's fine.

The problem comes where I'm writing something that's going to repackage feeds. 
If I make the decision to preserve as much of the original markup then I have 
to allow for that in my internal models. I may however take the view that the 
audience that I'm repackaging the feeds for want me to transform it and that's 
part of my service.

If I as a publisher have chosen to use some weird markup that maybe I've 
invented then that's my lookout. I should really make sure though that the feed 
is understandable at least on a basic level with just core Atom markup. If I 
can't do that then Atom may not be the best medium for me to publish in.


K



Re: Feed Thread Draft Updated

2006-04-13 Thread Eric Scheid

On 13/4/06 6:59 PM, David Powell [EMAIL PROTECTED] wrote:

 But what would processors do with an atom:link? Atom Protocol uses
 edit, there have been calls for a stylesheet. Links aren't
 necessarily things that you'd display to users (check HTML out for
 examples of that: favicon, P3P, Atom/RSS, GRDDL)

as I understand it, dereferencing the 'edit' link returns a representation
of the entry which is suitable for editing (ie. it contains all the bits
needed).

as to the other link types in html ... I hope we've learned something from
that experience since then.

e.



Re: Feed Thread Draft Updated

2006-04-13 Thread A. Pagaltzis

* David Powell [EMAIL PROTECTED] [2006-04-13 11:10]:
 But what would processors do with an atom:link? Atom Protocol
 uses edit, there have been calls for a stylesheet. Links
 aren't necessarily things that you'd display to users (check
 HTML out for examples of that: favicon, P3P, Atom/RSS, GRDDL)

Isn’t that what the `type` attribute is for?

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/



Re: Feed Thread Draft Updated

2006-04-12 Thread David Powell


Tuesday, April 11, 2006, 9:20:32 PM, James M Snell wrote:

 I also added a new warning for implementors: Implementors should note
 that while the Atom Syndication Format does not forbid the inclusion of
 namespaced extension attributes on the Atom link element, neither does
 is explicitly allow for such extensions.  The result of this is that the
 thr:count and thr:when attributes fall outside of the guidelines for
 Atom extensions as defined in Section 6 of [RFC4287] and may not be
 supported by all Atom implementations.

[Apologies to everyone for flogging this dead horse some more. I'm
only doing this, because I care.]

I'll quote your argument from MDP's blog and comment here, rather than
on his dead comment thread, if that's ok:

 Ironically, the primary reason for using link for replies is
 because it makes very little sense to duplicate the function of the
 link element. I considered a thr:replies element. Ultimately, it
 would have looked and acted darn near identical to the atom:link
 element (with attributes like type, href, hreflang, etc). One needs
 to consider whether or not it makes sense to introduce a new
 namespaced extension element that duplicates the basic function of
 atom:link just to support the addition of two *optional* and *purely
 advisory* attributes.

You recognize the fact that adding non-standard attributes on
atom:link isn't going to be fully interoperable (that the thr:count
and thr:when attributes might not make it from producer to consumer
intact), but still prefer to make replies a link element on the
basis of style and convention.

This seems to be the wrong priority to me.
Replacing atom:link rel=replies with an otherwise identical
thr:replies element would fix the interop problem, and wouldn't
introduce any other problems that I can think of. The only reason to
keep the current link element is because it somehow looks better, or
saves copy/pasting the relevant bits of the atom:link spec into the
draft.

In terms of the considerations to the interoperability of running
code, thr:replies seems to beat atom:link in every way. It even
manages to be more concise (you don't need the @rel), and you wouldn't
need to put thr:count and thr:when into a namespace (namespaced
attributes confuse people).

Eg:
 thr:replies type=application/atom+xml
   href=http://www.example.org/mycommentsfeed.xml;
   count=10
   when=2006-02-20T00:00:00Z /

instead of:

 link rel=replies
   type=application/atom+xml
   href=http://www.example.org/mycommentsfeed.xml;
   thr:count=10
   thr:when=2006-02-20T00:00:00Z /


I don't really buy the justification that the attributes don't matter,
so it is ok if they get lost btw. If I was using an API that didn't
give access to the count attributes, I'd probably be a bit miffed, I'm
unlikely to say oh it doesn't matter cause they were only advisory,
I'll just load the comments feed, parse the XML, etc, etc, instead.
Yes, thr:count is derived, so it isn't essential, but this doesn't
mean that it isn't useful. It is obviously useful, else it wouldn't be
in the draft.

-- 
Dave



Re: Feed Thread Draft Updated

2006-04-12 Thread A. Pagaltzis

* David Powell [EMAIL PROTECTED] [2006-04-13 00:15]:
 This seems to be the wrong priority to me.

Convincing arguments, IMHO; +1.

James:

As regards Robert’s vociferous comments, you have to acknowledge
that while the rest of the draft was hashed out in several
iterations, these `thr:count` and `thr:when` things snuck in at a
late stage without any discussion.

And, as regards David’s stance, I think it warrants a reminder
that `thr:in-reply-to` started life as as an `in-reply-to` link
relation as well, but we moved away from that because all of our
attempts to twist Atom links into carrying all the additional
semantics we needed ended up looking funny.

So I would argue that the same appears to be a good idea for the
`replies` relation since it grew beyond the scope of Atom links.

I would even argue that what we are seeing here are really the
first observed instances of a general best practice pattern for
Atom extensions:


Trying to extend `atom:link` is bad. If you need more
semantics than afforded to it by RFC 4287, you should
clone it and tweak the copy.


Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/



Re: Feed Thread Draft Updated

2006-04-12 Thread M. David Peterson
Hey Folks,Great discussion going on here... Thanks!  http://www.oreillynet.com/xml/blog/2006/04/the_power_of_the_people.html
On 4/12/06, A. Pagaltzis [EMAIL PROTECTED] wrote:
* David Powell [EMAIL PROTECTED] [2006-04-13 00:15]: This seems to be the wrong priority to me.Convincing arguments, IMHO; +1.James:
As regards Robert's vociferous comments, you have to acknowledgethat while the rest of the draft was hashed out in severaliterations, these `thr:count` and `thr:when` things snuck in at alate stage without any discussion.
And, as regards David's stance, I think it warrants a reminderthat `thr:in-reply-to` started life as as an `in-reply-to` linkrelation as well, but we moved away from that because all of ourattempts to twist Atom links into carrying all the additional
semantics we needed ended up looking funny.So I would argue that the same appears to be a good idea for the`replies` relation since it grew beyond the scope of Atom links.I would even argue that what we are seeing here are really the
first observed instances of a general best practice pattern forAtom extensions:Trying to extend `atom:link` is bad. If you need moresemantics than afforded to it by RFC 4287, you should
clone it and tweak the copy.Regards,--Aristotle Pagaltzis // http://plasmasturm.org/-- M:D/
M. David Petersonhttp://www.xsltblog.com/


Re: Feed Thread Draft Updated

2006-04-12 Thread James M Snell


A. Pagaltzis wrote:
 * David Powell [EMAIL PROTECTED] [2006-04-13 00:15]:
 This seems to be the wrong priority to me.
 
 Convincing arguments, IMHO; +1.
 

Sorry, not convinced.  I never once claimed that the motivation for
using link was because it looked better.  What I did claim was that
there is little to no technical justification for exactly duplicating
the link element for the sole purpose of introducing two new optional
attributes especially when the Atom spec expressly *allows* for such
extensions.

[snip]
 And, as regards David’s stance, I think it warrants a reminder
 that `thr:in-reply-to` started life as as an `in-reply-to` link
 relation as well, but we moved away from that because all of our
 attempts to twist Atom links into carrying all the additional
 semantics we needed ended up looking funny.
 
 So I would argue that the same appears to be a good idea for the
 `replies` relation since it grew beyond the scope of Atom links.


With in-reply-to, the key issue that swung the argument in favor of a
new extension element was whether or not the [EMAIL PROTECTED] attribute value
could be an atom:id value or whether it had to be a dereferenceable URI.
 In other words, it was quite likely that ignorant implementations would
do the Wrong Thing with a [EMAIL PROTECTED]in-reply-to].

Big difference in this case.  There are no additional semantics that
make the replies link look funny.  It *looks* like a link; smells like
a link; acts like a link; it *is* a link. The fact that that link MIGHT
have two additional pieces of metadata associated with it does not make
it any less of a link.

Further, there is likely zero chance that properly coded rfc4287
implementations will do the Wrong Thing with a [EMAIL PROTECTED]replies],
even if those implementations do choose to ignore-and-discard unknown
foreign markup that happens to appear in the link.

 I would even argue that what we are seeing here are really the
 first observed instances of a general best practice pattern for
 Atom extensions:
 
 
 Trying to extend `atom:link` is bad. If you need more
 semantics than afforded to it by RFC 4287, you should
 clone it and tweak the copy.
 
 

Not to be snarky, but that philosophy hasn't exactly worked out too well
in the past (e.g. the rss 2.0 description tag).

The Atom link element is well defined and does *everything* the replies
link requires, right on down to the undefinedAttribute* and the
definition of unknown foreign markup.

Bottom line: I'd be far more inclined to either drop thr:when and
thr:count from the spec or document a clear caveat that the two
attributes are likely not to be supported in some implementations than I
would be to use anything other than link for replies.


- James



Re: Feed Thread Draft Updated

2006-04-12 Thread A. Pagaltzis

* James M Snell [EMAIL PROTECTED] [2006-04-13 04:10]:
 What I did claim was that there is little to no technical
 justification for exactly duplicating the link element for the
 sole purpose of introducing two new optional attributes...

David countered that having this information is clearly useful,
else these attributes would not be in the spec, which means there
is a case to be made for making sure they’re available to all
clients, even those behind an API that only provides access to
Sec.6 extensions.

 With in-reply-to, the key issue that swung the argument in
 favor of a new extension element was whether or not the
 [EMAIL PROTECTED] attribute value could be an atom:id value or
 whether it had to be a dereferenceable URI. In other words, it
 was quite likely that ignorant implementations would do the
 Wrong Thing with a [EMAIL PROTECTED]in-reply-to].

My memory was different, so I went and re-read the threads.

The non-dereferencable URI issue was an important sideline, but
it was only a sideline in that discussion. If we were having that
discussion now, I agree that it would be a much bigger sticking
point, but back then, it was an also-ran.

The big debate which swayed the issue at the time was having a
mechanism for associating a source link with an in-reply-to link.
We were trying all sorts of funny combinations with things nested
inside the links or the links nested inside other things, IDREF
attributes, and what have you.

In the end, I put a big torch to my own proposition of an
`in-reply-to` link relation to end the madness:
http://www.imc.org/atom-syntax/mail-archive/msg16594.html

 Big difference in this case. There are no additional semantics
 that make the replies link look funny.

It’s not nearly as funny-looking as that crazy in-reply-to
business we came up with back then, conceded.

 Not to be snarky, but that philosophy hasn't exactly worked out
 too well in the past (e.g. the rss 2.0 description tag).

But `description` can only appear once in an item, and therefore
there has to be some precedence matrix between it and its
derivatives. Not so with `atom:link` and clones, all of which may
appear any number of times in an entry, and thus pose no
precedence problem. In other words, comparing the two situations
is not quite fair.

 Bottom line: I'd be far more inclined to either drop thr:when
 and thr:count from the spec or document a clear caveat that the
 two attributes are likely not to be supported in some
 implementations than I would be to use anything other than link
 for replies.

Maybe we can think of other ways to expose this information so
that it fits the Atom extension model? Are those attributes
really the only possible approach to this issue?

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/



Re: Feed Thread Draft Updated

2006-04-11 Thread James Holderness


James M Snell wrote:

The Feed Thread draft has been updated.

http://www.ietf.org/internet-drafts/draft-snell-atompub-feed-thread-07.txt

I am an absolutely terrible proofreader so I'd really appreciate it if
someone could do a quick scan over the current doc to find the typos
that I know must be scattered throughout.


Section 4, paragraph 1:
into a separate feed document (singular document)
its value is assumed (no apostrophe)

Section 4, last paragraph:
neither does it explicitly allow (is - it)

Section 6:
Security considerations: (see section 5) (6 - 5)

Not a proofreading issue, but shouldn't section 5 say something about DOS 
attacks using replies links to third party servers? I wouldn't be surprised 
if some clients automatically subscribed to all replies links in a feed even 
if they were 100MB zip files on a completely different site.


Regards
James



Re: Feed Thread Draft Updated

2006-04-11 Thread James M Snell


James Holderness wrote:
[snip]
 Section 4, paragraph 1:
 into a separate feed document (singular document)
 its value is assumed (no apostrophe)
 
 Section 4, last paragraph:
 neither does it explicitly allow (is - it)
 
 Section 6:
 Security considerations: (see section 5) (6 - 5)
 

Fixed in the next draft. Thank you.

 Not a proofreading issue, but shouldn't section 5 say something about
 DOS attacks using replies links to third party servers? I wouldn't be
 surprised if some clients automatically subscribed to all replies links
 in a feed even if they were 100MB zip files on a completely different site.
 

Hmm.. this problem would apply generally to all types of Atom link
wouldn't it?  In any case, it likely would be good to at least mention
that implementations should take care when using the replies link to
automatically subscribe to feeds.

- James



Re: Feed Thread Draft Updated

2006-04-11 Thread James Holderness


James M Snell wrote:

Not a proofreading issue, but shouldn't section 5 say something about
DOS attacks using replies links to third party servers? I wouldn't be
surprised if some clients automatically subscribed to all replies links
in a feed even if they were 100MB zip files on a completely different 
site.


Hmm.. this problem would apply generally to all types of Atom link
wouldn't it?  In any case, it likely would be good to at least mention
that implementations should take care when using the replies link to
automatically subscribe to feeds.


I don't think it necessarily applies to all links, just those that are 
likely to be followed automatically. I'm fairly sure I've seen aggregators 
that have an option for automatically subscribing to wfw:commentRss links so 
I'm assuming they're likely to do the same for this extension. Enclosures 
are another link type where I would consider this an issue.


I didn't see anything mentioned in the security section of RFC4287 though, 
so maybe it's not such a big deal. Mark's feed history draft covers it, but 
it could be argued that the feed history links probably SHOULD be followed, 
whereas enclosure and replies links only MAY be followed.


Anyway I'm not really sure it's essential. I just thought I should mention 
it in case it's the kind of thing that causes problems for you when 
submitting to the IETF.


Regards
James



Re: Feed Thread Draft

2006-01-25 Thread Eric Scheid

On 26/1/06 4:23 PM, James M Snell [EMAIL PROTECTED] wrote:

 thr:in-reply-to id=tag:example.org,2006:/some/entry

is that id for the thing being replied to, or the id of this thr:in-reply-to
element? if the former, is suspect idref would be more appropriate. but what
do I know?

e.



Re: Feed thread draft

2005-12-12 Thread James Holderness


A. Pagaltzis wrote:

Given this constraint, do you have a better idea how do address
the following concerns?

• Threading-unaware clients should get at least some information
 that allows the user to notice that there’s more to the entry,
 even if the user agent remains blissfully unaware of the thread
 as such.


I think a related link that points to the permalink of the original 
message is a good start.



• The available information precise enough that threading-aware
 can correlate all the related bits without guessing.


What about something like this:

th:in-reply-to
 idtag:www.example.org:2005:entry1/id
 link rel=feed type=application/atom+xml 
href=http://www.example.org/feed.atom/
 link rel=related type=text/html 
href=http:www.example.org/entry1.html/

/th:in-reply-to

No doubt there are issues with the syntax, but the important concept is the 
idea of having two clearly defined links: one being the permalink for the 
entry being replied to and the other being the atom feed in which that entry 
can be found. It could be made more flexible by allowing further alternate 
links, but I'm not sure that's necessary.



Honestly, I haven’t seen any yet that do anything interesting at
all with extra links (be they related, via, or something else)…
(Which rather irks me.)


Me neither. I can't say I'm exactly doing anything interesting with links, 
but I am at least doing something with them.


Regards
James



Re: Feed thread draft

2005-12-12 Thread A. Pagaltzis

* James Holderness [EMAIL PROTECTED] [2005-12-13 03:55]:
 What about something like this:
 
 th:in-reply-to
  idtag:www.example.org:2005:entry1/id
  link rel=feed type=application/atom+xml 
 href=http://www.example.org/feed.atom/
  link rel=related type=text/html 
 href=http:www.example.org/entry1.html/
 /th:in-reply-to
 
 No doubt there are issues with the syntax,

The biggest issue being that a threading-unaware client won’t
know to go looking inside thr:in-reply-to to find links. This
syntax will only satisfy the “allow threading-unaware clients to
do something useful” constraint if you duplicate the links at the
atom:entry level.

 but the important concept is the idea of having two clearly
 defined links: one being the permalink for the entry being
 replied to and the other being the atom feed in which that
 entry can be found. It could be made more flexible by allowing
 further alternate links, but I'm not sure that's necessary.

If the extensibility afforded by child elements is not a useful
goal (and in this case, I think it isn’t; is there more
information that is going to be needed than the source feed and
permalink?), that could be handled cleanly by just adding an
@alternate attribute to thr:in-reply-to to record the permalink.

atom:link elements can then simply be added to the atom:entry.
This keeps things nicely flat and simple.

I am not sure that the semantics of adding atom:[EMAIL PROTECTED]'feed']
to atom:entry are particularly clean; but we might just decide
that it isn’t a great loss if threading-unaware clients miss the
feed link. Or else we’d need to pick a better name for the
relation.

So the changes would be:
• Rename @href to @source.
• Repurpose @href to contain the alternate link.
• Change the recommendation to include an
  atom:[EMAIL PROTECTED]'related'] to point to the alternate link
  instead of the feed.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/



Re: Feed thread draft

2005-12-11 Thread A. Pagaltzis

* James Holderness [EMAIL PROTECTED] [2005-12-11 03:55]:
 What do you think such a client would typically do with related
 links? I don't know about anyone else, but what I do is display
 them in a see also list that the user can launch in a browser
 window. This works very well when the links are to web pages or
 other resources that can be handled usefully by a browser, but
 it's a complete waste of time if the link is pointing to an
 Atom feed.

You do that even if it’s

link rel=related type=application/atom+xml href=... /

?

 Maybe there's a better way. Can you imagine some other way in
 which clients might handle related links (without knowing
 anything about this extension) that would be able to do
 something useful with a link that pointed to an Atom feed -
 specifically the Atom feed that the current message is replying
 to?

Minimally, it can pull the feed and look for its alternate link.
Less minimally it can also look at all the other metadata that
Atom documents can contain.

We’re talking about an Atom consumer here; that it wouldn’t be
able to do something sensible with Atom docs strikes me as an odd
objection.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/



Re: Feed thread draft

2005-12-10 Thread James Holderness


James M Snell wrote:

What is the type of the resource pointed to by the in-reply-to href? It


It's whatever type the server says it is when you GET it (Content-Type 
header).


Well ideally you wouldn't want to GET or HEAD every href in order to 
determine its type. I'm not positive this is a problem, but it may be 
depending on what a client may want to do with this extension.


The related link allows clients that are not familiar with the Feed Thread 
extension to at least be able to indicate that there is some kind of 
relationship between the two resources.


Imagine that a client doesn't know anything about this extension. What do 
you think such a client would typically do with related links? I don't know 
about anyone else, but what I do is display them in a see also list that 
the user can launch in a browser window. This works very well when the links 
are to web pages or other resources that can be handled usefully by a 
browser, but it's a complete waste of time if the link is pointing to an 
Atom feed. Most of the time the user will just get a page of meaningless 
XML - at best they'll get the option to subscribe to a feed that they're 
quite likely already subscribed to.


But that's just how I handle links. Maybe there's a better way. Can you 
imagine some other way in which clients might handle related links (without 
knowing anything about this extension) that would be able to do something 
useful with a link that pointed to an Atom feed - specifically the Atom feed 
that the current message is replying to?


Now if the in-reply-to href was pointing to a web page I could understand 
recommending a related link that pointed there too. So maybe you could limit 
the recommendation like that. Or otherwise just leave out the recommendation 
altogether and let the feed producer decide whether a related link is a good 
idea or not. Related links are already part of the Atom spec - there's 
nothing stopping a feed producer using them - but I'm not sure they should 
be encouraged to do so with links which may not be at all appropriate.


Regards
James



Re: Feed thread draft

2005-12-09 Thread James M Snell



James Holderness wrote:


James M Snell wrote:
The feed thread draft is a major update that includes a simplification 
of the in-reply-to element.


  in-reply-to
id=tag:example.org,2005:some-unique-id
href=http://example.com/some-location; /


I really like what you've done with this. I have a couple of questions 
though.


What is the type of the resource pointed to by the in-reply-to href? It 


It's whatever type the server says it is when you GET it (Content-Type 
header).


seems to me it can't be an Atom feed since that isn't really a 
representation of the resource being responded to (although that would 
probably be most useful here). An Atom entry document? An HTML web page? 
What would you expect a client application to do with this value? A link 
to the source feed I could see myself using (in combination with the id 
obviously), but I'm not sure about the other two.


Most likely it will end up being the source feed.  The idea was to leave 
this un(der)specified for now and let implementors figure out what works 
best.




Second question: what is the reason for recommending a related link when 
the href points to something external? It seems to me an unnecessary 
duplication of information but I may be missing something. And once 
again what would you expect the client to do with it? A HTML page could 
be provided to the user as a clickable link, but an Atom feed? An Atom 
entry document? Obviously the answer to this depends on the type of the 
href, which brings us back to initial question.




The related link allows clients that are not familiar with the Feed 
Thread extension to at least be able to indicate that there is some kind 
of relationship between the two resources.


- James