Re: self and alternate links for entries

2007-01-30 Thread Thomas Broyer


2007/1/30, Bill de hOra:


I'm building a tool (for Plone) at the moment that will publish any
content as an Atom Entry by appending '/entry.xml' onto the URL. I had a
question about declaring self and alternate links. Here are two options:

1:

@rel=self,@type=application/xml+atom links to the Entry

@rel=alternate, @hreflang, @type, links to the Content

2:

@rel=self @hreflang, @type, links to the Content

@rel=alternate, @type=application/xml+atom links to the Entry

I couldn't find enough information in the RFC about which way to go.
Which would you choose, and why?


#1, because:

a. I understand "self" as "myself"

b. rel="self" was initially added –even though that does not appear in
the spec– so that feed readers do not have to know the IRI where the
feed was downloaded, they can just read a byte-stream and the
feed-level  will tell them that IRI. For
entry-level such links, I would expect the same: where could I
download this "file" when nobody gave me its IRI?

--
Thomas Broyer



Re: within HTML content

2007-01-01 Thread Thomas Broyer


2007/1/1, Geoffrey Sneddon:


On 1 Jan 2007, at 16:59, Asbjørn Ulsberg wrote:

> the  element has no place in an HTML fragment, so its meaning
> is (although most browsers wrongfully supports its presence
> anywhere in an HTML document) unspecified.

Web Applications 1.0 (keeping with the real world) defines that it
should be moved to HEAD within the DOM tree.


I suppose HTML within Atom is rather processed as "innerHTML", so
there is no "head pointer", and the  element is just appended as
a child of the current node (along with a "parse error" !)


Why, may I ask, MUST (under the RFC 2119 definition) HTML content be
a fragment ("HTML markup within SHOULD be such that it could validly
appear directly within an HTML  element, after unescaping." -
note the word SHOULD, not MUST, implying that you can have a full
HTML document within)?


Yes, you could, in the sense that the Atom document wouldn't be
"invalid", but you shouldn't expect it to be processed as a "full HTML
document".

The "SHOULD" implies that Atom processors are OK if they process HTML
"content" as "innerHTML" on a  element.

--
Thomas Broyer



Re: Atom Entry docs

2006-12-14 Thread Thomas Broyer


2006/12/14, Tim Bray:


Bob Wyman wrote:
> There is, I think, a compromise position here which will avoid breaking
> those existing implementations which follow the existing RFC's.

In case you haven't noticed, the WG is hopelessly split
between the new-media-type option and the media-type-parameter option.
If a few people were to put up their hands and say "yeah what Bob said"
your co-chairs would probably do a hasty consensus grab.


Just in case: "yeah what Bob said" ;-)

--
Thomas Broyer



Re: Atom Entry docs

2006-12-14 Thread Thomas Broyer


2006/12/14, Bob Wyman:

There is, I think, a compromise position here which will avoid breaking
those existing implementations which follow the existing RFC's.


It was exactly the point behind my proposal for this 'type' parameter.

--
Thomas Broyer



Re: PaceEntryMediatype

2006-12-07 Thread Thomas Broyer


[CC'ing the WHATWG list]

2006/12/7, Jan Algermissen:


Seriously: how many feed readers are out there that base the decision
wheter something is subscribeable on the type attribute of a link
rather then on the link type?


Every one?
Oh, they also look at the rel="alternate", but I'm pretty sure they
won't "process" the link if the 'type' attribute is absent, and they
don't "process" it if it's present with a value different from the
Atom or RSS media type.


As an analogy: HTML browsers look for stylesheets where it says



and not



Eh?


Let's take two files, index.html and style.css. Now, let's describe
the relationship between them.
What is style.css wrt index.html? a stylesheet that browsers should
use to present index.html.
What is index.html wrt style.css? a page that uses style.css as a stylesheet.
The relation really *is* "stylesheet" (when taken from the page to the
stylesheet), whether it is written in CSS, XSLT->XSL-FO, DSSSL, etc.

Now, let's take a "blog entry page" and the "blog feed" and try to
describe the relationship between them.
What is the blog entry page wrt the blog feed? a resource that is
being or has been linked from the feed as one of its "items". If you
see a feed as a set of entries not restricted to the limited set
exposed by its representations, the entry is still part of the feed.
What is the blog feed wrt the blog entry page? a feed (set of entries,
bla bla bla) which is linking or has been linking to the entry page as
one of its "items".
The relation in this case is "feed" (when taken from the entry page to
the feed; note that rel="feed" here is *not* the same as the one from
the current HTML5 draft). What's clear is that it is not "alternate",
as used today for feed autodiscovery.
This rel="feed" is IMO useful because that's what people are generally
looking at when they want to "subscribe to a site" and are not already
looking at an "HTML feed": where's the feed which contains this item?

Last example, in two parts:
Let's start with Mozillazine's homepage and its Atom0.3 feed; they are
clearly rel="alternate" representations of the same thing: a feed (set
of entries, bla bla bla). The HTML version also contains sidebars with
additional information, but they're not part of the "main content".

Now, let's take, say the Mozilla.org homepage. It is linking to
Mozillazine and its feed. I don't know how we could describe the
relationship between Mozilla.org and Mozillazine and that's not the
point here, so let's call it "X".
If Mozilla.org is linking to Mozillazine using rel="X" and given that
Mozillazine's homepage and Atom0.3 feed are alternates; Mozilla.org
should also be linking to Mozillazine's Atom0.3 feed using rel="X"
(which it does in an  in the  of the page, where actually it
uses no rel="" at all).
So why the hell is it using rel="alternate"? (in a  in the
 section).
As Mozillazine's Atom0.3 feed is an alternate representation of the
Mozillazine's homepage, does it mean that Mozilla.org and Mozillazine
also are rel="alternate"? I'd say no, however that's what
rel="alternate" implies (it has been re-enforced in HTML5 that
rel="alternate" is transitive).

If rel="" on  and  had a default value (let's say
rel="related"), then this value could be used in the required rel=""
attribute of  when linking to feeds which are neither
rel="alternate" or rel="feed" (with the definition given above, *not*
the one from HTML5):
  http://www.mozilazine.org/atom.xml";
type="application/atom+xml" title="Mozillazine News">


My last point: if the rel="feed" as described above seems useless,
then I'm not opposed to having a rel="feed" "marker" as defined in the
current HTML5 draft, with an addition: that this "feed" marker be
"combinable" with any link rel: rel="feed alternate", rel="feed up",
rel="feed index", etc. (and at the condition that it is explicitely
defined as a "marker" and not as a relationship; rel="prefetch" and
rel="nofollow" would also need this distinction).

--
Thomas Broyer



Re: PaceEntryMediatype

2006-12-03 Thread Thomas Broyer


2006/12/2, Antone Roundy:


Now that this has sunk in, it makes a lot of sense--the @rel value
says "you can subscribe to that",


Why would I subscribe? is it an alternate representation of what I'm
looking at? or the feed containing the article I'm looking at? or a
totally distinct resource that might interest me if I'm interested in
what I'm looking at (think about blogrolls and the "people who bought
this also bought that and that" links)?

By saying "you can subscribe to that", you're not describing a
relation. Maybe you're describing a facet of the resource the link
points to, but is this objective or subjective? If it's meant to be
objective, then the media type is enough (am I *able* to subscribe to
such a thing), or maybe there's a need for another kind of metadata (I
proposed a new 'subscribable' attribute on the WHATWG list).


The media type helps the user agent figure out whether it has
the capability to do those things.  For example, a feed reader that
only handles RSS could ignore subscription links to resources of type
"application/atom+xml" (ie. not present the subscription option to
the user).


And if an UA has the capability to subscribe to something, why
couldn't it provide a mean to subscribe, whichever the relationship?
What would be important is to reflect the relationship on the UI so
the user have all the information available to choose whether he
*wants* to subscribe.


The "subscribe to hAtom feed" case where @type is "text/
html" might be a little difficult to make a decision on, because
there's no indication of what microformat is being used by the
"feed" (or even if there's a microformat in use at all--maybe it
really is just an HTML page, and "subscribing" to it just means
"watch for changes to the entire document").


...or it's an HTML5 page making use of the new  element...


One problem that I hadn't really thought clearly about till right now
is that understanding the nature of the think linked TO may require
some understanding of the nature of the thing linked FROM.  For
example, an "alternate" link from a typical blog homepage to its feed
really does point to the same thing in an alternative format.  Both
are live documents in which new data gets added to the top, and old
data drops off the bottom.  But if you don't know that the webpage is
a live document, you wouldn't know whether the link pointed to a
static or live document.  "alternate" is perfectly accurate, but it's
not helpful enough.  "subscribe" would be much more explicit.


Why should it be automated?
When you go read a web site every morning because you know it's
"live", it's not automated. What you could automate is how to go read
that site (e.g. use it as your browser's "start page", or include it
in a bunch of bookmarks you "open in tabs" every morning).
There's not always a need to automate everything. Things like "whether
it'd be interesting to subscribe to something" are better handled by
humans than computers.

--
Thomas Broyer



Re: PaceEntryMediatype

2006-11-30 Thread Thomas Broyer


2006/11/30, Mark Baker:


The real problem here AIUI - at least in the context of HTML 5's
inferred rel="feed" bit - is not just entry documents, it's any Atom
document which wouldn't normally be considered a "feed" by a typical
user; something that most people would be interested in subscribing
to.  An example I gave on the whatwg list was an MHTML-like (MIME
multipart) package, but there are many other possible examples of
course; not all RFC 4287 feed documents are "feeds" in this sense.


Yes.


If HTML 5 (and current practice) doesn't change, but we defer to them
for the specification of autodiscovery, then a new media type would be
one way forward.  But it should be reusable for all non-"feed" (i.e.
from a user POV, as above) Atom documents, not just entry documents;
perhaps application/atom-no-feed+xml.  It's an ugly hack, but it's
better than the alternative of many more specific Atom-related media
types, which atomentry+xml might set a precedent for.


-1
This means RSS would need two media types.
This also means an HTML document can be a "feed", or it needs its own
media type.
In an "entry" page in a blog-like scenario, we could find:
  
  
which tells you the page "believes" it is an "item" in the linked "feeds".
Then , in /feed.atom:
   
and in the "/":
   

And yes, HTML pages are "subscribable", either using a microformat
(see the W3C's home page, from which the RSS is actually produced
using an XSLT stylesheet), or using user-defined "scrapping" (some
aggregators allow you to subscribe to any web page; they try to infer
the "entries" from the semantical markup –h1, h2, h3, etc.– and you
can customize the mechanism in per-feed basis: this page uses h2, this
one uses h3 with class="article", etc.)

The relation from the "entry" page to the feed or "home page" is the
same (hey, they are alternates!): they are "feeds", whatever their
representation (Atom, RSS, HTML, etc.)
The difference with "container"? a "feed" is known to have a
representation which only exposes a subset of the contained items.

This is the same as:




Another way forward, because the rel="feed" inference is triggered not
just by the media type but by the "alternate" relationship keyword, is
to create a non-feed alternate relationship ("alternate-non-feed"?
ick).

I prefer the new relationship to a new media type because it's less
disruptive; it doesn't require futzing around with existing specs and
implementations.


I'd prefer basing autodiscovery on the media types and not at all on
the relationships. A "feed" relationship would only help finding the
"living resource" (similar to rel="current" in the Atom Relationship
Registry) if you're not already "on" it (in which case,
rel="alternate" would be used).

UAs would then obviously continue to support autodiscovery using
"alternate" all-over-the-place, this would just be a lucky
side-effect; and everyone would be happy.

--
Thomas Broyer



Re: PaceEntryMediatype

2006-11-29 Thread Thomas Broyer


2006/11/29, James M Snell:

Create a new media type for Atom Entry Documents: application/atomentry+xml

Deprecate the use of application/atom+xml for Entry Documents.


I'd largely prefer augmenting the existing media type with a 'type' parameter:
- application/atom+xml => either feed or entry (as defined in RFC4287)
- application/atom+xml;type=feed => feed
- application/atom+xml;type=entry => entry


{{{
Atom Entry Documents are identified with the
 "application/atomentry+xml" media type (See section 15).
}}}


How about defining a "tree" similar to the */vnd.* one?
- application/atom+xml => feed or entry document
- application/atom.categories+xml => category document
- application/atom.service+xml => service document
...and of course, if this proposal is finally accepted:
- application/atom.entry+xml => entry document


As for Tim's concerns, I'd also prefer having it done outside the APP.

Also, the APP draft would need to be updated to remove the "entry"
special value for app:accept, as it would be equivalent to the new or
revised media type (app:accept=application/atom+xml;type=entry or
app:accept=applicationAtom.entry+xml)

--
Thomas Broyer



Re: WHAT-WG, feed and alternate (was: Re: PaceAutoDiscoveryDraftIsPointless)

2006-11-29 Thread Thomas Broyer


2006/11/29, James M Snell:


The problem I have with the WHAT-WG definition of the alternate and feed
relations is the unintended conflict that occurs when the alternate
representation of a page happens to be an Atom Entry Document.

The HTML5 draft says,

"If the alternate keyword is used with the type attribute set to
the value application/rss+xml or the value application/atom+xml,
then the user agent must treat the link as it would if it had
the feed keyword specified as well."

It goes on to say,

"The feed keyword indicates that the referenced document is a
syndication feed. If the alternate link type is also specified,
then the feed is specifically the feed for the current document"

The problem with this is that the "application/atom+xml" media type is
also used for Atom Entry Documents:

  

The current WHAT-WG definition is inadequate.


Already exposed here:
http://www.imc.org/atom-syntax/mail-archive/msg19100.html
and there:
http://www.imc.org/atom-syntax/mail-archive/msg19107.html
;-)


There are three possible solutions:

  1. We ask the WHAT-WG to fix their spec so the ambiguity in the Atom
 media type is addressed


+1 (see above; see also Mark Baker's mail in this same thread –not yet
in the archives)


  2. We add a type parameter to the application/atom+xml media type
 to differentiate feed and entry documents,
 e.g. application/atom+xml;type=feed,
  application/atom+xml;type=entry


+1


 When the media type is used without the type parameter,
 type=feed is assumed.


I'd rather say: if there's no 'type' parameter, assume nothing, it can
be a feed or entry; this would make the "updated media-type" fully
backwards compatible with the current one (which shipped a year ago).


  3. We define a new media type for Atom Entry Documents,
 e.g. application/atomentry+xml


-1

--
Thomas Broyer



Re: PaceAutoDiscoveryDraftIsPointless (was: PaceMakeAutodiscoveryInformational)

2006-11-28 Thread Thomas Broyer


2006/11/28, Robert Sayre:


Nonsense. You know very well that projects I work on will get bug
reports on "standards" compliance if you change something. So, yes, I do
have to waste my time here. Since I maintain autodiscovery code people
actually use, you'd think my opinion would count for something.


If autodiscovery could be defined as in [1], I'd happy to see Firefox
(and IE7) have bug reports on "standards" compliance: I do not use
current autodiscovery implementations because I'm not confident in
their (undocumented) behavior (among other things, like integration
with external aggregators). I'd like autodiscovery documented
somewhere, but not as a documentation of current practices (which I
think are Bad Things), rather as "clean" way to do it.

However, if any spec (informational or not) tends to only document
what's already done, be sure I'll try to "kiil it before it's done".

--
Thomas Broyer



Re: PaceMakeAutodiscoveryInformational

2006-11-28 Thread Thomas Broyer


2006/11/28, Robert Sayre:


The WHAT-WG text is fine.


-1
For various reasons, including:
http://www.imc.org/atom-syntax/mail-archive/msg19100.html
http://www.imc.org/atom-syntax/mail-archive/msg19107.html

--
Thomas Broyer



Re: PaceResurrectAutodiscovery

2006-11-24 Thread Thomas Broyer


2006/11/24, Henri Sivonen:

On Nov 24, 2006, at 10:28, Thomas Broyer wrote:

> My main problem with autodiscovery is this use case: the following
> links on an "entry page" in a blog-like scenario, where comments on
> the entry are shown at the bottom of the page:
> title="A standalone Atom Entry alternate representation, might
> even be updatable using HTTP PUT" />
...
> 1. the first one should not be seen as a "feed" link;

That ship sailed long ago. For backwards compatibility, UAs will
treat links like the one quoted above as feed autodiscovery links--
not as standalone APP editing links. It is too late to apply elegance
retroactively.


…except if you update application/atom+xml to add a type=entry
parameter... in which case the existing code will probably won't
"find" the link...

In the absence of 'type' parameter, you have no mean to know whether
the Atom DOcument is a feed or entry, so you treat it as a "possible
feed", just in case. And you're backwards compatible.

--
Thomas Broyer



Re: PaceResurrectAutodiscovery

2006-11-24 Thread Thomas Broyer


2006/11/23, Henry Story:

On 23 Nov 2006, at 14:28, Thomas Broyer wrote:

>
>> "The feed keyword indicates that the referenced document is a
>> syndication feed.
>
> "Being a syndication feed" is expressed by the media type, there's no
> need for a 'rel' value.
>
> The only reason for such a 'rel' is to replace the "contents" value in
> the example above:
> 
> 
> in "blog-like" use-cases where an HTML page serves the same purpose as
> a syndication feed, just in an 'alternate' format.

Exactly: you have just made one good point why one should not use
mime types to identify the relation. After all there may be many
different feed representations: html, rss 1.0, rss 2.0, atom,
rdf, ... etc...


My problem is that:
1. there is no need for a "feed alternate" as spec'd by the WhatWG:
  - when you (as an autodiscovery tool) look at a resource, it might
point to a 'feed' within which it is an 'entry' (or 'item'), this
'feed' might be many different formats, if it happens that you know
how to subscribe to one of the proposed formats, you can provide a
"subscribe to feed" ("within which the current 'page' is an 'item'"
implied) button;
  - when you look at resource which is a 'feed' (and this kind of
thing cannot be "autodiscovered"), then you'll have links to other
formats as 'alternate's, if it happens that you know how to subscribe
to on the proposed formats, you can provide a "subscribe to _this_
feed" (or "subscribe to this page") button
The condition to show a "subscribe" button is whether you know how to
deal with the format, the text you'll use on the button depends on the
relation of this "feed resource" wrt the "current page".
2. stating that if rel="alternate" and @type is RSS or Atom (feed or
entry), then treat the same as rel="feed alternate" is a Bad Thing:
the 'alternate' might be a standalone Atom entry, or might be an
"archive feed": in the former case, a type=entry would disambiguate
it; in the latter case, you'll still provide a "subscribe button"
(because you have no mean to detect it is an "archive feed" without
downloading it) but when the user will click it and you'll dereference
the link, you'll pop up a "the feed is marked as being an archive,
which means it won't be updated, are you sure you want to subscribe?"
message box. If the feed has a  with a @type you
know how to deal with, you can change the message box to add "however
the feed provides the location of a 'living feed', do you want to
subscribe to this one instead?".

So, what I'm saying is: I'm not willing to use media types to identify
relations (the fact that you can technically subscribe to a thing
depends on the format of that thing, whether you can parse it or not),
I'm willing NOT TO use relations to identify "groups of media types"
(the ones looking like feed: a container with metadata and contained
items with their own metadata).

Last, but not least, "alternate stylesheet" has a special meaning, and
using "alternate feed" in a different way is a bit confusing...

My main problem with autodiscovery is this use case: the following
links on an "entry page" in a blog-like scenario, where comments on
the entry are shown at the bottom of the page:




1. the first one should not be seen as a "feed" link; I'm proposing
adding a type=entry parameter to the application/atom+xml media type
to help disambiguation; I'm also disagreeing here with the rule of the
WhatWG (rel="alternate" + "feed" media type => rel="feed alternate")

2. which values to give to XXX and YYY?
If XXX is 'alternate', then you need a type=feed parameter not to
confuse the two first links.
XXX and YYY should not be the same, the relations are not the same:
XXX is "contained" while YYY is a "container".
I'm proposing XXX=alternate and YYY=feed; along with adding a
type={feed,entry} to the application/atom+xml media type.


There are many other good reasons to not use the "alternate" relation
everywhere. The spec [1] for feed makes the case for a useful
distinction between a feed that can be used to track updates of the
content one is looking at,


You don't need a special format for that, you could just regularly
poll the resource with If-Modified-Since and If-None-Match.
A special format (which would just be an 'alternate', and nothing
more) helps present it in a unified way along different web sites.


and something that is just an alternate representation of the content
one is looking at expressed in application/atom+xml format.


That would be 'feed alternate'? If so, then your other case above does
not fall in the 'feed' case: from the WhatWG, "otherwise, the feed is
just a syndication feed, not necessarily
associated with a particular Web page": how can you describe a
relationship between to things (that's what is doing a link) and at
the same time say that the other end of the link is "not associated
with a particular Web page"?


This would be the case for the front of my blog page.


rel=alternate is enough in this case.

--
Thomas Broyer



Re: PaceResurrectAutodiscovery

2006-11-23 Thread Thomas Broyer


2006/11/23, Henri Sivonen:


The latest WA 1.0 draft covers this as follows:

"If the alternate keyword is used with the type attribute set to the
value application/rss+xml or the value application/atom+xml, then the
user agent must treat the link as it would if it had the feed keyword
specified as well."
http://whatwg.org/specs/web-apps/current-work/#alternate0


This conforts me in thinking that the application/atom+xml media type
should be updated to add a "type" parameter with values "feed" and
"entry".
There would be no ambiguity between these two links:



I expect aggregators to allow me to subscribe to feeds (subscribe in
the sense or "watch for new –or updated– entries) or individual
entries (subscribe in the sense of "watch for updates"). With
rel="alternate" and an RSS or Atom media type, those aggregators could
show a "subscribe to this page" button. With an RSS or Atom media type
and another 'rel', they could a "subscribe to [EMAIL PROTECTED]" button.

For example, with these two links:


a browser could show "Go to Table of Contents" and "Subscribe to Table
of Contents" buttons.


"The feed keyword indicates that the referenced document is a
syndication feed.


"Being a syndication feed" is expressed by the media type, there's no
need for a 'rel' value.

The only reason for such a 'rel' is to replace the "contents" value in
the example above:


in "blog-like" use-cases where an HTML page serves the same purpose as
a syndication feed, just in an 'alternate' format.

--
Thomas Broyer



Re: The "src" attribute of atom:content

2006-11-22 Thread Thomas Broyer


2006/11/22, Tse Shing Chi (Franklin/Whale):


There is an unexpected reply located in
http://www.imc.org/atom-protocol/mail-archive/msg07722.html.


Oops, sorry!
(double-checked, this time, I answer to atom-syntax ;-) )


Quote:

...
  I don't know how to display such a content within a widget, however
I know there is some program in the "registry" (Windows Registry,
Freedesktop's shared MIME database, OS X configuration, etc.) which is
able to open it; so I whot the summary (if any) and provide "Open
with..." and "Save as..." buttons. I couldn't do that with an
xhtml:object embeded in an  (or eventually
type="html").

It is almost what I want aggregators to do actually. However, web-based
aggregators may have difficulties in handling it.


They could "display" the summary and provide a "Download the entry
content" link. If they know how to "display" the content, then they
can generate HTML code (an xhtml:object) with fallback to the summary:

  If you see this message, it generally means your browser does
not know how to display content of type "image/svg+xml". However, the
entry publisher has provided this summary for you to read:
  ...entry's summary...

Download the entry content...


Currently, the way to provide alternate format or text... seems to be the 
followings.


I personnaly have no problem with a summary acting as an alternate
text (to display if the content can't be): hey, there's a valid reason
why summary must be provided if the content is out-of-line or
base64-encoded ;-)
Alternate "formats" should be linked to using 


Anyway, no one can ensure that aggregators will display the summary
when they are [NOT] able to show the content.


Right, but I hope and expect those aggregators to either be updated or
tend to disappear (because people will switch to "better"
aggregators).

--
Thomas Broyer



Re: categories and tagging

2006-11-02 Thread Thomas Broyer


2006/11/2, Henry Story:


On 2 Nov 2006, at 12:19, Thomas Broyer wrote:
>
>> [[
>> The "term" attribute is a string that identifies the category to
>> which the entry or feed belongs. Category elements MUST have a "term"
>> attribute.
>> ]]
>>
>> nowhere is there mentioned a IRI there,
>
> IRIs are not forbidden either, and Andrew's description makes me think
> the "concept URI" *is* the "term".

The question is: how does this help any of us? It may look like it is
a "term", but what is a client meant to do with all this information?


Nothing.
A client is not meant to do anything with atom:category elements other
than for categorizing the entry or feed.


So if Tim Bray uses



Then what am I meant to do with this info?


You can tell the reader that the entry is in the "Places" category,
you can provide a "show other entries within this category" feature,
you can group entries by their category (in a treeview: root nodes are
the list of schemes, their child nodes are the list of terms,
presented using the provided @label; if there are different @label
used, you can default to the latest and provide a tooltip or other
contextual info such as "a.k.a. Locations, Where"), etc.


Since scheme is a URL I can presumably go there to find something. But what?


Some people also want to dereference XML Namespaces' URIs.


Term is not defined to be a URI, and in the above example it is not,
and so why should I do anything with the term below?

http://my.scheme.net/my-vocabulary/";
   term="http://my.concept.net/my-vocabulary/13745";
   label="cats"
   />


There's no reason you would do anything with it either.


What I am proposing is that we put forward some best practice to
formalize a useful and RESTful way to publish this information, so
that clients can use it. With APP we could do something like this: we
could define for example that when entries are published and they
contain categories that have a scheme that is accepted by the
collection, then the entry will be found in the feed that is to be
found either by appending scheme+term or in the catid location I
mentioned previously.


-1
But you can still do it yourself in your own implementation,
eventually with the use of an f:feature to communicate the feature to
clients.


So if Tim Bray posts an entry containing


...



and his collection manages the <http://www.tbray.org/ongoing/What/>
scheme, as defined perhaps in the service document, (and perhaps we
can place the list of available categories at that scheme location!)
then his client will know that the entry will also be found in the
<http://www.tbray.org/ongoing/What/Places> collection.


I don't see how this is useful, but you might have good reasons.


Now this would be useful for an APP publishing client, and it would
be useful for an APP reader, because it could find some useful
information at these various locations,


I understand the need to provide a "category URI" in some scenarios
but that should be an extension to the atom:category element or a
"mapping mechanism" communicated by a feed-level or entry-level
extension, but please no "global assumption".


and it would save us having
to define an unending number of link relations that parallel the
categories we have, when it is in fact clear that everybody intends
to use scheme+term as a uri.


Do you mean scheme+term, scheme+"/"+term or scheme+"#"+term?
or maybe scheme+"/"+term+".atom"? or scheme+"/tags/"+term?

--
Thomas Broyer



Re: categories and tagging

2006-11-02 Thread Thomas Broyer


2006/11/2, Henry Story:


On 2 Nov 2006, at 08:59, Thomas Broyer wrote:
> [redirecting to atom-syntax]

This is also a protocol issue, because we are asking what to do with
the information in the atom feed. [1]


Not sure how atom-protocol is concerned but let's keep it in
atom-protocol too...


> 2006/11/1, Houghton,Andrew:
>>
>>   concept scheme URI: http://my.scheme.net/my-vocabulary/
>>   concept URI:http://my.concept.net/my-vocabulary/13745
>scheme="http://my.scheme.net/my-vocabulary/";
>   term="http://my.concept.net/my-vocabulary/13745";
>   label="cats"
>   />

Thomas, I don't think that this is a natural reading of "term" in the
atom syntax list.


Andrew Houghton was talking about SKOS (which I don't know anything
about) and said:
[[
However, in SKOS you have a URI to the concept "cats", period.
You could map the domain to be the SKOS concept scheme's URI
and use the concepts label as the category content in Atom.  But
concatenating the SKOS concept scheme URI and the concept label
doesn't necessarily produce the URI to the concept.  For example,
in SKOS you might have the following:

concept scheme URI: http://my.categories.net/
concept URI for cats: http://my.categories.net/13745
concept label for cats: cats
]]

My answer is a bare mapping of this description into an atom:category element.


[[
The "term" attribute is a string that identifies the category to
which the entry or feed belongs. Category elements MUST have a "term"
attribute.
]]

nowhere is there mentioned a IRI there,


IRIs are not forbidden either, and Andrew's description makes me think
the "concept URI" *is* the "term".

--
Thomas Broyer



Re: categories and tagging

2006-11-02 Thread Thomas Broyer


[redirecting to atom-syntax]

2006/11/1, Houghton,Andrew:


  concept scheme URI: http://my.scheme.net/my-vocabulary/
  concept URI:http://my.concept.net/my-vocabulary/13745


http://my.scheme.net/my-vocabulary/";
  term="http://my.concept.net/my-vocabulary/13745";
  label="cats"
  />

--
Thomas Broyer



Re: Adding POST capability to atom:link

2006-10-26 Thread Thomas Broyer


2006/10/26, Gopalan Sri:


Jan, you are correct in your assessment that I wish to parameterize my
request to go to the next page because my parameters are too complex to
represent in a query string.  Currently, we are representing our parameter
in XML.  The reasoning behind this is that we are trying to support an
enterprise search operation using a SOAP and REST interfaces.  Since we have
to encode the request in XML for the SOAP interface, we were hoping to reuse
that XML object within our REST based interfaces as well.

We are using Atom to capture the results of enterprise search.  The problem
I encounter arises when we start thinking about the paging of results.  For
RESTful access to our services, we are trying to use open source/commercial
Atom readers that support Open Search.  The  recommendations laid out by the
OpenSearch 1.1 specification
(http://www.opensearch.org/Specifications/OpenSearch/1.1#Example_of_OpenSearch_response_elements_in_Atom_1.0)
 suggest implementing paging with  elements using specific
values for @rel (e.g. self, first, previous, next, last).  Right now I am
trying to figure out how I can still follow their guidance while managing
the fact that  my parameter cannot easily be encoded as a regular query
string.

Any thoughts would be appreciated.  Thanks for your time.


I think your "search service" should create "temporary resources" and
provide URIs for them to use in rel="next" links.
A simple implementation is to store an object corresponding to the
query parameters within a "Cache" or "Application" server-side object
along with a "UniqueID", and then use that id in the URI to identify
the query. The object would be removed from the cache/application
after some delay of "inactivity". That's pretty easy in ASP.NET
developments as the Cache object is provided out-of-the-box; there
should be equivalents in the Java world too.

--
Thomas Broyer



Re: Adding POST capability to atom:link

2006-10-26 Thread Thomas Broyer


2006/10/26, Gopalan Sri:

http://example.com/"; type="application/atom+xml"
action="POST">







I hope such a thing won't ever exist !!!

--
Thomas Broyer



Re: Question on undefinedAttribute/Content

2006-10-18 Thread Thomas Broyer


2006/10/18, A. Pagaltzis:


* Jan Algermissen <[EMAIL PROTECTED]> [2006-10-18 10:45]:
> RFC4287 distinguishes between 'undefined' and 'extension'
> constructs. I am understanding the distinction to imply that
> conformant software should provide for handling extension
> elements, but can and should ignore any occurrences of
> undefinedAttribute or undefinedContent.
>
> Is that understanding correct?

Yes. To be precise:

Extension constructs are any markup which the software knows to
interpret.

Undefined markup is anything it doesn't know to interpret. In
particular, this includes any future additions to Atom itself.


Nope!

Extension is what's covered by section 6.4, child elements of
atom:entry, atom:feed, atom:source and Person constructs.

Undefined markup is every other markup not defined by the spec:
attributes on any atom:* element, and child elements and text inside
other elements (atom:category, atom:link, etc.)

Whether the application knows what to do with markup, it's still
extension markup (e.g. thr:in-reply-to) or undefined markup (e.g.
thr:replies-count).

--
Thomas Broyer



Re: Pseudo-Last Call on draft-nottingham-atompub-feed-history-07

2006-10-09 Thread Thomas Broyer


2006/10/9, Andreas Sewe:


But while the draft states that "[t]hese [feed] types are complementary"
(section 1), but is unfortunately silent on how precisely the three
different types can be used together.

Here are a few questions I still have:

- Is it possible that an Archived Feed Document is marked as complete?


By definition, an Archived Feed is a set of Feed Documents, and an
Archive Document is a Feed Document within that set. It cannot be
"complete", unless it is the only one in the set, and therefore
represents the whole Archived Feed as a single Feed Document. It's
"current" link should then point to itself (i.e. the same as the
"self" link).


- Is it possible that a Paged Feed's pages (i.e., its feed documents)
are marked as complete?


No.

By definition, a Complete Feed is a single Feed Document.

See:
2.  Complete Feeds

  A complete feed is a feed document that contains all of the entries
  of a logical feed; any entry not actually in the feed document SHOULD
  NOT be considered to be part of that feed.


- Is it possible to serve a single, possibly large Archive Document as
multiple pages?


Not sure what you're talking about…
Do you mean a Logical Feed would be split into "stable subsets", each
such subset split into "unstable" Feed Documents?
In this case, as each document is not "stable", it's a Paged Feed, not
an Archived Feed, even if the subset of entries from within 2 Feed
Documents form a "stable subset".
If every Feed Document is "stable", then you have an Archived Feed an
dyou can link Feed Documents to each others using next-archive and
prev-archive.

--
Thomas Broyer



Re: versioning extension?

2006-09-12 Thread Thomas Broyer


2006/9/12, Jan Algermissen:

is anybody working on (or planning to work on) a versioning extension
for Atom? I am about to use Atom in two (considerably different)
projects that require versioning and would be happy to join forces
and contribute real (enterprise-)world use cases. (Note: not
'enterprisey' use cases :-)


Have you looked at this?
http://tools.ietf.org/wg/atompub/draft-snell-atompub-revision-00.txt

--
Thomas Broyer



Re: Language Negotiation

2006-07-27 Thread Thomas Broyer


2006/7/27, Eric Scheid:

>> what would happen if you used conneg on the @rel='self' link (to the
>>  document), asking for a different language?
>
> You mean, sending an Accept-Language request-header?
>
> 406 Not Acceptable or return the entry even if it does not match the
> "accepted languages".
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7

so, do not return the requested language alternate?


Hmm, sorry, I think I didn't correctly understood you first question...
...at least I don't understand the second...

--
Thomas Broyer



Re: Language Negotiation

2006-07-27 Thread Thomas Broyer


2006/7/27, Eric Scheid:


>> This took me quite a while to think through, but in the end I
>> agree. Translations of a resource will often have slightly different
>> contents in terms of the semantics of what is said, so I'd give them
>> different ids.

what would happen if you used conneg on the @rel='self' link (to the
 document), asking for a different language?


You mean, sending an Accept-Language request-header?

406 Not Acceptable or return the entry even if it does not match the
"accepted languages".
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7

--
Thomas Broyer



Re: Language Negotiation

2006-07-27 Thread Thomas Broyer


2006/7/27, Sylvain Hellegouarch:


> This took me quite a while to think through, but in the end I
> agree. Translations of a resource will often have slightly different
> contents in terms of the semantics of what is said, so I'd give them
> different ids.

True. If you buy a book in English and then the translation of that book
in a different language you will end up with two books having each their
own ISBN.


Well, actually, once a book is published, if you later update it,
you'll have to use a new ISBN, so that's probably not a good analogy…

--
Thomas Broyer



Re: Language Negotiation

2006-07-27 Thread Thomas Broyer


2006/7/27, James M Snell:


And within feed documents in the form of language-qualified alternate
links (e.g., , , etc)


You rather meant  , weren't you?
;-)


From RFC4287:

  1.  The value "alternate" signifies that the IRI in the value of the
  href attribute identifies an alternate version of the resource
  described by the containing element.
[…]
  3.  The value "self" signifies that the IRI in the value of the href
  attribute identifies a resource equivalent to the containing
  element.

Here, you're linking to alternate versions of the resource (in
alternate languages), not to an "equivalent" resource (it's not
equivalent, because it's in another language).

…using xml:base rather than  would have been so much cleaner…

…or maybe at least rather a  or , because the rationale of rel="self" were "if an
aggregator is given a copy of a feed without information about its
original IRI, how can it find which URI to subscribe to?"…

--
Thomas Broyer



Re: [RFC 4287] unicity of atom:category element

2006-06-27 Thread Thomas Broyer


2006/6/26, Nicolas Krebs:

Excerpt quoted from section 4.2.2 of urn:ietf:rfc:4287
( http://tools.ietf.org/html/rfc4287#section-4.2.2 )

> 4.2.2.1.  The "term" Attribute

> The "term" attribute is a string that identifies the category

Is the term attribute an unique identifiers ?


My interpretation of atom:category is that scheme+term defines a
unique identifier, much the same as a QName in XML.
I might be wrong however, as RFC4287 is completely silent on this...


How can i manage the homonym ?


Use different categorization schemes ;-)


Could an atom 1.0 feed contain some item whith
"
and other item with
"


Yes.

Note that you could also have those two atom:category elements in the
same atom:entry, as RFC4287 puts no constraint at all on categories
(unlike atom:link elements).


where the first Java is not the same as the second ?


With the same scheme and term, aggregators (or other Atom processors)
are very likely to consider them the exact same category.
I think the producer of such a feed would be wrong using the same
scheme and term for (conceptually) different categories...

--
Thomas Broyer



Re: RFC3229 w/ feeds [was: Paging, Feed History, etc.]

2006-06-09 Thread Thomas Broyer


2006/6/9, Julian Reschke <[EMAIL PROTECTED]>:

I think this is a misunderstanding of how HTTP/1.1 is supposed to work.

If a server returns the same ETag for different entities returned for
the same URL, this will cause breakage of caches. You may want to
re-read Section 13.6 of RFC2616
(<http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.13.6>).


But using A-IM, you'll have Cache-Control and Vary headers in
responses, which should take care of that, no?
(I'm at work have no time to read the pointed section carefully, so
please forgive me if I'm wrong)

--
Thomas Broyer



Re: RFC3229 w/ feeds [was: Paging, Feed History, etc.]

2006-06-09 Thread Thomas Broyer


2006/6/8, Mark Nottingham <[EMAIL PROTECTED]>:



On 2006/06/07, at 11:40 PM, Thomas Broyer wrote:
>
> My main concern is that RFC3229 w/ feeds is being deployed more and
> more widely and is still not even an I-D (or I missed something).

I have that concern as well.

I am also concerned that RFC3229 is an extension of HTTP, but some
implementers are acting as if it chages the semantics of already-
defined parts of HTTP. For example, a delta must be a subset of the
current representation that is returned to a GET; if you GET the
feed, it has to return all of the entries that you could retrieve by
using delta.

I have a feeling that many people are treating it as a dynamic query
mechanism that's capable of retrieving any entry that's ever been in
the feed, while still only returning the last n entries to a plain
GET. If so, they're breaking HTTP, breaking delta, and should use
something else.

Is this the case, or am I (happily) mistaken?


RFC3229 adds a new notion, the one of "instance" and defines that the
ETag is computed based on the instance, not the entity (difference
between instance and entity being the instance-manipulation –delta,
diff, or identity, which is the default in bare HTTP– having been
applied).

Now, let's define the "feed resource" as the complete set of entries,
and its default representation as one which shows only the most recent
ones (using a yet-to-be-defined conneg algorithm –e.g. using an
Accept-Features feature–, it could be possible to retrieve the whole
set of entries).

If I'm wront in the above statement (conneg could lead to a "latest
entries only" or "full", without abusing HTTP), then don't even read
further, this would mean that RFC3229 w/ feed changes the semantics of
existing parts of HTTP.

Let's take the steps in section 4 of RFC3229:

  Conceptually, the various transformations are applied in the
  following sequence:

 1. Upon receiving a GET request, the server uses the URI in the
request to identify the requested resource.

 2. Optionally, it uses information from the request (and perhaps
additional information) to select a variant of that resource.


The server might here use the presence of the A-IM request header to
select the "full" representation of the feed rather than the "latest
entries only" representations.


 3. At this point, the server may apply a non-identity content-
coding to the instance, or one might have been inherent in its
generation.  This also results in a Content-Encoding header.

 4. The result of the first three steps, at the time when the
request is processed, is an instance.  The instance includes a
body (possibly empty) and possibly some instance headers.  The
entity tag, if any, is assigned at this point.  That is, an
entity tag is associated with an instance, NOT an entity.


If I read RFC2616 correctly, nothing prevents the "latest entries
only" and "full" representations (or any representation of the same
resource) to share the same entity-tag, i.e. nothing prevents a server
to assign an entity-tag to a resource rather than its representations.
Maybe servers should use a weak etag in this case? But RFC2616 says in
section 13.3.3 that "Clients MAY issue simple (non-subrange) GET
requests with either weak validators or strong validators. Clients
MUST NOT use weak validators in other forms of request."


 5. The server may then apply an instance-manipulation.  For
example, if the request included a Range header, the server may
optionally produce a range response, consisting of the original
set of headers, a Content-Range header, and the appropriate
range(s) from the (possibly encoded) body.  Delta encodings are
instance-manipulations, and are computed at this stage.


Given the ETag of the previous "version" of the feed, the server can
compute the delta and make it a feed of added and updated entries.


 6. The result of the fifth step becomes the entity, consisting of
entity headers and an entity body.

 7. The server may then apply a non-identity transfer-coding; on-
the-fly compression could be done in this step.  If so, a
Transfer-Encoding header is added to the message.

 8. The results of the seventh step is the message, consisting of a
    message body (the transfer-coded version of the entity body),
the entity headers, and additional response and general
headers.


--
Thomas Broyer



Re: Paging, Feed History, etc.

2006-06-08 Thread Thomas Broyer


2006/6/8, James Holderness <[EMAIL PROTECTED]>:


Thomas Broyer wrote:
> That means you need to keep entry revisions as well, so that if an
> entry is updated while a client is navigating the paged result set, it
> is sent the "old" revision (corresponding to the "date" parameter).

Why? If an entry has been revised either don't send it (they'll get it then
next time they refresh), or send it anyway (they'll just get it again the
next time they refresh).
Is that such a big deal? Or am I missing something?


Sorry, I thought you wanted search engines to produce "snapshots"...

(side note: but in this case, is there a need to pass a "date"
parameter to following pages? and if pages are kind of "live", isn't
there a risk of data loss? –I mean, this is the Web, so you'll end up
doing the request for each page, just returning different chunks of
the result set; if an entry changes between the request to the first
page and the retrieval a following page, your request might put it
somewhere else in the result set, changing ordering of entries based
on updated time stamps, "discovery date", ranks or else, so your
chunks would be different than if the entry hadn't changed, and an
entry that have not been retrieved might end up in an already
retrieved "chunk by page number", hence the client missing an entry– I
think this is Mark's concern: this might be an acceptable behaviour in
some cases but not all)


> You're trying to change HTTP/1.1 behaviour wrt the If-None-Match
> request-header field and the 304 (Not Modified) status code, so you
> need to implement RFC3229 w/ feeds (which means dealing with some new
> headers and a new status code).

No change at all for *me*. As in my client. I already support FH. I already
support Etags. I already support 3229.


OK, I though you only supported Etags, as defined by HTTP/1.1 for
efficient caching and bandwidth saving.


> As I already said, I highly suggest not using paging for 226 (IM Used)
> responses and rather fall back to "standard GET" in case there are too
> many changes (i.e. behaving the same way as servers that don't support
> RFC3229 w/ feeds).

I don't get why this is a problem, but if you don't like it don't use it.


Yep, sorry, this is not a problem.


All I'm saying is, if you're a search engine and you what to create
subscribable paged results, this is a method that you can use right now, and
it will work with at least one existing FH capable client (I suspect others
too).


So we agree ;-)

Could you read my recent mails in this thread and confirm that it's the case?


The other proposal on the table is to change all your link names.
Arguably a much better proposal than what I'm offering - it certainly seems
to have got a lot of +1s - but it will work with precisely no one.


So there now are two -1, isn't it? ;-)

--
Thomas Broyer



Re: Paging, Feed History, etc.

2006-06-07 Thread Thomas Broyer


2006/6/8, James Holderness <[EMAIL PROTECTED]>:


Mark Nottingham wrote:
> Are you talking about using ETag HTTP response headers, If-Match  request
> headers, and 304 Not Modified response status codes? That's a  gross
> misapplication of those mechanisms if so, and this will break
> intermediaries along the path.

For the first page I'm talking about an Etag (or Last-Modified) HTTP
response header and If-None-Match (or If-Modified-Since) request headers for
the retrievals a month later.


What you described is RFC3229 w/ feeds [1], but you failed to include
the new request and response headers and the specific status code,
which are necessary because you're changing the behaviour of
If-None-Match and 304 (Not Modified) as defined in HTTP/1.1.


For page two onwards the state information (date, query and page number)
comes from the link urls returned by the first page.


That means you need to keep entry revisions as well, so that if an
entry is updated while a client is navigating the paged result set, it
is sent the "old" revision (corresponding to the "date" parameter).


> Even if it's cast as a query parameter in the URI (for example), it
> requires query support on the server side, a concept of "discovered  time"
> (as you point out), and places constraints on the ordering of  the feed.

The ordering is not necessarily important. As long as the server can filter
out entries that don't match a specific time criteria it can return those
entries in any order.


Yes, ordering is not important. If ranking is necessary, then use the
Feed Rank extension (but that means that potentially a great number of
entries will be sent back as "modified" in 226 (IM Used) responses
just because their ranking has changed)


> Are you proposing this instead of the mechanism currently described  in
> FH? Alongside it?

What I'm proposing would work with the FH as currently specified as long as
the client supported ETag or Last-Modified as well. For me that means no
change at all.


You're trying to change HTTP/1.1 behaviour wrt the If-None-Match
request-header field and the 304 (Not Modified) status code, so you
need to implement RFC3229 w/ feeds (which means dealing with some new
headers and a new status code).

As I already said, I highly suggest not using paging for 226 (IM Used)
responses and rather fall back to "standard GET" in case there are too
many changes (i.e. behaving the same way as servers that don't support
RFC3229 w/ feeds).

My main concern is that RFC3229 w/ feeds is being deployed more and
more widely and is still not even an I-D (or I missed something).
Maybe FH could be the place to spec it, as another optimization
algorithm…

[1] http://bobwyman.pubsub.com/main/2004/09/using_rfc3229_w.html

--
Thomas Broyer



Re: when should two entries have the same id?

2006-06-07 Thread Thomas Broyer


2006/6/7, Robert Yates <[EMAIL PROTECTED]>:

Thomas Broyer wrote:

> and that this is needed because entries
> might not always be atomically retrieved (otherwise, "permaLinks"
> would been enough).

I don't understand what you mean "atomically retrieved" and hence why
permaLinks would not have been enough.


By "atomically retrieved", I mean that you don't necessary have an
Atom Entry Document for each entry in a feed (actually, many CMSes
don't currently provide Atom Entry Documents, the only Atom documents
they provide are one or two feeds).

As Atom goes beyond content management à la blogs, there are also use
cases where the is no "alternate" representation: the entry in the
feed is the only representation of the resource, there's no way to
identify it using an URI, other than explicitely associate one through
the atom:id element.

Finally, atom:id is different from a permaLink in the sens that it's
only an identifier that might not be dereferenceable (or, to be more
accurate, that might not return anything but an error when
dereferenced): it's not a link, it's an identifier, which has the form
of an IRI, just as XML Namespaces are identified by URIs.
The advantage of such a design choice is that you can move entries
(hence changing "permaLinks") without changing their identifier. This
is particularly useful when, for example, switching from TypePad to
Blogger, and then to WordPress.Com, and then to a self-hosted blogging
system, and then changing the blogging system (and changing feed and
entry URIs, even if it's not a Good Thing [1]).

A Good Practice for these identifiers –at least when you're an
individual– is to make them "tag" URIs [2]

[1] http://www.w3.org/Provider/Style/URI
[2] http://www.taguri.org/

--
Thomas Broyer



Re: when should two entries have the same id?

2006-06-07 Thread Thomas Broyer


2006/6/7, Henry Story <[EMAIL PROTECTED]>:


You can have two entries or feeds with the same id, as long as they
have different updated time stamps.
It's very much the same as you being Robert Yates all your life, but
having different sizes throughout your life. At any point in time you
have all the same properties...


Er, you can have two entries or feeds with the same if *and* updated
time stamps, as long as –for entries– they do not appear in the same
Atom Feed Document (and even this constraint might be removed in a
later revision of the spec, if I recall some past discussions on this
list correctly).

What one need to remember is that atom:id is an identifier for the
resource throughout its life, and that this is needed because entries
might not always be atomically retrieved (otherwise, "permaLinks"
would been enough).

The atom:id is an identifier for the resource, not for the
representation, so you might very well have the same entry (with the
same atom:id) with inlined content in one feed and out-of-line content
in another (or any other variation).

The behavior of consumers when they meet those different Atom
representations of the same entry is left undefined in the spec, and I
personnaly have no opinion at all (as I have been given such feeds,
and a) I'm not subscribed to any aggregate feed and b) I don't
aggregate feeds I'm subscribed to, each one lives in its own "folder"
in Thunderbird)…

--
Thomas Broyer



Re: Paging, Feed History, etc.

2006-06-07 Thread Thomas Broyer


2006/6/7, Mark Nottingham <[EMAIL PROTECTED]>:


The degree of precision that FH currently provides isn't desirable
for search results. Feed History also requires that the server
maintain state about a particular feed, which is unworkable for
search results; e.g., to implement feed history for search results, a
server would have to mint a whole new set of feed documents for every
query, and keep them around. That's not workable for most search
engines (Yahoo, Google, Amazon, whatever), so they need another
option -- one that needs to be clearly distinct from FH.

This brings me to my other motivation -- I found that most people who
use "previous" and "next" don't understand the assumptions that FH
makes about archive stability, and point them at URIs like "http://
example.org/feed.atom?page=3". That will break the FH algorithm
badly, reducing the value of the mechanism as a whole, because people
will stop trusting it. The link relation for implementing the
incremental approach needs to have the stability semantics baked in
and explicit.


As I previously said, the current FH algorithm isn't workable for all
the use cases (notably with paged non-incremental feeds, those feeds
being snapshots or "live feeds") but that doesn't mean there's a need
for other rel values.

I think FH could:
- (more explicitly) RECOMMEND using stable "chunks" so that caching
can be used (maybe using an "overview" section similar to the APP's
section 5)
- provide algorithms as an "how-to optimize bandwith et al. and not
retrieve the whole set of pages/chunks", not as a "you should/must do
that to comply to this spec"
- provide different algorithms for incremental and non-incremental
feeds, non-incremental feeds retrieval having to go through all the
pages/chunks and not stop as soon as there's no more change (but the
whole algorithm remains almost the same)
- RECOMMEND using RFC3229 w/ feeds (problem: this is not an I-D),
particularly for non-incremental feeds (Atom does not define order for
the entries in the feed, order has to be told by extensions, e.g. Feed
Rank, so there's no problem retrieving only a subset of the whole
feed, even if new/updated entries would be sparsed in the feed if
retrieved without RFC3229 w/ feeds), and NOT RECOMMEND (or even a
"MUST NOT") using paging for RFC3229 responses: either you return the
whole set of changes, or you choose to ignore the "IM" request and
return the feed as if the client didn't use RFC3229)
- use 304 (Not Modified) instead of IRI-comparison, enlightening the
fact that web servers like Apache provide such response out-of-the-bow
when delivering files (this should incite people to using stable
chunks/pages by saving them to files, instead of making use of CGI
applications with database requests). The fact that many
implementations currently return feeds (whether or not they're using
paging/history) without processing preconditions (If-Modified-Since or
If-Not-Match) shouldn't influence the FH design, many of these
implementations are deployments of CMSes like WordPress, and those can
be fixed. Maybe the Feed Validator can have an option to test this: it
would retrieve the feed twice (at least), using If-Modified-Since
and/or If-Not-Match for the second request, and showing a warning if
the feed hasn't changed and the second GET didn't result in a 304 (Not
Modified).


Please note that I haven't went back read the FH draft since weeks, so
some of my comments might not be accurate (I've a pretty good memory
but data-losses might still happen ;-) )

--
Thomas Broyer



Re: Paging, Feed History, etc.

2006-06-07 Thread Thomas Broyer
vour of the more
generic "previous" and "next".


I think I originally pushed the other way around [1], but for
different reasons. If it's clear that previous/next deals with "pages"
or "chunks" of the same feed, then I'm OK with them, and other use
cases will need new rel values.

[1] http://www.imc.org/atom-syntax/mail-archive/msg17372.html


Given the above, I'd like to see if anyone would still object to
having separate relation sets for incremental feeds ("prev-archive"
and friends) and paging feeds ("previous", "next" and friends).


Given the above, yes. Consider it a "-0" though, not a "-1", as I
might need some more thinking (or people trying to convince me).

--
Thomas Broyer



Re: [RFC 4287] uri of atom:category element

2006-05-22 Thread Thomas Broyer


2006/5/23, Nicolas Krebs <[EMAIL PROTECTED]>:

Could you explain if there is a standardized way to fin the uri of the category,


There isn't.


an give piece of information about mandatory feature of sheme and term ?


There isn't either.


Is concatenation(shme, term) a wrong/good/allowed/mandatory method ?


wrong (because not aknowledged by the spec), allowed (because not
explicitly forbidden).


If it is a forbiden method, will you add an atom:href or atom:uri attribute
to the atom:category element ?


I'm not aware of any plan to do so. However, you might want to make up
an extension. In this case, try to avoid using foreign attributes on
the atom:category element or you'll run into the same problems James
in fighting wrt his Fead Thread Extension [1]. The problem is that, as
atom:category isn't listed in section 6.4 as containing Metadata
Elements, there's no explicit request for processors to surface any
extension to atom:category in their model representation, so they
might just be discarded.
IMO, the Simplest Thing That Could Possibily Work is to define a new
link relation, say "category", and use atom:link elements to link to
"category-related" resources. The drawback is that those atom:link
elements won't be associated in any way to the atom:category elements,
so aggregators/readers won't be able, for example, to list categories
with links on the one where an "href" is provided, all they could do
then is to list categories extracted from the atom:category elements
and list "category links" extracted from the atom:link elements with
rel="category", as two completely distinct sets.
So finally, maybe a attribute or child-element -based extension might
be better...

On the rationale side, I suspect you want to link to an HTML page
listing entries associated with the given category?
First, I think this is a too specific case for a "generic" @href.
I also don't see the need for it: those "category HTML pages" would
generally be available from the HTML representation fo the entry
(which I suspect would also exist), so they're only two clicks away.
What _could_ be useful eventually would be a link to a *feed*
containing entries associated with the given category, and in that
case I think an atom:link with a new "category" relation would be
enough. But even then I suspect "category feeds" to be not so common
or not so commonly used (I'm personnaly not subscribed to any
"category feed" and I don't even think sites I'm subscribed to provide
"category feeds"; I'd like XML.com to provide an "articles only" feed
instead of their "articles and blogs" feed, but that's not a matter of
categories –"columns" are a category for articles, and blog posts have
their own categories–).

In conclusion: YAGNI.

[1] http://www.ietf.org/internet-drafts/draft-snell-atompub-feed-thread-10.txt

--
Thomas Broyer



Re: Protocol Action: 'The Base16, Base32, and Base64 Data Encodings' to Proposed Standard

2006-05-19 Thread Thomas Broyer


2006/5/19, Paul Hoffman <[EMAIL PROTECTED]>:

At 1:58 AM +0200 5/19/06, Robert Sayre wrote:
>On 5/19/06, Lisa Dusseault <[EMAIL PROTECTED]> wrote:
>>
>>This announcement is for a document that will obsolete RFC3548, which is
>>referenced by a couple APPS area RFCs:  XMPP (RFC3920) and Atom Syntax
>>(RFC4287).
>
>Yep, this definitely breaks RFC4287 in the way Joe predicted. Time for
>a revision.

I'm confused. What breaks?


+1

base32 and base32hex are for use in case insensitive contexts, but XML
is case sensitive and Atom is XML.
I can't find a real need for base16 and it doubles the size of the
input, I'd say that Atom doesn't need it.
Atom doesn't need base64url either, as + and / are not reserved
characters in XML PCDATA (the only part of Atom where base64 is used).
base64url might be useful on "data" URL though, but that's not the use
of base64 encoding made by Atom.

There's no reason for Atom not to support those encodings (other than
because it introduces new encodings for processors to know about, and
it would introduce a new attribute to tell processors which encoding
has been used), but there's no reason for Atom to support any baseNN
encoding other than the "plain old" base64.

Having a single encoding is better for interop: implementors of
processors/producers know exactly what to support; supporting multiple
encodings would require an additional attribute telling which encoding
has been used, which would lead to complains that this attribute's
value set isn't extensible…

So no, Atom shouldn't have to support other baseNN encodings than
base64, and doing so wouldn't prove good for interop, so this revised
RFC doesn't break Atom.

--
Thomas Broyer



Re: Atom Rank Extensions: Feedback on r:value and r:range elements wanted (long)

2006-05-05 Thread Thomas Broyer


2006/5/5, Andreas Sewe <[EMAIL PROTECTED]>:

If the value of the "steps" attribute is "continuous" the set of rank
values defined by the r:values element is

   { x | minimum <= x <= maximum }.


And @origin is ignored?


Otherwise the set of rank values defined by the r:values element is

   { x | minimum <= x <= maximum,
 x = (origin + i * steps) for some integer i }.


If "i" and "steps" are positive values, then "x" will always be
superior to "origin".

If "origin" is superior to "minimum", then "minimum" is not needed, as
"origin" *is* the minimum value.
If "origin" is less than "minimum", then "x" will always be superior
to "origin + i*steps" for which "i" is the minimum integer value
verifying "origin + i*steps >= minimum"; this is quite easy to
compute, so there's no real need for "minimum" either in this case:
the following r:values are all equivalent:
   
   
   
   

If "steps" is a negative value, its easy to compute the same set of
values using the minimum allowable value as the "origin" (or
"minimum") and a positive "steps". The following r:values are all
equivalent:
   
   

So: there is no need for "origin" and negative "steps" values.

There is however one case where that (converting a negative "steps"
value into a positive one) could not be possible: when "minimum"
equals "unbounded".
Couldn't it be spec'd that:
- if "minimum" is provided and not "unbounded", then "steps" counts
upwards from "minimum" to the greatest value inferior to "maximum"
- if "minimum" is not provided or "unbounded", then "steps" counts
downwards from "maximum" to negative infinity.

In other words, people transitioning from origin and/or negative-steps
have to do the following:
- if "steps" is negative and "minimum" is not "unbounded", replace
"minimum" with the smallest allowable value and use a positive "steps"
value
- if "steps" is negative and "minimum" is "unbounded", replace
"maximum" with the value of "origin" and use a positive "steps" value
(which will count downwards to negative infinity)
- if "steps" is positive, replace "minimum" with the value of "origin"


The following examples illustrate how different sets of rank values can
be defined by means of a single r:value element:





Could be expressed as:

or
   
or with the following r:values:
   

--
Thomas Broyer



Re: Feed thread update

2006-05-04 Thread Thomas Broyer


2006/5/2, James M Snell <[EMAIL PROTECTED]>:

Regarding the ref vs. href, issue, I really want to discourage client
implementors from using the thr:replies as a link to the comment feed.


Why?


From what I read this week in other threads (about cloning the

atom:link element, etc.), I think it could work.

1. define a "replies" link relation, so there is an atom:link pointing
to the replies feed
2. define a thr:replies element with an @href and additional metadata
(count, updated), clients are invited to use the thr:replies/@href and
*not* to try to match the thr:replies element with an
atom:[EMAIL PROTECTED]"replies"] ; if a "reader" processes thr:replies
elements it should then ignore each and every
atom:[EMAIL PROTECTED]"replies"].

Step 1 is either optional (do not define this "replies" link relation)
or mandatory (require that there is an atom:[EMAIL PROTECTED]"replies"]
matching each thr:replies element).

Those three elements would have equivalent meaning, the last one
adding extra metadata:




Things would have been far easier if either a) atom:link were
extensible or b) xml:base wasn't allowed on every element but only on
"sections" (namely, atom:feed, atom:entry and atom:content) that can
be included from other documents, so that you don't have to rewrite
relative IRIs (I think that's the original rational behind xml:base),
but that's not the case…

To conclude, I think using attributes directly on atom:link is the
thing to do, waiting for an amendment to RFC4287 to invite
processors/parsers not to discard that extra metadata. The other
choice is to totally remove those attributes, which is what you
finally chose, I can't blame you.

--
Thomas Broyer



Feed Thread Draft Updated

2006-04-13 Thread Thomas Broyer

2006/4/13, James M Snell <[EMAIL PROTECTED]>:
> 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.

+1

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

+0.5 (and let someone add that metadata later if needed, in the same
way as (a) or (d1) or maybe proposing something we haven't thought
about)

> c. Create a new replies extension element
> type="..."
> hreflang="..."
> title="..."
> count="..."
> when="..." />

-0.5, it *is* a link

> d. Create a supplemental extension element
>
>d1:
>
>
>
>Where the ref attribute in  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, ugly
but that's probably what would better match today's approach (in "a" above)

>d2:
>
>
>
>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.

If I understand correctly, the use case for multiple "replies" link
is, e.g., having a "comments" and a "trackbacks/pingbacks" feeds
(could be distinguished by [EMAIL PROTECTED]). In this case, having a
@count per link is IMO somewhat important. So -1.

--
Thomas Broyer



Re: Changing feed thread (was: Re: Atom Thread Feed syntax)

2006-03-26 Thread Thomas Broyer

2006/3/24, James M Snell <[EMAIL PROTECTED]>:
> 1. Do I change  to  ?

+0.5, I have no real problem with id but as it seems to bother some people…

> and.. to address David's concerns about extending atom:link...
>
> 2. Do I change thr:count and thr:when to extension elements instead of
> attributes on atom:link?

+1

> None of the implementors I'm aware of are currently making use of
> multiple replies link relations on an entry so changing #2 likely
> wouldn't cause too many headaches.

I wouldn't understand what really does mean the following:


Without the thr:count, I'd say that those two links are intended for
client-side content negotiation, but given that the two thr:count
values differ… would it mean that there have been 5 new comments since
the text/html representation has been last updated? But what if there
were a thr:when indicating the opposite?

And Rob Sayre also pointed on his blog a potential problem on how to
use such multiple values: "How do I display that in a client? Do I add
up the numbers? Pick the highest? Do I pick the latest or the earliest
time?". [http://www.franklinmint.fm/blog/archives/000721.html]
I know what your answer is [http://www.snellspace.com/wp/?p=297] but I
also think that these are entry properties, not really link properties
(so I disagree with you on "First, The thr:count and thr:when
properties are specific to the replies link upon which they appear."
[http://www.snellspace.com/wp/?p=296]).

--
Thomas Broyer



Re: Atom Thread Feed syntax

2006-03-16 Thread Thomas Broyer

2006/3/16, Sylvain Hellegouarch <[EMAIL PROTECTED]>:
> > It could lead to confusion, but as Atom doesn't define such an
> > attribute in its own namespace (or on elements in its own namespace)
> > and as no other extension that I know of do that either, I don't think
> > it really matters…
>
> You are right Atom does not define such an attribute but I'd be happier
> if extensions could follow Atom conventions as well. Atom sets the
> atom:id value not as in an attribute of atom:id but as its content. Why
> not following the convention in the first place?

Because they don't deserve the same role. atom:id gives the identifier
of the resource _described_ by the containing element, while
thr:in-reply-to/@id gives the identifier of the resource _referenced_
by the containing element (or, actually, gives an identifier _as a
reference_ to this resource). In that sense, thr:in-reply-to deserves
the same role as @href. If you get back to previous versions of the
threading extension, you'll see that it had been proposed that there
would only be @href, whether or not the given IRI were to be
dereferenced (e.g. by making an HTTP request) or just used as a
globally unique identifier. This has been worked out because a) people
(including me) wanted that these roles (retrieving vs. identifying) be
clearly distinguished and b) there wouldn't then have a mean to give
both the resource identifier and an IRI where to retrieve a copy of
it.

> > Having an attribute named "id" doesn't make it an "ID" (in the sense
> > of a unique identifier throughout the document, such as the ID type in
> > a DTD of xs:ID in XMLSchema), […]
>
> Again this is a matter of convention in my opinion. When reading an XML
> document I don't want to be obliged to think about the actual meaning of
> an id attribute. You are indeed right (and thank you for explaining it
> to me) in terms of specification but conventions are often as important.
> Specially for people like me who are not XML guru.

Well, I wouldn't describe myself as an XML guru either ;-)

--
Thomas Broyer



Re: Atom Thread Feed syntax

2006-03-16 Thread Thomas Broyer

2006/3/16, Sylvain Hellegouarch <[EMAIL PROTECTED]>:
> Calling such an attribute 'id' is a mistake in my opinion as it confuses
> with the actual ID of the element itself within the XML document it
> belongs to

It could lead to confusion, but as Atom doesn't define such an
attribute in its own namespace (or on elements in its own namespace)
and as no other extension that I know of do that either, I don't think
it really matters…

> and it makes impossible for another element within the document to
> have the same value as an 'id'.

In your blog, you actually wrote:
> The other problem I have with naming this attribute id is that no other
> element of the document can use the same attribute name and attribute
> value since that within an XML document, these are unique (unless I am
> mistaken of course).

I'm sorry to have to tell you that you *are* mistaken…

Having an attribute named "id" doesn't make it an "ID" (in the sense
of a unique identifier throughout the document, such as the ID type in
a DTD of xs:ID in XMLSchema), otherwise:
 - you wouldn't have to declare them explicitely in your DTDs and
there wouldn't be a need for an ID (resp. xs:ID) type in DTD (resp.
XMLSchema)
 - the validity constraint "One ID Per Element Type"
[http://www.w3.org/TR/REC-xml/#one-id-per-el] could never be met as
soon as you'd declare an ID attribute with a name different from "id"
 - there wouldn't have been a need for xml:id [http://www.w3.org/TR/xml-id/]

> I would rather move the content of that attribute as a text element of the
> 'in-reply-to' element (as does the atom:id element).

Eventually, I'd rather rename it to resource-id…

--
Thomas Broyer



Re: Atom syndication schema

2006-03-15 Thread Thomas Broyer

2006/3/15, Stephane Bortzmeyer <[EMAIL PROTECTED]>:
> Just to be pedantic, URIs (RFC 3986) are in pure US-ASCII. IRIs (RFC
> 3987) are in Unicode and are accepted by Atom (so, Atom's URIs seem to
> be actually IRIs). The standard says:

Well, not really the "standard" actually, since the RNC is not normative...

># Unconstrained; it's not entirely clear how IRI fit into
># xsd:anyURI so let's not try to constrain it here
>atomUri = text

RFC 3987 says (section 1.2 Applicability):
   For example, XML schema [XMLSchema] has an explicit type
   "anyURI" that includes IRIs and IRI references. Therefore, IRIs
   and IRI references can be in attributes and elements of type
   "anyURI".

So, actually, it seems that the Atom RNC could say "atomUri = xs:anyURI".

...or RFC 3987 is wrong... (I didn't check XMLSchema to try to figure
it out myself)

--
Thomas Broyer



Re: More on atom:id handling

2006-02-01 Thread Thomas Broyer

[on atom-syntax only, no need to CC atom-protocol]

2006/2/1, David Powell <[EMAIL PROTECTED]>:
>
> Wednesday, February 1, 2006, 3:20:23 PM, Thomas Broyer wrote:
> >
> > IIRC, it was to allow a feed listing "revisions" of the same entry:
> > same id, different "updated" values.
>
> I don't have a problem with allowing multiple revisions with the same
> atom:id in a single document at all; I think that is a good thing.
>
> On the contrary, I have a problem with preventing multiple revisions
> from having the same atom:updated value. It subverts the intent of
> atom:updated being a subjective element, and it puts the feed compiler
> in an impossible situation. Nothing prohibits the entry author from
> producing two different instances with the same atom:updated value,
> but given this valid situation, the feed compiler is forced to
> silently lose data.
[…]
> It also prevents synchronization applications, such as Microsoft's SSE
> from introducing a more discerning date/revision extension, because
> nothing is allowed to be more discerning than atom:updated, even
> though the specification admits that:
>
>   "not all modifications necessarily result in a changed atom:updated
>   value"

Totally agree.

You should add it to http://intertwingly.net/wiki/pie/RFC4287Errata

--
Thomas Broyer



Re: More on atom:id handling

2006-02-01 Thread Thomas Broyer

[CC'ing atom-syntax]

2006/2/1, David Powell <[EMAIL PROTECTED]>:
>
> Wednesday, February 1, 2006, 6:21:12 AM, James M Snell wrote:
>
> > Entries in an Atom feed can share the same atom:id but their
> > atom:updated values should be different.
>
> To be precise, it is "Entries in an Atom Feed Document" not "Entries
> in an Atom feed".
>
> I really really dislike that rule, and don't understand how it was
> ever accepted, and personally I would be tempted to ignore it.

IIRC, it was to allow a feed listing "revisions" of the same entry:
same id, different "updated" values.

--
Thomas Broyer



Re: Browser behaviour

2006-01-30 Thread Thomas Broyer

2006/1/30, John Panzer <[EMAIL PROTECTED]>:
> > (and if possible click on a link to lead them to the
> >site's browser-dedicated pages); those people should just use a
> >rel=nofollow" on the "direct links" to their feeds.
> >
> "I don't think that means what you think it means".  At least, if you
> mean for search engines not to follow the link.  If you just want the
> PageRank of the destination feed (?) to be unaffected by the PageRank of
> the source URL, then yeah, I guess...

Right!

How about robots.txt?
http://www.robotstxt.org/wc/exclusion.html#robotstxt

--
Thomas Broyer



Re: Browser behaviour

2006-01-30 Thread Thomas Broyer

> David House wrote:
> > 2) Atom support isn't there. Firefox and Konqueror (the browsers I
> > tested in) get scared off by Atom's mime type and prompt the user to
> > download it. They don't recognise it as XML, so they don't transform
> > it. We have two options here: give up or serve as text/xml (I guess
> > the latter won't be too popular). Really, browsers should recognise
> > application/atom+xml as something they can parse as XML and do so.

Why should Atom be "parsed as XML" by browsers?

If people fear that users come onto their site through a search engine
and arrive on an Atom feed, so they want their feeds to be shown in
the browser (in a fancy way if possible) so that users won't be feared
and go away (and if possible click on a link to lead them to the
site's browser-dedicated pages); those people should just use a
rel=nofollow" on the "direct links" to their feeds.

So I'd say:
 - * in
the page header for autodiscovery
 - eventually  in the page body to allow users
to more easily subscribe in external readers (either via mime-type
dispatching or "copy link address"/paste)

And, follow those guidelines:
http://www.scottfrancis.com/blog/2006/01/21/ui-updates/

* oops, sorry, there's no "type" parameter to the application/atom+xml
type… so let's say 

--
Thomas Broyer



Re: Atom Tombstones Draft

2006-01-27 Thread Thomas Broyer

2006/1/27, James M Snell <[EMAIL PROTECTED]>:
> 
>tag:example.org,2006:someentry<--required-->
>2005-01-27T12:12:12Z<--required-->
>James<--optional-->
>comment spam<--optional-->
> 

[…]

> Is this better?

No, because it's not clear whether atom:author and atom:summary were
the one of the deleted entry or relative to the deletion.


tag:example.org,2006:someentry
2005-01-27T12:12:12Z
James
comment spam


Some will probably have the same question about the atom:updated: is
it the date when the entry was deleted or the atom:updated value
before deletion?

Some will probably ask whether then atom:id is the one of the at:deleted-entry…



But now that you're having something looking more and more like an
atom:entry, how about just adding an at:deleted to an atom:entry? and
integrating the at:by and at:comment inside the pub:control in a more
generic way to provide edit comments? (issue: pub:control is specific
to the APP)



…
tag:example.org,2006:someentry
…
2006-01-25T10:10:10Z





…
tag:example.org,2006:someentry
…

2006-01-27T12:12:12Z

Thomas
comment spam




The only drawback –a priori– of this solution is that it means
updating the atom:updated value of the atom:entry, which will bring
the entry to the attention of the user if the reader doesn't support
the del:* extension… not really what was intended isn't it? (however,
it's arguable: should a deletion be silent? how about adding a
del:when in the del:deleted? the atom:updated would then continue to
serve its role: whether to bring the entry to the user's attention)

Just thinking out loud…

--
Thomas Broyer



Re: Atom Tombstones Draft

2006-01-27 Thread Thomas Broyer

2006/1/27, James Holderness <[EMAIL PROTECTED]>:
>
> James M Snell wrote:
> > One question: what's a reasonable length of time to keep the deleted-entry
> > elements in a feed?  We don't really want to keep those things around
> > forever.
>
> Actually I think I probably would recommend keeping them forever. Just treat
> them like any other entry. If they fall out the bottom of the feed window
> that's ok, but if the server implements next/previous links to history
> feeds, then the tombstone could still be found in the archives.

[…]

> Anyway, that's my preference. Not necessarily a SHOULD recommendation - just
> my personal opinion.

+1

Maybe at:by and at:comment could be used in pub:control in the APP as well

--
Thomas Broyer



Re: new draft? (was: invention)

2006-01-21 Thread Thomas Broyer

2006/1/21, Anne van Kesteren <[EMAIL PROTECTED]>:
> Quoting Thomas Broyer <[EMAIL PROTECTED]>:
> > Why not use the "media" attribute?
>
> Because that would be "tag abuse".

No more than using the @rel value (is a feed an alternate for a
single-entry HTML page?).

So let's change the application/atom+xml media type to add parameters to it:
application/atom+xml;kind=feed
application/atom+xml;kind=entry
application/atom+xml;kind=entry;type=xhtml,audio/mp3

--
Thomas Broyer



Re: new draft? (was: invention)

2006-01-21 Thread Thomas Broyer

2006/1/21, Robert Sayre <[EMAIL PROTECTED]>:
>
> On 1/19/06, Robert Sayre <[EMAIL PROTECTED]> wrote:
> >
> > But, I could be in the minority. Which WG members think we should work
> > on exciting new HTML link relations?
> >
>
> Wow. Nobody.

I really think autodiscovery shouldn't use the link relation at all:

Welcome to my blog


My dummy entry





Why not use the "media" attribute?


If you have feeds dedicated to some media (mainly screen –full content
or video enclosures–, handheld –summary-only or title-only, or
low-quality enclosures– or aural –audio-only enclosures–), add that
media in the comma-separated list:



I'm not sure how the comma-separated values should be interpreted in
HTML (subscribe OR aural, or subscribe AND aural?), it might be better
to replace the previous list values with a single "parameterized"
value (e.g. "subscribe audio", "subscribe video", "subscribe text",
"subscribe audio video", etc.)

--
Thomas Broyer



Re: Is there a bug in undefinedAttribute?

2005-12-02 Thread Thomas Broyer

2005/12/1, A. Pagaltzis <[EMAIL PROTECTED]>:
>
> * Uche Ogbuji <[EMAIL PROTECTED]> [2005-12-01 17:55]:
> > Your suggested change would not be incorrect, but it would add
> > no value and be confusing (at least until atom ever decided to
> > have "global" attributes, for some reason).
>
> Confusing, how? Attributes in the Atom namespace are already
> forbidden, unless I'm misreading the following:
>
> 6.2 Extensions To the Atom Vocabulary
>
> The Atom namespace is reserved for future forwards-compatible
> revisions of Atom. Future versions of this specification
> could add new elements and attributes to the Atom markup
> vocabulary. Software written to conform to this version of
> the specification will not be able to process such markup
> correctly and, in fact, will not be able to distinguish it
> from markup error. For the purposes of this discussion,
> unrecognized markup from the Atom vocabulary will be
> considered "foreign markup".

You are misreading. Re-read the last sentence.

> The schema OTOH permits unknown attributes in the Atom namespace
> in undefinedAttribute – whereas it explicitly excludes unknown
> elements in simpleExtensionElement, anyForeignElement and
> friends.

I'd say that anyForeignElement, extensionElement and co. are not
accurate, but correcting them would be a pain (or maybe RelaxNG has
some feature I don't know of): e.g. in atom:entry, extensionElement
should read "any element in non-Atom namespace or any element in Atom
namespace that is not defined as a child of atom:entry by this
specification", and these elements are named "simple extension
element" or "structured extension element" depending on other rules
(not really necessary in the RNC though...) something like:
   entryExtensionElement =
  entrySimpleExtensionElement | entryStructuredExtensionElement
   entrySimpleExtensionElement =
  element * - (atomAuthor | atomCategory | ...) {
 text
  }
   ...

> So if my reading is correct, the (normative) spec disagrees with
> the (informal) schema. I'd say that is what's confusing.

Your reading was incorrect (w.r.t. my reading ;-) ) but the
(normative) spec effectively disagrees with the (informal) schema.

--
Thomas Broyer



Re: How to specify multiple alternative encodings of the same content?

2005-11-07 Thread Thomas Broyer


A. Pagaltzis  wrote:
>
> * J.B. Nicholson-Owens <[EMAIL PROTECTED]> [2005-11-07 06:40]:
>> I'd like to be able to tell the user's software that there are
>> multiple encodings of the same show, one in Ogg Vorbis, another
>> in FLAC, and a third in Speex.
>
> The basic idea is simple:
>
> 
> 
> 
>
> However, there is currently no mechanism to specify that these
> enclosures are all equivalent, and that the client should pick
> only one of them. Clients which automatically download closures
> will probably take all three.

How about:





Not really equivalent to [EMAIL PROTECTED]"enclosure"] though…

-- 
Thomas Broyer



Re: New Link Relations -- Ready to go?

2005-10-24 Thread Thomas Broyer


James Holderness  wrote:
>
> Thomas Broyer wrote:
>> As I already explained, paging is orthogonal to the incremental nature
>> of a feed. An incremental feed will be chunked as explained in Mark's
>> current Feed History draft (just use an atom:[EMAIL PROTECTED]"previous"]
>> instead of the fh:prev extension element) and a non-incremental feed as
>> described in the OpenSearch result 1.1 draft.
>
> I beg to differ. I think the incremental state of a feed is very relevant
> to paging. If the aggregator does not know that a feed is non-incremental
> it will not be able to process the feed document in a meaningful manner.

Yes, but that's orthogonal to paging.

> And when I say non-incremental I mean something like a "Top 10" list where
> the entries in the feed document are a complete replacement for any
> entries that the aggregator may have previously received from that feed.

I have the same definition.

>> What's the difference between a search feed and a non-incremental feed?
>> Aren't search feeds one facet of non-incremental feeds?
>
> Not necessarily, no. A search feed could quite easily be implemented as an
> incremental feed. This is the most sensible approach since it would allow
> the feed to be viewed in all existing aggregators without requiring a
> special knowledge of non-incremental feeds.
>
> The initial feed document consists of all known results at the time the
> search is initiated. As new results are discovered over time, the feed can
> be updated by adding new entries to the top of the feed in much the same
> way that new entries would be added to the top of a blogging feed. In
> fact, if you do a search with something like feedster, this is exactly the
> sort of feed you will get back.

You're describing the PubSub behaviour, which is not IMO a "search engine"
but an aggregator with filtering capabilities. PubSub filters are quite
similar to the "category feeds" you see sometimes: "I don't want the whole
blog entries, just the ones belonging to that category, or tagged with
that word". With PubSub, you say "I don't want the whole web entries, just
the one matching that filter".

You're not describing a "search feed" (or maybe more a search *result*
feed, like OpenSearch result feeds) but a "filtered aggregate feed" (as
published by PubSub).

>> However, an incremental feed could take advantage of differentiating
>> between paging and "archive linking": if linking to archives uses an
>> atom:[EMAIL PROTECTED]"archives"] (or call it "history" if you prefer) to 
>> point
>> at an incremental feed where each entry describes an archived set of
>> entries (see [1] for a more detailed example); such a feed has the
>> advantage of paging that it allows direct access to a specific point of
>> time inside the feed "pages". Each "archived set of entries" could for
>> example cover one or two week, so a user could navigate through the
>> "feed state" or "feed history" not only by going from pages to pages but
>> also by accessing archived chunks via an "index" or "table of contents".
>
> This is all very interesting, but not possible without more link
> extensions which don't exist yet.

Wait a bit and I'll propose them for registration. When they'll exist,
what would become your argument?

> With what we have so far we can do incremental feed archives; we can do at
> least some form of searching; we can do non-incremental feeds (of the "Top
> 10" variety) with history. I think that's a good start.

But we also want paged non-incremental feeds (OpenSearch result feeds),
while "non-incremental feeds with history" have not yet proven to be
needed.

You're trying to describe "incremental feed paging" and "navigation
through non-incremental feed snapshots" with the same link relation. When
people will want "non-incremental feed paging" (and this is already a
need), we'll have two link relations related to paging (for incremental
and non-incremental feeds) and one that can also be used to navigate into
non-incremental feeds history.

Here's a chunked incremental feed (each chunk has 10 entries):

111   21   31   41   51   61   71   81
||||||||||
^^
`'
  This is a chunk.

present < time -> past

previous/next link from chunk to chunk.

Entries are added into or before the #1 chunked above.

Here's a chunked non-incremental feed (e.g. OpenSearch result feed; each
chunk has 10 entries):
111   21   31   41   51   61   71   81
|--

Re: New Link Relations -- Ready to go?

2005-10-24 Thread Thomas Broyer


James M Snell  wrote:
> I'm perfectly happy with leaving previous and next free of any semantics
> right now and letting the market sort things out.  If more specific link
> relations prove to be necessary, then so be it, define the more specific
> link relations.  If the market can get by with generic links + some kind
> of extra flag (e.g. incremental=true, etc) then great.  if your case (b)
> dies off... that's great too.  The point is, let's not over specify this
> thing right now; leave it open enough for the market to figure out how
> to use it.

What are the use cases right now?

 - Mark's proposed feed state reconstruction
 - OpenSearch result feeds chunking

This is just "paging".

What is it also allowing?
 - publish any non-incremental (i.e. non time-based, like OpenSearch
results) feeds chunked in small documents (Top 50 in 5 pages of 10
entries)

What is it not covering?
 - linking between snapshots of non-incremental feeds (last week's Top 50,
OpenSearch result of previous query)
 - linking between different "sites" (i.e. webrings)

This has not yet proven to be really needed (e.g. the Top 50 web site I
saw didn't provide archives of previous rankings).
When there'll be such a need, then we'll define a new link relation (I
already proposed "archives"/"history" to link to a "table of contents"
feed allowing navigation to e.g. snapshots of non-incremental feeds;
another link relation for the "webring" use case if it proves to be needed
one day).

-- 
Thomas Broyer



Re: New Link Relations -- Ready to go?

2005-10-21 Thread Thomas Broyer


Thomas Broyer wrote:
However, an incremental feed could take advantage of differentiating 
between paging and "archive linking": if linking to archives uses an 
atom:[EMAIL PROTECTED]"archives"] (or call it "history" if you prefer) to 
point at an incremental feed where each entry describes an archived 
set of entries (see [1] for a more detailed example); such a feed has 
the advantage of paging that it allows direct access to a specific 
point of time inside the feed "pages". Each "archived set of entries" 
could for example cover one or two week, so a user could navigate 
through the "feed state" or "feed history" not only by going from 
pages to pages but also by accessing archived chunks via an "index" or 
"table of contents".




Sorry, forgot the link:

[1] http://www.imc.org/atom-syntax/mail-archive/msg17308.html

--
Thomas Broyer




Re: New Link Relations -- Ready to go?

2005-10-21 Thread Thomas Broyer


James Holderness wrote:


Thomas Broyer wrote:

You didn't answer my last question:
How do you expect a newsreader to *automatically* download this 
week's 50 entries without downloading last week's entries instead?
(and show you links/buttons for you to ask download and display of 
previous/next week's Top 50)


I see where you're coming from, but this kind of thing is already a 
problem without even taking links into consideration.


For an aggregator to be able to do anything vaguely meaningful with a 
feed it has to be able to assume that the feed is incremental in nature.
As I already explained, paging is orthogonal to the incremental nature 
of a feed. An incremental feed will be chunked as explained in Mark's 
current Feed History draft (just use an atom:[EMAIL PROTECTED]"previous"] 
instead of the fh:prev extension element) and a non-incremental feed as 
described in the OpenSearch result 1.1 draft. The difference is that an 
incremental feed is sorted by date so the older parts will become more 
or less "stable" over time; while a non-incremental feed is replaced as 
a whole each time it is updated, with no other relation to time.
When the feed is updated an aggregator will by default assume that any 
new items can safely be added to the top of an inbox, any updates are 
updates to existing items, and any removed items have merely "fallen 
off the bottom" of the feed.


However, as soon as we introduce the concept of non-incremental feeds, 
an aggregator that is not aware of the concept will fail to process 
such a feed in a meaningful way. We've created a situation where an 
aggregator has to be aware of the (still to be specified) 
fh:incremental extension, Microsoft's simple list extensions for RSS, 
and whatever future extensions may arise; basically the ability to see 
into the future.


This problem merely repeats itself when it comes to processing 
archives. When we receive a "next" link, ideally we would like to 
assume it's a pointer to the next archive to be processed. For a 
regular incremental feed this isn't a problem. Even a search feed 
could be processed safely if ordered the right way. However, when it 
comes to non-incremental feeds we're screwed again. I agree that it 
sucks, but we're already stuck with that situation so I'm not sure 
that these links will make things any worse.
What's the difference between a search feed and a non-incremental feed? 
Aren't search feeds one facet of non-incremental feeds?


The difference between incremental and non-incremental feeds is that, 
when dealing with incremental feeds, paging can be seen as a link to 
archives, as the feed is tightly related to time. When dealing with 
non-incremental feed, the "previous page" is totally different than the 
"previous archived snapshot".
However, an incremental feed could take advantage of differentiating 
between paging and "archive linking": if linking to archives uses an 
atom:[EMAIL PROTECTED]"archives"] (or call it "history" if you prefer) to point 
at an incremental feed where each entry describes an archived set of 
entries (see [1] for a more detailed example); such a feed has the 
advantage of paging that it allows direct access to a specific point of 
time inside the feed "pages". Each "archived set of entries" could for 
example cover one or two week, so a user could navigate through the 
"feed state" or "feed history" not only by going from pages to pages but 
also by accessing archived chunks via an "index" or "table of contents".


--
Thomas Broyer




Re: New Link Relations -- Ready to go?

2005-10-21 Thread Thomas Broyer


James M Snell wrote:

Thomas Broyer wrote:

You didn't answer my last question:

How do you expect a newsreader to *automatically* download this 
week's 50 entries without downloading last week's entries instead?
(and show you links/buttons for you to ask download and display of 
previous/next week's Top 50) 

Ah, didn't see the last question ;-)

My choice would be for it to not automatically download 'em.  Just 
present the user with the available links and let 'em follow the ones 
they want.


So you're indirectly telling Mark to either:
- continue using an fh:prev extension element
- define a more specific link relation (previous-page?)
- stop dreaming of an automatic process for feed state reconstruction…

I'd rather say: define first/previous/next/last for "paging" only and 
use them for feed-state reconstruction. If someone wants some other 
"ordered" relationships, he'll define a new link relation (e.g. 
webring-previous).
Moreover, this is consistent with the OpenSearch start/previous/next/end 
link relations (where start=first and end=last).


--
Thomas Broyer




Re: New Link Relations -- Ready to go?

2005-10-21 Thread Thomas Broyer


James M Snell wrote :


Thomas Broyer wrote:


So you are OK with these feeds:


Yes, they all look good to me.



You didn't answer my last question:
How do you expect a newsreader to *automatically* download this 
week's 50 entries without downloading last week's entries instead?
(and show you links/buttons for you to ask download and display of 
previous/next week's Top 50) 



--
Thomas Broyer




Re: New Link Relations -- Ready to go?

2005-10-21 Thread Thomas Broyer


James M Snell wrote :


Thomas Broyer wrote:

How would you use these link relations for feed state reconstruction 
(that is, automatic handling by the Atom processor, without user 
action –except probably the "please reconstruct this feed's state" 
action) if you can't know what's pointed at?


How would you navigate through a paged search result (e.g. OpenSearch 
result feed) if previous/next might point at previous/next queries 
(e.g. history of what people searched for before you) or 
previous/next pages of the result feed?


How would you disambiguate between two "next" link on pointing at the 
next chunk of a paged feed and the other pointing at the next 
archived feed? (e.g. "August Top 100, page 2" and "September Top 100")


I thought we all agreed that we need a specific definition (related 
to paging) of these relations and were previously voting about how to 
call them (previous or prev-archive)


I wouldn't disambiguate them as I don't believe it's necessary to.  
What's needed is a way of identifying the role|purpose|intent of a 
feed; not a way of disambiguating the links between them.  An 
"archive" feed should be treated differently than a "search" feed 
which should be treated differently than a "subscription" feed.



So you are OK with these feeds:

GET /top50.atom HTTP/1.0
Host: music.example.net

200 OK
Content-Type: application/atom+xml
Content-Location: /top50/2005/w42/1.atom

http://www.w3.org/2005/Atom";>
Week #42 Top 50
Top 50 best selling singles
http://music.example.net/top50/2005/w42/1.atom"; />
http://music.example.net/top50.atom"; />
http://music.example.net/top50/2005/w41/1.atom"; />
http://music.example.net/top50/2005/w42/2.atom"; />
false
…

GET /top50/2005/w42/2.atom HTTP/1.0
Host: music.example.net

200 OK
Content-Type: application/atom+xml

http://www.w3.org/2005/Atom";>
Week #42 Top 50 (11th to 20st)
Top 50 best selling singles
http://music.example.net/top50/2005/w42/2.atom"; />
http://music.example.net/top50.atom"; />
http://music.example.net/top50/2005/w41/1.atom"; />
http://music.example.net/top50/2005/w42/1.atom"; />
http://music.example.net/top50/2005/w42/3.atom"; />
false
…

GET /top50/2005/w41/1.atom HTTP/1.0
Host: music.example.net

200 OK
Content-Type: application/atom+xml

http://www.w3.org/2005/Atom";>
Week #41 Top 50
Top 50 best selling singles
http://music.example.net/top50/2005/w41/1.atom"; />
http://music.example.net/top50.atom"; />
http://music.example.net/top50/2005/w40/1.atom"; />
http://music.example.net/top50/2005/w42/1.atom"; />
http://music.example.net/top50/2005/w41/2.atom"; />
false
…

How do you expect a newsreader to *automatically* download this week's 
50 entries without downloading last week's entries instead?
(and show you links/buttons for you to ask download and display of 
previous/next week's Top 50)


--
Thomas Broyer




Re: New Link Relations -- Ready to go?

2005-10-21 Thread Thomas Broyer


James M Snell a écrit :


Thomas Broyer wrote:


Mark Nottingham wrote:



- Attribute Value: previous
- Description: A URI that refers to the immediately preceding
document in a series of documents.



This definition doesn't prevent someone from using this link relation 
for
linking within a series of documents representing, say a "webring", 
where

"previous" and "next" will be other sites' feeds.
I really think we should make it clear that first/previous/next/last are
meant for "paging" of a single feed only.
I'll try to propose a replacement text.




-1. I see no reason to limit this to paging of a single feed.
How would you use these link relations for feed state reconstruction 
(that is, automatic handling by the Atom processor, without user action 
–except probably the "please reconstruct this feed's state" action) if 
you can't know what's pointed at?


How would you navigate through a paged search result (e.g. OpenSearch 
result feed) if previous/next might point at previous/next queries (e.g. 
history of what people searched for before you) or previous/next pages 
of the result feed?


How would you disambiguate between two "next" link on pointing at the 
next chunk of a paged feed and the other pointing at the next archived 
feed? (e.g. "August Top 100, page 2" and "September Top 100")


I thought we all agreed that we need a specific definition (related to 
paging) of these relations and were previously voting about how to call 
them (previous or prev-archive)


--
Thomas Broyer




Re: New Link Relations -- Ready to go?

2005-10-21 Thread Thomas Broyer


Mark Nottingham  wrote:
>   -  Attribute Value: previous
>   -  Description: A URI that refers to the immediately preceding
> document in a series of documents.

This definition doesn't prevent someone from using this link relation for
linking within a series of documents representing, say a "webring", where
"previous" and "next" will be other sites' feeds.
I really think we should make it clear that first/previous/next/last are
meant for "paging" of a single feed only.
I'll try to propose a replacement text.

>   -  Attribute Value: subscribe

+1

-- 
Thomas Broyer



Re: General/Specific [was: Feed History / Protocol overlap]

2005-10-19 Thread Thomas Broyer


Thomas Broyer wrote:


Mark Nottingham wrote:

Perhaps people could +1/-1 the following options:

* Reconstructing a feed should use:
   a) a specific relation, e.g., "prev-archive"

-1, (see James' comments)

   b) a generic relation, e.g., "previous"

+1


Hmm, I might have answered a bit too fast…


"previous" might be too generic and thus be used for things other than 
paging through a feed (would it be incremental –feed reconstruction– or 
not –search result, etc.), so I'd +1 to "previous-page".
On the other hand, if we don't register "previous" now, someone might 
register it later for something else (don't know what the IESG can 
approve…), with the same potential misuses…
But if we register "archives" or "history" at the same time (or, say, 
quite early in Atom the 1.0 deployment), misuses (the most common I 
think, using previous/next for inter-"feed state" linking, e.g. linking 
from the October Top 100 non-incremental feed to the September Top 100 
non-incremental feed) could be prevented… We should then also add a note 
in the previous/next description telling people not to use them for such 
things as described earlier, maybe also using the term "page" or 
"paging" explicitly…


As a result, I'm still -1 on prev-archive and +1 on previous, but add a 
+.75 on "previous-page".


--
Thomas Broyer




Re: General/Specific [was: Feed History / Protocol overlap]

2005-10-19 Thread Thomas Broyer


Mark Nottingham wrote:

Perhaps people could +1/-1 the following options:

* Reconstructing a feed should use:
   a) a specific relation, e.g., "prev-archive"

-1, (see James' comments)

   b) a generic relation, e.g., "previous"

+1

--
Thomas Broyer




Re: Feed History / Protocol overlap

2005-10-18 Thread Thomas Broyer


Antone Roundy  wrote:
> On Oct 18, 2005, at 5:13 PM, Robert Sayre wrote:
>> rel: next
>> definition: A URI that points to the next feed in a series of feeds.
>> For example, in a reverse-choronological series of feeds, the 'next'
>> URI would point deeper into the past.
>
> Ohh, nice readability.  Perhaps a few refinements:
>
> A URI that points to the next in a series of Feed documents, each
> representing a segment of the same feed.  For example, in a reverse-
> chronologically ordered series of Feed documents, the 'next' URI
> would point to the document next further in the past.

+1, *this* is "paging".

We could add another example, e.g. sorted by relevance (within a search
result) or priority…

If you want to link between different "states" of "Top 100" feeds
(October, September, August, etc), then use something like @rel="archives"
or @rel="history", or define a @rel="previous-archive" if you really want
to navigate directly to the other feed without having to go through a
"table of contents" feed.

If some people here prefers "next-chunk" or "next-page" to just "next",
why not, my mind is open…

-- 
Thomas Broyer



Re: Are Generic Link Relations Always a Good Idea? [was: Feed History -04]

2005-10-18 Thread Thomas Broyer


Eric Scheid wrote:

On 18/10/05 6:14 PM, "Thomas Broyer" <[EMAIL PROTECTED]> wrote:
  

Yes, and navigating through the historical states of the feed resource is
not paging, it's more like having access to archives.

I was thinking about proposing yet another link relation "archives": in
the general use case, it would reference another feed document where each
entry describes an archive:



The word 'archives' is too general though. May I suggest @rel="history"
instead?

I'm not a native English speaker so…

…but what's wrong with "archives"?

According to my understanding of "archives vs. history", when an 
Archived Feed (January 2005 Top 100 feed) links to the Archive Feed (the 
one listing each and every Archived Feed), isn't "history" a bit 
"disturbing"? as the Archive Feed will contain entries about archives of 
feeds published later (February 2005 Top 100 feed, March 2005 Top 100 
feed), that is, the Archive Feed doesn't contains the "history" of the 
January 2005 Top 100 feed but "archives" of each Top 100 feed ever 
published.


As said above, English is not my mother tong, so I don't really mind 
which word is chosen, I'll use it (also, someone other than me will 
certainly have to go through the IANA registration process, or at least 
help me to do it…)


--
Thomas Broyer




Re: Feed History / Protocol overlap

2005-10-18 Thread Thomas Broyer


Robert Sayre wrote:

[about the "previous" link relation]

A stable URI that, when dereferenced, returns a feed document
containing a set of entries that sequentially precede those in the
current document.
  


I already have code that uses "next" for this. Why do we want to change it?
  
Er, I'm not a native English speaker, so my apologies in advance if I'm 
wrong…


If a feed is sorted by the entries' atom:updated value in descending 
order (which AtomPP currently requires for "Lists"), isn't "next" 
meaning "entries with an atom:updated representing an earlier date-time" 
(remember, entries are sorted in descending order!) and "previous" 
meaning "entries with an atom:updated representing a later date-time"?


If entries are sorted in descending order, the "first" feed is the one 
with the greatest values (atom:updated representing now, a second ago, a 
minute ago, …) and the "last" one the one with the lowest values 
(atom:updated representing the "oldest" date-times). Hence, in the 
"first" feed you'll find an atom:[EMAIL PROTECTED]"next"] and in the "last" one 
an atom:[EMAIL PROTECTED]"previous"].


Conclusion: I think you, Mark and the guys behind OpenSearch all agree…

Now I think we should ask the OpenSearch people if they already have 
requested IANA registration for their start/next/prev/end link relations 
(hasn't James already asked them?) and if they haven't, then we (the WG) 
should first agree on the terms to be used (start/end vs. first/last), 
request registration and tell the OpenSearch people that these relations 
are pending registration.

Any thoughts?

--
Thomas Broyer




Re: Are Generic Link Relations Always a Good Idea? [was: Feed History -04]

2005-10-18 Thread Thomas Broyer


Antone Roundy  wrote:
>>> If the complete set represents all the entries ever published
>>> through an ever-changing feed document (what a feed currently is,
>>> you subscribe with an URI and the document you get when
>>> dereferencing the URI changes as a sliding-window upon a set of
>>> entries), then paging allows for feed state reconstruction.
>>> In other terms, feed state reconstruction is a facet of paging, an
>>> application to non-incremental feeds.
>
> Let's say you're doing a feed for the Billboard top 100 songs.  Each
> week, the entire contents of the feed are swapped out and replaced by
> a new top 100 (ie. it is a non-incremental feed).  And let's say you
> don't want to put all 100 in the same document, but you want to break
> it up into 4 documents with 25 entries each.  You now have two
> potential axes that people might want to traverse--from songs 1-25 to
> 26-50 to 51-75 to 76-100, or from this weeks 1-25 to last weeks 1-25
> to two weeks ago's 1-25, etc.  You can't link in both directions with
> the same "next".
>
> There are clearly two distinct concepts here--navigating through the
> chunks that make up the current state of the feed resource, and in a
> non-incremental feed, navigating though the historical states of the
> feed resource.

Yes, and navigating through the historical states of the feed resource is
not paging, it's more like having access to archives.

I was thinking about proposing yet another link relation "archives": in
the general use case, it would reference another feed document where each
entry describes an archive:

Top 100 feed:

October 2005 Top 100
no




...

Archive feed:

yes


...

September 2005 Top 100

...

    
    August 2005 Top 100

...

...

September 2005 Top 100 feed:

September 2005 Top 100
no




...

-- 
Thomas Broyer



Re: New Link Relations? [was: Feed History -04]

2005-10-18 Thread Thomas Broyer


James M Snell  wrote:
>
> Thomas Broyer wrote:
>> Depends whether @rel="self" was really meant for subscribing and the
>> spec wording is not precise enough about it; this could then be fixed
>> with an errata rather than create a new link relation…
>> Otherwise, +0.5, because it seems to overlap @rel="first" (or "last"?)
>> – or I missed something…
>>
> "self" should always point to the feed document containing the self
> link.  It makes no sense to have a "self" link in a feed that does not
> point to itself.

Right, off course… My apologies…

So +0.5 to "subscribe" because it seems to overlap "first" (or "last"?) –
or I missed something… ;o)

-- 
Thomas Broyer



Re: Are Generic Link Relations Always a Good Idea? [was: Feed History -04]

2005-10-18 Thread Thomas Broyer


Mark Nottingham  wrote:
> They seem similar. But, what if you want to have more than one paging
> semantic applied to a single feed, and those uses of paging don't
> align? I.e., there's contention for prev/next?

How can there be more than one paging semantic applied to a single feed?

If a feed (not feed document) is a set of entries (sorted by whatever
metadata: updated, priority, relevance, etc.) and you publish chunks as
many feed documents, paging is navigation from one to the other, following
the sort order.

If you want to provide the exact same entries sorted (thus paged)
differently, then that's another feed.

-- 
Thomas Broyer



Re: Are Generic Link Relations Always a Good Idea? [was: Feed History -04]

2005-10-17 Thread Thomas Broyer


Mark Nottingham wrote:
My concern is that if there is more than one use of a link relation 
like 'next' or 'prev', those uses could conflict. For example, if I 
use 'prev' for Feed History, will that cause a problem with feeds 
using Amazon OpenSearch if they want to use it in a slightly different 
way? To put it in Thomas' terms, what if there are different concepts 
of paging using the same terms -- which there seem to be already?

I don't think there are different concepts of paging.

Paging is navigation through subsets (chunks) of a complete set of entries.

If the complete set represents all the entries ever published through an 
ever-changing feed document (what a feed currently is, you subscribe 
with an URI and the document you get when dereferencing the URI changes 
as a sliding-window upon a set of entries), then paging allows for feed 
state reconstruction.
In other terms, feed state reconstruction is a facet of paging, an 
application to non-incremental feeds.



I think it's worth waiting consensus on previous/next or 
forwards/backwards, first/last or head/tail, etc. and having a "paging" 
spec (or just IANA registration, I don't really matter), and 
orthogonally define an fh:incremental extension (fh:incremental will 
just change newsreaders behavior, not the paging concept).

It seems James is having the same feeling…

--
Thomas Broyer




Re: New Link Relations? [was: Feed History -04]

2005-10-17 Thread Thomas Broyer


Mark Nottingham wrote:

- Attribute Value: prev
- Description: A stable URI that, when dereferenced, returns a feed 
document containing entries that sequentially precede those in the 
current document. Note that the exact nature of the ordering between 
the entries and documents containing them is not defined by this 
relation; i.e., this relation is only relative.

- Expected display characteristics: Undefined.
- Security considerations: Because automated agents may follow this 
link relation to construct a 'virtual' feed, care should be taken when 
it crosses administrative domains (e.g., the URI has a different 
authority than the current document).


- Attribute Value: next
- Description: A stable URI that, when dereferenced, returns a feed 
document containing entries that sequentially follow those in the 
current document. Note that the exact nature of the ordering between 
the entries and documents containing them is not defined by this 
relation; i.e., this relation is only relative.

- Expected display characteristics: Undefined.
- Security considerations: Because automated agents may follow this 
link relation to construct a 'virtual' feed, care should be taken when 
it crosses administrative domains (e.g., the URI has a different 
authority than the current document).


- Attribute Value: first
- Description: A stable URI that, when dereferenced, returns a feed 
document containing those entries furthest preceding those in the 
current document at the time it was minted. Note that the exact nature 
of the ordering between the entries and documents containing them is 
not defined by this relation; i.e., this relation is only relative.

- Expected display characteristics:
- Security considerations:

- Attribute Value: last
- Description: A stable URI that, when dereferenced, returns a feed 
document containing those entries furthest following those in the 
current document at the time it was minted. Note that the exact nature 
of the ordering between the entries and documents containing them is 
not defined by this relation; i.e., this relation is only relative.

- Expected display characteristics: Undefined.
- Security considerations:
+0.5 (adding the circular references issue raised by James), because 
some people will use "first" to link to the "live" feed (the one you 
subscribe to) and "next" to link to the first archive document and so 
on, and some will use "last" and "prev" for the exact same roles…

The given definition is not precise enough.

And wrt "prev", why not "previous"? both could also be registered as 
aliases…

- Attribute Value: subscribe
- Description: A stable URI that, when dereferenced, returns a feed 
document containing the most recent entries in the feed. This URI is 
intended to be subscribed to to keep abreast of changes in the feed. 
When different from the URI of the feed document it exists in, it 
indicates a URi that should be used for this purpose in place of the 
current document's URI.

- Expected display characteristics: Undefined.
- Security considerations: Users should always be informed of the 
actual URI they are subscribing to, and subscription should only take 
place when it is explicitly requested.
Depends whether @rel="self" was really meant for subscribing and the 
spec wording is not precise enough about it; this could then be fixed 
with an errata rather than create a new link relation…
Otherwise, +0.5, because it seems to overlap @rel="first" (or "last"?) – 
or I missed something…


--
Thomas Broyer




Re: Feed History -04

2005-10-17 Thread Thomas Broyer


James M Snell wrote:
if I point my newsreader to a feed document that has a 
incremental=true, I would look for a start link.  I would process the 
start feed then begin walking my way through the next links to build 
the history.  The start feed MAY have the most recent entries or MAY 
have the oldest entries, it doesn't matter.
It does matter if I don't want my newsreader to reconstruct the entire 
feed state and rather stop when it has read X entries or has reached 
Y-day old entries.
There shouldn't be any requirement that the entries in a feed (or even 
the feed documents themselves) have to be in a specific order in order 
to reconstruct the history.
It should (not SHOULD!) however be based on atom:updated or something 
similar (e.g. my-ext:last-modified)


--
Thomas Broyer




Re: Feed History -04

2005-10-17 Thread Thomas Broyer


Mark Nottingham wrote:
I don't want this draft to become the all-singing, all-dancing feed 
model review; although there's lots of interesting stuff there, it's 
way too ambitious for my tastes (and I think I detect the smell of a 
tarpit faintly wafting...). The feed history case gets us to a nice 
80+% point; the rest can come in separate vehicles.


Any response to 'prev-archive'?
Question: is what you want really a link to archives or isn't it just 
"simple" paging through a feed?


I suspect it is the latter, because reconstructing feed state is only 
needed if a complete set of entries is split into several documents.


Therefore, I'll rather suggest moving to:
- a spec about paging, defining head/prev/next (do we really need 
tail?) [note: see with A9/OpenSearch people]
- a spec defining fh:incremental, describing relation to paging (can a 
non-incremental feed be paged? does it mean something different than 
paging of an incremental feed?)
- eventually a spec defining links to archives (which in turn may use 
paging: think about archives of search results, what did the same query 
return yesterday, last week, last month, etc.)


--
Thomas Broyer




Re: Feed History -04

2005-10-17 Thread Thomas Broyer


James Holderness wrote:
5. Is the issue of whether a feed is incremental or not (the 
fh:incremental

element) relevant to this proposal?


non-incremental feeds wouldn't be paged, by definition, would they?


This has been debated. There have been those who have expressed an 
interest in having next and prev links traverse an archive of old 
non-incremental feeds. Say you have a feed with the top 10 books for 
this month. The next link (or prev link, depending on your preference) 
would point to the archive document with the top 10 books from last month.
I think that Mark's concerns were that readers/aggregators generally 
keep a local history of the feeds they're subscribed to. 
fh:incremental=no would explicitly tell them not to do so.


--
Thomas Broyer




Re: Feed History -04

2005-10-14 Thread Thomas Broyer


Mark Nottingham wrote:

How about:



?
I always thought this was the role of @rel="self" to give the URI you 
should subscribe to, though re-reading the -11 it deals with "a resource 
equivalent to the containing element".


1. Isn't "a resource equivalent to the containing element" the same as 
"an alternate version of the resource described by the containing element"?
2. Is the answer to 1. is no then what does "a resource equivalent …" 
mean? Is it really different than "the URI you should subscribe to" (at 
least if @type="application/atom+xml")?


--
Thomas Broyer




Re: Feed History -04

2005-10-14 Thread Thomas Broyer


Lindsley Brett-ABL001 wrote:

I have a suggestion that may work. The issue of defining what is "prev"
and "next" with respect to a time ordered sequence seems to be a
problem. How about defining the link relationships in terms of time -
such as "newer" and "older" or something like that. That way, the
collection returned should be either "newer" (more recent updated time)
or "older" (later updated time) with respect to the current collection
doc.
Wouldn't it be "better" to share the same link relations between feeds 
sorted by date/time or some other "priority" (e.g. OpenSearch results)?


--
Thomas Broyer




Re: draft-snell-atompub-feed-thread-01.txt

2005-10-13 Thread Thomas Broyer


Byrne Reese wrote:


Six Apart is looking to develop an experimental implementation of the 
Feed Thread extension for Atom. However, I have a few questions:


I see this extension as a logical place to list all feedback (both comments and 
trackbacks). However, I don’t see a way for the extension to differentiate 
between the two types of feedback an entry may receive. Does anyone know of a 
way to achieve that?

I'd say that

« If a comment uses an atom:[EMAIL PROTECTED]"alternate"] or an 
atom:[EMAIL PROTECTED], it is considered a "remote comment" (similar to 
trackback/postback). If using atom:link to link to the remote resource, 
the content might be included in atom:content as well. Remote comments 
should provide an atom:summary.
If a comment has no atom:[EMAIL PROTECTED]"alternate"] and no 
atom:content/@src, it is a "local comment" (comment added on an entry, 
similar to "comment submission HTML forms"). Local comments must use 
atom:content and shouldn't use atom:summary. »


(see http://www.imc.org/atom-protocol/mail-archive/msg01384.html for the 
complete discussion)


--
Thomas Broyer




Re: Next and Previous

2005-10-05 Thread Thomas Broyer


James Holderness  wrote:
> Thomas Broyer wrote:
>> Compare their atom:[EMAIL PROTECTED]"self" and
>> @type="application/atom+xml"]/@href, they'll point you to the "start" of
>> the "list", the one whose author and copyright apply.
>
> On the whole I tend to agree, but since there isn't a "self" link in
> either of the RSS formats and Mark would like this extension to be format
> neutral, he would either have to introduce an equivalent element into the
> spec or strongly suggest that RSS feeds include a "self" atom:link.

Maybe one more reason to use an atom:link instead of fh:prev...

> Technically it isn't even required that all Atom feeds have such a link,
> so either way it's something worth clarifying.

Agreed.

>> (Actually, author
>> and copyright should really appear in "history feed documents" as well,
>> aggregators shouldn't "apply copyright" from one document to other
>> documents linked from it).
>
> Technically yes, but try and imagine how an aggregator might handle that
> sort of thing. The feed may be made up of a collection of documents, but
> from the user's point of view it's all just one big feed. A copyright
> message is the sort of thing that would show up once in a properties
> dialog for the feed, or somewhere in the header or footer in a "newspaper"
> view.

Hmm, right.

> It's highly unlikely an aggregator would try and track multiple copyright
> messages and display them on a per item basis.

atom:rights at feed-level don't apply to its entries, just to the feed as
it stands. If you want to grant/restrict rights at an entry-level, use the
entry-level atom:rights.

I can understand how an entry-level atom:rights could be presented to the
end-user, but I can't imagine how it could be done for the feed-level
atom:rights, given that it can change during the feed's "life". The only
solution I can see is to store feed metadata on an atom:source inside each
entry, so you can ask for the entry-level and feed-level atom:rights for
each entry in your aggregator.

> As for author, if you've got item-level author elements you should be ok,
> but if there aren't, the aggregator is quite likely to take the last
> feed-level author it received and apply it to all subsequent items. It can
> be argued that that's a bug, but it's not unreasonable to imagine than
> many aggregators might do such a thing unless explicitly told not to.

Aggregators are more likely to copy/paste de feed-level authors into each
entry and totally forget about feed-level ones.

-- 
Thomas Broyer



Re: Next and Previous

2005-10-05 Thread Thomas Broyer


James Holderness  wrote:
>
> Mark Nottingham wrote:
>> Probably the closest thing to what you want is this proposal:
>>   http://www.ietf.org/internet-drafts/draft-nottingham-atompub-feed-
>> history-04.txt
>>
>> It has "previous", but not "next".
>
> It just occurred to me when reading this message that there may be some
> advantages to having a "next" link to go along with the "prev". I realise
> you don't need it in order to reconstruct a feed's history, but it does
> provide you with a certain amount of validation. For example, it's
> possible that someone could create an empty feed with nothing but their
> own title, author and copyright messages and a "fh:prev" link to someone
> else's feed in order to claim credit for a publication that wasn't their
> own. If an aggregator could rely on the existence of a "next" link it
> would be able to check for issues like that.

Compare their atom:[EMAIL PROTECTED]"self" and
@type="application/atom+xml"]/@href, they'll point you to the "start" of
the "list", the one whose author and copyright apply. (Actually, author
and copyright should really appear in "history feed documents" as well,
aggregators shouldn't "apply copyright" from one document to other
documents linked from it).

If the "borrower" uses an atom:[EMAIL PROTECTED]"self"]/@href different from the
one found in history documents, aggregators should issue a warning. They
could also dereference the @href and see if they are redirected to the
final same URI.
If the "borrower" uses the same atom:[EMAIL PROTECTED]"self"]/@href as the one
found in history documents, aggregators should subscribe to that URI and
not the "borrower"'s one, so the "borrower" can't claim anything.

I think atom:[EMAIL PROTECTED]"self"] is sufficient, there's no need for a 
"next".

-- 
Thomas Broyer



Re: ACE - Atom Common Extensions Namespace

2005-10-03 Thread Thomas Broyer


Mark Nottingham wrote:


My .02, FWIW, and off the top of my head;

I think this is a well-intentioned effort, but at the wrong end of the 
process. The market (i.e., users and implementors) should have a go at 
sorting out at what's common/prevalent enough to merit this sort of 
thing; having a co-ordinated namespace will lead to the problem of 
what to lump into it, how to version individual extensions within it, 
etc.


In other words, some of the benefits of Namespaces in XML -- e.g., 
loose coordination, well-insulated name spaces, ability to change 
namespace without changing local name to effect versioning -- will be 
lost, all for the sake of saving a few characters. Not worth it, IMO.

-1 to ACE, for the very same reasons.

--
Thomas Broyer




Re: ACE - Atom Common Extensions Namespace

2005-10-03 Thread Thomas Broyer


Martin Duerst wrote:


At 07:04 05/10/03, Walter Underwood wrote:
>
>--On October 2, 2005 9:35:28 AM +0200 Anne van Kesteren
><[EMAIL PROTECTED]> wrote:
>>
>> Having a file and folder of the same name is not technically possible.
>(Although
>> you could emulate the effect of course with some mod_rewrite.)
>
>Namespaces aren't files, only names.

Yes. But the W3C insists on having an actual file there, just
for documentation at least, or ideally for some machine-readable
information (schema,...).

>Also, some filesystem implementations do allow a file and a folder
>with the same name.

Yes. The W3C server could certainly be tweaked to allow that,
but it would be easier not to have to do that.

Hey wake up!

If http://www.w3.org/2005/Atom maps to a file system folder, any web 
server that I know of will send a redirect to 
http://www.w3.org/2005/Atom/ and "display" the directory index file 
(index.html, default.htm, etc.)



Moreover, there is precedence at w3.org to use URI without a trailing 
"/" as "public identifiers" (cool URIs?) when they actually are "folders":

See the "last version" links to CSS2 and DOM Level 2 recommendations:
http://www.w3.org/TR/REC-CSS2
http://www.w3.org/TR/DOM-Level-2-Core
http://www.w3.org/TR/DOM-Level-2-HTML
http://www.w3.org/TR/DOM-Level-2-Style
http://www.w3.org/TR/DOM-Level-2-Views
…

I really don't understand why you're discussing this sort of thing… We 
could really have an http://www.w3.org/2005/Atom/extensions namespace.


--
Thomas Broyer




Re: FYI: Updated Index draft

2005-09-20 Thread Thomas Broyer


James M Snell wrote:

Complete example

...
priority
index
order="descending">http://www.example.com/ranking/foo


...
C
10
3
http://www.example.com/ranking/foo";>30



[…]

Thoughts?
It looks more and more like Microsoft's RSS simple list extension [1], 
and I think they had the good approach (define sorts on the feed 
metadata, based on extension element values at the entry level) but a 
bad technical solution (use the extension element in a different 
context: when in cf:sort, it has a non-namespaced data-type attribute 
and its content is a "label" string, while in an entry it might not have 
attributes and its value should be of type specified by the @data-type 
attribute seen before).


Suggestions:
1. get rid of your i:rank, users will use any extension element instead 
(no more registry and you can still define "standard" priority and index 
extensions)
2. get rid of your @order attribute: users should be able to choose in 
which order they want their entries: best-ranked to least-ranked "top to 
bottom" or "bottom to top". Its the responsibility of the producer to 
provide labels and values that will be well-understood by users (e.g. 
not saying "stars" and ranking from 1 (best rank) down to 5: "stars" 
implies "number of stars", so "sort by stars in ascending order" implies 
"the highest the value, the better it is", which is not what's behind 
1=best-rank…)

3. make content of i:raking a user understandable label
4. (optional) add a data-type attribute to i:ranking (maybe rename that 
one to something related to sorting, not ranking)
5. use @namespace and @localname attributes on i:ranking to describe the 
element in entries the sort applies to (using those attributes prevent 
from using QNames in attribute values, which doesn't work great with 
prefix changes)



http://example.com/user-review"; 
localname="stars">User-reviews stars

…

http://example.com/user-review";>1
…

This, however, doesn't match "index" in the draft title any more.

What could be even better, though a lot less "simple" (and not feasible, 
see below), would be to use XPath or XPointer (XPointer has the 
advantage that you define namespace prefix bindings "inside" it , using 
the xmlns() XPointer scheme). That way, you could use any 
element/subelement and/or attribute as the value holder for the sort. 
This would require however an XPath/XPointer engine, as well as storing 
the XML DOM, or mapping XPath/XPointer to your internal feed 
representation; this is not feasible.


[1] 
http://msdn.microsoft.com/windowsvista/building/rss/simplefeedextensions/


--
Thomas Broyer




Re: "Top 10" and other lists should be entries, not feeds.

2005-08-30 Thread Thomas Broyer


Bob Wyman wrote:


I’m sorry, but I can’t go on without complaining. Microsoft has 
proposed extensions which turn RSS V2.0 feeds into lists and we’ve got 
folk who are proposing much the same for Atom (i.e. stateful, 
incremental or partitioned feeds)… I think they are wrong. Feeds 
aren’t lists and Lists aren’t feeds. It seems to me that if you want a 
“Top 10” list, then you should simply create an entry that provides 
your Top 10. Then, insert that entry in your feed so that the rest of 
us can read it. If you update the list, then just replace the entry in 
your feed. If you create a new list (Top 34?) then insert that in the 
feed along with the “Top10” list.



Henry Story also proposed atom:id to be "order-related":
http://www.w3.org/2005/Atom";>
...

tag:first-in-list
Some entry
...


tag:second-in-list
Another entry
...



and a bit later:
http://www.w3.org/2005/Atom";>
...

tag:first-in-list
Another entry
...


tag:second-in-list
Yet another entry
...



Note how tag:first-in-list entry now represents "Another entry" while it 
were previously "Some entry", and tag:second-in-list now is "Yet another 
entry" while it were "Another entry".


--
Thomas Broyer




Re: Feed History -03

2005-08-17 Thread Thomas Broyer


Mark Nottingham wrote:
> For that matter, if Henry's interpretation were correct, the element
> could be
>
>./archives/archive1.atom
>
> And Atom processors would magically know that XML Base applies to the
> URI therein. It's the magic that I object to; inferring the
> applicability of context based on the presence or absence of other
> markup isn't good practice, and will lead to practical problems.   E.g.,
> what if I want to have an optional attribute on an empty
> element? Is it "simple" or "complex"?

FYI, I already rose this up in late May [1]. That was before format-09...

[1] http://www.imc.org/atom-syntax/mail-archive/msg15863.html

-- 
Thomas Broyer




Re: Updated Comments Draft (getting closer)

2005-08-12 Thread Thomas Broyer


James M Snell wrote:


The simple answer is that not everything I may want to reply too will 
have an ID I can reference.  Suppose that what I'm responding to is an 
item in an RSS feed that does not contain a guid element?  All I have 
to go off of is the URL of the RSS feed or the RSS item's link 
element... neither of which are actual ID's.

From your draft's abstract:

  This memo presents a mechanism that allows feeds publishers to
  express threading relationships between entries and feeds.

And from your draft's introduction section:
  This document specifies a mechanism that allows the expression of
  threaded discussions within the Atom Syndication Format ([I-D.ietf-
  atompub-format]).

As I read it, your proposal is about enabling threading in Atom to allow 
aggregators to present entries in a tree form.


If you want to comment on a non-Atom resource, create a new link/@rel 
value or use a [EMAIL PROTECTED]"related"] or [EMAIL PROTECTED]"via"] or something 
like that.


So a strong +1 to making the id REQUIRED.

--
Thomas Broyer




Re: Atom error pages

2005-07-25 Thread Thomas Broyer


Graham wrote:



It's far too late for this, but how should Atom servers produce/ 
clients deal with error pages? Feedster regularly changes its search  
results feed to a single entry "Search results temporarily offline"  
feed document (RSS guid "http://www.feedster.com/";), and I think  
served with HTTP status 200. This seems the wrong behavior for so  
many reasons. What should they be doing in Atom?


Graham


I think there are two cases here:

   * when publishing Atom feeds or entries through HTTP, an HTTP error
 code with an Atom body is fine (at least for me). As far as
 aggregator behavior is concerned, I think they could show the
 entry as part of the feed but discard it as soon as the feed can
 be retrieved without error.
   * when using the Atom Publishing Protocol's POST or PUT, it might be
 worth defining an error document type to tell the client why its
 document has been refused (e.g. POSTing an Atom Entry with a
 base64-encoded MSWord content and the server only accepts the
 three "basic" content types; or an Atom Entry with more than one
 category to a server supporting only one category per entry; or
 using an extension "control information" not supported by the
 server: it should be able to tell the client which one has been
 refused; etc.)

--
Thomas Broyer




Re: Latest on the comments extension

2005-07-22 Thread Thomas Broyer


James M Snell wrote:
>
>>>/in-reply-to provides the atom:id (not dereferencable) of an
>>>original atom:entry and may appear within atom:feed or
>>>atom:entry. in-reply-to on the feed level indicates that all
>>>of the entries within the feed are considered replies to the
>>>identified atom:entry.
>>>
>>>
>>
>>Is it legal if it appears at both levels? And what does it mean
>>then?
>>
>>
>>
> Yes. If the entry level link has the same URI as the feed level link,
> there is no effect... it's basically just redundant data.  If the entry
> level link specifies a different URI, then it's basically an assertion
> that the entry is a response to two different entries.  If all of the
> entries within a feed are replies to the same entry, putting the
> in-reply-to at the feed level simply gives you a shortcut the same way
> that putting atom:author elements at the feed level rather than entry
> level does.
>
> e.g.
>
> 1.
> 
> 
>   
>   
> 
>   
> 
>
> 2.
> 
> 
>   
>   
> 
>   
> 
>
> 3.
> 
> 
>   
> 
> 
>   
> 

#2 is not how atom:author "inheritance" works (assuming there is some kind
of atom:author inheritance, which is not established). I'd prefer #2 to be
equivalent to this:

  

  


That is, the set of entry level links overrides the set of feed level links.

If I understand correctly, ".../root" tells you where to find the entry
identified with ".../in-reply-to". How are you dealing with multiple
in-reply-to?





If I misunderstood, what is ".../root" for?

-- 
Thomas Broyer




Re: I-D ACTION:draft-nottingham-atompub-feed-history-01.txt

2005-07-21 Thread Thomas Broyer


Antone Roundy wrote:
>
> On Wednesday, July 20, 2005, at 11:44  AM, Thomas Broyer wrote:
>> I was actually wondering why non-stateful feeds couldn't have
>> archives: in the "This month's Top 10 records" feed, why couldn't I
>> link to "Last month's Top 10 records"?
>> If this kind of links are not dealt within feed-history, then I
>> suggest splitting the draft into two (three) parts:
>>   1. fh:stateful: whether a feed is stateful or not
>>   2. fh:prev: state reconstruction of a stateful feed
>>   3. (published later) fh:: link to archives of a non-stateful
>> feed
>> (no, I actually don't want such a split, I'd rather deal with the "3."
>> in feed-history, no matter how)
>>
>> If we want to solve this "issue" using a distinct element (fh:prev if
>> fh:stateful=true, fh: if fh:stateful=false), is fh:stateful still
>> needed? The presence of fh:prev would be equivalent to
>> fh:stateful=true,
>> the presence of fh: would be equivalent to fh:stateful=false, the
>> absence of both fh:prev and fh: would be equivalent to the absence
>> of fh:stateful, and the presence of both fh:prev and fh: would be
>> an
>> error.
>> This is off course true only if fh:prev must be accompanied by
>> fh:stateful=true. The question is: is it useful to have fh:stateful if
>> you have no link to any kind of archive?
>>
> I would think that rather than fh:stateful="true | false", it might be
> more useful to have (with a different element name, and perhaps
> different values) fh:what-kind-of-feed-is-this="sliding-window |
> snapshot | ???".  If it's a sliding-window feed, fh:prev points to the
> previous sliding window.  If it's a snapshot feed, then fh:prev points
> to the previous snapshot.  fh:what-kind-of-feed-is-this might have a
> default value of sliding-window.

+1

and with the addition of fh:prev/@updated (and an optional fh:prev/@title,
see below), it turns feed-history to a really cool extension!

We could also add some more hints about fh:prev processing depending on
fh:what-kind-of-feed-is-this:
 * if the value is "sliding-window", an Atom Processor MAY reconstruct the
feed state automatically without user interaction
 * if the value is "snapshot", an Atom Processor SHOULD NOT retrieve
archive snapshot feeds unless told by the user (e.g. showing a link or
button using fh:prev/@title as the label); when presented to the user,
entries in the retrieved snapshot feed SHOULD replace any entry from
within another snapshot (e.g. "Last Month's Top 10 records" should
replace "This Month's Top 10 records").

fh:prev/@title could be used on sliding-window feeds to indicate the title
of the latest entry in the previous feed (just like blog homepages
sometimes link to the previous entry using its title).

fh:prev would look like:
http://example.net/archives/june.atom

-- 
Thomas Broyer




Re: I-D ACTION:draft-nottingham-atompub-feed-history-01.txt

2005-07-20 Thread Thomas Broyer



This mail has been around in my drafts folder for about 10 days, but 
here it is...


I'm not sure what my position is wrt what I wrote below...

Mark Nottingham wrote:


On 04/07/2005, at 6:18 PM, Thomas Broyer wrote:


With the -01 draft (it might have been the same within the -00 one  
too), one can't reuse the process to link to archives of "Top  
Twenty Records" or "Most Popular Items" (e.g. a monthly "Top Twenty  
Records" linking to the previous-month "Top"), because of the "a  
subscription document whose fh:stateful element contains "false"  
MUST NOT contain a fh:prev element".
Why not just stating that if fh:stateful is false then the "prev"- 
linked archive feed doesn't not contain a subset of the previous  
entries but rather does contain the previous state of the  
subscription feed. I.e. the meaning of the fh:prev "link" depends   on

the value of fh:stateful.


That's interesting, but it somewhat changes the semantics of "prev";  
it goes from "where you can find previous entries in a logical feed"  
to "where you can find an older archive of entries." While these are  
often the same thing, it might not always be the case; i.e., someone  
might want to publish a non-time-based feed.


So, I'm nervous about having two different semantics for one element,  
depending upon its context of use.


I fully understand (that's actually also somehow bothering me).

I was actually wondering why non-stateful feeds couldn't have archives:
in the "This month's Top 10 records" feed, why couldn't I link to "Last
month's Top 10 records"?
If this kind of links are not dealt within feed-history, then I suggest
splitting the draft into two (three) parts:
  1. fh:stateful: whether a feed is stateful or not
  2. fh:prev: state reconstruction of a stateful feed
  3. (published later) fh:: link to archives of a non-stateful feed
(no, I actually don't want such a split, I'd rather deal with the "3."
in feed-history, no matter how)

If we want to solve this "issue" using a distinct element (fh:prev if
fh:stateful=true, fh: if fh:stateful=false), is fh:stateful still
needed? The presence of fh:prev would be equivalent to fh:stateful=true,
the presence of fh: would be equivalent to fh:stateful=false, the
absence of both fh:prev and fh: would be equivalent to the absence
of fh:stateful, and the presence of both fh:prev and fh: would be an
error.
This is off course true only if fh:prev must be accompanied by
fh:stateful=true. The question is: is it useful to have fh:stateful if
you have no link to any kind of archive?

I also repeat my proposal for an identifier different from an URI  
for a reader/aggregator to know whether it has already retrieved an  
archive document, e.g. using the "updated" date-time of the  
"fh:prev"-linked archive feed.


Example:
  
  http://purl.org/atom/ns#draft-ietf-atompub-format-09";
xmlns:history="[TBD]">
Example Feed
http://example.org/"/>
2003-12-13T18:30:02Z

  John Doe

urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6
true


  http://example.org/2003/11/index.atom


  Atom-Powered Robots Run Amok
  http://example.org/2003/12/13/robots_here"/>
  urn:uuid:1225c695-cfb8-4ebb--80da344efa6a
  2003-12-13T18:30:02Z
  Some text in a new, fresh entry.


  

If I retrieved the feed between 2003-11-24T12:00:00Z and  
2003-12-13T18:30:02Z, the fh:prev URI were probably equal to http:// 
example.org/2003/10/index.atom (october, not november). However, I  
didn't miss any entry.
Using the fh:[EMAIL PROTECTED] value, I can know that I didn't miss any  
entry and that I then don't need to dereference http://example.org/ 
2003/11/index.atom (november, the "new" fh:prev URI)


Hmm, that seems awfully complex (and hard to grasp -- but maybe it's  
just me :) just to avoid a round trip.


One, or a few more... depending on how you archive your entries (daily
archive document, weekly archive document, N entries per archive
document, etc.), how you publish your entries in the subscription feed
(N entries in the feed, or only those entries published during the N
last days), and who frequently you post.
Your subscription feed entries can overlap several archive feeds and the
fh:prev jump from "archive2.atom" to "archive5.atom". Using "updated",
you can avoid 3 round trips in that case.

...or too many: what if I switch URL addressing scheme (e.g. from
"archive1.atom"..."archiveN.atom" to
"2005/January.atom"..."2005/June.atom")?
A "dumb" reader will retrieve back every archive feed, as it has never
ever dereferenced the URIs.


That 'proba

Re: More while we're waiting discussion

2005-07-12 Thread Thomas Broyer


James M Snell wrote:



Ok, distilled from this conversation...

1. Comments can either be included directly within the feed or in a 
separate feed.
2. Comment entries are distinguished by a link @rel="in-reply-to" 
@href="{$original-entry/atom:id}"


As an atom:id is an identifier that might (should?) not be 
"dereferenceable", atom:link is not a good choice. An extension element 
whose content is an URI/IRI (similar to atom:id) would be better:

   {$original-entry/atom:id}

3. Comment feeds may be indicated using a link @rel="comments" 
@href="{$comment-feed-url}" as a child of 


3. Comment feeds may be indicated using a link @rel="comments" 
@href="{$comment-feed-uri}". If used as a child of atom:feed, it links 
to a feed containing all comments on all entries. If used as a child of 
atom:entry, it links to a feed containing only the comments on the entry.



Example 1: Entries and comments in a single feed


 
   http://example.com/2 


http://example.com/1"; 


   ...
 
 
   http://example.com/1
   ...
 


Example 2: Comments in a separate, associated feed


 http://example.com/comments.xml"; />
 
   http://example.com/1


http://example.com/1/comments.xml";
title="Comments on this entry" />


 



 
   http://example.com/2


http://example.com/1


   ...
 


The in-reply-to link could also be used in feeds that are not directly 
associated with the source feed.  e.g. if you post an entry in your 
blog and I post a reply to that entry in my blog.  My entry can use 
the in-reply-to link so that thread aware readers can make the 
connection appropriately.


Your entry should also link to a representation of the "commented 
resource" using an atom:[EMAIL PROTECTED]"related"].


And if you're relaying information, you could use an 
atom:[EMAIL PROTECTED]"via"], as proposed in 
http://www.intertwingly.net/wiki/pie/PaceLinkRelVia


Question: could the @rel="comments" link be handled appropriately 
using the existing @rel="related"?  The question hinges on whether or 
not it is semantically important to distinguish "comments" from other 
types of related entities.  I'm not convinced it is.  If a 
@link="related" points to an Atom feed, who cares what that feed 
contains, the user agent can make the feed available for the user to 
subscribe to pulling in the relevant entries.


I don't know yet...

--
Thomas Broyer




Re: FWD: I-D ACTION:draft-nottingham-atompub-feed-history-01.txt

2005-07-04 Thread Thomas Broyer


Mark Nottingham wrote:



This draft is based on comments received; thanks to everyone. Major  
changes;


* Removed 'this' link
* Changed link syntax
* Changed stateful syntax
* Clarified difference between 'subscription' and 'archive' feeds  
(note that they're just for the purposes of clarity in this spec)

* Added a bit to the state reconstruction process description
* Added examples


Really good work!


Comments and suggestions welcome as always,


Why not using an xs:boolean for fh:stateful? hence allowing values 0, 1, 
true and false.


With the -01 draft (it might have been the same within the -00 one too), 
one can't reuse the process to link to archives of "Top Twenty Records" 
or "Most Popular Items" (e.g. a monthly "Top Twenty Records" linking to 
the previous-month "Top"), because of the "a subscription document whose 
fh:stateful element contains "false" MUST NOT contain a fh:prev element".
Why not just stating that if fh:stateful is false then the "prev"-linked 
archive feed doesn't not contain a subset of the previous entries but 
rather does contain the previous state of the subscription feed. I.e. 
the meaning of the fh:prev "link" depends on the value of fh:stateful.


Also, shouldn't there be a note to invite producers to provide an 
atom:[EMAIL PROTECTED]"self" referencing the subscription feed?


I also repeat my proposal for an identifier different from an URI for a 
reader/aggregator to know whether it has already retrieved an archive 
document, e.g. using the "updated" date-time of the "fh:prev"-linked 
archive feed.


Example:
  
  http://purl.org/atom/ns#draft-ietf-atompub-format-09";
xmlns:history="[TBD]">
Example Feed
http://example.org/"/>
2003-12-13T18:30:02Z

  John Doe

urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6
true


  http://example.org/2003/11/index.atom


  Atom-Powered Robots Run Amok
  http://example.org/2003/12/13/robots_here"/>
  urn:uuid:1225c695-cfb8-4ebb--80da344efa6a
  2003-12-13T18:30:02Z
  Some text in a new, fresh entry.


  

If I retrieved the feed between 2003-11-24T12:00:00Z and 
2003-12-13T18:30:02Z, the fh:prev URI were probably equal to 
http://example.org/2003/10/index.atom (october, not november). However, 
I didn't miss any entry.
Using the fh:[EMAIL PROTECTED] value, I can know that I didn't miss any entry 
and that I then don't need to dereference 
http://example.org/2003/11/index.atom (november, the "new" fh:prev URI)


--
Thomas Broyer





Re: I-D ACTION:draft-nottingham-atompub-feed-history-00.txt

2005-06-30 Thread Thomas Broyer


Antone Roundy wrote:
> Getting back to how to use static documents for a chain of instances,
> that could easily be done as follows. The following assumes that the
> current feed document and the archive documents will each contain 15
> entries.
>
> The first 15 instances of the feed document do not contain a "prev"
> link (assuming one entry is added each time).
>
> When the 16th entry is added, a static document is created containing
> the first 15 entries, and a "prev" link pointing to it is added to the
> current feed document. This link remains unchanged until the 31st entry
> is added.
>
> When the 31st entry is added, another static document is created
> containing the 16th through 30th entries. It has a prev link pointing
> to the first static document. The current feed document's prev link is
> updated to point to the second static document, and it continues to
> point to the second static document until the 46th entry is added.
>
> When the 46th entry is added, a third static document is created
> containing the 31st through 45th entries, etc.

However, there should then be a "this" link in the "live" feed, otherwise
I'll have to retrieve (as a reader/aggregator) the "prev" feed each 15
entries:

Say I retrieved the feed when it was 15-entries long. When the 16th entry
is added and the first static document created, the "live" feed is added a
"prev" link, pointing to a document I never retrieved, so I guess I might
have missed entries and retrieve it. I end up retrieving back the 15
entries I already know of.
When the 31st entry is added, the feed's "prev" link is changed to
reference the new 16th-to-31st archive feed. This is an URI I never
dereferenced, so I guess I might have missed some entries and then
dereference the URI and retrieve the archive feed. If I had retrieved the
feed when it was 30-entries long, I end up retrieving back the 16th to
31st entries I already know of.

One could argue that I don't need to retrieve the archive feed as the live
feed already contains 14 entries (2nd to 15th, or 17th to 30th) I already
retrieved, using atom:updated and atom:id to notive them.
Well, nothing precludes an entry to be "pushed to front" even if its
atom:updated hasn't changed, so the entry following such a "puished to
front" entry could be one I never saw and I might have missed it.
And actually, this doesn't otherwise change the problem, which would still
arise if I retrieve the "live" feed when, say, it was 15-entries long and
15 entries later: I never saw the "prev" archive feed or any of the 15
entries in the "live" feed (so I can't conclude anything based on
atom:id+atom:updated), I then retrieve the "-prev" linked archive feed and
end up retrieving 15 entries I already know of, because it happens than I
actually didn't miss any entry between my two "live" feed retrievals...

So we need a mean to either identify the *next* "prev" link (a "this" or
"permalink" link in the "live" feed (no need to have one in "archive"
feeds, as already said on the list), which means it must be predictable),
or something to tell us we didn't missed entries, such as the atom:updated
of the "prev"-linked archive feed (is atom:updated enough?).

We'll end up with the "live" feed being either:

  http://example.com/2005/05/"; />
  
  
http://example.com/2005/06/
  
  ...


or


  
  http://example.com/2005/05/";
    fs:updated="2005-05-31T23:59:59" />
  ...


One advantage of the latter is that you don't rely on URIs as identifiers
for the feed archive documents and they can be moved/split/merged without
readers and aggregators being then implicitly told to retrieve back the
whole archives (if you change URIs, they'll think they missed entries...).

-- 
Thomas Broyer




Re: FWD: I-D ACTION:draft-nottingham-atompub-feed-history-00.txt

2005-06-29 Thread Thomas Broyer


Dave Pawson wrote:
> Any one site could now have n instances, each being a feed, the only
> variant (apart from entries) being the links to previous feeds.
> If I'm to say *this* is my feed, I guess I point to the most recent...
> which will change over time?
>
> With the example of 15 entries per,
>
> feed1 1..15
> feed4 45..60
>
> my 'feed' for my site rolls over from feed1...n as time progresses?

I guess the answer is:
http://example.com/latest is your feed, e.g. containing the latest 10 entries
http://example.com/archive-1 through n are your "archive" feeds.

"latest" is likely to contain entries which are also "archived" in
"archive-n", but I don't see it as a problem (and it doesn't violate Atom
Feed Document rules wrt uniqueness of entries), at most I will retrieve 14
entries (if using 15 entries per "archive feed document") which I already
got from the "live" feed.

You can see "latest" as an Atom alternate for your home page (or latest
news page) and "archive-1" through "archive-n" as Atom alternates for your
"archive" pages.

What I'm wondering is, if I had "archive feeds" on a per-day basis
(instead of "N entries per archive feed", although what follows also
applies) and say I published 3 entries yesterday, 5 entries the day before
and no entry yet today:
 - http://example.net/archive/2005/06/27: 5 entries
 - http://example.net/archive/2005/06/28: 3 entries
 - http://example.net/archive/2005/06/29: doesn't exist yet
Say I'm having a "live feed" showing the latest 5 entries: it will contain
all the 3 yesterday entries and the 2 latest entries from 2005/06/27.
Could I "prev"-link to "archive/2005/06/28" or should I try to figure out
the "archive feed" containing the "previous to earliest" entry (here,
"archive/2005/06/27", but it could have been "archive/2005/06/25" if I had
only 2 entries last monday and not at all on sunday) ?
If I can just link to the "latest archive feed document", shouldn't we
then just have an "archive" [EMAIL PROTECTED] in the "live feeds" (similar to 
the
"List-Archive" header in mail messages) and use "prev" only between
"archive feed documents" (similar to the "Next Page" link in the HTML list
archive).

-- 
Thomas Broyer




Re: Question on Use Case: Choosing atom:content's type when ArchivingMailing Lists

2005-06-17 Thread Thomas Broyer


Mark Baker wrote:


Martin,

 


The general idea seems to be that conversion to HTML is good for
human consumption with a browser, and for human navigation in an
archive. message/rfc822 is the original, and may be very good for
reuse in a mailer (e.g. for replying), except that mailers don't
support it much at the moment.

http://www.example.org/lists/list/archive/12345"/>
   



Unfortunately, that's bad Atom.  Section 4.1.3.1 of the format spec
says;

 On the atom:content element, the value of the "type" attribute MAY be
 one of "text", "html", or "xhtml".  Failing that, it MUST be a MIME
 media type, but MUST NOT be a composite type (see Section 4.2.6 of
 [MIMEREG]).  If the type attribute is not provided, Atom Processors
 MUST behave as though it were present with a value of "text".

where "composite type" is defined to be multipart/* and message/*.  If
the intent of that restriction was to avoid the whole non-XML
attachments issue, then it seems to have failed to account for the use
of the "src" attribute to include the data by reference rather than by
value.

I'm sorry that I didn't notice this earlier. 8-(
 



Er, and it seems there's another (related) problem:
In 4.1.3.1:
[
If the type attribute is not provided, Atom Processors MUST behave as 
though it were present with a value of "text".

]
Just below, in 4.1.3.2:
[
If the "src" attribute is present, the "type" attribute SHOULD be 
provided and MUST be a MIME media type [MIMEREG], rather than "text", 
"html", or "xhtml".

]

So what if I provide a "src" attribute but no "type" attribute?
The "type" attribute would "default" to "text", but "text" is forbidden 
if "src" is provided...


I suggest that if src is provided but not type, there is no "type 
value", as this value is just advisory and not authoritative. However, 
if src is not provided (the content is local), processors must "behave 
as though it were present with a value of text".


--
Thomas Broyer




Re: OpenSearch RSS

2005-05-30 Thread Thomas Broyer


Tim Bray wrote:



Check out A9's OpenSearch at http://opensearch.a9.com/ - I'm starting  
to hear substantial buzz around this thing.


I wonder, is embedding the OpenSearch RSS stuff in Atom going to  
cause any heartburn?  I'm inclined to think not, but would appreciate  
others having a look.


I get the feeling that OpenSearch + Atom could be real useful. -Tim

Just to see how it would look like, this is what the search result 
example [1] would be in Atom:

http://a9.com/-/spec/opensearchrss/1.0/";>
A9.com Search: New York City history
tag:A9.com,2005:New%20York%20City%20history
http://a9.com/New%20York%20City%20history"; />
Search results for "New York City history" at 
A9.com

© 2003-2005, A9.com, Inc. or its affiliates.

  A9.com, Inc.
  http://a9.com/

2005-05-30T23:50:00+02:00
423
1
10


  New York City History
  http://www.columbia.edu/cu/lweb/eguides/amerihist/nyc.html"; />
  
http://www.columbia.edu/cu/lweb/eguides/amerihist/nyc.html

  2005-05-30T00:00:00+02:00
  ... Harlem.NYC - A virtual tour and information on 
businesses ... with historic photos of Columbia's own New York 
neighborhood ... Internet Resources for the City's History. 
...



  Gotham Center for New York City History
  http://www.gothamcenter.org/"; />
  http://www.gothamcenter.org/
  2005-05-30T00:00:00+02:00
  ... Submit Events Edit Your Submission. Main 
Neighborhood Stories NYC History in the ... The Gotham Center for New 
York City History is supported by The CUNY Graduate ...




  Welcome to the Museum of the City of New York
  http://www.mcny.org/"; />
  http://www.mcny.org/
  2005-05-30T00:00:00+02:00
  ... a list with the event staff. Additional information 
will be included in the confirming email. © Museum of the City of 
New York.




Some comments:

   * I set type="text/html" on the feed's alternate link, because the
 OpenSearch RSS 1.0 Specification [1] says the RSS  is "a URL
 that can recreate the search in HTML format", @type is not used in
 entries as it might not be text/html
   * I changed the escaped-HTML &copy; to ©, it saves us an
 internal DTD subset while allowing us to use type="text"
   * Atom mandates an atom:author, I added a dummy one
   * Atom mandates an atom:updated in the feed, I added a dummy one; it
 should be set to the latest atom:updated date found in the feed's
 entries, or at least to the date the request was made.
   * Atom mandates an atom:updated in each entry, I added a dummy one;
 it should be set to the last access of the search engine to the
 "result document", or eventually the date the request was made.
 For example, Google is able to give you this date if it has cached
 the document (when you look at a cached page, Google puts a "this
 is Google's cache of  as retrieved on " on top of the page.
   * I used the address of the "result document" (permalink?) as the
 atom:id of each entry, because this is the easiest way to do it...

I've put this document online [2], with the "Atom 0.3" namespace URI 
(http://purl.org/Atom/ns#)


Note that the OpenSearch RSS 1.0 Specification [1] forbids the use of 
escaped HTML in many elements. If there were an "OpenSearch Atom", it 
could also be limited to type="text" (and/or type="xhtml", because it's 
quite easy to transform XHTML to plain text), though A9.com website 
(which acts as an reader/aggregator for OpenSearch RSS documents) would 
then not be a valid Atom Processor.


The OpenSearch Description Document [3] would /a priori/ be the same 
(except of course that it would use a different value in the "Format" 
element to indicate "OpenSearch Atom" instead of "OpenSearch RSS".


The Atom result document could also link to the next and previous 
"pages" with additional atom:link elements in the atom:feed, with 
"extended" @rel values.


[1] http://opensearch.a9.com/spec/opensearchrss/1.0/
[2] http://www.ltgt.net/atom/opensearch.atom
[3] http://opensearch.a9.com/spec/opensearchdescription/1.0/

--
Thomas Broyer





Re: Problem with Metadata Elements (section 6.4)

2005-05-30 Thread Thomas Broyer


David Powell wrote:
>
> Quoting Thomas Broyer:
>
>> The problem come when I use a "plain flowed text" and can then omit
>> the "type" attribute:
>> By Thomas Broyer and al.
>> My extension becomes a Simple Extension Element when processed by an
>> Atom Processor, and an Atom Processor having some "generic support"
>> for Simple Extension Elements (which is really the intent of SEE)
>> would change its behavior when processing it, which is not really
>> wanted.
>> However, I don't think I badly designed the byline extension, or this
>> would imply that Atom itself is badly designed (and I don't think so).
>
> I don't think that this is a big problem.  The allowed syntax of
> Structured Extension Elements is defined by the designer of the
> Structured Extension.  It is the designer's responsibility to ensure
> that Structured Extensions don't flip into being Simple Extensions, so
> they need to be designed in a way such that they have at least one child
> element or attribute.
>
> In this case the easiest way to do this would be to make @type mandatory
> even when @type="text" is required.

Of course yes, but the extension then doesn't follow the same rules as
Text Constructs, which are part of Atom, and it's bothering me. If I can't
design my extensions in the same way Atom designed its markup, I think
there is a problem... That's why I think the Metadata Elements (Simple and
Structured Extension Elements) wording is too strong in the spec.

The intent is (should be) to give a hint to Atom implementors providing
generic support for "name/value pair" properties and to extension
designers, not to enforce a particular behavior.

Changing that would also throw away your problem (discussed offlist) with
later allowing (e.g. in Atom 1.1) Metadata Elements in Atom elements where
foreign markup is today just "foreign markup", without any defined role.
To summarize for other people on the list, David's problem was that if we
don't define a role today for foreign markup inside Atom elements other
than atom:feed, atom:entry, Person Constructs and atom:source, e.g. inside
atom:link, then we wouldn't be able to define it later, because foreign
markup that would have been used with Atom 1.0 don't necessarily follow
the rules of section 6.4 and therefor won't be ok if Atom 1.1 says that
atom:link's foreign markup children are now considered Metadata Elements.

--
Thomas Broyer




Problem with Metadata Elements (section 6.4)

2005-05-30 Thread Thomas Broyer


I was discussing extensions offlist with Dave Powell and came to explain
what I previously said on the list about Simple/Structured Extension
Elements [1] when I thought I found a real problem with that.

There have been much discussion last weeks about authors, contributors and
bylines and bylines were rejected to extensions (and I'm +1 on that,
that's not the point). So imagine I want to create such a byline
extension.

Ideally, I'd like it to be text that can be enriched with some markup. The
obvious choice here is to reuse the Text Construct mechanism: it is
already implemented in every Atom Processor so adding support for my
byline extension would be made much easier than redefining a different
mechanism, and of course it is homogeneous with Atom so better for users.

So my ext:byline element MAY have a "type" attribute with value "text",
"html" or "xhtml". When not present, it defaults to "text". Depending on
the  "type" attribute's value, the content is "plain flowed text", escaped
HTML or an XHTML div.

My byline extension then looks like the following, and is obviously a
Structured Extension Element (as it comes in atom:feed, atom:entry or
atom:source):
By Thomas Broyer and al.
By <a href="http://www.ltgt.net/";>Thomas
Broyer</a> and al.

  By http://www.ltgt.net/";>Thomas Broyer and al.


The problem come when I use a "plain flowed text" and can then omit the
"type" attribute:
By Thomas Broyer and al.
My extension becomes a Simple Extension Element when processed by an Atom
Processor, and an Atom Processor having some "generic support" for Simple
Extension Elements (which is really the intent of SEE) would change its
behavior when processing it, which is not really wanted.
However, I don't think I badly designed the byline extension, or this
would imply that Atom itself is badly designed (and I don't think so).

Are other people here seeing a problem with Simple vs. Structured
Extension ELements or am I the only one?

[1] http://www.imc.org/atom-syntax/mail-archive/msg15751.html

-- 
Thomas Broyer




  1   2   3   >