Re: PaceEntryMediatype

2006-12-07 Thread Henry Story


Just to say that I strongly agree with Jan's points below. We should  
work to use the link relation type properly, and not get dazzled by  
the current misuse of the alternate relation.


I have been wondering if there would not be a case for different mime  
types if one wanted to place a number of representations at the same  
url.


One could for example have the following at the same place:

- an html version of a blog post
- an entry representation of that blog post
- a feed for the history of changes to that blog post

That would suggest having different media types because one could not  
place them at the same location if one only has application/atom 
+xml . That does not decide the issue as to whether it is a good idea  
to do so.


For the moment I find the application/atom+xml;type=entry application/ 
atom+xml;type=feed more appealing than the other new media types by  
the way.


On the other hand having different mime types for every document  
format is also crazy. If someone invents a doc to describe cats, and  
someone else a doc to describe mice, are they going to need a new  
mime type? And what about a doc to describe policemen, and a doc to  
describe people? We could end up quickly with an infinite number of  
mime types which clearly would not help interoperability.


Henry


On 6 Dec 2006, at 23:22, Jan Algermissen wrote:

On Dec 7, 2006, at 7:43 AM, A. Pagaltzis wrote:



It seems pointless for atom:link to have a type attribute at all
then. You should be able to decide anything you need to decide by
GETting the resource (and sometimes parsing it). Why did we add
such a useless feature to the spec?



I am pretty sure it wasn't added for being able to tell people:  
Look, at the other end of this link is a feed.


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?


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

   link rel=stylesheet type=text/css href=/style.css /

and not

   link rel=alternate type=text/css href=/style.css /

Eh?

Jan





On 6 Dec 2006, at 11:42, Jan Algermissen wrote:
On Wednesday, December 06, 2006, at 08:30PM, Antone Roundy  
[EMAIL PROTECTED] wrote:


On Dec 6, 2006, at 12:14 PM, Jan Algermissen wrote:


 I'd say: stick with the one media type that is currently there -
there is no problem, just misconception about what it means to
subscribe.


A few reasons why a user agent might want to be able to tell the
difference between a link to a feed and a link to an entry beforehand
is in order to:


But that is an issue of linking semantics, not link target media  
types. I'd expect the user agent to look for links with 'here is a  
feed' semantics instead of looking for (arbitrary) links to certain  
media types.


IMHO, there is something going wrong somewhere - and it ain't the  
media type.


I completely agree.



On 6 Dec 2006, at 14:26, Jan Algermissen wrote:
To make that decision, the agent has to look at the  
representation and

the it is insignificant overhead to see if the thing returnes feed
or entry.



Not if the resource needn't be GET in the first place. If the  
whole operation can be decided upon the Content-Type returned in a  
HEAD request, or




Ok, HEAD would save the extra payload, butI still think the  
reason for subscribing is NOT how the representation at the other  
end looks, it is based on the link semantics.




Re: In San Francisco/Bay Area

2006-12-06 Thread Henry Story


Sorry for being so imprecise. I was assuming so too. I don't know why  
I did not make it clearer.
But if there were others who misread this and there are enough of  
them, we can also do it on Wednesday 13th.


Henry

On 6 Dec 2006, at 10:14, Terris Linenbach wrote:

It is unclear reading this thread whether it's for today which I  
assume

it is.

Terris

-Original Message-
From: Henry Story [mailto:[EMAIL PROTECTED]
Sent: Tuesday, December 05, 2006 9:42 PM
To: John Panzer
Cc: Lisa Dusseault; Atom Protocol; Atom
Subject: Re: In San Francisco/Bay Area


I'll be there at 6:30pm then. I imagine people will not be wanting to
stay very late.

Henry

On 5 Dec 2006, at 21:26, John Panzer wrote:


Lisa ran in to me today and reminded me about the meet up
(thanks!).  I will try hard to make it; is there a definite time
set?  (6pm is slightly better for me, but 7pm is okay too.)

-John

Lisa Dusseault wrote:


Thanks for setting this up Henry, I can be there Dec 6.  7pm is
much  easier to make than 6pm if anybody's coming far, even just
from SF.

Lisa

On Dec 1, 2006, at 12:08 PM, Henry Story wrote:



Ok I suggest trying December 6th.
Onion or no Onion rings at Tied House.

What is dinner time in the bay? 6pm? 7pm?

Henry


On 28 Nov 2006, at 21:31, John Panzer wrote:

Any of those would be good for me.  Be careful of the deep
fried  onion rings at Tied House, though.


Henry Story wrote:

It has been suggested that a good meeting location might be
Tied   House in Mountain View [1]. It has a back room that's
like a  patio  but covered and heated for dinner on either

Wednesday 6th Dec
Friday 8th Dec
Monday 11th Dec
Wednesday 13th Dec

Any preferences?

Henry Story

[1] http://www.tiedhouse.com/


On 16 Nov 2006, at 18:23, Henry Story wrote:

Hi,

I am in the San Francisco/Bay Area region for the coming
month.   Would anyone in the area be up for a group meeting?

Henry








--

SzHO.gif
John Panzer
System Architect
http://abstractioneer.org






Re: In San Francisco/Bay Area

2006-12-05 Thread Henry Story


I'll be there at 6:30pm then. I imagine people will not be wanting to  
stay very late.


Henry

On 5 Dec 2006, at 21:26, John Panzer wrote:

Lisa ran in to me today and reminded me about the meet up  
(thanks!).  I will try hard to make it; is there a definite time  
set?  (6pm is slightly better for me, but 7pm is okay too.)


-John

Lisa Dusseault wrote:


Thanks for setting this up Henry, I can be there Dec 6.  7pm is  
much  easier to make than 6pm if anybody's coming far, even just  
from SF.


Lisa

On Dec 1, 2006, at 12:08 PM, Henry Story wrote:



Ok I suggest trying December 6th.
Onion or no Onion rings at Tied House.

What is dinner time in the bay? 6pm? 7pm?

Henry


On 28 Nov 2006, at 21:31, John Panzer wrote:

Any of those would be good for me.  Be careful of the deep  
fried  onion rings at Tied House, though.



Henry Story wrote:

It has been suggested that a good meeting location might be  
Tied   House in Mountain View [1]. It has a back room that's  
like a  patio  but covered and heated for dinner on either


Wednesday 6th Dec
Friday 8th Dec
Monday 11th Dec
Wednesday 13th Dec

Any preferences?

Henry Story

[1] http://www.tiedhouse.com/


On 16 Nov 2006, at 18:23, Henry Story wrote:

Hi,

I am in the San Francisco/Bay Area region for the coming  
month.   Would anyone in the area be up for a group meeting?


Henry








--

SzHO.gif
John Panzer
System Architect
http://abstractioneer.org




Re: In San Francisco/Bay Area

2006-12-01 Thread Henry Story


Ok I suggest trying December 6th.
Onion or no Onion rings at Tied House.

What is dinner time in the bay? 6pm? 7pm?

Henry


On 28 Nov 2006, at 21:31, John Panzer wrote:

Any of those would be good for me.  Be careful of the deep fried onion 
rings at Tied House, though.



Henry Story wrote:

It has been suggested that a good meeting location might be Tied  House in 
Mountain View [1]. It has a back room that's like a patio  but covered and 
heated for dinner on either


Wednesday 6th Dec
Friday 8th Dec
Monday 11th Dec
Wednesday 13th Dec

Any preferences?

Henry Story

[1] http://www.tiedhouse.com/


On 16 Nov 2006, at 18:23, Henry Story wrote:

Hi,

I am in the San Francisco/Bay Area region for the coming month.  Would 
anyone in the area be up for a group meeting?


Henry





Re: PaceEntryMediatype

2006-11-29 Thread Henry Story


There are all kinds of other things you don't know: like what's  
inside the document, if the server is up, what the title is, ... What  
interoperability problem is solved by having a new mime type? And  
would that not be solvable by


atom:link rel=entry type=application/atom+xml href=a.xml /

Not that I really care that much.

Henry

On 29 Nov 2006, at 10:22, James M Snell wrote:



One such problem occurs in atom:link and atom:content elements.
Specifically:

  atom:link type=application/atom+xml href=a.xml /
  atom:content type=application/atom+xml src=b.xml /

Given no other information I have no way of knowing whether these are
references to Feed or Entry documents.

- James

Mark Baker wrote:

-1

- there's nothing special about an entry document
- AFAICT (because they're not referenced from the pace), the problems
referred to have other causes.  I prefer we fix those instead.

Mark.





Re: PaceResurrectAutodiscovery

2006-11-28 Thread Henry Story


On 24 Nov 2006, at 01:44, Henri Sivonen wrote:

On Nov 23, 2006, at 22:42, Henry Story wrote:

This is very nice, in that it opens up the possibility of placing  
good RDF descriptions of these links at the http://www.iana.org/ 
assignments/relation/,


How could new link relations be described in RDF to such a degree  
that the description would actually be useful for software  
processing but simple enough to actually be implemented? Is it  
realistic to have UAs whacking IANA server effectively performing a  
DDoS on it?


Just some interesting uses of this beyond your question:

- The RDF file would serve as a useful machine readable description  
of the relation, and so serve as documentation.
- This would simply make those terms re-useable in other rdf  
vocabularies, which could be very useful. Do you have an RDF file  
that needs the notion of an alternate link? Well just use elements  
from that vocabulary.


But to get to your point:

The description on the server would probably not be very advanced. It  
would probably be very simple, like the Dublin Core vocabulary  
( http://dublincore.org/ ). And so you are right this would probably  
not say much more than that :alternate is a relation. Perhaps one  
could even specify the Domain and the Range of the relation to be  
documents.


Not much that one could automate. The default relations would rarely  
change, so User Agents would never query the server directly, and so  
you would not have a DDoS on them.


On the other hand, clients wanting to define new relations (as URLs)  
could place the definitions of these relations on their server, and  
say some more interesting things such as


http://my.eg.com/rel#entry rdfs:subPropertyOf http://iana.org/ 
assignments/relation/alternate .


The user agent would now know that this new entry relation is also an  
alternate relation. Perhaps this could save having to place both  
relations inside of every document.



as well as making the link relation very extensible (people who  
want to try out new link relations, can just use their own,  
unambiguous url).


How are full URIs distinguished from strings that need to be  
appended to http://www.iana.org/assignments/relation/; to obtain  
the full URI? Are UAs supposed to look for a colon as with XForms  
input methods? Where is this specified?


This is specified in the atom syntax document.

[[

The value of rel MUST be a string that is non-empty and matches  
either the isegment-nz-nc or the IRI production in [RFC3987].  
Note that use of a relative reference other than a simple name is not  
allowed. If a name is given, implementations MUST consider the link  
relation type equivalent to the same name registered within the IANA  
Registry of Link Relations (Section 7), and thus to the IRI that  
would be obtained by appending the value of the rel attribute to the  
string http://www.iana.org/assignments/relation/;. The value of  
rel describes the meaning of the link, but does not impose any  
behavioral requirements on Atom Processors.


]] http://www.atompub.org/rfc4287.html#rfc.section.4.2.7.2



In practice people seem to want to use one-word link relations even  
when they are coming up with their own.


Yes. My guess is that this is because

1. They probably don't think of the issue of name clashes
2. There is no shorthand way of saying something like iana:alternate
3. There is no behavior associated with the name

If the relation pointed to a document that could have some behavioral  
impact on the browser with the user could adjust by doing something  
at the url of the relation, then there would be an immediate  
understanding of the value of using URIs.


I would recommend you adopt that too. Perhaps you can even adopt  
the iana name space. If we could get them to put the appropriate  
rdf document at that location, people who created/coined new link  
relations could describe these relations as being superproperties  
or subroperties of relations the browser already knows, which  
would allow the browser to partially interpret those.


Well, RDF is not viewed that favorably by the WHATWG. Also, the  
barrier for entry for the IANA registration process is likely too  
high. (It certainly is for MIME types.) As for using the same  
namespace, the HTML5 definitions for the link types don't  
necessarily match the Atom definitions.


I believe I have a good explanation for why people may have good  
reasons to dislike RDF/XML.

see: http://blogs.sun.com/bblfish/entry/crystalizing_rdf

Recently, a WHATWG-managed registry for HTML5 rel values has been  
discussed informally. The idea was that conformance checkers could  
consult an online registry instead of only allowing a fixed list of  
values or allowing everything. RDF is an overkill for this. Even  
XMDP isn't the simplest thing that could possibly work. The  
simplest thing that could possibly work is a GETtable text/plain;  
charset=utf-8 resource at a well-known URI with one rel

Re: In San Francisco/Bay Area

2006-11-28 Thread Henry Story


It has been suggested that a good meeting location might be Tied  
House in Mountain View [1]. It has a back room that's like a patio  
but covered and heated for dinner on either


Wednesday 6th Dec
Friday 8th Dec
Monday 11th Dec
Wednesday 13th Dec

Any preferences?

Henry Story

[1] http://www.tiedhouse.com/

On 16 Nov 2006, at 18:23, Henry Story wrote:


Hi,

I am in the San Francisco/Bay Area region for the coming month.  
Would anyone in the area be up for a group meeting?


Henry

Home page: http://bblfish.net/
Sun Blog: http://blogs.sun.com/bblfish/
Foaf name: http://bblfish.net/people/henry/card#me




Re: PaceResurrectAutodiscovery

2006-11-23 Thread Henry Story


Very nice.

One thing I like about the current atom spec, is that the link  
relations are in fact urls. The link relations are equivalent to the  
urls generated by appending http://www.iana.org/assignments/ 
relation/ to the alternate, self, ... rel=... strings.


This is very nice, in that it opens up the possibility of placing  
good RDF descriptions of these links at the http://www.iana.org/ 
assignments/relation/, as well as making the link relation very  
extensible (people who want to try out new link relations, can just  
use their own, unambiguous url).


I would recommend you adopt that too. Perhaps you can even adopt the  
iana name space. If we could get them to put the appropriate rdf  
document at that location, people who created/coined new link  
relations could describe these relations as being superproperties or  
subroperties of relations the browser already knows, which would  
allow the browser to partially interpret those.


Just a thought.

Henry

On 23 Nov 2006, at 12:05, Henri Sivonen wrote:



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

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;  
otherwise, the feed is just a syndication feed, not necessarily  
associated with a particular Web page.

http://whatwg.org/specs/web-apps/current-work/#feed0

--
Henri Sivonen
[EMAIL PROTECTED]
http://hsivonen.iki.fi/





Re: PaceResurrectAutodiscovery

2006-11-23 Thread 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:
link rel=feed type=text/html href=/index.html /
link rel=feed type=application/atom+xml href=/feed.atom /
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...


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, and something that is just an alternate  
representation of the content one is looking at expressed in  
application/atom+xml format. This would be the case for the front of  
my blog page.



Henry

[1] http://whatwg.org/specs/web-apps/current-work/#feed0



Re: PaceResurrectAutodiscovery

2006-11-22 Thread Henry Story


I agree. It would be useful to work on placing a little bit more  
weight on the rel relation rather than putting everything on the mime  
type. After all if every link is going to be an alternate relation,  
then what was the point of the rel=... attribute? We might as well  
have stuck with simple a href= anchors.


I think there is still time to put forward a number of simple  
relations such as feed, entry or even service or collection.  
This could be really useful distinctions.


Henry

On 21 Nov 2006, at 20:46, Eric Scheid wrote:



We're in a good position, in this WG, to suggest a future standard.  
We've

delved deeply into the intricacies, we've examined a wide range of use
cases.

Speaking of which ... there's another use case to consider. Since  
Atom has

promoted interest in using feed documents in an archival manner, it is
entirely reasonable to use @rel=alternate to point to an archive  
feed
document which contains the *same* content as the referring page,  
as opposed
to referring to a feed document which has the most recent  
additions from
the same source as where the contents of the current page came  
from. (what a

mouthful!)




In San Francisco/Bay Area

2006-11-16 Thread Henry Story


Hi,

I am in the San Francisco/Bay Area region for the coming month. Would  
anyone in the area be up for a group meeting?


Henry

Home page: http://bblfish.net/
Sun Blog: http://blogs.sun.com/bblfish/
Foaf name: http://bblfish.net/people/henry/card#me



Re: searches - was Re: Adding POST capability to atom:link

2006-11-09 Thread Henry Story


On 8 Nov 2006, at 19:49, Jan Algermissen wrote:

On Nov 8, 2006, at 5:57 PM, Henry Story wrote:


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


Are you really suggesting to use POST for querying (as the Pace says)?


Sorry, it was my misreading of SPARQL protocol to think that POST was  
necessary. You can also use GET, though that would end up creating  
very large URLs. Not sure if there is a way one could shorten SPARQL  
queries. Perhaps work for a SPARQL extension.


I'll change the Pace.

Henry

You wouldn't even be able to send someone a link to the [feed that  
is] the

query result or page through the result etc.

??

Jan




searches - was Re: Adding POST capability to atom:link

2006-11-08 Thread Henry Story


One very powerful solution would be to use a sparql link as  
described in PaceSparqlLink [1]

This would point to a service end point such as the following:

http://roller.blogdns.net:2020/snorql/

to which a simple SPARQL POST or GET request can be made. The above  
url points to the html view of the form which you can query and find  
out about all the entries on the attached roller server at


http://roller.blogdns.net:8080/roller/

Henry


[1] http://www.intertwingly.net/wiki/pie/PaceSparqlLink

On 26 Oct 2006, at 18:24, Gopalan Sri wrote:

Hello,

I am trying to use opensearch to do some paging of my search  
results and

I have a question regard adding POST capabilities to the atom:link
construct.

The information I want to pass back to the server is complex in nature
and makes sense to capture in XML.  My question is whether or not  
there

are any thoughts or plans to extend the atom:link contruct to support
something like this:

link rel=next href=http://example.com/; type=application/atom 
+xml

action=POST
parameter name=q
xxx:Payload/
/parameter
parameter name=blah value=blah/
/link

Thanks.
Sri Gopalan
Booz Allen Hamilton
Office: Allen 147
Tel: 703.377.1404
Mobile: 703.395.4057




Re: categories and tagging

2006-11-02 Thread 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]



2006/11/1, Houghton,Andrew:


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

category
  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.


[[
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, whereas just below

[[
The scheme attribute is an IRI that identifies a categorization  
scheme. Category elements MAY have a scheme attribute.

]] [2]

The scheme attribute is defined in terms of an  IRI .

To give a bit more context to what Andrew was saying, he was arguing  
that for a mapping between the SKOS [3] vocabulary and the atom  
vocabulary. SKOS is indeed very interesting. It allows one to say  
something like



http://my.concept.net/my-vocabulary/13745 a skos:Concept;
 skos:inScheme http://my.scheme.net/my-vocabulary/;
 skos:prefLabel cats .

and much more.

The question remains as to how this can be well mapped to atom.

If I take one of Tim Bray's examples

category scheme='http://www.tbray.org/ongoing/What/'
  term='Places' /

I can translate this to the AtomOwl ontology [4]

[] a :Category;
   :scheme  http://www.tbray.org/ongoing/What/;
   :term Places .

Practically, this seems to mean that one can get all the nice info  
about Places at the url


   http://www.tbray.org/ongoing/What/Places

And this seems to be becoming quite a common way people are setting  
things up, and also it has some continuity with what the RSS2 folks  
were doing.


[[
category is an optional sub-element of item.

It has one optional attribute, domain, a string that identifies a  
categorization taxonomy.


The value of the element is a forward-slash-separated string that  
identifies a hierarchic location in the indicated taxonomy.  
Processors may establish conventions for the interpretation of  
categories. Two examples are provided below:

]] [5]

It follows that what we have is something that can be expressed in  
RDF by saying that the
:scheme and the :term relation form a CIFP [8], ie: together they  
uniquely identify one thing, and furthermore that the identity of the  
thing is given by the concatenation of those two strings.


This seems therefore to capture behavior that is not present in skos,  
but apart from that the two should be quite complimentary. Let us see  
how we can make them more so.


What we need perhaps is some way to make clear what the url of the  
category is.

We could do this as follows:

   1. add a new attribute to identify the category (lets call it catid)
   2. Assume that if a catid is not present, and we have scheme and  
a term attribute, that the catid is formed by the concatenation of  
the scheme+term


we could then write out

http://my.concept.net/my-vocabulary/13745 a skos:Concept;
 skos:inScheme http://my.scheme.net/my-vocabulary/;
 skos:prefLabel cats .

like this

category catid=http://my.concept.net/my-vocabulary/13745;
  scheme=http://my.scheme.net/my-vocabulary/;
  term='cats' /


Now because the term is mandatory in atom (and not the scheme), I  
suggest that one use the skos:prefLabel for it. I know there is a  
label too, but well, it certainly makes it easier to search for  
similar categories using the SPARQL type queries I put forward in [1].


Henry




--
Thomas Broyer



[1] for the atom-syntax people who may not have been following this  
thread then, see
http://blogs.sun.com/bblfish/entry/ 
folksonomies_ontologies_atom_and_the

[2] http://www.atompub.org/rfc4287.html#element.category
[3] http://www.w3.org/TR/swbp-skos-core-guide/
(though I would suggest rewriting the rules using N3, rather  
than the Jena language)

[4] https://sommer.dev.java.net/atom/
[5] http://blogs.law.harvard.edu/tech/ 
rss#ltcategorygtSubelementOfLtitemgt

[6] http://esw.w3.org/topic/CIFP



Re: categories and tagging

2006-11-02 Thread 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?


So if Tim Bray uses

category scheme='http://www.tbray.org/ongoing/What/'
  term='Places' /

Then what am I meant to do with this info? Since scheme is a URL I  
can presumably go there to find something. But what?


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?


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


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.


So if Tim Bray posts an entry containing

entry
   ...
   category scheme='http://www.tbray.org/ongoing/What/'
 term='Places' /
/entry

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.


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, 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.


Henry




html content, xml:base and xml:lang

2006-11-02 Thread Henry Story


Does xml:base and xml:lang apply to html encoded content?

There is the notion of language sensitivity and content is language  
sensitive. So it makes sense to apply it to html content. But what  
about the xml:base?


Henry





Re: AD Evaluation of draft-ietf-atompub-protocol-11

2006-10-18 Thread Henry Story


On 18 Oct 2006, at 01:40, James M Snell wrote:


[snip]
The spec says The value of atom:updated is only changed when the  
change

to a member resource is considered significant.   The use of passive
voice obscures who does what here.  When the client doesn't suggest a
value for atom:updated, does the server provide one, and if so, how
does the server know what is significant?   I thought it would  
always
be the client suggesting values, but Tim says that the server  
controls

atom:updated which could imply that the client doesn't even need to
suggest values.  See above about whether the server MUST accept  
certain
values for updated, or more likely, MUST NOT accept suggested  
values

for updated when they're clearly wrong (e.g. this entry was last
updated on October 16, 1906).



My assumption: Tim is correct.  The server controls atom:updated.  
While

the client is required to provide a valid atom:updated element, the
server can (and in most cases will) ignore that value.


Completely disagree.
If the server controls atom:updated then what was the point of the  
whole discussion of app:edited?
the client controls app:edited. It is the client who decides what if  
there was a significant change.

The server controls app:edited. Any edit, changes app:edited.

If you have it your way, then atom:updated will end up meaning  
app:edited, which Tim Bray specifically mentioned he did not want in  
his wiki example.


Henry



Re: AD Evaluation of draft-ietf-atompub-protocol-11

2006-10-18 Thread Henry Story


Many thanks to Lisa for the lengthy and detailed comments. I am just  
replying to those comments relating to the parts of the spec I  
understand best.


On 18 Oct 2006, at 01:40, James M Snell wrote:


*Synchronization*

I predict that some AtomPub authoring clients will attempt to
synchronize: to maintain an offline copy of the feed including all  
its

MERs and media resources, and to keep that offline copy up-to-date.
Some will probably even allow offline authoring of new posts, and  
offer

to synchronize when the client next goes online -- because of the
possibility of multiple authors, this may mean at times that the  
client
would download new entries created by other authors, upload new  
entries

created offline, and reconcile its offline copy of feed documents.

Because authoring clients will attempt to do this based on Last- 
Modified

and ETag -- after all, the functionality is all there in some form or
another -- the spec needs a little more clarity on how the client can
rely on this working.  Otherwise, some servers may omit features that
these authoring clients require, or implement them oddly.  While I  
would
never suggest repeating all the requirements from other specs (in  
this

case HTTP), there are cases where clarity and interoperability are
greatly improved by at least referencing explicitly requirements from
HTTP.  It's also possible to add new requirements based on  
features in

HTTP, that apply to Atom servers alone.



I would be very happy to see some discussion of this in the spec,
especially if it normatively required the use of ETags for offline
synchronization.


I think synchronisation would be best dealt with by adding  
functionality to sort the collection in different ways.
Currently the sort order is a SHOULD on atom:updated. That does not  
allow clients to find the most recent edits. If there were a way to  
sort the entries by app:edited one could find the most recent edits  
quite quickly. Doing a HEAD on all the entries to find out which  
changed by comparing etags is not really an option. For large blogs  
such as Tim Bray's ongoing this would use up way to many resources  
and take way too long.




[snip]
of HTTP (calendaring) than the general case.  If HTTP  
synchronization in

authoring cases were clearly defined and had not lead to years of
arguments since the last HTTP update, I would probably feel  
differently

about just silently relying on the mechanisms in HTTP.



+1


In any case, I have very specific brief suggestions to cover
synchronization so that it's implemented more successfully than not.
- Consider adding a brief section offering clients non-normative
guidelines on synchronization.  It doesn't have to limit server  
behavior

so much as point out with green and red lights where the fairway is
(mixing transportation and golfing metaphors in my head)
- Make a few requirements of servers to avoid some of those HTTP
ambiguities.  For example:
The ETag or Last-Modified values for a member resource MUST  
change when
any metadata in the resource changes, as well as text/content, and  
this

includes next and last link relation values.  The ETag or
Last-Modified values of a member resource MUST NOT change solely  
because

an associated other resource (e.g. the media resource being an
associated resource to the media link entry resource) changed.  


+0.5. I would add that the ETag/Last-Modified values of a resource
SHOULD NOT change solely because of non-significant changes to the
infoset serialization of an entry (e.g. a different namespace  
prefix is
used, or whitespace is added or removed, etc).  I would also prefer  
that
the ETag for a MLE change when it's associated media resource is  
updated.




More open questions that might be related to synch or might have
relevance even for clients that don't do full synch:
- What is the relationship, if any, between the atom:updated  
value and

the HTTP Last-Modified value.  Can the atom:updated value ever be
later (greater) than the Last-Modified value?  I believe it can  
be the

same or earlier, but the spec doesn't disallow the broken case.


My assumption: There is no relationship.  atom:updated should be  
treated

as being entirely independent of Last-Modified.


yes.


It might be reasonable,
however, to define a relationship between Last-Modified and  
app:edited.


No. In discussions on the topic of synchronisation it became obvious  
that people wanted to have servers add properties to entries, such as  
changing the number of comments for an entry, without this changing  
app:edited.


A new app:modified would be the closest to something that could have  
a 1-1 relation to Last-Modified. But there was a lot of push back  
against app:modified as being too britle - ie. changing too often  
(xml formating changes could cause app:modified to change)


- Is it clear whether the client MUST GET the entry after  
modifying it

in order to have an accurate offline cache?  (this was 

Re: AD Evaluation of draft-ietf-atompub-protocol-11

2006-10-18 Thread Henry Story



On 18 Oct 2006, at 16:10, John Panzer wrote:



My assumption: Tim is correct.  The server controls  
atom:updated.  While

the client is required to provide a valid atom:updated element, the
server can (and in most cases will) ignore that value.



Completely disagree.
If the server controls atom:updated then what was the point of  
the  whole discussion of app:edited?
the client controls app:edited. It is the client who decides what  
if  there was a significant change.

The server controls app:edited. Any edit, changes app:edited.


I think you have a typo somewhere in the above.


Duh. You are right. I wish there were unit tests for typing docs. Why  
is it one always has to test everything in life?


I meant:

If the server controls atom:updated then what was the point of the   
whole discussion of app:edited?
The client controls atom:updated. It is the client who decides what a  
significant change is.


The server controls app:edited. Any edit changes app:edited.

Henry



Re: AD Evaluation of draft-ietf-atompub-protocol-11

2006-10-18 Thread Henry Story


On 18 Oct 2006, at 16:34, James M Snell wrote:

No, it means only that it's the server's responsibility to determine
when atom:updated should be updated and when it shouldn't.  If the
server wishes to delegate that responsibility to the client, then  
that's

fine.


Is this not splitting hairs a little? In the end it is always the  
server who is going to decide if it wants to accept anything at all.  
The server could also change the content if it wished (though I would  
not use such a service, having lived through the greed of the .com,  
we can be assured that servers will want to add their adds to your  
content). If we use the word responsibility this way then it's not  
going to help us distinguish anything interesting.


When it comes down to it, my feeling was that the client decides  
whether or not it wants to check that box significant update or  
not. The client does not have any say in what the value of app:edited  
is.


But special cases can be made. It's just that those would be  
understood to be deviations from the norm.



- James

Henry Story meant to write:

[snip]
If the server controls atom:updated then what was the point of  
the  whole discussion of app:edited?
The client controls atom:updated. It is the client who decides  
what a significant change is.


The server controls app:edited. Any edit changes app:edited.




Re: URGENT: Remove atom:updated ordering requirement?

2006-09-28 Thread Henry Story


+1 to make the MUST a SHOULD
+1 on app:edited

But I think it would be really useful if we could have something that  
allowed the user to specify how the feed should be sorted.


Henry

On 27 Sep 2006, at 22:14, Tim Bray wrote:



co-chair-mode
Please see the dialogue below.
/co-chair-mode

(Eric's point seems plausible to me; personally I'd be inclined to  
a +1.)


co-chair-mode
Can we have some feedback from the WG ASAP?  We want to take  
protocol-11 to the IETF.

/co-chair-mode

  -Tim

On Sep 26, 2006, at 4:59 PM, Eric Scheid wrote:



On 27/9/06 8:15 AM, Tim Bray [EMAIL PROTECTED] wrote:

PaceAppEdited: Lots of discussion.  There seems universal support  
for

the utility of an app:edited element, and an assertion that entry
members SHOULD contain one.  On the other hand, every discussion of
sort order has spiraled instantly into a rat-hole.

Conclusion.  PaceAppEdited is accepted, in part. The second part of
the proposal, defining the app:edited element, is ACCEPTED.  The
first part, imposing a requirement on the sort order of collections,
clearly does not have consensus support.


There also seems to be universal support for the notion that  
collection
feeds could be sorted by something other than what's currently in  
the spec.

The spec currently not only says collections are to be sorted by
atom:updated, but because of the MUST it also says it MUST NOT be  
sorted by

anything *else*, which is a problem.

Section 10.0 ¶ 2 says this:

The entries in the returned Atom Feed MUST be ordered by their
   atom:updated property, with the most recently updated entries
coming first in the document order. Clients SHOULD be constructed
in consideration of the fact that changes which do not alter the
atom:updated value of an entry will not affect the position of
the entry in a Collection.

We need to either strike that entire paragraph, or at the very  
least make

that MUST into a SHOULD.

I say +1 to s/MUST/SHOULD/

e.









Re: http://www.intertwingly.net/wiki/pie/XhtmlContentDivConformanceTests

2006-06-28 Thread Henry Story


Thanks everyone for this really interesting discussion. I have added  
a note to this effect to the latest atom-owl ontology [1].


In Atom-Owl we could easily do both.

[] :content xhtml:div xml:lang=frOui!/xhtml:div^:xhtml.

or we could have

[] :content Oui!@fr^:xhtml .

or

[] :content [ :xhtml oui;
  :lang en ].


It would be simplest I suppose to have the :xhtml type be defined as  
always having an div ... element. Except that of course it would  
look odd for xhtml content that contains an html base tag such as


div
  htmlhead...body.../body/head
/div

From this discussion it looks like the most reasonable would be to  
strip the div element. In which case one may wonder what the whole  
purpose of putting the div in the content really was in the first  
place.


Henry

[1] https://sommer.dev.java.net/atom/2006-06-06/awol.html#term_xhtml


On 28 Jun 2006, at 23:53, Antone Roundy wrote:



On Jun 28, 2006, at 3:10 PM, Robert Sayre wrote:

The content in the entries below should be handled the same way:

entry xml:lang=en xml:base=http://example.com/foo/;
  ...
  content type=xhtml
  xhtml:div xml:lang=fr xml:base=http://example.com/
feu/xhtml:a href=axe.htmlaxe/xhtml:a/xhtml:div
  /content
/entry

entry xml:lang=en xml:base=http://example.com/foo/;
  ...
  content type=xhtml xml:lang=fr xml:base=http:// 
example.com/

feu/
  xhtml:div xhtml:a href=axe.htmlaxe/xhtml:a/ 
xhtml:div

  /content
/entry


Of course the end result of both should be identical.  Is that what  
you mean by should be handled the same way?  The question is, if  
the xhtml:div is stripped by the library before handing it off to  
the app, how is the app going to get the attributes that were on  
the div?  Is the library going to push those values down into the  
content or act as if they were on the atom:content element (or  
something similar to that)?


BTW, it just occurred to me that pushing them down into the content  
won't work.  Here's an example where that would fail:


entry xml:lang=en
  ...
  content type=xhtml
  xhtml:div xml:lang=frOui!/xhtml:div
  /content
/entry

Notice that there are no elements inside the xhtml:div for xml:lang  
to be attached to (and even if there were any, any text appearing  
outside of them would not have the correct xml:lang attached to it).


So it looks like the options (both of a which a single library  
could support, of course) are:


* Strip the div, but provide a way to get the attributes that were  
on it

or
* Leave the div




Re: http://www.intertwingly.net/wiki/pie/XhtmlContentDivConformanceTests

2006-06-28 Thread Henry Story


On the other hand, if one strips the div element, then :xhtml can  
no longer be an inverse functional property, as contents with  
different bases could have very different meanings. Just think of  
xhtml content with a picture, which in one subtree points to bush,  
and in another one points to Gore, the relative uri references being  
the same in both cases.


This seems to make it more reasonable to create a new literal type  
which contains the div. (it makes finding duplicates in an rdf  
database easier).


On that topic are there not xhtml ways to create xml:base and  
xml:lang elements? Should those not perhaps be used instead on the  
div element?


Henry

On 29 Jun 2006, at 00:11, Henry Story wrote:



Thanks everyone for this really interesting discussion. I have  
added a note to this effect to the latest atom-owl ontology [1].


In Atom-Owl we could easily do both.

[] :content xhtml:div xml:lang=frOui!/xhtml:div^:xhtml.

or we could have

[] :content Oui!@fr^:xhtml .

or

[] :content [ :xhtml oui;
  :lang en ].


It would be simplest I suppose to have the :xhtml type be defined  
as always having an div ... element. Except that of course it  
would look odd for xhtml content that contains an html base tag  
such as


div
  htmlhead...body.../body/head
/div

From this discussion it looks like the most reasonable would be to  
strip the div element. In which case one may wonder what the  
whole purpose of putting the div in the content really was in the  
first place.


Henry

[1] https://sommer.dev.java.net/atom/2006-06-06/awol.html#term_xhtml


On 28 Jun 2006, at 23:53, Antone Roundy wrote:



On Jun 28, 2006, at 3:10 PM, Robert Sayre wrote:

The content in the entries below should be handled the same way:

entry xml:lang=en xml:base=http://example.com/foo/;
  ...
  content type=xhtml
  xhtml:div xml:lang=fr xml:base=http://example.com/
feu/xhtml:a href=axe.htmlaxe/xhtml:a/xhtml:div
  /content
/entry

entry xml:lang=en xml:base=http://example.com/foo/;
  ...
  content type=xhtml xml:lang=fr xml:base=http:// 
example.com/

feu/
  xhtml:div xhtml:a href=axe.htmlaxe/xhtml:a/ 
xhtml:div

  /content
/entry


Of course the end result of both should be identical.  Is that  
what you mean by should be handled the same way?  The question  
is, if the xhtml:div is stripped by the library before handing it  
off to the app, how is the app going to get the attributes that  
were on the div?  Is the library going to push those values down  
into the content or act as if they were on the atom:content  
element (or something similar to that)?


BTW, it just occurred to me that pushing them down into the  
content won't work.  Here's an example where that would fail:


entry xml:lang=en
  ...
  content type=xhtml
  xhtml:div xml:lang=frOui!/xhtml:div
  /content
/entry

Notice that there are no elements inside the xhtml:div for  
xml:lang to be attached to (and even if there were any, any text  
appearing outside of them would not have the correct xml:lang  
attached to it).


So it looks like the options (both of a which a single library  
could support, of course) are:


* Strip the div, but provide a way to get the attributes that were  
on it

or
* Leave the div




Re: Dublin Core and Atom: Any plans for an (Informational) RFC?

2006-06-19 Thread Henry Story


The Atom-OWL group is working on an ontology for Atom. You can find  
the latest version here


https://sommer.dev.java.net/atom/

It comes with a XSLT 2.0 and XQuery 1.0 transform from atom xml to  
atom-owl. (The XQuery transform is the best). We were thinking of  
adding relations from the atom-owl vocabulary to the DC vocabulary.  
Have a look at what is there now, and let us know what you think.


Henry

On 19 Jun 2006, at 15:31, Andreas Sewe wrote:



I wonder whether there are any plans of publishing an (perhaps  
Informational) RFC on the use of DCMI Metadata Terms in conjunction  
with Atom feeds and entries?


Given both the popularity of that vocabulary in the various flavors  
of RSS and the fact that it offers numerous useful refinements of  
Atom's built-in metadata (I still remember the PaceDate* debate),  
this seems like a good idea to me. So, are there already efforts in  
this direction?


Regards,

Andreas Sewe




Atom N3

2006-06-14 Thread Henry Story


A new, clearer more concise ontology for atom is now available at

https://sommer.dev.java.net/atom/

It comes with an XSLT style sheet to transform atom feeds into  
turtle, a subset of N3 [1], and is released under a BSD license.


Please feel free to contribute bug reports, patches and any other  
feedback to me or to the mailing list at http://groups.google.com/ 
group/atom-owl/


Sincerely,

Henry Story


[1] http://blogs.sun.com/roller/page/bblfish/20060614


Home page: http://bblfish.net/
Sun Blog: http://blogs.sun.com/bblfish/





Re: when should two entries have the same id?

2006-06-08 Thread Henry Story



On 8 Jun 2006, at 14:44, Elliotte Harold wrote:



James M Snell wrote:

That's not quite accurate.  Two entries with the same atom:id may  
appear

within the same atom:feed only if they have different atom:updated
elements.  The spec is silent on whether or not two entries  
existing in
*separate documents* may have identical atom:id and atom:updated  
values.


They're ids, not guids. Certainly I would expect that there'll be  
some accidental conflicts. For instance one site might number its  
posts post1, post2, post3,...; and a different, unrelated site  
might do the same.


No, they are guids. The datatype for an id is a IRI, which is a  
generalisaiton of URI. IRIs are constructed in such a way that it  
should be easy to construct universally unique ones without ever  
having name clashes. If name clashes there are, this will either be  
due to incompetence or to malevolence.


Henry



--
Elliotte Rusty Harold  [EMAIL PROTECTED]
Java I/O 2nd Edition Just Published!
http://www.cafeaulait.org/books/javaio2/
http://www.amazon.com/exec/obidos/ISBN=0596527500/ref=nosim/ 
cafeaulaitA/




Re: when should two entries have the same id?

2006-06-07 Thread Henry Story


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


Henry

On 7 Jun 2006, at 19:29, Robert Yates wrote:



This relates to work that we are doing with the publishing  
protocol, but is syntax related.


In an implementation of APP a single entry can appear both in the  
APP collection and in any number of arbitrary feeds that the site  
subsequently offers.


These feeds / collections can be optimized differently depending on  
the client.  For example, an entry in the collection feed may have  
its content out of lined whereas the same entry rendered in a  
feed may have its content inlined.  There are other different  
optimizations that we are investigating, that cause the entry  
representation in various feeds / collections to be different, even  
though it has originated from the same source.


So are these representations in the different feeds / collections  
the same entry or different entries?  Should they have the same id?  
and if a feedreader comes across two entries with the same atom id,  
what, if anything, can it infer from that? is it only that they  
came from the same source?


Many Thanks,

Rob




Re: when should two entries have the same id?

2006-06-07 Thread Henry Story


Yes, I know, the atom syntax doc does not make statements about what  
happens in different feeds. But that does not mean that we are not  
forced logically to a conclusion. There was a very in depth  
discussion of this by the way on the atom semantics [1] mail list  
this February.


I think the Atom Protocol is forcing the issue towards there being  
only one entry per update time stamp. When you publish an entry with  
an updated time stamp it is going to have to appear in a feed at some  
point. And that won't be possible unless you overwrite one or the  
other entries.


Also think of agregators. If you have the same entry with the same id  
but different content, which is it going to choose?


Henry

[1] http://groups.google.com/group/atom-owl/browse_frm/thread/ 
357e36c4ee9cd31b/



On 7 Jun 2006, at 20:40, James M Snell wrote:

Henry Story wrote:


You can have two entries or feeds with the same id, as long as  
they have

different updated time stamps.


That's not quite accurate.  Two entries with the same atom:id may  
appear

within the same atom:feed only if they have different atom:updated
elements.  The spec is silent on whether or not two entries  
existing in
*separate documents* may have identical atom:id and atom:updated  
values.


Consider the case where my personal weblog publishes two Atom feeds.
One is a full-content feed that publishes content as XHTML.  The
second is a partial-content feed that strips the markup and  
publishes

content as plain text in the atom:summary while containing an
atom:content with a src attribute to the original XHTML.  They  
exist in

two separate Atom documents and both are based on the same underlying
blog post.  The atom:id and atom:updated values for each entry are
identical.

Another example.  I post an iCal file to an APP collection.  In the
collection feed, I see a media link entry that uses content/@src to
point to the iCal.  However, another feed that is used to provide a
summary of upcoming events has entries whose content element  
contains an

XHTML rendering of the iCal files.  Each entry in the summary feed
corresponds to exactly one entry in the APP collection; should they or
should they not use the same atom:id and atom:updated values?

- James


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

Henry

On 7 Jun 2006, at 19:29, Robert Yates wrote:



This relates to work that we are doing with the publishing protocol,
but is syntax related.

In an implementation of APP a single entry can appear both in the  
APP

collection and in any number of arbitrary feeds that the site
subsequently offers.

These feeds / collections can be optimized differently depending on
the client.  For example, an entry in the collection feed may  
have its
content out of lined whereas the same entry rendered in a  
feed may

have its content inlined.  There are other different optimizations
that we are investigating, that cause the entry representation in
various feeds / collections to be different, even though it has
originated from the same source.

So are these representations in the different feeds / collections  
the
same entry or different entries?  Should they have the same id?  
and if
a feedreader comes across two entries with the same atom id,  
what, if

anything, can it infer from that? is it only that they came from the
same source?

Many Thanks,

Rob







formal methods: AtomOwl

2006-03-11 Thread Henry Story


A week ago I attended the W3C Technical Plenary Week in Cannes  
(France). There was an very interesting session on Formal Methods at  
the W3C [1]. The specs that had benefited from working with formal  
methods were:


- XQuery
- OWL and RDf
- Web Services Choreography and Web Services Descriptions  
(using pi notation)

- WSDL 2.0 (using Z notation)

In some cases parts of the formalization became the authoritative  
work, in others they only had a guiding and clarifying role, and the  
english text remained the authoritative work. But in every case the  
feeling was that the formal backing helped work out a lot of problems  
that were difficult to notice in the natural language text.


	Now each of the formal methods languages used is in the end back by  
Set Theory, which RDF and OWL and other semantic web enterprises are  
based on. My suggestion was therefore that RDF/OWL could itself be a  
formal language one can use to help explicate various standards.


	The work being done by the AtomOwl group could then be understood to  
simply be a formalization of the work done by the atom syntax and APP  
groups, where the spec release by these groups remain the  
authoritative texts. The advantage of the Semantic Web languages over  
these other formalisms is that it is much more widely understood, is  
web centric, and furthermore has some very interesting direct  
practical applications. AtomOwl [2] could for example be directly  
used to help create Sparql end points for aggregators [3], as well as  
being used directly as a data model as BlogEd does [4].


	It is in this light that I am looking to set W3C Working Group (or  
XG) to create a standard ontology for Atom. As a formalization of  
Atom it will have to be faithful to the specs released by these IETF  
groups, which as stated, remain authoritative. There is interest from  
IBM,  Talis Information and Sun Microsystems, three members of the  
W3C to work on this. If other members would like to join we would be  
more than happy. We would be very interested to hear from other  
members of the Atom group on how we can proceed to make the resulting  
spec be of the highest possible quality. Ideally we would like to  
place the resulting document at the Atom namespace location with some  
(XSLT?) transform that would be the default transform from atom to RDF.


We are very open on what the best way to proceed is.

Yours sincerely,

Henry Story


Sem Web Researcher, Sun Microsystems
http://blogs.sun.com/bblfish/


[1] Session 7: Adventures in Formal Methods
http://www.w3.org/2006/03/01-TechPlenAgenda.html
[2] http://bblfish.net/work/atom-owl/2005-10-23/
[3] see http://www.intertwingly.net/wiki/pie/PaceSparqlLink
[4] https://bloged.dev.java.net/



further refinements to the APP model of Collections

2006-03-10 Thread Henry Story


My first N3 representation of the example Service document, with 3  
classes :Service, :Workspace, and :Collection


 a :Service;
   :workspace [ a :Workspace;
   :title Main Site@en;
   :primaryCollection [ a :Collection;
:title entries@en;
:href http://example.org/myblog/entries;
:member-type :entry ];
   :primaryCollection [ a :Collection;
:title photos@en;
:href http://example.org/myblog/fotes
:member-type :media ]
 ];
   :workspace [ a :Workspace;
   :title Side Bar Blog@en;
   :primaryCollection  [ a :Collection;
 :title Remaindered Links@en;
 :href http://example.org/ 
reilly/list;

 :member-type :entry ]
 ] .


We can think of a Collection as a Feed. Perhaps a subclass of feeds  
document resources at which one can also post? Perhaps we can even  
specify this by creating two classes :EntryCollection  
and :MediaCollection which we can define as follows


:Collection rdfs:subClassOf atom:Feed;
rdfs:label Atom Application Collection;
rdfs:comment An resource to which one can POST  
resources, and which presents itself as an atom feed;

owl:unionOf ( :EntryCollection :MediaCollection ).

:EntryCollection rdfs:subClassOf :Collection;
rdfs:label Entry Collection class;
rdfs:comment One should only POST atom entries to entry  
collections .


:MediaCollection rdfs:subClassOf :Collection;
rdfs:label Media Collection class;
rdfs:comment Content posted to this collection will  
create an entry and be the content of the created entry;

owl:disjointWith :EntryCollection .


Let us keep it simple and ignore the primary and secondary collection  
distinction. Our example above could then be better written as


 a :Service;
   :workspace [ a :Workspace;
   :title Main Site@en;
   :collection [ = http://example.org/myblog/entries;
 a :EntryCollection;
 :title entries@en ];
   :collection [  = http://example.org/myblog/fotes;
 a :MediaCollection;
 :title photos@en ]
  ];
   :workspace [ a :Workspace;
   :title Side Bar Blog@en;
   :collection  [ = http://example.org/reilly/list;
  a :EntryCollection;
  :title Remaindered Links@en;
]
  ] .


Because collections are subclasses of Feeds, we can also add the  
other feed properties, such as id, author, updated, etc, to them if  
we want. Of course no need to add entries in the Service document  
itself as that would be of no interest.


If we represent things as above then we would have to specify that  
the title be the title of the feed at the href location. But that  
does not seem very controversial. Why not nail that down in the spec?



Henry





Re: Feed paging and atom:feed/atom:id

2006-03-10 Thread Henry Story


I think they should all have the same id.  But I don't have any good  
arguments in favor. It just seems to make sense that way.


Henry

On 10 Mar 2006, at 18:44, James M Snell wrote:


If the feeds have the same atom:id, I would submit that they form a
single logical feed.  Meaning that all of the feed documents in an
incremental feed (using Mark's Feed History terminology) SHOULD use  
the

same atom:id value.  This is the way I have implemented paging in our
APP implementation.  If the linked feeds have different atom:id  
values,

they should represent different logical feeds.

Thoughts?

- James




wiki mime type

2006-03-06 Thread Henry Story


Silly question probably, but is there a wiki mime type?
I was thinking of text/wiki or text/x-wiki or something.

I want people to be able to edit their blogs in wiki format in BlogEd  
and be able to distinguish when they do that from when they enter  
plain text, html or xhtml. Perhaps this is also useful for the protocol.


Henry



Re: todo: add language encoding information

2006-02-01 Thread Henry Story



On 1 Feb 2006, at 02:10, Eric Scheid wrote:



On 31/1/06 1:27 PM, James Holderness [EMAIL PROTECTED] wrote:


Actually I was thinking just a regular href and type. For example:

link type=application/atom+xml
href=http://mydomain.com/feed;
hreflang=fr
x:id=french_entry_id
x:updated=2005-11-15T18:30:02X /

I'm not sure how valid that is considering a client that didn't  
understand
this extension would consider the full feed to be an alternative  
for that

one particular entry which doesn't seem right.


Any reason that application/atom+xml document couldn't be an Atom  
Entry
Document, apart from the current lack of reader/browser support? It  
could
also then include the links necessary to subscribe to the specific  
language

feed.


I think that was one of James' original suggestions. It seems like  
one good solution. The only problem is that it forces people to have  
Entry Documents.


I am just writing up a document listing all the different ways one  
can solve this problem...




e.




Re: todo: add language encoding information

2006-02-01 Thread Henry Story
). [[ There needs to be a debate as to whether multilingual  
representations of an entry can exist simultaneously. Ie. is this a  
special case where SHOULD rule can be broken? ]]


1. give entries urls


When entries have urls then it is easy to link to them.
Here is an example:

feed
...
entry
		link rel=self type=application/atom+xml href=entries/en/ 
e1.atom/

titleAtom-Powered Robots Run Amok/title
link type=application/atom+xml
  hreflang=fr
  href=entries/fr/e1.atom/
idtag:eg.com,2005/en/atom03/id
updated2003-12-13T18:30:02Z/updated
summarySome text./summary
...
/entry
entry
link rel=self type=documents/atom+xml 
href=entries/fr/e1.atom/
titleRobots Atomiques se révoltent/title
link href=http://example.org/2003/12/13/atom03/
link type=application/atom+xml
  hreflang=en
  href=entries/en/e1.atom/
idtag:eg.com,2005/fr/atom03/id
updated2003-12-13T18:30:02Z/updated
summarySome text./summary
...
/entry

/feed

The disadvantage is that one has to place entries at well known  
locations for this to work correctly, which creates duplication of  
entries (one in the feed, and one on the hard drive). The protocol  
may force this issue anyway. (does the atom protocol force entries to  
have urls, so they can be GET, PUT, and DELETEed?)




2. if entries do not have URLs
--

Then one can only point to entries by their id. But since ids are not  
dereferenceable, this is not very helpful. It would tell the reader  
of the entry that this is an entry whose metadata has an alternate  
language version, and so it would/could reduce the number of alterts  
a client would need to send out (he has already seen the alternate  
entry for example).


  this would require a new link type

  link rel=translate hreflang=en href=tag:eg.com,2005/en/atom03

where the href points to the id of the translated entry. I suppose  
one would assume that at the

time of the entry update the relations was true.

Now if one wanted to find the feed in which the entry with that id  
had appeared one would have to add an extension to the link such as  
xxx:feedhref=http://example.org/feed.atom;



link rel=translate
  hreflang=en
  href=tag:eg.com,2005/en/atom03
  xxx:feedhref=http://example.org/feed.atom;


where xxx:feedhref would point to a feed document that forms part of  
a next, prev chain of such documents that constitute a feed, in which  
the other language version entry could be found (among other places)




QUICK CONCLUSION


The simplest and least powerful solution of simply having entries  
with the same id but in different languages is (very probably) not  
possible because of the SHOULD restriction in the spec. This makes it  
impossible for one to just state that feeds are translations of each  
other, as it would not help one work out which entries in one feed  
were translations of which entries in the other feed.


We need a link relation to relate entries. The link alternate  
pointing to an entry would work best if entries had urls that were  
dereferenceable.


Otherwise one needs to create new translation link relation that  
points to an entry id in its href. This would not be very helpful in  
finding the translated entry (unless of course the id of an entry was  
the same place as that at which it could be GET, PUT, POST and DELETEd)



Henry Story

PS. Not sure what I should do with the above. Perhaps write it up  
somehow?



On 31 Jan 2006, at 02:17, James Holderness wrote:



Henry Story wrote:

Just re-reading your mail I think you make a good point that perhaps
translation is the wrong word to use. We would like something more
abstract such as otherLanguageVersion. This made me think that the
word we want is alternate. And then looking at the spec again I
found the following:

[[
4.2.7.4.  The hreflang Attribute


This was the first thing I suggested...

If you want to link the various translations together you can add  
one or more link elements at the top of the feed with  
rel=alternate and hreflang set to the language of the alternate  
feed. If you're feeling really enthusiastic you can include  
alternate links pointing to the translated html pages for each  
entry too. [1]


Regards
James

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





Re: todo: add language encoding information

2006-01-31 Thread Henry Story



On 31 Jan 2006, at 03:27, James Holderness wrote:
Personally I would have preferred using a fragment identifier. So  
the above example would look something like this:


link type=application/atom+xml
 href=http://mydomain.com/feed#french_entry_id;
 hreflang=fr
 x:updated=2005-11-15T18:30:02X /

And a link to an entry within the same feed could be done with a  
fragment only uri, like this:


link type=application/atom+xml
 href=#french_entry_id
 hreflang=fr
 x:updated=2005-11-15T18:30:02X /

But from what I can make out, this sort of thing would only be  
valid if atom:id was defined to be an ID attribute which would  
assumedly require an Atom DTD.


And that won't be quite possible because:
	- a feed can have a number of entries with the same id, whereas I  
think that when something is defined as being an ID attribute there  
can only be one instance in the same document (not absolutely sure  
about this though)
	- an id is not an attribute in atom xml, so I am not even sure this  
would be possible anyway


Also it is quite possible that the entry fall off the end of the feed  
after a while (usually just before it gets placed into an archive).  
So the link in your first example above would be falsified a little  
too easily.


Henry Story
http://bblfish.net/



Re: todo: add language encoding information

2006-01-31 Thread Henry Story


This looks like a good place to look for a solution.

On 31 Jan 2006, at 03:27, James Holderness wrote:

Henry Story wrote:
Presumably one would need to add an x:feed=http://mydomain.com/ 
feed attribute for translations of entries that appear in other  
feeds.


Actually I was thinking just a regular href and type. For example:

link type=application/atom+xml
 href=http://mydomain.com/feed;
 hreflang=fr
 x:id=french_entry_id
 x:updated=2005-11-15T18:30:02X /

I'm not sure how valid that is considering a client that didn't  
understand this extension would consider the full feed to be an  
alternative for that one particular entry which doesn't seem right.



Your point is well taken that the extension would be confusing for  
tools that did not understand it.  Perhaps one could create a new  
link rel=translation that would point to a feed containing an  
alternate entry with the given x:id and updated at the particular time.


link rel=translation
  type=application/atom+xml
  href=http://mydomain.com/feed;
  hreflang=fr
  x:id=french_entry_id
  x:updated=2005-11-15T18:30:02X /

would that still be confusing to tools that did not understand the  
extension?


Henry





Re: Atom2RDF via Universal Feed Parser

2006-01-30 Thread Henry Story



On 29 Jan 2006, at 16:47, Danny Ayers wrote:


fyi, Chimezie has a blog post [1] including the mapping below between
Atom as interpreted by Mark Pilgrim's UFP (so it'll also work for
anyRSS) to RDF.

[snip]


I don't quite understand what is going on in that blog post.


At some point it'll probably be a good idea to capture the mapping
from the core Atom constructs (as expressed in Atom/OWL [2]) to the
other vocabs/ontologies used - FOAF, SKOS, DC, presumably through
owl:equivalentClass/owl:equivalentProperty statements.  (APP construct
mappings to follow, when someone's got a bit of time...)


atom-owl already uses the foaf ontology for foaf:Person construct.
for DC there was some mapping someone made between DC and atom- 
constructs.


There was this wiki page:
http://www.intertwingly.net/wiki/pie/PaceEquivalents

My guess is that I could add some inheritance properties to atom-owl.  
Something like:


awol:id rdfs:subclassOf dc:identifier .

we would have to look at this case by case. Also should this be part  
of the main ontology?


Henry Story



Re: todo: add language encoding information

2006-01-30 Thread Henry Story


Sorry for being away for a while. I am back on this issue. We had  
narrowed in on this quite well. It should be RFC time real soon.



On 24 Dec 2005, at 07:25, James Holderness wrote:

Henry Story wrote:

I think you have not quite grasped the point my graph was trying to
make. Perhaps I did not explain myself clearly enough. The graph
represents a feed with three entries A, B and C.
B and C share the same id. C has an updated time stamp that is after
B so C is an update of B.


If you went with my link+hreflang method, this could be handled  
with an additional date attribute in the link, where the date  
signified the time at which the translation was valid. For example:


Yes. Quite right.


entry
 idtag:eg.com,2005:/en/atom03/id
 link hreflang=fr x:id=tag:eg.com,2005:/fr/atom03  
x:updated=2005-11-15T18:30:02Z/

/entry
entry
 idtag:eg.com,2005:/fr/atom03/id
 updated2005-11-13T18:30:02Z/updated
 link /
/entry
entry
 idtag:eg.com,2005:/fr/atom03/id
 updated2005-11-15T18:30:02Z/updated
 link /
/entry


Presumably one would need to add an x:feed=http://mydomain.com/feed;  
attribute for translations of entries that appear in other feeds.


I've left off the obvious elements and attributes for brevity, but  
you get the idea.


yes I do.

Henry




Re: todo: add language encoding information

2005-12-22 Thread Henry Story


Sorry again to take so long to respond. I have been a little too busy  
to respond recently.


On 4 Dec 2005, at 16:42, Simon Phipps wrote:

On Dec 4, 2005, at 14:33, Henry Story wrote:

I have written my first blog entry in French [1] which has made me  
aware that
it would be very useful to add language information to the atom  
file generated by

BlogEd. A menu beneath the Entry icon would probably do the trick.

Henry

[1] http://bblfish.net/blog/page9.html#t2005_12_04.14_17_02_642


Does Atom allow there to be multiple parallel renditions of a blog  
entry in different languages? I've been discussing with Dave  
Johnson how we might provide a facility in Roller where a blog  
entry might be provided in multiple languages and then select the  
appropriate entry based on the contents of the HTTP GET. If this  
were to be implemented, we'd need a way to express the same reality  
in the Atom feed.


This is a complicated and delicate issue. An atom entry has been  
syntactically limited by the atom spec by the following clause


[[
   If multiple atom:entry elements with the same atom:id value  
appear in

   an Atom Feed Document, they represent the same entry.  Their
   atom:updated timestamps SHOULD be different.  If an Atom Feed
   Document contains multiple entries with the same atom:id, Atom
   Processors MAY choose to display all of them or some subset of them.
   One typical behavior would be to display only the entry with the
   latest atom:updated timestamp.
]] last para of section 4.1.1 of http://www.ietf.org/rfc/rfc4287

So it is not really possible to put atom entries with the same id and  
updated time stamp in a  feed (without a SHOULD level violation) even  
if they are translation of each other. That means that the Swiss  
would not be able to publish a law with the same atom id in french  
and in german, as they are obliged to publish these at the exact same  
time by law. (No linguistic preference)


If we want to respect this we have to give different translations of  
a document different ids. We should be able to specify that they are  
translations of each other some other way. Using the Atom OWL  
ontology [1] we could do this by adding some translation relation  
between the entries. Once this the best way to do this is settled and  
that it satisfies our needs it should be possible to put a proposal  
to the atom syntax group for an extension to their xml format.


So perhaps something like this is needed

[ a :Feed, :Version;

:title [ :value Example Feed;
 :type text/plain ];
:link  [ :href http://example.org/;
 :rel iana:alternate ];
:updated 2003-12-13T18:30:02Z^^xsd:dateTime;
:author [ :name John Doe ];
:id urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6;

:entry [ a :Entry;
 :title [ :value Atom-Powered Robots Run Amok;
  :type text/plain ];
 :link [  :href http://example.org/2003/12/13/en/atom03;
  :rel iana:alternate ];
 :id tag:example.com,2005/en/atom03;
 :updated 2003-12-13T18:30:02Z^^xsd:dateTime;
 :summary [  :value After a course of integration in  
French philosophy,...;

 :type text/plain ];

 ext:translation tag:example.com,2005/fr/atom03

   ];

:entry [ a :Entry;
 :title [ :value Des Robot Atomiques se rebellent;
  :type text/plain ];
 :link [  :href http://example.org/2003/12/13/fr/atom03;
  :rel iana:alternate ];
 :id tag:example.com,2005/fr/atom03;
 :updated 2003-12-13T18:30:02Z^^xsd:dateTime;
 :summary [  :value Apres un cours d'integration en  
philosophie francaise...;

 :type text/plain ]


 ext:translation tag:example.com,2005/en/atom03

   ];
] .


The ext:translation relation above relates a :Entry to an :EntryId  
which is to say that it cannot distinguish between one version of an  
entry and another. So we would either be saying that each version of  
one entry is always going to be a translation of the other, or that  
there is some version of the other entry that is a translation of  
this one (which is a little too vague for comfort).


We could be more precise by giving each entry version its unique id,  
in which case we could say that this particular entry is a  
translation of that particular entry, which would be more precise and  
satisfactory. In N3:



[ a :Feed, :Version;

:title [ :value Example Feed;
 :type text/plain ];
:link  [ :href http://example.org/;
 :rel iana:alternate ];
:updated 2003-12-13T18:30:02Z^^xsd:dateTime;
:author [ :name John Doe ];
:id urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6;

:entry [ a :Entry;

 = _:someid1;


 :title [ :value Atom-Powered Robots Run Amok;
  :type text/plain

Re: todo: add language encoding information

2005-12-22 Thread Henry Story


Simon is not a member of the atom-syntax list. I imagine his response  
will get through atom syntax moderation at some point, though as we  
are in holiday season, I imagine this could take some time.


I have also changed the policy on [EMAIL PROTECTED] to allow  
posts by non members, forcing them through a moderation stage. This  
option was not available on google groups when I started the group.  
So you non members can cc that group hapily now. :-)


Henry

On 22 Dec 2005, at 18:44, Simon Phipps wrote:



On Dec 22, 2005, at 15:34, James Holderness wrote:


Henry Story wrote:
Does Atom allow there to be multiple parallel renditions of a  
blog  entry in different languages?


So it is not really possible to put atom entries with the same id  
and updated time stamp in a  feed (without a SHOULD level  
violation) even  if they are translation of each other. That  
means that the Swiss  would not be able to publish a law with the  
same atom id in french  and in german, as they are obliged to  
publish these at the exact same  time by law. (No linguistic  
preference)


The Swiss may need to publish laws in multiple languages  
simultaneously, but most users surely don't need to read those  
laws in multiple languages simultaneously. Why waste their  
bandwidth including several translations in one feed when it would  
be far more convenient if you just had a separate feed for each  
language?


You're making a couple of dodgy assumptions here:

* You're assuming Atom is just used by an end-user here. Atom feeds  
can also be used to pass data between servers, for backup, or for  
content transfer. Structuring multilingual data as multiple feeds  
without including cross-relationships with the data involves loss  
of meta-data.


* You're assuming multiple languages are always present. When I  
blog, I have some entries translated for me because they relate to  
local issues in a country I am visiting. I won't be making a  
permanent pt-br feed when I visit Brazil, but I may well want the  
translated blog entry to be made available in the syndication feed.


It may well be appropriate to have multiple feeds in the case Henry  
cites where there is a stable set of translations, but the more  
general case merits serious consideration. James Snell has an  
interesting proposal that addresses the issue directly with minimal  
change.


S.




Re: todo: add language encoding information

2005-12-22 Thread Henry Story


Simon makes some good practical points in the message I forwarded  
just previous to this one. But I would like to make some more  
abstract points too for those of you who are more of the Jungian  
introspective/rational character types (most of us here I guess or  
else we would be out surfing on the beach ;-)


On 22 Dec 2005, at 16:34, James Holderness wrote:

Henry Story wrote:
Does Atom allow there to be multiple parallel renditions of a  
blog  entry in different languages?


So it is not really possible to put atom entries with the same id  
and updated time stamp in a  feed (without a SHOULD level  
violation) even  if they are translation of each other. That means  
that the Swiss  would not be able to publish a law with the same  
atom id in french  and in german, as they are obliged to publish  
these at the exact same  time by law. (No linguistic preference)


The Swiss may need to publish laws in multiple languages  
simultaneously, but most users surely don't need to read those laws  
in multiple languages simultaneously. Why waste their bandwidth  
including several translations in one feed when it would be far  
more convenient if you just had a separate feed for each language?


The atom syntax has a very clear restriction which I believe is of  
semantic importance [1]. And that is as I mentioned in my original  
post that:


[[
   If multiple atom:entry elements with the same atom:id value  
appear in

   an Atom Feed Document, they represent the same entry.  Their
   atom:updated timestamps SHOULD be different.  If an Atom Feed
   Document contains multiple entries with the same atom:id, Atom
   Processors MAY choose to display all of them or some subset of them.
   One typical behavior would be to display only the entry with the
   latest atom:updated timestamp.
]] last para of section 4.1.1 of http://www.ietf.org/rfc/rfc4287

What would be the point of having this restriction if it was not of  
semantic significance? It seems a little odd to tell people that they  
cannot put two entries into a feed with the same updated time stamp,  
but that they can put them into two different feeds and all is ok.  
Why have that restricition in that case? My guess is that the  
restriction was accepted because it worked on the following  
intuition. The atom id is a string that identifies something we can  
think of as a document. It therefore does not make sense to have two  
different incompatible versions of the same document with the same  
time stamp. The atom id is therefore much more restrictive than a URL  
[2]. A URL in web architecture can have any number of different  
representations at the same time. Atom clearly rules this out. So my  
guess is that we should take this seriously. The id is identifying a  
document. And a document cannot be wholly in two languages at once.


Once we accept this, then there is no big problem. We just need the  
translations to have 2 different ids. They are after all two  
different documents. We can then put the two translations into the  
same feed, or different feeds without problem.


All we need is to find a way to state that one document is a  
translation of the other. And James Snell's proposal is a good start  
at getting us there (it is a possible translation of the N3 proposal  
in my original e-mail).


If you want to link the various translations together you can add  
one or more link elements at the top of the feed with  
rel=alternate and hreflang set to the language of the alternate  
feed. If you're feeling really enthusiastic you can include  
alternate links pointing to the translated html pages for each  
entry too.


If my argument above is sound then we should be able to put the  
translations in the same feed. What we want to do then, is find some  
way to state that one entry in the feed is a translation of the other  
entry in the same feed. So though the solution saying that one feed  
is a translation of the other is ok (apart from it breaking what I  
think are the inherent semantics in atom) it is also too general. We  
need more precise tools.


No extensions need to be made to the Atom spec. No wasted bandwidth  
by having multiple translations in a feed that may not be used. But  
you can still publish muliple language simultaneously by making  
sure you update all feeds simultaneously. You could even publish  
all the feeds at the same URL, serving the correct translation  
based on the HTTP Accept-Language header.


Those are cool ideas. But again, it would be good to have a way to  
specify that an entry in one feed is a translation of a particular  
different entry in the other feed.




I may be missing something here, but it seems to me like a  
reasonable solution to the problem.




Those were my first thoughts too btw. And also Retos. :-)


Regards
James


I hope this type of argument also helps show how the semantics we are  
working on at the atom-owl group can help reveal hidden meanings  
lurking

Re: todo: add language encoding information

2005-12-22 Thread Henry Story


I still think it would be good to be able to have to entries in one  
feed and be able to state that they are translations of one another.  
I don't think that putting them in different feeds is going to cover  
all the cases. See below.


On 22 Dec 2005, at 17:45, James M Snell wrote:
One possibility for this in Atom is to provide multiple Atom  
documents, each covering their own language.  Given that the date  
restriction only covers Atom entries within the *same* feed  
document, the following would be perfectly acceptable:


feed xml:lang=de
  ...
  entry
idtag:example.org,2005:some_entry/id
...
  /entry
/feed

feed xml:lang=fr
  ...
  entry
idtag:example.org,2005:some_entry/id
...
  /entry
/feed



[note I change my mind on this half way through the thought]

Ah. I did not read your post carefully enough when posting my  
previous reply to James Holderness.
I don't in fact think this is ok. If the date restriction covers  
entries inside the same feed (which can be millions of entries long  
btw) it has to do so for some good reason. Or else why put the  
restriction in there at all? Now that atom is final, and we cannot  
change the restriction I think we had better assume it is there for a  
very good reason. That will make us all look more intelligent that  
otherwise for one.


So my best explanation is that the id at a time identifies one and  
only one entry - universally, semantically if you will. If books had  
isbn numbers that persisted over editorial changes then this would be  
equivalent to our id. By using the isbn number of a book we could  
then refer to all the transformations of that book. But it would not  
make sense perhaps to have two different books versions published at  
the same time, with the same isbn number... (no that makes  
sense?!)... by the same publisher... Oops. That looks like the feed  
has taken the role of the publisher in the analogy...


(ponders)

Ok. So that would make me change my mind. It should be possible to  
have two entries with the same id and the same updated time stamp but  
different content in two different feeds. This would suggest that the  
feed is really part of the identity of the entry (and that the motto  
it's the entry stupid is wrong).


To indicate that the feeds were translations of one another, a new  
translation link rel could be established on the feed level


feed xml:lang=de
  ...
  link rel=translation
hreflang=fr
href=http://.../thefeed?lang=fr;
  entry
idtag:example.org,2005:some_entry/id
...
  /entry
/feed

feed xml:lang=fr
  ...
  link rel=translation
hreflang=de
href=http://.../thefeed?lang=de;
  entry
idtag:example.org,2005:some_entry/id
...
  /entry
/feed



I still would suggest it be better to have different ids for the  
translations so that they can be put in the same feed. After all, why  
not allow that? If I am a publisher and I am publishing books, why  
could I not simultaneously publish a book and its translation? It  
should be possible then somehow to state that one entry is a  
translation of the other. Is there a way to do what I was going  
trying to state here in N3.  This is really the problem that Simon  
Phipps was looking at.




[ a :Feed, :Version;
:title [ :value Example Feed;
 :type text/plain ];
:link  [ :href http://example.org/;
 :rel iana:alternate ];
:updated 2003-12-13T18:30:02Z^^xsd:dateTime;
:author [ :name John Doe ];
:id urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6;
:entry [ a :Entry;
 = _:someid1;
 :title [ :value Atom-Powered Robots Run Amok;
  :type text/plain ];
 :link [  :href http://example.org/2003/12/13/en/ 
atom03;

  :rel iana:alternate ];
 :id tag:example.com,2005/en/atom03;
 :updated 2003-12-13T18:30:02Z^^xsd:dateTime;
 :summary [  :value After a course of integration in  
French philosophy,...;

 :type text/plain ];
 ext:translation _:someid2;
   ];
:entry [ a :Entry;
  = _:someid2;
 :title [ :value Des Robot Atomiques se rebellent;
  :type text/plain ];
 :link [  :href http://example.org/2003/12/13/fr/ 
atom03;

  :rel iana:alternate ];
 :id tag:example.com,2005/fr/atom03;
 :updated 2003-12-13T18:30:02Z^^xsd:dateTime;
 :summary [  :value Apres un cours d'integration en  
philosophie francaise...;

 :type text/plain ]
 ext:translation _:someid1;
   ];
] .




Re: [Fwd: Re: todo: add language encoding information]

2005-12-22 Thread Henry Story


Yes. That is one solution. But what we are looking for is how one can  
state that two entries in the same feed are translations of one another.


Henry

On 22 Dec 2005, at 20:52, James M Snell wrote:



Hmmm.. interesting thought, hadn't considered that.

rel=self should always point to *this* document, and never to  
some other document, but if the document referenced is the same  
document just in a different language, then it is possible?  Good  
thinking but I'm not sure if it's legal according to the spec.


 feed xml:lang=de
   ...
   link rel=self
 hreflang=fr
 href=http://.../thefeed?lang=fr;
   link rel=self
 hreflang=de
 href=http://.../thefeed?lang=de;
   entry
 idtag:example.org,2005:some_entry/id
 ...
   /entry
 /feed

- James

A. Pagaltzis wrote:

* James M Snell [EMAIL PROTECTED] [2005-12-22 19:30]:

To indicate that the feeds were translations of one another, a
new  translation link rel could be established on the feed
level

feed xml:lang=de
  ...
  link rel=translation
hreflang=fr
href=http://.../thefeed?lang=fr;
  entry
idtag:example.org,2005:some_entry/id
...
  /entry
/feed

feed xml:lang=fr
  ...
  link rel=translation
hreflang=de
href=http://.../thefeed?lang=de;
  entry
idtag:example.org,2005:some_entry/id
...
  /entry
/feed

Is that even necessary? Wouldn’t @rel='self' already work here?
Regards,





Re: Atom, files and directories: what it's all about

2005-12-01 Thread Henry Story


On 1 Dec 2005, at 17:50, Uche Ogbuji wrote:

On Tue, 2005-11-29 at 10:25 +0100, Henry Story wrote:

On 29 Nov 2005, at 00:31, Luke Arno wrote:

On 11/28/05, Ernest Prabhakar [EMAIL PROTECTED] wrote:


Hi Henry,

On Nov 23, 2005, at 3:22 AM, Henry Story wrote:

A few improvements of atom over directories is that our feed can
contain not just the current version of an entry, but all previous
versions as well, which I think I remember was a feature supported
by the vms file system.


Interesting.  It reminds me of a thought I had a while ago:   
would it

be possible to emulate 80% of WebDAV by using HTTP + Atom?



I think that is very much the idea. If you check what is going on on
the atom protocol group you will find that they are moving in that
direction

http://bitworking.org/projects/atom/


Hmm.  I worry about such a land grab.  I'd rather put muscle behind
WebDAV and be sure that Atom dovetails.  I think that the similarities
should be used to ensure such dovetailing, rather than to seed a
competition between Atom and DAV.


I don't think this need be thought of as a landgrab.

For one it is probably a consequence of atom trying to do the  
simplest thing possible. When you think about it, a file system or  
directory hierarchy is probably one of the simplest things around. It  
is not surprising that if you think about content and publishing  
content you end up with something that is very very similar to what  
we had before.


Secondly Atom is already finished. It can hardly be claimed that atom  
(and all the RSS formats before it) tried to grab hold of something  
unintentionally. 'Grabbing' involves a conscious act, an intention.  
If you think of Atom as a mathematical structure which in some sense  
it is (if you follow some of the work of the atom-owl group) then you  
are closer to understanding the type of grabbing that is happening  
here. It is just simply that there is a strong isomorphism between  
these two structures [1]. You and me are very similar. We are both  
human. And there is an isomorphism there too. But I never intended to  
grab you :-)


Mentioning WebDav further reinforces the parallel with file systems  
now that I think of it. If you look at the parallel between atom and  
WebDav, and compare this with the parallel between a plain unix file  
system and a metadata enabled one, we have a very illuminating  
parallel. A plain file system is the simplest thing around pretty  
much and as a result it is the most wide spread type of file system.  
Atom and RSS follow a similar pattern. They are much more widely  
available than WebDav implementations. WebDav on the other hand is  
really very similar to the metadata enabled file systems such as the  
one shipped with Apple's Tiger [2]. In WebDav you ask the file  
directly for its properties using PROPGET; in Tiger you do that using  
tools such as xattr.


% xattr --set name John file
% xattr --set color red file

% xattr --list file
file
color   red
 name   John

So with this paralell in mind

Simple File System  / Atom
Metadata File System / WebDav

it becomes possible to further see how there is no landgrab happening  
at all. Notice that both normal file systems and metadata file  
systems can coexist quite peacefully. In fact OSX allows you to copy  
a file with metadata to a non metadata enabled file system without  
trouble and without loosing your metadata. Furthermore I imagine it  
would be quite possible to publish atom files to WEBDAV systems.


Certainly it would be interesting to look into these parallels further.


Henry Story

[1] http://en.wikipedia.org/wiki/Isomorphism
[2] http://arstechnica.com/reviews/os/macosx-10.4.ars/7



Re: Atom, files and directories: what it's all about

2005-12-01 Thread Henry Story


Thanks Uche for making me think a little more carefully about this  
topic. Your intervention has been very helpful in identifying a  
concern that is probably more widespread than openly acknowledged.


On 1 Dec 2005, at 21:20, Uche Ogbuji wrote:


Hmm.  I worry about such a land grab.  I'd rather put muscle behind
WebDAV and be sure that Atom dovetails.  I think that the  
similarities

should be used to ensure such dovetailing, rather than to seed a
competition between Atom and DAV.


I don't think this need be thought of as a landgrab.


It needn't be, of course, but I think your characterization so far  
gave

the impression that it could be.  Nevertheless, I think I'll leave off
this thread.  After all, it's all vapor so far, and so no real  
problem.

If people do start coming up with WebDAV-replacement ideas, and
seriously advocating them, I can take up the cause then.  Until then,
it's all academic.


Seeing something as something else is a very important aspect of  
learning. This reminds me of various mathematical puzzles one learns  
in school. It is a long time since I studied geometry but I can  
remember the importance of seeing a shape as the sum of two others.  
Was it by these means that the Greeks prooved the irrationality of  
the square root of 2? [1] I can't remember. But there are many other  
examples along these lines, I am sure. These questions may be  
academic, but one should not disparage academia. It is from those  
quarters that some of the greatest changes in the human condition of  
stemmed from.


I will say while ducking through the door (sorry) that I don't  
think the

distinction between simple file system and metadata file system is
all that instructive, but again I'll have to take up that matter if it
comes up again in a more practical context.


If the only practical effect this discussion may have is help people  
think about feeds a little differently, something will have been  
achieved.


Thanks again for participating,

Henry Story
http://bblfish.net/blog/

[1] http://en.wikipedia.org/wiki/Irrational_numbers#Another_proof



Re: Atom, files and directories: what it's all about

2005-11-29 Thread Henry Story



On 29 Nov 2005, at 00:31, Luke Arno wrote:


On 11/28/05, Ernest Prabhakar [EMAIL PROTECTED] wrote:


Hi Henry,

On Nov 23, 2005, at 3:22 AM, Henry Story wrote:

A few improvements of atom over directories is that our feed can
contain not just the current version of an entry, but all previous
versions as well, which I think I remember was a feature supported
by the vms file system.


Interesting.  It reminds me of a thought I had a while ago:  would it
be possible to emulate 80% of WebDAV by using HTTP + Atom?



I think that is very much the idea. If you check what is going on on  
the atom protocol group you will find that they are moving in that  
direction


http://bitworking.org/projects/atom/


Would we
also need some sort of list structure, a la XOXO?

http://microformats.org/wiki/xoxo



Yup, but Atom Feed _is_ a list format. :-)


Mhh. An Atom feed is a *Set* of entries. Not a list of entries.
The entries are not ordered in any particular way in a feed. That is  
stated in the spec section 4.1.1


[[
This specification assigns no significance to the order of atom:entry  
elements within the feed.

]]

In this sense it is again like the files in a directory. You can sort  
them different ways using options to the ls command, or if you have a  
graphical browser by clicking the different columns, but there is no  
objectively better order than another.


In html one could perhaps represent them as un unordered list, which  
is perhaps what the xoxo people intend.




You should check out some of the recent introspection
discussion that went on over on Atom Pub.

- Luke

- Luke




Atom, files and directories: what it's all about

2005-11-23 Thread Henry Story


I suppose I am kind of slow in some ways. Perhaps everyone has  
realized this all along. But the relation between atom and a file  
system has just struck me forcefully recently.


REST does not have the notion of a directory hierarchy. You may think  
it does because urls have slashes in them, and because you can browse  
the file system in a web browser. But really you are just lucky that  
most people use hierarchical file systems to construct their urls.  
The pages you get back if you point your browser to something like  
http://bblfish.net/bloged/ is an html human readable representation  
of the contents of a directory.


What is a feed? It is a machine readable representation of the  
RESTful equivalent of a directory.


What is an entry? It is the machine readable representation of the  
RESTful equivalent of a file.


Directories contain files. Feeds contain entries. Files contain  
'content'. Entries contain content too. When you type 'ls -ali' in a  
directory


bash-2.03$ ls -ali
total 61
2705932 drwxr-xr-x   3 hjs  vuser512 Nov 22 16:10 ./
2662433 drwxr-xr-x  34 hjs  vuser   1024 Nov 22 16:10 ../
2705933 -rw-r--r--   1 hjs  vuser   2059 Nov 22 16:10 BlogEd.jnlp
2705934 -rw-r--r--   1 hjs  vuser  49674 Nov 22 16:10 BlogEd.tiff
2705935 drwxr-xr-x   2 hjs  vuser   1024 Nov 22 16:10 lib/

you get all kinds of metadata about the directory '.', and about the  
files in the directory. The first number is the inode, which is a  
little like the  src url of the content.


Same when you look at a basic feed

?xml version=1.0 encoding=utf-8?
feed xmlns=http://www.w3.org/2005/Atom;

  titleExample Feed/title
  link href=http://example.org//
  updated2003-12-13T18:30:02Z/updated
  author
nameJohn Doe/name
  /author
  idurn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6/id

  entry
titleAtom-Powered Robots Run Amok in France/title
link href=http://example.org/2003/12/13/atom03/
idurn:uuid:1225c695-cfb8-4ebb--80da344efa6a/id
updated2005-11-13T18:30:02Z/updated
summarySome text./summary
type=xhtml xml:lang=en
 xml:base=http://diveintomark.org/;
  div xmlns=http://www.w3.org/1999/xhtml;
piAfter a crash course in french cultural  
integration.../i/p

  /div
/content
  /entry

/feed


The information is just presented differently. The xml makes it  
easier for machines to parse the content, as it deals with all the  
problems of unicode and separation of the data. Yes you can use sed  
and grep in unix, but you always will come across weird corner cases,  
such as when a file has a blank space in it, non ascii weird  
characters, ...


Entries and Feeds are therefore both containers. In Unix we have  
known this all along: everything is a file. It is just that  
Directories are special kinds of files, that contain files  
themselves. So, as I have argued for a long time, Feeds are really  
types of Entries.


Feeds can have images (icons) associated with them. In most end user  
file systems, so can folders. The atom group is working on adding the  
ability to add icons and images to entries too, then the symmetry  
will be complete.


Entries are really containers for file metadata. As OSX is slowly  
moving to enabling file system metadata [1],


% xattr --set name John file
% xattr --set color red file

% xattr --list file
file
color   red
 name   John


so using the link relation one can add all types of metadata on feeds  
or entries


 entry
titleAtom draft-07 snapshot/title
link rel=alternate type=text/html
 href=http://example.org/2005/04/02/atom/
link rel=enclosure type=audio/mpeg length=1337
 href=http://example.org/audio/ph34r_my_podcast.mp3/
idtag:example.org,2003:3.2397/id
...
  /entry

The attribute value of the rel relation is in fact a url, as befits a  
web document text, and people can add whatever metadata they like there.


By adding a feed link relation one allows feeds to point to feeds,  
which is the equivalent of directories inside directories.


A few improvements of atom over directories is that our feed can  
contain not just the current version of an entry, but all previous  
versions as well, which I think I remember was a feature supported by  
the vms file system.


Of course the URI id construct and the fact that the web does not  
have partitions, allows one to keep track of the identity of a file  
over the whole web, which simple inodes just cannot do.


Henry Story

[1] http://arstechnica.com/reviews/os/macosx-10.4.ars/7



Re: What is this entry about?

2005-11-14 Thread Henry Story


Just thought I'd mention that there is of course nothing
in  rdf that can stop anyone giving things names. So that
the blank node could be given a name such as
tag:example.com/versionid

tag:example.com/versionid a :Entry;
 :title [ :value Atom-Powered Robots Run Amok;
  :type text/plain ];
 :link [  :href http://example.org/2003/12/13/atom03;
  :rel iana:alternate ];
 :id urn:uuid:1225c695-cfb8-4ebb--80da344efa6a;
 :updated 2003-12-13T18:30:02Z^^xsd:dateTime;
 :summary [  :value some text;
 :type text/plain ].


And so I suppose you could treat

urn:uuid:1225c695-cfb8-4ebb--80da344efa6a as an Entry itself,
give it a title, a link, an id, etc

I am not sure this makes sense. I have formalised this doubt
in the Atom-OWL ontology by the following statement:

:Version   a owl:Class;
 rdfs:comment Metadata about the state of  a resource with  
given :id at an :updated time.@en;

 rdfs:subClassOf [ owl:complementOf :Id ].


Since :Entry and :Feed are subclasses of :Version, that means that
Entries or feeds cannot be ids. Perhaps that is too harsh.


Henry Story


On 12 Nov 2005, at 12:48, Henry Story wrote:



The way we got around this in Atom/OWL is to make the entry itself a
blank node, with atom:id being a property of it. The unique
identification of the entry node being provided by the combination of
the id, updated (and some other stuff - multiple language support  
is a

complication).


Yes.  The correct way to model it is therefore

[] a :Entry;
 :title [ :value Atom-Powered Robots Run Amok;
  :type text/plain ];
 :link [  :href http://example.org/2003/12/13/atom03;
  :rel iana:alternate ];
 :id urn:uuid:1225c695-cfb8-4ebb--80da344efa6a;
 :updated 2003-12-13T18:30:02Z^^xsd:dateTime;
 :summary [  :value some text;
 :type text/plain ].


ie, as Danny says, to apply the :title, :link, etc relations to a  
blank node
of type :Entry. By defining :id as functional we allow different  
blank node
:Entry s to have the same id, and so the contradiction we had  
before no

longer exists.

This is not so complicated really, it is just easy to be mislead by  
the 'id' word
and think that it must be a strong identity relation, rather than a  
weaker one.
(ie, to think that the relation is not just functional, but also  
inverse functional

symmetric and transitive)






Re: What is this entry about?

2005-11-12 Thread Henry Story


On 12 Nov 2005, at 10:26, Danny Ayers wrote:

[snipped a very good conversation]

(I've cc'ed the atom-owl list, this is certainly in scope over there).

I think Bill's right about the direction being the issue, and has
probably got the right answer with adding another property to the
entryURI, but there's a fair bit of devil in the detail.

There's a slight mismatch between Atom's id and resource
identification in the RDF sense (Henry, you've looked at this hardest
- please correct me if I'm wrong). Entries can appear with different
values but the same id, e.g.
[[
If multiple atom:entry elements with the same atom:id value appear in
   an Atom Feed Document, they represent the same entry.  Their atom:
   updated timestamps SHOULD be different.
]] 4.1.1

So if  atom:id is treated as the entry resource URI then in a literal
RDF interpretation of the Atom spec you either end up with information
loss, older versions of the entry ceasing to exist (which doesn't
really work with either Atom or the RDF model) or contradictions, e.g.
more than one content value for an entry when the properties of the
resources are lined up together.


yes. Very well explained. I'll just fill out the details again below,
for those who may be new to this [1]. If you take the example

entry
   titleAtom-Powered Robots Run Amok/title
   link href=http://example.org/2003/12/13/atom03/
   idurn:uuid:1225c695-cfb8-4ebb--80da344efa6a/id
   updated2003-12-13T18:30:02Z/updated
   summarySome text./summary
/entry

you DON't want to model it as:

urn:uuid:1225c695-cfb8-4ebb--80da344efa6a
   :title Atom-Powered Robots Run Amok^^xsd:string;
   :updated  2003-12-13T18:30:02Z^^xsd:date .

because if a feed contained a correction of the above entry say

entry
   titleAtom-Powered Robots Run Amok in France/title
   link href=http://example.org/2003/12/13/atom03/
   idurn:uuid:1225c695-cfb8-4ebb--80da344efa6a/id
   updated2005-12-13T18:30:02Z/updated
   summarySome updated text./summary
/entry

then you would have

urn:uuid:1225c695-cfb8-4ebb--80da344efa6a
   :title Atom-Powered Robots Run Amok in France^^xsd:string;
   :updated  2005-12-13T18:30:02Z^^xsd:date .


And so by smushing the graph you would end up with something that was  
not

very useful such as

urn:uuid:1225c695-cfb8-4ebb--80da344efa6a
   :title Atom-Powered Robots Run Amok^^xsd:string;
   :title Atom-Powered Robots Run Amok in France^^xsd:string;
   :updated  2003-12-13T18:30:02Z^^xsd:date .
   :updated  2005-12-13T18:30:02Z^^xsd:date .

And you would no longer know which title belonged with which updated  
time

stamp.


The way we got around this in Atom/OWL is to make the entry itself a
blank node, with atom:id being a property of it. The unique
identification of the entry node being provided by the combination of
the id, updated (and some other stuff - multiple language support is a
complication).


Yes.  The correct way to model it is therefore

[] a :Entry;
 :title [ :value Atom-Powered Robots Run Amok;
  :type text/plain ];
 :link [  :href http://example.org/2003/12/13/atom03;
  :rel iana:alternate ];
 :id urn:uuid:1225c695-cfb8-4ebb--80da344efa6a;
 :updated 2003-12-13T18:30:02Z^^xsd:dateTime;
 :summary [  :value some text;
 :type text/plain ].


ie, as Danny says, to apply the :title, :link, etc relations to a  
blank node
of type :Entry. By defining :id as functional we allow different  
blank node

:Entry s to have the same id, and so the contradiction we had before no
longer exists.

This is not so complicated really, it is just easy to be mislead by  
the 'id' word
and think that it must be a strong identity relation, rather than a  
weaker one.
(ie, to think that the relation is not just functional, but also  
inverse functional

symmetric and transitive)


This seems to work pretty well for most purposes - an
application could either take the forget older entry versions
processing model, or accumulate all the versions.


yes.


But when it comes to
saying what the entry in about, I think you'd almost certainly expect
all *versions* of an entry to be about the same thing, so the subject
of the statement would be the id URI. This is easy enough in RDF (the
id is a resource), but it's not obvious how this migght be expressed
in Atom syntax.


For a long time I wanted to put properties on the id when I felt they
were necessary properties of the thing. The problem as James Gosling
reminded me [2] is that defining essential properties of things can
be quite tricky. And I suppose that many a document that started about
one thing ended up being about something quite different.

So I would tend initially towards conservatism, and not put any property
on the id. One could of course invent/discover such a property  
say :idabout

that would have the following rule associated with it

{ ?id 

Re: Is Atom Broken?

2005-11-01 Thread Henry Story


Well it clearly should be able to be generated someplace other than  
the server.
That was one major point of having ids: to be able to allow entries  
to be moved
from one server to another whilst allowing them to keep the same id.  
In order
for that to work the server needs to accept the id given to it by the  
client.



Henry

On 1 Nov 2005, at 15:20, Joe Gregorio wrote:


On 10/31/05, Luke Arno [EMAIL PROTECTED] wrote:

That is a tall order and I think it requires some
discussion as to how. :-)

I would like to start with atom:id.

Should it be generated client side?




Re: FYI: hAtom

2005-10-28 Thread Henry Story
, I do need to represent the resolved hierarchy of feeds in the
context of the XHTML document. The whole point of supporting a
microformat in this way would be to be able to provide a reasonable
means to parse/scrape the XHTML to be able to make sense of the
hierarchy of hAtom representations that were generated from originally
walking the root Atom document feed when the document got generated,
to be able to extract nested feeds, and the other microformat types
that might have been rendered within the context of feed entries.

Except for those restrictions imposed by the microformat community and
the hAtom spec in particular do you see potential issues with what I
want to do here? Maybe there are some issues with XHTML ids or with
hAtom not being able to clearly delineate itself that I am not seeing.




I am a little new to microformats myself.





Me too. RDF and OWL are even newer to me.

My concerns with such a solution extend beyond whether it is
technically doable into whether it meshes with the intent of these
intersecting efforts (OWL, microformats, CSS, etc.). This idea fits
very well with how I want to use Atom and microformats but it could
introduce grief to others who want to play in my sandbox.

Scott

On 10/28/05, Henry Story [EMAIL PROTECTED] wrote:




On 28 Oct 2005, at 13:10, Danny Ayers wrote:




Hi Scott,

Henry (cc'ed) - see below,

On 10/28/05, Scott Anderson [EMAIL PROTECTED] wrote:




Danny,

I have been emailing David Janes asking him to preserve the  
viability
of recursively embedding an hAtom feed within the contents of  
another
feed's entry. I can make use of such a feed hierarchy to provide  
the
semantic contexts (URIs included) that I was looking for.  
Microsoft's
proposal for extending RSS/Atom feeds to model them as ordered  
lists

appears to fit very well with this modeling of XHTML documents (and
their presentation) as lists of lists.





True.




I have not been following this microsoft proposal. Any pointers?
Looking around I found this:
http://msdn.microsoft.com/windowsvista/building/rss/
simplefeedextensions/

But I am not aware of your use case.



I think this implementation of feed=list=context=template  
hierarchies
is much cleaner and more functional than what OPML+XSL or XOXO  
could

effectively provide. I am convinced that the humans I have worked
with
would have a hard time consuming or producing XOXO markup.





Heh, I know what you mean.





I have only had time to do a brief overview of what you guys are
doing
with Atom/Owl work. My hope is that I can apply it and some simple
OWL
models to get me some syndicated portlets that spit out  
microformats

within hierarchies of hAtom semantic contexts.

Do you see any pitfalls that I may have overlooked?





It sounds reasonable, but there may well be pitfalls ;-) Henry has
looked pretty hard at the feed-hierarchies idea, if I remember
correctly the main objections to this approach on the atom-syntax  
list

were that it would make the parsing a bit harder. But from the XHTML
point of view, where as you say lists can be hard to parse anyhow,
maybe it would make sense.
I don't know, maybe the only way of finding out how feasible this
would be, would be to try a bit of code...

Henry - thoughts?




I am a little new to microformats myself.

One way to get clear on your problem would be to try to use the
latest AtomOwl [1] ontology and write out an example of what you want
to  do in n3. There are already 2 examples there. The Atom Syntax has
many
restrictions that are not shared by the ontology, as the syntax is
designed to be easily parsed with xslt type tools, whereas the  
ontology

is just trying to describe what we are speaking about. Once we work
out what we are speaking about, it is then possible to decide what
the best presentation of that is. I also find that by writing things
out in N3 one gets a lot clearer about what the problem is.

Henry


[1] http://bblfish.net/work/atom-owl/2005-10-23/





Cheers,
Danny.

--

http://dannyayers.com















Re: Sponsored Links and other link extensions

2005-10-25 Thread Henry Story



On 24 Oct 2005, at 22:59, A. Pagaltzis wrote:



* Antone Roundy [EMAIL PROTECTED] [2005-10-24 22:35]:


Interesting. Filling an attribute with a list of URIs doesn't
really appeal to me though.


+100 (me and all my co-voting cats)


How about this:

link rel=enclosure type=audio/mpeg href=http://example.com/
file.mp3 xml:id=x-file
altlink:mirror href=http://www2.example.com/file.mp3; /
altlink:mirror href=http://www3.example.com/file.mp3; /
/link



It’s a lot more verbose and you have to fiddle with nesting.

What do you get in return? “It looks more XMLish”?



yes!? We are using xml!





Sounds good, but you may have noticed above that I used a
prefix not specific to enclosures--there's no reason to tie
this all to one particular type of link (nor to make it look
as if it were tied to one specific link type). So the other
link might, for example, be:



I don’t know if striving for generality in this fashion without
a practical need is worthwhile. It smells of architecture
astronautics for a reason I can’t particularly pinpoint. So maybe
my instinct is wrong.



maybe :-)
A million cats can't be wrong.





Note that I changed alternative-to to primary just because
it's shorter and one word.



Works for me.

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






icon and logo on entry

2005-10-25 Thread Henry Story


I'd like to propose an extension that would allow something very much  
like
icon and logo to be added to an entry, the way it currently is  
allowed on a feed.
I have been publishing entries like this for over a year now [1], and  
so has
James Gosling [2], and other users of BlogEd. It would be really nice  
to keep

this semantic information in the feed somehow.

Perhaps something like:

feed xmlns=http://www.w3.org/2005/Atom;

 titleExample Feed/title
 link href=http://example.org//
 updated2003-12-13T18:30:02Z/updated
 author
   nameJohn Doe/name
 /author
 idurn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6/id
 logo./Image1-large.jpeg/logo
 icon./Image1-small.jpeg/icon
 entry
   titleAtom-Powered Robots Run Amok/title
   ext:logo./Image5-large.jpeg/logo
   ext:icon./Image5-small.jpeg/icon
   link href=http://example.org/2003/12/13/atom03/
   idurn:uuid:1225c695-cfb8-4ebb--80da344efa6a/id
   updated2003-12-13T18:30:02Z/updated
   summarySome text./summary
 /entry
/feed

Though from what I have said in other posts about relative uris in
extension elements I suppose it would be better to have a new link type.

Any ideas?

Henry

[1] http://bblfish.net/blog/
http://blogs.sun.com/roller/page/bblfish/
[2] http://blogs.sun.com/roller/page/jag/





Re: icon and logo on entry

2005-10-25 Thread Henry Story


Oh I think I get it now. You want to specify the logo and icon of a  
resource

on the other side of a link.


So generalizing the suggestion:

   entry
   titleAtom-Powered Robots Run Amok/title
   link rel=logo href=/Image5-large.jpeg/
   link rel=icon href=/Image5-small.jpeg/
   link href=http://example.org/2003/12/13/atom03;
 link rel=logo href=http://example.org/2003/12/13/ 
atom03-large.jpeg/
 link rel=icon href=http://example.org/2003/12/13/ 
atom03-small.jpeg/

   /link
   idurn:uuid:1225c695-cfb8-4ebb--80da344efa6a/id
   updated2003-12-13T18:30:02Z/updated
   summarySome text./summary
   /entry

Makes sense to me.


Henry
http://blogs.sun.com/roller/page/bblfish/

On 25 Oct 2005, at 22:23, Henry Story wrote:




On 25 Oct 2005, at 22:08, James M Snell wrote:




I've been wanting to do the same thing for link elements.



Nice :-)



Let's propose a single solution:

entry
 x:logo type={media-type}{url}/x:logo
 x:icon type={media-type}{url}/x:icon
 link
   x:logo type={media-type}{url}/x:logo
   x:icon type={media-type}{url}/x:icon
 /link
/entry



Is the above a single solution, or two solutions? I can't quite  
tell the

difference.

Would they (it?) be equivalent to the following:

entry
   titleAtom-Powered Robots Run Amok/title
   link rel=logo href=/Image5-large.jpeg/
   link rel=icon href=/Image5-small.jpeg/
   link href=http://example.org/2003/12/13/atom03/
   idurn:uuid:1225c695-cfb8-4ebb--80da344efa6a/id
   updated2003-12-13T18:30:02Z/updated
   summarySome text./summary
 /entry

I would think the media type is very much optional here.



Both elements should follow the exact same rules as the existing  
atom:logo and atom:icon elements.




Do you mean rules, or do you mean semantics? (ie: we just copy and  
paste the text

from the atom syntax doc, replacing feed with entry)



Henry




- James

Henry Story wrote:





I'd like to propose an extension that would allow something very  
much  like
icon and logo to be added to an entry, the way it currently is   
allowed on a feed.
I have been publishing entries like this for over a year now [1],  
and  so has
James Gosling [2], and other users of BlogEd. It would be really  
nice  to keep

this semantic information in the feed somehow.

Perhaps something like:

feed xmlns=http://www.w3.org/2005/Atom;

 titleExample Feed/title
 link href=http://example.org//
 updated2003-12-13T18:30:02Z/updated
 author
   nameJohn Doe/name
 /author
 idurn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6/id
 logo./Image1-large.jpeg/logo
 icon./Image1-small.jpeg/icon
 entry
   titleAtom-Powered Robots Run Amok/title
   ext:logo./Image5-large.jpeg/logo
   ext:icon./Image5-small.jpeg/icon
   link href=http://example.org/2003/12/13/atom03/
   idurn:uuid:1225c695-cfb8-4ebb--80da344efa6a/id
   updated2003-12-13T18:30:02Z/updated
   summarySome text./summary
 /entry
/feed

Though from what I have said in other posts about relative uris in
extension elements I suppose it would be better to have a new  
link type.


Any ideas?

Henry

[1] http://bblfish.net/blog/
http://blogs.sun.com/roller/page/bblfish/
[2] http://blogs.sun.com/roller/page/jag/













Re: New Link Relations -- Last Call

2005-10-24 Thread Henry Story



I agree self would do well. But it is true that it's current  
definition
is a little vague. I don't suppose one can refine it in a way  
consistent with its current definition?


In any case this all looks good to me. As soon as we agree on the  
names, I will
implement these links in BlogEd, so that the web server can keep a  
complete history of
published changes. What would I need to add to my feed to make it  
clear that I my

feed is incremental (I think that's what my feed would be)?

Henry

On 24 Oct 2005, at 10:37, Stefan Eissing wrote:

Am 23.10.2005 um 23:34 schrieb Mark Nottingham:


On 23/10/2005, at 1:04 PM, Peter Robinson wrote:



I prefer 'subscribe' because it better describes the meaning and
intention behind the link, but I can live with 'current' if that  
is the

consensus.



Well, Tim seemed to have a pretty strong -1 on 'subscribe',  
whereas you say you can live with 'current'. So, at this point it  
looks like 'current', unless other people come forward. I flirted  
with recent briefly; anybody strongly like that one?




Maybe it is clear to everyone but me...however i do not see the  
damage done by using rel=self instead of inventing a new  
relation. Could someone bother to explain that?


I know the definition in the format spec says it points to an  
equivalent resource, but it also says that This is the preferred  
URI for retrieving Atom Feed Documents representing this Atom  
feed. I probably do miss something important here, but
a) equivalent resource says either nothing or lets you enter a  
mine field while roy t. machine guns you
b) representing this Atom feed requires some king of dualistic  
thinking: the whole Atom feed is composed of several Atom feed  
documents which are linked with prev and (maybe) next  
relations. self points to the URI for the overall feed and has  
the same value in all chained feed documents (or feed chunks as i  
would call them)


Can I convince anyone to enter the land where an Atom feed is  
composed of one or more Atom feed documents?


Cheers, Stefan





Re: New Link Relations -- Ready to go?

2005-10-21 Thread Henry Story


+1 to all too.

On Fri, 21 Oct 2005, Eric Scheid wrote:


Date: Fri, 21 Oct 2005 10:47:57 +1000
From: Eric Scheid [EMAIL PROTECTED]
To: Atom Syntax atom-syntax@imc.org
Subject: Re: New Link Relations -- Ready to go?


+1 to all





Re: Feed History -04

2005-10-18 Thread Henry Story


My laptop broke down so I am having touble following all of this thread, 
but I agree that next, prev, ...  should just suggest a linked list.

There should then be special links for hist-prev, hist-next, ... that
are in rdf terms sub-properties of prev, next, etc... On the atom-owl 
mailing list we are working on a very faithful onotology to the 
atom-syntax, that would allow this sub-property relation to be clearly 
stated. This keeps everything very nicely open, allowing many specialised

semantics of the next, prev, style to be created.

Henry

   On Mon, 17 Oct 2005, James M Snell wrote:


Date: Mon, 17 Oct 2005 12:31:38 -0700
From: James M Snell [EMAIL PROTECTED]
To: Robert Sayre [EMAIL PROTECTED]
Cc: Byrne Reese [EMAIL PROTECTED],
Eric Scheid [EMAIL PROTECTED],
Atom Syntax atom-syntax@imc.org
Subject: Re: Feed History -04


Robert Sayre wrote:


On 10/17/05, Byrne Reese [EMAIL PROTECTED] wrote:


next and previous are as James points out, orthogonal to ordering.
The debate as to whether the next set goes backwards or forwards in time
is not about the use of the terms next and previous, it is about the
default sort order of a result set.



Fully agree. Let's use what MarkP wrote down over a year ago, and stop
debating the nature of adjacency and ordering as it relates time and
archives. Are there any technical problems with the elements in this
feed:

http://diveintomark.org/xml/2004/03/index.atom



;-) Woo hoo! Robert and I agree on something ;-)

Debating how the entries are organized is fruitless.  The Atom spec already 
states that the order of elements in the feed has no significance; trying to 
get an extension to retrofit order-significance into the feed is going to 
fail... just as I discovered with my Feed Index extension proposal.



* Next/Prev/Start/Subscribe defines a linked list of feed documents and/or 
entry documents and says absolutely nothing about the ordering of the 
entries.
* Next/Prev/Start/Subscribe should be defined in their own specification that 
is not bound to Feed History
* Feed History (if MarkN wishes it so) should normatively reference the 
Next/Prev/Start/Subscribe extension spec


I do believe that a last link relation would be helpful for completeness 
and I do believe the use cases are there (e.g. search results, etc) but I am 
ok with dropping that for now as it can easily be defined later once the use 
cases do become more prominent. 
Over the next week I'll see if I can draft up the spec.  I'll use what MarkP 
put together as the basis for what I write up and submit.


- James





Re: Feed History -04

2005-10-16 Thread Henry Story


I am ok with next, prev, ... but I suppose I do have a question that is 
similar to Marks: how do I know in what order the results are listed? Are 
they in historical order? Are these feeds grouping entries in alphabetical 
order, in inverse historical order? Perhaps in alphabetical order of 
author,...


Again next, prev, first, last deal very well with paging. how do we 
specify the order? Is this related to the query? Should there be a default 
order for subscription feeds? Should the ordering information be specified 
in the feed?


In rdf we could say things like

iana:historicalNext a owl:ObjectProperty;
rdfs:subPropertyOf iana:next;
rdfs:comment a historically ordered next relation .

and then use historicalNext for the particular historical ordering that we 
need to archive our feeds. This would allow processors who do not 
understand or care about the historical ordering to still walk through the 
linked list of feeds.


Henry

Ps. writing from Italy 
http://dannyayers.com/archives/2005/10/15/welcome-to-the-atomowl/



On Sat, 15 Oct 2005, Mark Nottingham wrote:


Date: Sat, 15 Oct 2005 20:45:35 -0700
From: Mark Nottingham [EMAIL PROTECTED]
To: Eric Scheid [EMAIL PROTECTED]
Cc: Atom Syntax atom-syntax@imc.org
Subject: Re: Feed History -04


OK, but that still leaves us with the question below -- who's doing the 
paging, and why is it useful to have multiple ways around the thing?



On 15/10/2005, at 7:25 PM, Eric Scheid wrote:



On 16/10/05 6:54 AM, Mark Nottingham [EMAIL PROTECTED] wrote:



Can you walk me through a use case where this would be desirable?
E.g. what would the subscription URI be, would any of the entries
be  updated, and how if so? In what scenario would having a closed
set  feed be useful?



An archive for a blog that is no longer being updated? An archive
of entries pertaining to an event with a fixed endpoint? A
discussion forum that has been closed.



How are implementations supposed to use this information? Stop
polling the feed? Consider its items immutable? I'm concerned if
something so innocent-looking as last has these sorts of implications.



perhaps a better example would then be a feed of search results, which at
any time of query is a finite and closed set, and also designed to be paged
through.

e.






--
Mark Nottingham   Principal Technologist
Office of the CTO   BEA Systems





Re: Feed History -04

2005-10-16 Thread Henry Story


I am ok with next, prev, ... but I suppose I do have a question
that is similar to Marks: how do I know in what order the results
are listed? Are they in historical order? Are these feeds grouping entries 
in alphabetical order, in inverse historical order? Perhaps in 
alphabetical order of author,...


Again next, prev, first, last deal very well with paging. how do we 
specify the order? Is this related to the query? Should there be a default order for

subscription feeds? Should the ordering information be specified in the
feed?

In rdf we could say things like

iana:historicalNext a owl:ObjectProperty;
rdfs:subPropertyOf iana:next;
rdfs:comment a historically ordered next relation .

and then use historicalNext for the particular historical ordering
that we need to archive our feeds. This would allow processors
who do not understand or care about the historical ordering to still
walk through the linked list of feeds.

Henry

Ps. writing from Italy 
http://dannyayers.com/archives/2005/10/15/welcome-to-the-atomowl/


On Sat, 15 Oct 2005, Mark Nottingham wrote:
OK, but that still leaves us with the question below -- who's doing the 
paging, and why is it useful to have multiple ways around the thing?



On 15/10/2005, at 7:25 PM, Eric Scheid wrote:



On 16/10/05 6:54 AM, Mark Nottingham [EMAIL PROTECTED] wrote:



Can you walk me through a use case where this would be desirable?
E.g. what would the subscription URI be, would any of the entries
be  updated, and how if so? In what scenario would having a closed
set  feed be useful?



An archive for a blog that is no longer being updated? An archive
of entries pertaining to an event with a fixed endpoint? A
discussion forum that has been closed.



How are implementations supposed to use this information? Stop
polling the feed? Consider its items immutable? I'm concerned if
something so innocent-looking as last has these sorts of implications.



perhaps a better example would then be a feed of search results, which at
any time of query is a finite and closed set, and also designed to be paged
through.

e.






--
Mark Nottingham   Principal Technologist
Office of the CTO   BEA Systems





Re: Feed History -04

2005-10-14 Thread Henry Story


This looks good.

Is the 'first' the feed document that changes, whereas 'next' and 'last' 
point to the archives? (in a feed history context?)


Henry

On Fri, 14 Oct 2005, James M Snell wrote:
The way I look at this is in terms of a single linked list of feeds.  The 
ordering of the entries within those feeds is irrelevant.  The individual 
linked feeds MAY be incremental (e.g. blog entries,etc) or may be complete 
(e.g. lists,etc).  Simply because a feeds are linked, no assumption should be 
made as to whether or not the entries in those feeds share any form of 
ordered relationship.




+1


link rel=first / is the first feed in the linked list
link rel=next / is the next feed in the linked list
link rel=previous / is the previous feed in the linked list
link rel=last / is the last feed in the linked list.

Terms like top, bottom, up, down, etc are meaningless in this model 
as they imply an ordering of the contents.


For feed history, it would work something like:

feed
...
link rel=self href=...feed1 /
link rel=next href=...next /
link rel=last href=...feed3 /
...
/feed

feed
...
link rel=self href=...feed2 /
link rel=previous href=...feed1 /
link rel=next href=...feed3 /
link rel=first href=...feed1 /
link rel=last href=...feed3 /
...
/feed

feed
...
link rel=self=href=...feed3 /
link rel=previous href=...feed2 /
link rel=first href=...feed1 /
...
/feed

- James

Mark Nottingham wrote:



At first I really liked this proposal, but I think that the kind of 
confusion you're concerned about is unavoidable; the terms you refer  to 
suffer bottom-up vs. top-down.


I think that defining the terms well and in relation to the  subscription 
feed will help; after all, the terms don't surface in  UIs, so it should be 
transparent.



On 14/10/2005, at 10:37 AM, Antone Roundy wrote:

Which brings me back to top, bottom, up and down.  In the 
OpenSearch case, it's clear which end the top results are going  to be 
found.  In the syndication feed case, the convention is to  put the most 
recent entries at the top.  If you think of a feed  as a stack, new 
entries are stacked on top.  The fact that these  terms are less generic 
and flexible than previous and next is  both an advantage and a 
disadvantage.  I think the question is  whether it's an advantage in a 
significant majority of cases or  not.  What orderings would those terms 
not work well for?




--
Mark Nottingham   Principal Technologist
Office of the CTO   BEA Systems

 
BEAWorld 2005: coming to a city near you.  Everything you need for SOA and 
enterprise infrastructure success.



Register now at http://www.bea.com/4beaworld


London 11-12 Oct| Paris13-14 Oct| Prague18-19 Oct |Tokyo 25-26 Oct| Beijing 
7-8 Dec









Re: Feed History -04

2005-10-09 Thread Henry Story


It occurred to me that I should think a little more before speaking.

There seems to be a history of the atom spec here:

http://bitworking.org/projects/atom/

I could not find the prev link in any of the specs. So I guess I was  
mistaken.
But I also always thought of prev and next as being very good  
candidates for
the link element.  I never raised my voice against the move at the  
time because

I assumed most decisions on this list were good ones.

There is one reference to prev and next here:
http://www.intertwingly.net/wiki/pie/LinkTagMeaning


Henry

On 9 Oct 2005, at 10:47, Henry Story wrote:


I believe it was part of atom 0.3, and for some complex reason I never
bothered trying to understand someone decided it should be moved  
over to
the protocol side of things. Probably just because the debate was  
taking up

too much time...

So yes. 'prev' and 'next' have always been intended to be there in  
the link element...


Henry

On 9 Oct 2005, at 10:39, James Holderness wrote:



Following up on the idea of using atom:link instead of fh:prev, I  
recently came across an old article by Mark Pilgrim on XML.com  
(http://www.xml.com/pub/a/2004/06/16/dive.html) in which he  
discusses the atom:link element and the various rel attributes it  
supports. He specifically brings up the issue of feed history and  
using next and prev to link archives together.


It sounded to me as if he was talking about an existing feature in  
the spec - it wasn't like he was proposing it as a new idea. So  
was this something that used to be part of an old version of the  
spec that was later removed? Or was this an early proposal that  
was never accepted into the spec?


Also of interest: there's a link from that article to his archives  
on diveintomark.org which actually include next and prev links in  
the feed. I'm almost inclined to add support for that just so I  
can access those old posts. There used to be some excellent  
articles on his site.








Re: Entries in multiple language

2005-10-04 Thread Henry Story



On 28 Sep 2005, at 14:48, Reto Bachmann-Gmür wrote:


[snip lots of interesting stuff, to get to later]



Note that the first two entries share the same value of atom:updated,
this is a SHOULD-Level violation of section 4.1.1. I think the spec
should allow multiple entries with the same timestamp iff they  
differ by
language and/or content-type. In multilingual countries like  
Switzerland

it is required (as for laws) or at least a matter of political
correctness (as for press releases) for some publications to be
published at the same time in all language versions.


Why not publish content negotiated atom feeds, so that the French  
version

of the feed only contains french entries, the German version only German
entries, the Italian one only Italian ones, and the Romansh one only  
Romansh
entries? Then the user would subscribe to the feed serving the  
entries in

the language preferred by the author.

Of course since in Switzerland the German, French and Italian  
representations
of the feed have to appear simultaneously they will each contain  
entries with
identical ids and identical atom:updated time stamps. This would not  
contradict

the atom spec which mentions only that in a particular feed document two
entries with the same id should not have the same updated time stamp.  
It is
something on the other hand that an ontology of atom would have to be  
careful
about (or a database consuming atom feeds), as it would have to take  
into
account the possibility of multiple language versions of the same  
update of

an entry.


Henry Story




The following two entries are in a feed

entry xmlns=http://www.w3.org/2005/Atom; xml:lang=de
titleAsylgesetzrevision - Aus humanitärer Sicht inakzeptabel! 
/title

link rel=self type=text/html hreflang=de
 href=http://www.osar.ch/2005/09/27/pm_asylg-revision/
link rel=self type=application/rdf+n3 hreflang=de
 href=http://www.osar.ch/2005/09/27/pm_asylg-revision/
link rel=self type=text/html hreflang=fr
 href=http://www.osar.ch/2005/09/27/pm_asylg-revision/
link rel=self type=application/rdf+n3 hreflang=fr
 href=http://www.osar.ch/2005/09/27/pm_asylg-revision/
link rel=enclosure length=92678 title=Presserohstoff
 href=http://www.osar.ch/ 
2005/09/27/050927_asylgnr_presserohstoff_/

idhttp://www.osar.ch/2005/09/27/pm_asylg-revision/id
updated2005-09-27T11:00-01:00/updated
published2005-09-27T11:00-01:00/published
author
namepro/name
urihttp://osar.ch/aslum-rights/uri
email[EMAIL PROTECTED]/email
/author
summary type=xhtml
 xml:base=http://www.osar.ch/;
div xmlns=http://www.w3.org/1999/xhtml;
  Der Nationalrat hat heute praktisch allen  
Verschärfungsvorschlägen

des Ständerates zum Asylgesetz zugestimmt. Der verfassungswidrige
Nothilfestopp blieb chancenlos. Die SFH ist sehr enttäuscht über den
Ausgang der Beratung. Das neue Gesetz opfert den Schutz von Verfolgten
zugunsten von unverhältnismässiger Missbrauchsbekämpfung. Damit ist  
das

Referendum unausweichlich.
/div
/summary
/entry

entry xmlns=http://www.w3.org/2005/Atom; xml:lang=fr
generator uri=http://www.example.com/; version=1.0
Example Toolkit
/generator
titleRevision de la loi sur l'asile - Inacceptable sur le plan
humain/title
link rel=self type=text/html hreflang=fr
 href=http://www.osar.ch/2005/09/27/pm_asylg-revision/
link rel=self type=application/rdf+n3 hreflang=fr
 href=http://www.osar.ch/2005/09/27/pm_asylg-revision/
link rel=self type=text/html hreflang=de
 href=http://www.osar.ch/2005/09/27/pm_asylg-revision/
link rel=self type=application/rdf+n3 hreflang=de
 href=http://www.osar.ch/2005/09/27/pm_asylg-revision/
!-- Omiting the length attribute as the enclosure is not yet  
available

in french, a temporary SHOULD-level violation! --
link rel=enclosure title=Documentation
 href=http://www.osar.ch/ 
2005/09/27/050927_asylgnr_presserohstoff_/

idhttp://www.osar.ch/2005/09/27/pm_asylg-revision/id
updated2005-09-27T11:00-01:00/updated
published2005-09-27T11:00-01:00/published
author
namepro/name
urihttp://osar.ch/aslum-rights/uri
email[EMAIL PROTECTED]/email
/author
summary type=xhtml
 xml:base=http://www.osar.ch/;
div xmlns=http://www.w3.org/1999/xhtml;
  Le Conseil national a approuvé aujourd’hui pratiquement  
toutes les

aggravations proposées par le Conseil Fédéral dans le cadre de la
révision de la loi sur l’asile. L’exclusion de l’aide de première
nécessité, contraire à la Constitution, a été rejetée. L’OSAR se  
montre

profondément déçue par l’issue des débats. La nouvelle loi sacrifie la
protection des personnes persécutées sur l’autel d’un combat
disproportionné contre les abus. Le référendum apparaît dès lors
inévitable.
/div
/summary
/entry

One hour later an important error in the french version gets fixed
(s

Re: ACE - Atom Common Extensions Namespace

2005-10-03 Thread Henry Story


I really like the ACE proposal, and I think the name is a good one  
too :-)


It can't harm to have this option on the table now. No one is forced  
to use it.

But I think it will have a few positive effects:

- proposals that use it will have a cool ace namespace name
- proposals that want to use the name will perhaps work a little  
harder to
  coordinate with other proposals on the table, which can't be a  
bad thing.
  Synergies between different proposals might be found thereby  
reducing the

  workload on implementors.
- The namespace will act like a stamp of approval. It will be an  
indication
  that there is some consensus behind the proposal, and that  
things will

  play nice together

This is not limiting anyone in any way. Proposals that want to use  
the dublin
core, foaf or other namespaces should have no trouble using them.  
Proposals
can also decide to use their own name space like the current feed  
history

namespace.

Henry Story

On 3 Oct 2005, at 07:15, 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.


And that is a problem that the end user won't to make himself all  
alone then.
Since every end user is bound to come up with his own idea of how to  
lump things together, thereby creation an explosion of private lumps,  
this should in the end

also reduce the workload on implementors.

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.


Nothing is lost. All those benefits remain, as I said above. The atom  
spec has
been designed to be open, the ace proposal will not and could not  
change that.



A much better thing would be to wait a year or two and see if  
there's a need for such a beast.


All these little proposals we have now indicates that we should work  
preventatively

and at least put the option on the table for proposers to consider.


And, the idea of an XML namespace backed by an IANA registry is a  
little bit twisted, considering the W3C and IETF's philosophies  
about these things ;)


Cheers,


On 01/10/2005, at 10:54 PM, James M Snell wrote:



As I've been going through the effort of defining a number of Atom  
extensions, I've consistently come back to the thought that it  
would be interesting to explore the creation of a Common  
Extensions Namespace under which multiple standardized extensions  
can be grouped.  I've written an initial draft of the concept but  
before I submit it as an Internet Draft, I'd like to get some  
feedback from the group.  Please review the attached and let me  
know what you think.


- James





Re: Feed History -04

2005-09-29 Thread Henry Story


I think this is good, but I would prefer the atom:link to be used  
instead of
the fh:prev structure, as that would better fit the atom way of doing  
things.
I also think it may be very helpful if we could agree on an extension  
name space
that all accepted extensions would use, in order to reduce name space  
clutter.


Henry


On 7 Sep 2005, at 01:18, Mark Nottingham wrote:


Feed History -04 is out, at:
  http://www.ietf.org/internet-drafts/draft-nottingham-atompub-feed- 
history-04.txt


Changes:
  - fh:stateful - fh:incremental, with appropriate changes in text
  - more explicit cardinality information
  - implications of fh:prev being an Absolute URI spelled out
  - more explicit white space handling
  - Acknowledgements section

More information, including implementation details, at:
  http://www.mnot.net/blog/2005/09/05/feed_history

--
Mark Nottingham http://www.mnot.net/





Re: Structured Publishing -- Joe Reger shows the way...

2005-09-11 Thread Henry Story


Is  DOAP over Atom [1] an example of the type of solution you are  
suggesting James?
That looks good. But what if I want to annotate an entry with some  
RDF? In a recent
blog [2] I describe a cool bar in Zürich. I mention that I would also  
like to add
to my feed information pertaining to the description. So I would like  
for example to
say that my entry is about a particular bar, give the address of the  
bar, its geo location
perhaps, that it has free wifi, and that it is very friendly. This  
would allow search engines
to index much more structured information about the bar than they  
otherwise could. This would
allow Google Maps for example to give a location to my feedback on  
their maps. In the DOAP over
Atom type solution where the RDF is placed inside the content, there  
is then
no more space to put the entry content itself. So I can either put  
the text entry into the content

or the metadata. Where should the metadata go?

Henry Story

[1] http://www.codezoo.com/about/doap_over_atom.csp
[2] http://blogs.sun.com/roller/page/bblfish/20050910

On 10 Sep 2005, at 01:51, James M Snell wrote:

Bob Wyman wrote:


I’ve written a blog post pointing to a wonderful demo of tools for  
doing structured publishing in blogs that Joe Reger has put  
together. Given that Atom has built-in support for handling much  
more than just the text/HTML that RSS is limited to, I think this  
should be interesting to the Atom community.


http://bobwyman.pubsub.com/main/2005/09/joe_reger_shows.html

What can we do with Atom to make the vision of Structured/Semantic  
publishing more real?


bob wyman

There really isn't anything we HAVE to do with Atom to make it  
suitable for Structured publishing. The format's content model is  
already more than adequate for this kind of thing. For instance,  
Joe Reger's software could easily stuff the XML data instances that  
conform to a logs XML Schema into the atom:content element while  
including the text description of the log into the atom:summary.  
The only thing that really needs to happen here is for someone to  
begin writing the code that makes this happen.


- James






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

2005-08-30 Thread Henry Story


+1 I completely agree with Bob again.

Though my preference of course would be to put RDF in the content.
RDF has structures for ordered lists. It probably has vocabularies  
for songs.
It has vocabulary to specify the author of a work, etc... And with  
foaf you
could also specify which of the artists was your friend. In short you  
can

mix the different RDF vocabularies out there in well understood ways.

For those of you new to RDF but au fait with Java, I have just  
written up a blog

that should help explain exactly why RDF is so powerful:

http://blogs.sun.com/roller/page/bblfish? 
entry=java_annotations_the_semantic_web


In short: RDF can be mapped directly onto Java Beans. Just as Beans  
can be plugged
together, so RDF markup can be plugged together. Welcome to the world  
of OO xml.


Henry Story

On 30 Aug 2005, at 07:49, 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.


What is the problem? Why don’t folk see that lists are the stuff of  
entries – not feeds? Remember, “It’s about the entries, Stupid…”


I think the reason we’ve got this pull to turn feeds into Lists is  
simply because we don’t have a commonly accepted “list” schema. So,  
the idea is to repurpose what we’ve got. Folk are too scared or  
tired to try to get a new thing defined and through the process, so  
they figure that they will just overload the definition of  
something that already exists. I think that’s wrong. If we want  
“Lists” then we should define lists and not muck about with Atom.  
If everyone is too tired to do the job properly and define a real  
list as a well defined schema for something that can be the payload  
of a content element, then why not just use OPML as the list format?




What is a search engine or a matching engine supposed to return as  
a result if it find a match for a user query in an entry that comes  
from a list-feed? Should it return the entire feed or should it  
return just the entry/item that contained the stuff in the users’  
query? What should an aggregating intermediary like PubSub do when  
it finds a match in an element of a list-feed? Is there some way to  
return an entire feed without building a feed of feeds? Given that  
no existing aggregator supports feeds as entries, how can an  
intermediary aggregator/filter return something the client will  
understand?


You might say that the search/matching engine should only present  
the matching entry in its results. But, if you do that what happens  
is that you lose the important semantic data that comes from  
knowing the position the matched entry had in the original list- 
feed. There is no way to preserve that order-dependence information  
without private extensions at present.


I’m sorry but I simply can’t see that it makes sense to encourage  
folk to break important rules of Atom by redefining feeds to be  
lists. If we want “lists” we should define what they look like and  
put them in entries. Keep your hands off the feeds. Feeds aren’t  
lists – they are feeds.




bob wyman











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

2005-08-30 Thread Henry Story


Mhh. Good point too.

For some reason though, this is starting to make me think that a feed  
is an entry again...


Henry

On 30 Aug 2005, at 13:23, Graham wrote:


How would this apply to the most problematic example of a list  
feed, the BBC news headline page:


http://newsrss.bbc.co.uk//rss/newsonline_uk_edition/front_page/rss.xml

Which has the top stories first (amongst other structure) and is a  
hell of a lot more usable in news readers that preserve order.


Graham





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

2005-08-30 Thread Henry Story


It's late here, but since I have been called...

Clearly the order of the entries could not be deduced from the tags  
themselves.

One would need to have an extra tag in there such as this position tag

feed
   entry
  idtag:first-in-list/id
  ext:position1/position
  titleThe Graphes of Wrath/title
  update1 July 2005/udpated
  ...
   /entry
   ...
/feed
to specify the order of the entry. I think at the time I was talking  
in the context

of that being proposed.

Again it is late, but I think my idea of having a entry always stay  
at the same position
was that I was thinking that from one week to another one could just  
change the content

of the entry

feed
   entry
  idtag:first-in-list/id
  ext:position1/position
  titleOf Mice and Men/title
  update8 July 2005/udpated
  ...
   /entry
/feed

So that one could still think of a feed as a sequence of changes to  
resources. One
would then, I thought, not need to republish the whole list of  
entries, just
those that changed from week to week. As a result there was I  
thought, no need for

a stateful tag.

But the problem with that suggestion was that it could not cope well  
with mistaken
feed updates. So that if I mistakenly entered Of Mice and Men but I  
meant to
enter The Restaurant at the End of the Universe then adding the  
following entry


feed
   entry
  idtag:first-in-list/id
  ext:position1/position
  titleThe Restaurant at the end of the Universe/title
  update8 July 2005/udpated
  ...
   /entry
/feed


would tend to indicate that the change was insignificant, whereas a  
change
of date would tend to indicate that the there was a new entry in  
first position.


Some proposed that one should distinguish therefore between the  
update time of the

entry and the update time of the object of the entry...

Henry


On 30 Aug 2005, at 23:35, Thomas Broyer wrote:

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:
feed xmlns=http://www.w3.org/2005/Atom;
...
entry
idtag:first-in-list/id
titleSome entry/title
...
/entry
entry
idtag:second-in-list/id
titleAnother entry/title
...
/entry
/feed

and a bit later:
feed xmlns=http://www.w3.org/2005/Atom;
...
entry
idtag:first-in-list/id
titleAnother entry/title
...
/entry
entry
idtag:second-in-list/id
titleYet another entry/title
...
/entry
/feed

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: Don't Aggregrate Me

2005-08-25 Thread Henry Story



On 25 Aug 2005, at 15:45, Joe Gregorio wrote:


On 8/25/05, James M Snell [EMAIL PROTECTED] wrote:



Up to this point, the vast majority of use cases for Atom feeds is  
the

traditional syndicated content case.  A bunch of content updates that
are designed to be distributed and aggregated within Feed readers or
online aggregators, etc.  But with Atom providing a much more  
flexible
content model that allows for data that may not be suitable for  
display
within a feed reader or online aggregator, I'm wondering what the  
best

way would be for a publisher to indicate that a feed should not be
aggregated?

For example, suppose I build an application that depends on an  
Atom feed
containing binary content (e.g. a software update feed).  I don't  
really

want aggregators pulling and indexing that feed and attempting to
display it within a traditional feed reader.  What can I do?



First, on this scenario, I would be inclined to make the firmware  
an enclosure

and not included base64.


+1 definitely.



But I still can see a scenario you might be serving up queries via
Atom and those
queries could be 'heavy'. There are, of course, several things you  
could do:


1. Cache the results.
2. Support ETags
3. Support ETags and 'fake' them so that they change only once a  
day, maybe

   once a week even.



I would put the following as the most obvious solution

0. have the content link to the file either by using enclosures or  
content by reference such as

   content type=application/patch src=/patch.patch /

There should be a golden rule: never place binary content in xml. It  
is ugly and completely
unnecessary. Do we put base64 encoded stuff in html? No: that is why  
there are things like

img src=...

Henry

There are undoubtedly others, but the more important part is that  
your 'do not

aggregate' doesn't really solve the problem. I could, for example,
take one of your
heavy search feeds, convert it to HTML via XSLT and include that  
via iframe
in my home page. *That* traffic is going to be a lot worse than an  
aggregator

subscription and wouldn't fit the definition of 'aggregation'.

   -joe

--
Joe Gregoriohttp://bitworking.org





Re: Don't Aggregrate Me

2005-08-25 Thread Henry Story



On 25 Aug 2005, at 17:06, A. Pagaltzis wrote:


* Henry Story [EMAIL PROTECTED] [2005-08-25 16:55]:


Do we put base64 encoded stuff in html? No: that is why  there
are things like
img src=...



img src=data:image/gif;base64,R0lGODlhAQABAIAAAP/// 
yH5BAEKAAEALAABAAEAAAICTAEAOw== /




!!! That really does exist?!
Yes:
http://www.ietf.org/rfc/rfc2397.txt

But apparently only for very short data fragments (a few k at most).  
And it does not give me anything

very intersting when I look at it in either Safari or Firefox.

Thanks for pointing this out. :-)


:-)

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





Re: Don't Aggregrate Me

2005-08-25 Thread Henry Story


Mhh. I have not looked into this. But is not every desktop aggregator  
a robot?


Henry

On 25 Aug 2005, at 22:18, James M Snell wrote:
At the very least, aggregators should respect robots.txt.  Doing so  
would allow publishers to restrict who is allowed to pull their feed.


- James





Re: Don't Aggregrate Me

2005-08-25 Thread Henry Story


Yes, I see how one is meant to look at it. But I can imagine desktop  
aggregators
becoming more independent when searching for information... Perhaps  
at that point

they should start reading robots.txt...

Henry


On 25 Aug 2005, at 23:12, Walter Underwood wrote:


I would call desktop clients clients not robots. The  
distinction is

how they add feeds to the polling list. Clients add them because of
human decisions. Robots discover them mechanically and add them.

So, clients should act like browsers, and ignore robots.txt.

Robots.txt is not very widely deployed (around 5% of sites), but it
does work OK for general web content.

wunder

--On August 25, 2005 10:25:08 PM +0200 Henry Story  
[EMAIL PROTECTED] wrote:





Mhh. I have not looked into this. But is not every desktop  
aggregator  a robot?


Henry

On 25 Aug 2005, at 22:18, James M Snell wrote:


At the very least, aggregators should respect robots.txt.  Doing so
would allow publishers to restrict who is allowed to pull their  
feed.


- James










--
Walter Underwood
Principal Software Architect, Verity





Re: Extensions at the feed level (Was: Re: geolocation in atom:author?)

2005-08-22 Thread Henry Story



On 22 Aug 2005, at 18:29, James M Snell wrote:


Bill de hÓra wrote:


As we have no processing model for this, my answer to Paul's  
question is
that feed level extensions do not inherit/cascade/scope over entry  
level
ones, irrespective of whether they're foreign or not, and that the  
best

way to think about atom:author is as a frozen accident.




+1



Ok, this is absolutely fine.  I'll go back through and update my  
various extension proposals to reflect this train of thought.

- James






Re: Feed History -03

2005-08-17 Thread Henry Story



On 17 Aug 2005, at 00:14, Mark Nottingham wrote:

On 16/08/2005, at 3:05 PM, Robert Sayre wrote:


I suggested writing the next tag like this:

link type=http://purl.org/syndication/history/1.0/next; href=./
archives/archive1.atom



That's what I would do, too. Not my spec, though. Mainly so I could
put a title in that said Entries from August or whatever.


For that matter, if Henry's interpretation were correct, the  
element could be


  fh:history nonsense=1./archives/archive1.atom/fh:history

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?


Yes. I agree the problem also exists for complex extensions. My  
question is the following:


How can a parser that parses atom and unknown extensions, know when  
to apply the xml base to

an extension element automatically?

Clearly if the extensions themselves were to use only xlink:link  
elements that would be easy.
(though atom itself does not give a good example by not following  
that principle). Is there
a place that parsers can get information where they can automatically  
tell that an attribute is a
xlink:link copycat? Or how do they tell that the content of an  
element is a URI? Can  DTDs or RelaxNG files help? If they could  
help, would they be retrievable mechanically by a processor of

xml to help it work out how to deal with relative references?

Anyway to summarise: if you don't want to use the atom:link element  
then perhaps it would
be best to use the xlink:link attributes. I have only read that spec  
quickly [1] but this would

mean that the following

  fh:history xlink:href=./archives.archive1.atom

would widely be understood to work with the xml:base.

Henry Story

[1] http://www.w3.org/TR/2001/REC-xlink-20010627/



This interpretation of extensions seems very fragile to me.

--
Mark Nottingham http://www.mnot.net/





Re: Feed History -03

2005-08-16 Thread Henry Story



On 16 Aug 2005, at 02:19, Mark Nottingham wrote:

On 15/08/2005, at 5:09 PM, Robert Sayre wrote:


I'm interested in getting things working,
not playing the syndication format advocacy game.



Not sure how feed-history will work without a unique id.



? Sorry, you lost me there.


Yes. If you were to take a subscription feed feed.atom and map it  
to a graph

you might get something like this:

_feed
  |id-- tag:myblog,2005/feed
  |---entry _
  |  |id- tag:myblog,2005/e1
  |  |---title--- first entry
  |--fh:next--- http://my.web/feed/history1.atom


The graph of the history1.atom archive may be:

_feed2
  |id-- tag:myblog,2005/feed
  |---entry _
 |id- tag:myblog,2005/e2
 |---title--- another entry


The role of id is to help us merge the two graphs. IE the point of  
the history
tag is to help us think of the history.atom document as a  
continuation of
the same document, or rather that they are both descriptions of the  
feed with
id tag:myfeed,2005/feed. Merging the above two as simple graphs at  
most gives

this

tag:myblog,2005/feed
  |--1/id--- _feed
  |   |---entry _
  |   |  |id- tag:myblog,2005/e1
  |   |  |---title--- first entry
  |   |--fh:next--- http://my.web/feed/history1.atom
  |--1/id---_feed2
  |---entry _
  |  |id- tag:myblog,2005/e2
  |  |---title--- another entry
  |--fh:next--- http://my.web/feed/history1.atom


But what we really want is something like this:

tag:myblog,2005/feed
  |---entry _
  |  |id- tag:myblog,2005/e1
  |  |---title--- first entry
  |---entry _
 |id- tag:myblog,2005/e2
 |---title--- another entry


I think we require some form of inferencing beyond what is available  
in OWL
to achieve this result. This could probably be achieved through some  
simple

N3 rules.

Henry Story






Re: Feed History -03

2005-08-16 Thread Henry Story


I think that in section 5. you should specify that the URI reference  
MUST NOT be relative or
MUST BE absolute (if that is the proper W3C Architecture term). I  
agree with the point made by

David Powell in the thread entitled More about extensions [1].

Given that we have this problem I was wondering whether it would not  
be better
to use the link element as I think it permits relative references.  
Relative references
really are *extreemly useful*. I tried to work without them in my  
BlogEd editor
because the Sesame database folk mistakenly thought it was not part  
of RDF, and it caused
me no end of trouble: all those problems vanished as soon as they  
allowed relative references.


So if relative references are allowed in links perhaps the following  
would be better:


link type=http://purl.org/syndication/history/1.0/next; href=./ 
archives/archive1.atom



Henry Story

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


On 15 Aug 2005, at 22:31, Mark Nottingham wrote:


Draft -03 of feed history is now available, at:
  http://www.ietf.org/internet-drafts/draft-nottingham-atompub-feed- 
history-03.txt


Significant changes in this revision include:
  - add fh:archive element, to indicate that an entry is an archive
  - allow subscription feed to omit fh:stateful if fh:prev is present
  - clarified that fh doesn't add ordering semantics, just allows  
you to reconstruct state

  - cleaned up text, fixed examples, general standards hygiene

There's going to be at least one more draft, as I neglected to  
acknowledge people who have made suggestions and otherwise helped  
so far. Sorry!


--
Mark Nottingham http://www.mnot.net/





Re: Feed History -03

2005-08-16 Thread Henry Story



On 16 Aug 2005, at 21:00, Mark Nottingham wrote:


I very much disagree; relative references should be allowable in  
simple extensions, and in fact the rationale that Tim gives is the  
reasoning I assumed regarding Atom extensions; if I had known that  
the division between simple and complex extensions would be used to  
justify a constraint on the use of context in simple extensions, I  
would have objected to it.


The problem is that readers of your xml that wish to store your data  
in some form other than xml (relational database, triple store,  
object oriented database, prolog database,...), and that may
not at the time of consumption know about your extension will  save  
the content in text, which is all the spec says they should do. Since  
they don't at the time know the meaning of fh:prev and
in particular that it should contain a URI  they can't save the  
absolute URI it represents.
All they will be able to save is relative uri which will be  
meaningless if the context of the

original document is lost.

If you're using something like RDF to model feeds, you already have  
a number of context-related issues to work through, this isn't an  
extra burden.


The point of making extensions is that they should be interpretable  
or at least in part useable
by parties that don't understand the extension. RDF has nothing to do  
with this. (Other than
it having some very solid theoretical backing and so being very  
helpful in thinking about these
issues, and also of it having solved quite a few years ago the  
problems that you are just discovering)



I should explicitly allow relative URIs in fh:prev, though.


-1

This is a question of the Atom spec saying that the content of a  
simple extension element is character data. Yet you are now wishing  
to put in relative references that have complex semantics
not completely understandable without having the original context of  
the document they appear in.
I know it may seem to the writer of an extension as if the meaning of  
his extension were clear
as day, but this will not be the case to all consumers of your  
extension, and even if your
extension becomes world famous, it certainly won't be true for all  
the other extensions that people will come up with. So I think we  
should be setting a good example in these first extensions we write.


Henry Story



Cheers,


On 16/08/2005, at 11:35 AM, Henry Story wrote:


I think that in section 5. you should specify that the URI  
reference MUST NOT be relative or
MUST BE absolute (if that is the proper W3C Architecture term). I  
agree with the point made by

David Powell in the thread entitled More about extensions [1].

Given that we have this problem I was wondering whether it would  
not be better
to use the link element as I think it permits relative references.  
Relative references
really are *extreemly useful*. I tried to work without them in my  
BlogEd editor
because the Sesame database folk mistakenly thought it was not  
part of RDF, and it caused
me no end of trouble: all those problems vanished as soon as they  
allowed relative references.


So if relative references are allowed in links perhaps the  
following would be better:


link type=http://purl.org/syndication/history/1.0/next; href=./ 
archives/archive1.atom



Henry Story

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


On 15 Aug 2005, at 22:31, Mark Nottingham wrote:




Draft -03 of feed history is now available, at:
  http://www.ietf.org/internet-drafts/draft-nottingham-atompub- 
feed-history-03.txt


Significant changes in this revision include:
  - add fh:archive element, to indicate that an entry is an archive
  - allow subscription feed to omit fh:stateful if fh:prev is  
present
  - clarified that fh doesn't add ordering semantics, just allows  
you to reconstruct state

  - cleaned up text, fixed examples, general standards hygiene

There's going to be at least one more draft, as I neglected to  
acknowledge people who have made suggestions and otherwise helped  
so far. Sorry!


--
Mark Nottingham http://www.mnot.net/











--
Mark Nottingham http://www.mnot.net/





Re: Feed History -03

2005-08-16 Thread Henry Story



On 16 Aug 2005, at 21:50, Robert Sayre wrote:

On 8/16/05, Henry Story [EMAIL PROTECTED] wrote:

On 16 Aug 2005, at 21:00, Mark Nottingham wrote:

I very much disagree; relative references should be allowable in
simple extensions, and in fact the rationale that Tim gives is the
reasoning I assumed regarding Atom extensions; if I had known that
the division between simple and complex extensions would be used to
justify a constraint on the use of context in simple extensions, I
would have objected to it.


The problem is that readers of your xml that wish to store your data
in some form other than xml (relational database, triple store,
object oriented database, prolog database,...), and that may
not at the time of consumption know about your extension will  save
the content in text, which is all the spec says they should do. Since
they don't at the time know the meaning of fh:prev and
in particular that it should contain a URI  they can't save the
absolute URI it represents.
All they will be able to save is relative uri which will be
meaningless if the context of the
original document is lost.


The app should store the relative URI, and it shouldn't lose the  
context.


relative URI? The application we are speaking about knows nothing of  
a relative
uri. All you have inside your Simple Extension Element is text! See  
the spec 6.4.1.


An application that does not know your extension cannot know that the  
text inside
your extension is to be interpreted as a relative uri. So what you  
are saying is
that any application that wants to process atom with extension  
elements has to keep
the full context of the document in which they found the extension  
element, even if
the document is a 100s of Megabytes long, and even if there is only  
one extension
element inside of it!  Or take the case of code that wants to place  
the feed inside
some other xml, which has a base element. What is it to do when it  
finds an extension

element it does not understand?




If you're using something like RDF to model feeds, you already have
a number of context-related issues to work through, this isn't an
extra burden.



The point of making extensions is that they should be interpretable
or at least in part useable
by parties that don't understand the extension.



It still is.


No they are not! See the 2 examples above.


This is a question of the Atom spec saying that the content of a
simple extension element is character data. Yet you are now wishing
to put in relative references that have complex semantics
not completely understandable without having the original context of
the document they appear in.


Lots of extensions will be like this. What's one itunes extenstion
without the others? :)


?


In summary, I agree with Mark.


You agree to accept the problems that go with his position, yes.
But why bother when there clearly is an easy solution to the problem  
that works with
the current atom format and which I outlined earlier, namely using  
the link element.

I suggested writing the next tag like this:

link type=http://purl.org/syndication/history/1.0/next; href=./ 
archives/archive1.atom


This clearly allows relative uris (if I am not mistaken) without any  
of the problems
we have with the simple extension elements. And it seems to be  
exactly this type of

thing that the link element was designed to do.


Henry Story
http://blogs.sun.com/roller/page/bblfish/


Robert Sayre





Re: Expires extension draft (was Re: Feed History -02)

2005-08-10 Thread Henry Story


There is an interesting problem of how this interacts with the  
history tag.


If you set an a feed

feed
  expires.../expires
  entry/entry
  entry/entry
/feed

then what are you setting it on? Well not the document, clearly, as  
you have
pointed out since HTTP headers deal with that. So it must be on the  
feed. And

of course a feed is identified by its id.

Now we have to make sure we avoid contradictions where different feed  
documents

describing the same feed state that the feed has different expiry dates.

Eg:

the main feed--
feed
  expiresAugust 25 2006/expires
  idtag:example.com,2000/feed1/id
  entry/entry
  entry/entry
  history:previoushttp://example.com/archive1/history:previous
/feed
---

The above is a partial description of the feed tag:example.com,2000/ 
feed1

The history:previous link points to another document that gives
us more information about that feed.

---the archive feed
feed
  expiresAugust 15 2006/expires
  idtag:example.com,2000/feed1/id
  entry/entry
  entry/entry
  history:previoushttp://example.com/archive2/history:previous
/feed
---

Now of course we have a feed id with two expiry dates. Which one is  
correct?

In graph terms we end up with something like this:

tag:example.com,2000
   |expires--August 25 2006
   |expires--August 15 2006
   |entry...
   |entry...
   |entry...
   |entry...

One has the feeling that the expires relation should be functional,  
ie have

only one value.

This makes me think again that for what I was looking for (that the  
document
in history:previous not change, so that one can work out when to stop  
fetching
documents) can in fact be entirely be taken care of by the http  
expiry dates and
cache control mechanism. Of course if this is so, I think it should  
be noted
clearly in the history spec. ((btw. Is it easy to set expiry dates  
for documents served

by apache?))


Henry Story


On 10 Aug 2005, at 04:46, James M Snell wrote:


This is fairly quick and off-the-cuff, but here's an initial draft  
to get the ball rolling..


 http://www.snellspace.com/public/draft-snell-atompub-feed-expires.txt

- James

Henry Story wrote:



To answer my own question

[[
Interesting... but why have a limit of one year? For archives, I   
would like a limit of

forever.
]]

 I found the following in the HTTP spec

[[
   To mark a response as never expires, an origin server sends an
   Expires date approximately one year from the time the response is
   sent. HTTP/1.1 servers SHOULD NOT send Expires dates more than one
   year in the future.
]]

(though that still does not explain why.)

Now I am wondering if the http mechanism is perhaps all that is  
needed
for what I want with the unchanging archives. If it is then  
perhaps this
could be explained in the Feed History RFC. Or are there other   
reasons to

add and expires tag to the document itself?

Henry Story

On 9 Aug 2005, at 19:09, James M Snell wrote:







rules as atom:author elements.

Here it is: http://www.intertwingly.net/wiki/pie/PaceCaching




The expires and max-age elements look fine. I hesitate at  
bringing  in a caching discussion.  I'm much more comfortable  
leaving the  definition of caching rules to the protocol level  
(HTTP) rather  than the format extension level.  Namely, I don't  
want to have to  go into defining rules for how HTTP headers that  
affect caching  interact with the expires and max-age elements...  
IMHO, there is  simply no value in that.
The expires and max-age extension elements affect the feed /  
entry  on the application level not the document level.  HTTP  
caching  works on the document level.





Adding max-age also means defining IntegerConstruct and disallowing
white space around it. Formerly, it was OK as a text construct, but
the white space issues change that.





This is easy enough.



Also, we should decide whether cache information is part of the   
signature.

I can see arguments either way.





-1.  let's let caching be handled by the transport layer.











Re: More about Extensions

2005-08-10 Thread Henry Story


Sorry to note the obvious, but does this not sound so much like a  
good reason we should
have engineered atom to *be* RDF? Is this not exactly one of the many  
problems that RDF

sets out to solve?

Henry Story

On 10 Aug 2005, at 02:34, Tim Bray wrote:


On Aug 9, 2005, at 5:11 PM, David Powell wrote:



No, we just need to warn publishers (and extension authors) that the
base URI of Simple Extension elements is not significant, and that
they must not expect it to be preserved.



Either the software understands the foreign markup, in which case  
it might recognize a relative URI, in which case it should apply  
the correct base URI, or it doesn't, in which case everything in  
the foreign markup is just a semantics-free string.


The problem could hypothetically arise when someone extracts  
properties from the foreign markup, stuffs them in a tuple store,  
and then when the software that knows what to do with comes along  
and retrieves it and recognizes the relative URI and can't do much  
because the base URI is lost.


So... IF you know how to handle some particular extension, AND IF  
you expect to handle it when the extension data has been ripped out  
of the feed and stored somewhere without any context, THEN you  
shouldn't use a relative reference.  Alternatively, IF you want to  
empower extensions to process they data they understand, AND IF you  
want to rip that data out of the feed and store it somewhere, THEN  
it would be smart to provide software an interface to retrieve  
context, such as feed-level metadata and the base URI.


Sounds like implementor's-guide material to me.

And, to whoever said relative references are fragile: Wrong.   
When you have to move bales of web content around from one place to  
another, and just supposing hypothetically that you have internal  
links, relative references are robust, absolute URIs are fragile.  - 
Tim






Re: nested feeds (was: Feed History -02)

2005-08-09 Thread Henry Story


Sorry for taking so long to reply. I have been off on a 700km cycle trip
http://blogs.sun.com/roller/page/bblfish/20050807

I don't really want to spend to much time on the top-X discussion, as  
I am
a lot more interested in the feed history itself, but here are some  
thoughts

anyway...


On 29 Jul 2005, at 17:01, Eric Scheid wrote:

On 29/7/05 11:39 PM, Henry Story [EMAIL PROTECTED] wrote:
Below I think I have worked out how one can in fact have a top20   
feed, and I
show how this can be combined without trouble with the   
history:next ...

link...

On 29 Jul 2005, at 13:12, Eric Scheid wrote:

On 29/7/05 7:57 PM, Henry Story [EMAIL PROTECTED] wrote:

1- The top 20 list: here one wants to move to the previous top   
20  list and
think of them as one thing. The link to the next feed is not  
meant  to be
additive. Each feed is to be seen as a whole. I have a little   
trouble still

thinking of  these as feeds, but ...


What happens if the publisher realises they have a typo and need  
to  emit an
update to an entry? Would the set of 20 entries (with one entry   
updated) be

seen as a complete replacement set?

Well if it is a typo and this is considered to be an  
insignificant  change
then they can change the typo in the feed document and not need to  
change  any

updated time stamps.



Misspelling the name of the artist for the top 20 songs list is not
insignificant. Even worse fubars are possible too -- such as  
attributing the

wrong artist/author to the #1 song/book (and even worse: leaving off a
co-author).


Yes, I see this now. This is a problem for my suggestion. The  
atom:updated field
cannot be used to indicate the date at which an entry has a certain  
position in a
chart for the reason you mention. We could then no longer update that  
entry
for spelling mistakes or other more serious issues. One would have to  
add
a about date or something, and then the things gets a little more  
complicated

than I care to think about right now.

The way I see it, maybe a better way would be to have a sliding   
window feed
where each entry points to another Atom Feed Document with it's  
own  URI, and
it is that second Feed Document which contains the individual  
items  (the top

20 list).

This is certainly closer to my intuitions too.  A top 20 something  
is  *not* a
feed. Feed entries are not ordered, and are not meant to be  
thought of as a

closed collection. At least this is my initial intuition. BUT



Not all Atom Feed Documents are feeds, some are static collections of
entries. We keep tripping over this :-(

I can think of a solution like the following: Let us imagine a top  
20  feed
where the resources being described by the entries are the  
position in the

top list. So we have entries with ids such as

http://TopOfThePops.co.uk/top20/Number1
http://TopOfThePops.co.uk/top20/Number2
http://TopOfThePops.co.uk/top20/Number3 ...



will contain a new entry such as

  entry
   titleTop of the pops entry number 1/title
   link href=http://TopOfThePops.co.uk/top20/Number1//
   idhttp://TopOfThePops.co.uk/top20/Number1/id
   updated2005-07-05T18:30:00Z/updated
   summaryTop of the pops winner for the week starting 5 July
2005/summary
 /entry



The problem here is that this doesn't describe the referent, it only
describes the reference. I want to see top 20 feeds where each  
entry links
to the referent in question. For example, the Amazon Top 10 Selling  
Books
feed would link to the book specific page at Amazon, not to some  
page saying

the #3 selling book is at the other end of this link.


Oh, I don't really want to defend this position too much but there would
be a way around this criticism by simply having the link point to the  
album

like this:

  entry
   titleTop of the pops entry number 1/title
   link href=http://www.amazon.fr/exec/obidos/ASIN/B4ULZV/
   idhttp://TopOfThePops.co.uk/top20/Number1/id
   updated2005-07-05T18:30:00Z/updated
   summaryTop of the pops winner for the week starting 5 July
2005/summary
/entry

So here the id would be the same for each position from week to week,  
but

the link it points to would change.

We would still need to solve the issue of the date at which it had that
position, though...

And so yes, a feed where the entry is a feed seems easier to work  
with in this case.

The feed would be something like this I suppose:

feed
   titletop 20 French songs/title
   ...
entry
   titleweek of August 1 2005/title
   id...?.../id
   updated2005-08-01T18:30:00Z/updated
   content src=http://TopOfThePops.fr/top20/2005_08_01/;  
type=application/atom+xml

/entry
entry
   titleweek of August 1 2005/title
   id...?.../id
   !--There was an important update--
   content src=http://TopOfThePops.fr/top20/2005_08_01/;  
type=application/atom+xml

   updated2005-08-02T18:30:00Z/updated
/entry
entry
   titleweek of August 8 2005/title
   id...?.../id

Re: Feed History -02

2005-08-09 Thread Henry Story



On 4 Aug 2005, at 06:27, Mark Nottingham wrote:
So, if I read you correctly, it sounds like you have a method  
whereby a 'top20' feed wouldn't need history:prev to give the kind  
of history that you're thinking of, right?


If that's the case, I'm tempted to just tweak the draft so that  
history:stateful is optional if history:prev is present. I was  
considering dropping stateful altogether, but I think something is  
necessary to explicitly say don't try to keep a history of my  
feed. My latest use case for this is the RSS feed that Netflix  
provides to let you keep an eye on your queue (sort of like top20,  
but more specialised).


Sound good?


Sounds good to me.

But I would really like some way to specify that the next feed  
document is an archive (ie. won't change). This would make it easy  
for clients to know when to stop following the links, ie, when

they have cought up with the changes since they last looked at the feed.

Perhaps something like this:

history:prev archive=yeshttp://liftoff.msfc.nasa.gov/2003/04/ 
feed.rss/history


Henry Story



Re: Feed History -02

2005-08-09 Thread Henry Story



On 9 Aug 2005, at 18:32, Walter Underwood wrote:
--On August 9, 2005 9:28:52 AM -0700 James M Snell  
[EMAIL PROTECTED] wrote:

I made some proposals for cache control info (expires and max-age).
That might work for this.


I missed these proposals.  I've been giving some thought to an  
expires / and max-age / extension myself and was getting ready  
to write up a draft. Expires is a simple date construct specifying  
the exact moment (inclusive) that the entry/feed expires.  Max-age  
is a non negative integer specifying the number of miliseconds  
(inclusive) from the moment specified by atom:updated when then  
entry/feed expires.  The two cannot appear together within a  
single entry/feed and follows the same basic



rules as atom:author elements.

Here it is: http://www.intertwingly.net/wiki/pie/PaceCaching


Interesting... but why have a limit of one year? For archives, I  
would like a limit of

forever.

But otherwise I suppose this would do. Instead of putting the  
information in the
history link of the linking feed, you would put it in the archive  
feed. Which sounds
good. I suppose we end up with some duplication of information here  
with the http headers

again.


Adding max-age also means defining IntegerConstruct and disallowing
white space around it. Formerly, it was OK as a text construct, but
the white space issues change that.

Also, we should decide whether cache information is part of the  
signature.

I can see arguments either way.

wunder
--
Walter Underwood
Principal Architect, Verity





Re: Feed History -02

2005-08-09 Thread Henry Story


To answer my own question

[[
Interesting... but why have a limit of one year? For archives, I  
would like a limit of

forever.
]]

 I found the following in the HTTP spec

[[
   To mark a response as never expires, an origin server sends an
   Expires date approximately one year from the time the response is
   sent. HTTP/1.1 servers SHOULD NOT send Expires dates more than one
   year in the future.
]]

(though that still does not explain why.)

Now I am wondering if the http mechanism is perhaps all that is needed
for what I want with the unchanging archives. If it is then perhaps this
could be explained in the Feed History RFC. Or are there other  
reasons to

add and expires tag to the document itself?

Henry Story

On 9 Aug 2005, at 19:09, James M Snell wrote:




rules as atom:author elements.

Here it is: http://www.intertwingly.net/wiki/pie/PaceCaching



The expires and max-age elements look fine. I hesitate at bringing  
in a caching discussion.  I'm much more comfortable leaving the  
definition of caching rules to the protocol level (HTTP) rather  
than the format extension level.  Namely, I don't want to have to  
go into defining rules for how HTTP headers that affect caching  
interact with the expires and max-age elements... IMHO, there is  
simply no value in that.
The expires and max-age extension elements affect the feed / entry  
on the application level not the document level.  HTTP caching  
works on the document level.




Adding max-age also means defining IntegerConstruct and disallowing
white space around it. Formerly, it was OK as a text construct, but
the white space issues change that.




This is easy enough.


Also, we should decide whether cache information is part of the  
signature.

I can see arguments either way.




-1.  let's let caching be handled by the transport layer.





Re: Feed History -02

2005-07-29 Thread Henry Story


I get the feeling that we should perhaps first list the main types of  
history archives, and

then deal with each one separately. I can see 3:

1- The top 20 list: here one wants to move to the previous top  
20 list and think of them
   as one thing. The link to the next feed is not meant to be  
additive. Each feed is to
   be seen as a whole. I have a little trouble still thinking of  
these as feeds, but ...
2- The history of changes link: the idea here is that a feed is  
a list of state changes
  to web resources. The link to the history just increases the  
length of the feed by
  pointing to the next feed page. These two pages could have  
been merged to create one
  feed page with the same end result. By moving back through the  
feed history one gets
  to see the complete history of changes to the resources  
described by the feed.
3- A listing of the current states of the resources: here the  
end user is searching for
  all the blog entries as they currently are. No feed id is ever  
duplicated across the chain.


I think each of these has its uses.
 1. this use case is clear and well understood.
 2. is very useful for 'static' blog feeds written from a remote  
server, as once a feed has
been archived it no longer needs to be rewritten. It is also  
very useful in helping a
client synchronize with the changes to the feed. If a client is  
off line for a few months
or if there are a lot of changes in a feed then the client just  
needs to follow this type
of link to catch up with all the changes. If the entries are  
describing state changes to
resources such as stock market valuations, then this would allow  
one to get all the

valuations for a company going back in time.
 3. It is easier for this to be generated dynamically upon request.  
It is not really a history
of changes, but rather a list of resources. In a feed concerning  
a blog these two can of
course easily be confused as we think of blogs as being created  
sequentially. We then think
of the feed history as the history of the blog entry publication  
dates. If an old blog entry
gets changed then the page on which that blog entry originally  
appeared in the feed would
get changed just as the permalink to the blog post itself gets  
changed.
This type of list is of course not very useful in keeping  
someone updated as to the changes
in a feed, as the whole linked feeds would need to be stepped  
through to see if anything has

changed.
I think it is with this version that the proposals of having a  
separate document that points
to all the entries makes most sense. And this case also seems to  
be worked upon in the API

I think.

more below...

On 23 Jul 2005, at 18:14, Mark Nottingham wrote:



On 19/07/2005, at 2:04 AM, Henry Story wrote:


Clearly the archive feed will work best if archive documents, once  
completed (containing a
given number of entries) never change. Readers of the archive will  
have a simple way to know when
to stop reading: there should never be a need to re-read an  
archive page - they just never change.


The archive provides a history of the feed's evolution. Earlier  
changes to the resources
described by the feed will be found in older archive documents and  
newer changes in the later
ones. One should expect some entries to be referenced in multiple  
archive feed documents. These

will be entries that have been changed over time.

Archives *should not* change. I think any librarian will agree  
with that.




I very much agree that this is the ideal that should be striven for.

However, there are some practical problems with doing it in this  
proposal.


First of all, I'm very keen to make it possible to implement  
history with currently-deployed feed-generating software; e.g.,  
Moveable Type. MT isn't capable of generating a feed where changed  
entries are repeated at the top out of the box, AFAIK.


So is it that MT can only generate feed links such as describe in 3  
above?


Even if it (and other software) were, it would be very annoying to  
people whose feed software doesn't understand this extension; their  
show me the latest entries in the blog feed would become show me  
the latest changed entries in the blog, and every time an entry  
was modified or spell-checked, it would show up at the top.


Well in many cases this is exactly what I want. If someone makes a  
big change to a resource that
was created one year ago (say your first blog post) then I think this  
is well worth knowing about.
Especially if I have written a comment about it. Of course if the  
change is not *significant* then
the change to the old feed archive would not be significant either.  
So perhaps I should have said

that archives should not change in any *significant* way.

So, it's a matter of enabling graceful deployment. Most of the  
reason I have the fh:stateful flag in there is to allow

Re: Feed History -02

2005-07-29 Thread Henry Story


Below I think I have worked out how one can in fact have a top20  
feed, and
I show how this can be combined without trouble with the  
history:next ...

link...


On 29 Jul 2005, at 13:12, Eric Scheid wrote:


On 29/7/05 7:57 PM, Henry Story [EMAIL PROTECTED] wrote:


1- The top 20 list: here one wants to move to the previous top  20  
list and
think of them as one thing. The link to the next feed is not meant  
to be
additive. Each feed is to be seen as a whole. I have a little  
trouble still

thinking of  these as feeds, but ...



What happens if the publisher realises they have a typo and need to  
emit an
update to an entry? Would the set of 20 entries (with one entry  
updated) be

seen as a complete replacement set?


Well if it is a typo and this is considered to be an insignificant  
change then
they can change the typo in the feed document and not need to change  
any updated

time stamps.

The way I see it, maybe a better way would be to have a sliding  
window feed
where each entry points to another Atom Feed Document with it's own  
URI, and
it is that second Feed Document which contains the individual items  
(the top

20 list).


This is certainly closer to my intuitions too.  A top 20 something is  
*not* a feed.
Feed entries  are not ordered, and are not  meant to be thought of as  
a closed

collection. At least this is my initial intuition. BUT

I can think of a solution like the following: Let us imagine a top 20  
feed where
the resources being described by the entries are the position in the  
top list. So

we have entries with ids such as

http://TopOfThePops.co.uk/top20/Number1
http://TopOfThePops.co.uk/top20/Number2
http://TopOfThePops.co.uk/top20/Number3
...

Each of these resources describes the songs that is at a certain rank  
in the top of
the pops chart. Each week the song in that rank may change. When a  
change occurs in the

song at a certain rank the top 20 feed with id

http://TopOfThePops.co.uk/top20/Feed

will contain a new entry such as

   entry
titleTop of the pops entry number 1/title
link href=http://TopOfThePops.co.uk/top20/Number1//
idhttp://TopOfThePops.co.uk/top20/Number1/id
updated2005-07-05T18:30:00Z/updated
summaryTop of the pops winner for the week starting 5 July  
2005/summary

  /entry

A client that would subscribe to such a feed would automatically get  
updates every
week for each of the top 20 resources. But the feed could be  
structured exactly like

I suggest in 2.

So for a top 2 feed (20 is a bit to long for me)

feed
   title type=textMy top 2 Software Books/title
   idhttp://bblfish.net/blog/top2/id
   history:prevhttp://bblfish.net/blog/top2/ 
Archive-2005-07-18.atom/history:prev

   ...
   entry
titleMy Top 1 book/title
link href=http://bblfish.net/blog/top2/Number1//
idhttp://bblfish.net/blog/top2/Number1/id
updated2005-07-25T18:30:00Z/updated
summaryMy top 1 book is Service Oriented Computing by Wiley/ 
summary

   /entry
   entry
titleMy Top 2 book/title
link href=http://bblfish.net/blog/top2/Number2//
idhttp://bblfish.net/blog/top2/Number2/id
updated2005-07-25T18:30:00Z/updated
summaryMy second top book is xml in a Nutshell/summary
  /entry
/feed

The above representation of the http://bblfish.net/blog/top2 feed  
points to the

archive feed http://bblfish.net/blog/top2/Archive-2005-07-18.atom

feed
   title type=textMy top 2 Software Books/title
   idhttp://bblfish.net/blog/top2/id
   ...
   entry
titleMy Top 1 book/title
link href=http://bblfish.net/blog/top2/Number1//
idhttp://bblfish.net/blog/top2/Number1/id
updated2005-07-18T18:30:00Z/updated
summaryMy top 1 book is Java 2D Graphics/summary
   /entry
   entry
titleMy Top 2 book/title
link href=http://bblfish.net/blog/top2/Number2//
idhttp://bblfish.net/blog/top2/Number2/id
updated2005-07-18T18:30:00Z/updated
summaryMy second top book is xml in a Nutshell/summary
  /entry
/feed

 As you notice only the top1 has changed from the first week but not  
the
second, and yet in both feeds there is an entry for both. A non  
change can
sometimes be an important event. But this is really up to the feed  
creator
to choose how to present his feeds. He could easily have had only had  
the

entry for http://bblfish.net/blog/top2/Number1 in the first feed.

Looking at it this way, there really seems to be no incompatibility  
between
a top 20 feed and the history:next ... link. My talk about archives  
not

changing should be more precisely about archives not changing in any
significant way. And this advice could be moved to an implementors  
section

and be encoded in HTTP by simply giving archive pages an infinitely long
expiry date.

Someone could subscribe to that second feed and poll for updates,  
and all
they'll ever see are updates to the 20 items there, not the 20  
items from

the next week/whatever.

The idea of feeds linked to feeds has lots of utility

spam on wiki

2005-07-25 Thread Henry Story


The following page has been badly spammed

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

and it looks like the fact that it was changed never appeared in the  
RSS feed.


Henry



images and logos

2005-07-20 Thread Henry Story


I have just published a feed for my blog at http://bblfish.net/blog/ 
blog.atom


I use logo and icon tags. Am I using it correctly?

I wanted to add logos and icons to each of the entries too, as each  
entry at
http://bblfish.net/blog/ has an associated image and logo. I guess I  
will
have to create my own extension element and won't be able to reuse  
the current

atom ones.

Is anyone else interested in this?

Henry



Re: Feed History -02

2005-07-19 Thread Henry Story



On 18 Jul 2005, at 23:21, Mark Nottingham wrote:

On 18/07/2005, at 2:17 PM, Stefan Eissing wrote:


On a more semantic issue:

The described sync algorithm will work. In most scenarios the  
abort condition (e.g. all items on a historical feed are known)  
will also do the job. However this still means that clients need  
to check the first fh:prev document if they know all entries there  
- if my understanding is correct.




This is one of the unanswered questions that I left out of scope.  
The consumer can examine the previous archive's URI and decide as  
to whether it's seen it or not before, and therefore avoid fetching  
it if it already has seen it. However, in this approach, it won't  
see changes that are made in the archive (e.g., if a revision --  
even a spelling correction -- is made to an old entry); to do that  
it either has to walk back the *entire* archive each time, or the  
feed has to publish all changes -- even to old entries -- at the  
head of the feed.


Clearly the archive feed will work best if archive documents, once  
completed (containing a
given number of entries) never change. Readers of the archive will  
have a simple way to know when
to stop reading: there should never be a need to re-read an archive  
page - they just never change.


The archive provides a history of the feed's evolution. Earlier  
changes to the resources
described by the feed will be found in older archive documents and  
newer changes in the later
ones. One should expect some entries to be referenced in multiple  
archive feed documents. These

will be entries that have been changed over time.

Archives *should not* change. I think any librarian will agree with  
that.



I left it out because it has more to do with questions about entry  
deleting and ordering than with recovering state. it's an arbitrary  
decision (I had language about this in the original Pace I made),  
but it seemed like a good trade-off between complexity and capability.


Does that make sense, or am I way off-base?

Is it worthy to think of something to spare clients and servers  
this lookup? Are the HTTP caching and If-* header mechanisms good  
enough to save network bandwidth?


An alternate stratgey would be to require that fh:prev documents  
never change once created. Then a client can terminate the sync  
once it sees a URI it already knows. And most clients would not do  
more lookups than they are doing now...




I think this would be the correct strategy.


Henry Story



Re: Feed History -02

2005-07-19 Thread Henry Story



On 19 Jul 2005, at 01:52, A. Pagaltzis wrote:


* Mark Nottingham [EMAIL PROTECTED] [2005-07-18 23:30]:


This is one of the unanswered questions that I left out of
scope. The  consumer can examine the previous archive's URI and
decide as to  whether it's seen it or not before, and therefore
avoid fetching it  if it already has seen it. However, in this
approach, it won't see  changes that are made in the archive
(e.g., if a revision -- even a  spelling correction -- is made
to an old entry); to do that it either  has to walk back the
*entire* archive each time, or the feed has to  publish all
changes -- even to old entries -- at the head of the feed.



These are the kinds of things my “hub archive feed” situation was
supposed to address. Because the links are all in one place, the
consumer only has to suck down one document in order to be
informed of all archive feeds and being able to decide which ones
he wants to re-/get.


I wonder if what you are trying to describe here is not a different
concept altogether from an archive feed. I guess that both are  
completely

orthogonal concepts.

Feeds tend to specialize in a number of resources they track. What would
also be useful would be a document that  described the resources   
tracked by a
feed. This would be closer to a directory listing. It would help  
point to the

current state of the resources tracked by the feed.

So when one subscribed to a feed one could then quickly get a list of  
all
the resources that the feed had responsibility for. As this could be  
quite large
some form of navigation may be necessary. Perhaps this is the type of  
thing

that the protocol group is working on.

Henry Story



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







Re: Feed History -02

2005-07-18 Thread Henry Story


Sorry I did not participate in the previous discussion for format 00.  
I only just

realized this was going on. What is clear is that this is really needed!

I agree with Stefan Eissing's random thought that it may not be a  
good idea to use
Atom for a top 10 feed. Atom entries are not ordered in a feed for  
one. Also as I
understand it an entry in a feed is best thought of as a state of an  
external resource
at a time. Making a feed of the top x entries is to use the feed as a  
closed collection

whereas I think it is correctly interpreted as an open one.

If that is right, and so fh:stateful is not needed, then would it not  
be simpler to

extend the link element in the following really simple way:

link rel=http://purl.org/syndication/history/1.0; type=application/ 
atom+xml

  href=http://example.org/2003/11/index.atom; /

Just a thought.

In any case I really look forward to having this functionality.  
Thanks a lot for the
huge effort you have put into presenting this idea so clearly and  
with such patience.


Henry Story


On 18 Jul 2005, at 09:59, Stefan Eissing wrote:


Am 16.07.2005 um 17:57 schrieb Mark Nottingham:


The Feed History draft has been updated to -02;

  http://ftp.ietf.org/internet-drafts/draft-nottingham-atompub- 
feed-history-02.txt


The most noticeable change in this version is the inclusion of a  
namespace URI, to allow implementation.


I don't intend to update it for a while, so as to gather  
implementation feedback.




Just a couple of thoughts on reading the document:

Ch 3. fh:stateful seems to be only needed for a newborn stateful  
feed. As an alternative one could drop fh:stateful and define that  
an empty fh:prev (refering to itself) is the last document in a  
stateful feed. That would eliminate the cases of wrong mixes of  
fh:stateful and fh:prev.


Ch 5. inserting pseudo-entries into an incomplete feed: would it  
make sense to have a general way to indicate such pseudo entries? A  
feed entry can also get lost at the publisher and the publisher  
might want to indicate that there once was a feed entry, but that  
he no longer has the (complete) document.


//Stefan

Random thoughts:
The example of a top 10 feed (Ch 1) needs some thinking: there  
are quite some people interested in the history of top 10 when it  
comes to music charts. One _could_ make this an atom feed and use  
the feed history to go back in time. But the underlying model is  
different from the one atom has, so maybe its not such a good idea  
after all. (Is there any ordering in a feed, btw.? I know a client  
can sort by date, but does someone rely on document order of xml  
elements?)






Re: The Atomic age

2005-07-15 Thread Henry Story


It would be easy to add atom to BlogEd, though I really would like the

   link  rel=ext;next href=http://bblfish.net/blog/archive. 
10.atom


to be agreed upon. This would allow me to place all the blog content  
in an

archive. It would of course also be useful to have the namespace.

Henry

On 15 Jul 2005, at 17:56, Walter Underwood wrote:


--On July 14, 2005 11:37:05 PM -0700 Tim Bray  
[EMAIL PROTECTED] wrote:




So, implementors... to  work.



Do we have a list of who is implementing it? That could be used in
the Deployment section of http://www.tbray.org/atom/RSS-and-Atom.

Ultraseek will implement Atom. We need to think more about exactly
what it means for a search engine to implement it, but we'll at
least spider it.

wunder

Creature with the Atom Brain, why is he acting so strange?
  Roky Erickson
--
Walter Underwood
Principal Architect, Verity





Re: CVS branch merge conflicts

2005-06-23 Thread Henry Story


A couple of people pointed me to Eclipse for this, and it does indeed  
work well for this (thoug
the quality of the diffs is not so good as IntelliJs). If it were not  
so complicated to transform

a checked out CVS project into an eclipse project it would be perfect.

Henry

On 23 Jun 2005, at 12:36, Henry Story wrote:
Hi, I am looking for a tool to make it pleasant to resolve merge  
conflicts between a branch and the
HEAD of a cvs repository. This aspect of IntelliJ is broken. Anyone  
know a good tool that one could

use for this?

Henry Story




Re: CVS branch merge conflicts

2005-06-23 Thread Henry Story


Sorry, wrong list. :-/

Henry

On 23 Jun 2005, at 18:22, Henry Story wrote:


A couple of people pointed me to Eclipse for this, and it does  
indeed work well for this (thoug
the quality of the diffs is not so good as IntelliJs). If it were  
not so complicated to transform

a checked out CVS project into an eclipse project it would be perfect.

Henry

On 23 Jun 2005, at 12:36, Henry Story wrote:

Hi, I am looking for a tool to make it pleasant to resolve merge  
conflicts between a branch and the
HEAD of a cvs repository. This aspect of IntelliJ is broken.  
Anyone know a good tool that one could

use for this?

Henry Story






first request for an atom extension: Re: Polling Sucks! (was RE: Atom feed synchronization)

2005-06-18 Thread Henry Story


This is a good venue. I think XMPP and polling can be explored.

But for the needs of BlogEd [1] on which I am working, and for my  
personal needs,
I would really like us to introduce an extension to the link concept,  
to provide
a pointer to the next page in a historically ordered sequence of feed  
documents.
For many people who have dumb internet connections with very minimal  
servers, the
xmpp solution requires a lot more technology than we have available  
or want to be

bothered with. Something like:

link rel=http://.../next; href=http://bblfish.net/blog/archive/ 
2005-05-10.atom


would be really useful. It requires only a working apache on the  
server side.
On the client side it is really simple to follow. The client just  
needs to have access
to the base feed url, and can follow these links through all the  
change history of the

feed if he wishes.

It would allow me to have a:
  - a remote backup of my blog
  - provide the means to synchronize it between two editors
  - allow clients and aggregators to get a complete historical view  
of the feed.


And it comes at really no cost, since all it requires is for us to  
mint a new next
url. So how does one go about extending atom? This was meant to be a  
feature of it,

and especially of the link concept.

Henry Story

[1] https://bloged.dev.java.net/
[2] http://bblfish.net/blog/

On 18 Jun 2005, at 06:27, James M Snell wrote:


Sam asked
 P.S.  Why is this on atom-sytax?  Is there a concrete proposal we  
are talking about here?  Is there likely to be?


I launched this discussion here for three reasons:

1. Everyone who care's about it is probably already here

2. Main discussion about the syntax is pretty much complete so  
there is no real risk of derailing anything


3. If there was no already accepted solution to the problem, this  
would be a logical place to begin hunting for and discussing the  
solution


That said, however, is there a better venue that you could suggest?

Capping out the conversation a bit, Bob Wyman's RFC3229+feed  
proposal, once written up into an Internet-Draft, will provide the  
solution that I'm searching for (e.g. the ability to catch up on  
what has changed in a feed over a given period of time).  The XMPP  
Push model would likely not be implemented in the case I'm  
considering but I couldn't rule it out completely.  I believe it is  
Bob's intention to draft up the RFC3229+feed and pitch it to this  
group for discussion.


Sam Ruby wrote:




Joe Gregorio wrote:



On 6/17/05, Bob Wyman [EMAIL PROTECTED] wrote:



Joe Gregorio wrote:



The one thing missing from the analysis is the overhead, and
practicality, of switching protocols (HTTP to XMPP).




   I'm not aware of anything that might be called overhead.




I was referring to switching both the client and server from running
HTTP to running XMPP. That may not be practical or even possible
for some people. Yes, I understand that you run this right now.
Yes, I understand that you run a business doing this right now.
Yes, I agree that your solution is one way to solve the problem.

Do you agree that 99.99% of all syndication is done via
HTTP today and also offering an HTTP based solution would be of  
value?





Joe, I'd be careful with how you structure this argument.  It  
could be applied in a different context, for example:


  Do you agree that 99.99% of all syndication is done via HTTP GET
  and POST today and offering a solution based only on these two
  verbs would be of value?

One can go down this path and cater to the least common  
denominator always, or one can say that perhaps MIDP 1.0 phones  
are not particularly well adapted to perform complex editing tasks  
beyond simple GET and POST.


Perhaps HTTP is suited to a wide, but not universal, range of  
applications dealing with relatively coarse and relatively  
infrequently updated content; and XMPP is well suited to a  
different -- always on, firehose -- set of applications, with a  
wide overlap between the two.


And perhaps they could be combined.  I could see a future where  
there was a feedmesh backbone with nodes exchanging data via  
XMPP, serving content out to the rest of the universe via HTTP.


- Sam Ruby

P.S.  Why is this on atom-sytax?  Is there a concrete proposal we  
are talking about here?  Is there likely to be?









Re: Atom feed synchronization

2005-06-17 Thread Henry Story


The best solution is just to add a link types to the atom syntax:  a  
link to the previous feed document that points to the next bunch of  
entries. IE. do what web sites do. If you can't find your answer on  
the first page, go look at the next page.


How do you know when to stop? If the pages are ordered  
chronologically, the client will know to stop
when he has come to a page with entries with update times before the  
date he last looked.


This is:

- simple,
- easy to see (no need to look at invisible header fields),
- easy to understand (no need to read another complicated rfc  
document)

- easy to implement (well it so simple)
- low tech (you don't need anything more than a server  
supporting http)



Henry


On 17 Jun 2005, at 00:37, James M Snell wrote:


Ok, question for the group.

Scenario: A content source is updated 100 times per hour.  The Atom  
feed currently only displays the 20 most recent entries.  Users who  
are not checking the feed every 10 minutes or so are missing  
entries.  How do we address this?


Solution: Rather than using a feed with a fixed number of entries,  
provide a mechanism that allows users to specify the last time they  
retrieved the feed and have the feed return all entries added since  
that time.


Question: What is the best way to provide that mechanism:  
querystring parameter or HTTP header or some other way I'm not  
thinking of


   http://...?last-retrieved=12345

OR

  GET ... HTTP/1.1
  Host: ...
  Last-Retrieved: 12345

- James





Re: Google Sitemaps: Yet another RSS or site-metadata format and Atom competitor

2005-06-06 Thread Henry Story


I completely agree. At the core, a feed is just a list of state  
changes to web resources.
It will be  the perfect format for notifying search engines of all  
the changes to a web
site,  thereby massively reducing the time it will take them to crawl  
the web.



Henry Story

On 3 Jun 2005, at 23:28, Bob Wyman wrote:
Google has released Sitemaps which is yet-another-format for  
doing site summary or site-metadata publication. Unlike commonly  
used RSS formats or Atom, Sitemaps are only intended to communicate  
information about URLs that have been updated  not the content of  
those URLs.





feeds, ids and categories

2005-06-06 Thread Henry Story


I was wondering if I had understood this correctly: a feed can have  
entries in a number of categories. Each of these categories may  
themselves have feeds. These category feeds will all have the same id  
as the main feed, though they may have different titles and subtitles  
to reflect the category in which they found themselves.


Henry



Re: feeds, ids and categories

2005-06-06 Thread Henry Story



On 6 Jun 2005, at 16:30, Tim Bray wrote:

On Jun 6, 2005, at 6:12 AM, Henry Story wrote:
I was wondering if I had understood this correctly: a feed can  
have entries in a number of categories. Each of these categories  
may themselves have feeds. These category feeds will all have the  
same id as the main feed,




No!  A feed ID is a *unique* identifier.  My 'golfing' feed is  
entirely distinct from my 'chemistry' feed, although they may share  
some entries. -Tim


Phew! Great. Thanks. That is what I was hoping.

Because I was going to say that if two category feeds could share the  
same

id and have different titles, then this id would  (to stick to our
resource/representation distinction introduced in the entry id  
discussion of
Atom entries) simultaneously have two different representations of  
the same type,
and so would have a very different behavior to the ids we have  
associated with

entries.


Henry Story



Re: Semantics and Belief contexts - was: PaceDuplicateIdsEntryOrigin posted

2005-05-26 Thread Henry Story


Part of the reason I went into the detailed explanation I did, is  
because not everyone
here may be familiar with mathematical logic. What I was explaining  
is a heavy condensation
of what I learned in my BA in philosophy. I am not plucking these  
thoughts out of a hat.


So let me apply these a little more directly to your proposal.

I very much agree with the spirit of what you are saying. But I think  
that the danger is that by looking at the problem the way you are, we  
may end up confusing things a lot more than we are clarifying them.


On 25 May 2005, at 21:06, Antone Roundy wrote:

== Rationale ==

 * The accepted language for allowing duplicate IDs in a feed  
document speaks only multiple atom:entry elements with the same  
atom:id describing the same entry if they exist in the same  
document--of course, we intend for them to describe the same entry  
whether they're simultaneously in the feed document or not


If we put this in terms of ontology, what we want is to state simply  
that an ID refers to one and
only one entry. There is not much to add by the way, other than that  
the ID is a URI, since the

whole role of URIs is to identify one and only one thing.

 * The accepted language does not speak of the origin feed of the  
entries. Ideally, an atom:id should be univerally unique to one  
entry resource, and we rightly require publishers to mint them with  
that goal. However, in reality, malicious or undereducted  
publishers might duplicate the IDs of others. Therefore, it is  
proposed to modify the specification to state that the atom:entry  
elements describe the same entry (resource) if they originate in  
the same feed.


When you say 'ideally', I say ontologically. Let us imagine that  
instead of creating an ontology
for a atom entry, we were creating one for a gun. We could say that  
guns have a number of
properties, one of them being that they are physical objects.  
Physical objects can only be at

one place at a time. So a gun can only be at one place at a time.
Now you can see how it won't help the definition of a gun if  
someone were to introduce the
following reasoning.  When a policeman asks someone where they put  
the gun, some people are honest
and tell them where, but many people (the most interesting ones) will  
lie to them. The policeman has
to report the facts as he sees and hears them. He may hear two  
conflicting reports on where the
gun is. Are guns therefore weird objects that have a position  
relative to the person who speaks

about them?
This is confusing semantics and the way people speak about the  
world. It is confusing our
concepts about the world, and the context in which sentences  
containing those concepts about the world appear.


 * Aggregators wishing to protect against DOS attacks are not  
unlikely to perform some sort of safety checks to detect malicious  
atom:id duplication, regardless of whether the specification  
authorizes them to or not.


The policeman is not unlikely to do a lot of safety checks to find  
out where the gun is. He may for
example scan the person who told him he has not gun anyway, just to  
make sure.



On 25 May 2005, at 22:57, Antone Roundy wrote:

On Wednesday, May 25, 2005, at 02:26  PM, Henry Story wrote:
Since the referents of Superman and Clark Kent are the same,  
what is true of the one,
is true of the other. When speaking directly about the world, we  
can replace any occurrence

of Superman with Clark Kent, and still say something true.

Clark Kent is the secret identity of Superman. - Superman is  
the secret identity of Superman.  Whether they're perfectly  
interchangeable or not depends on whether the name is referring to  
the object or some a facet of the object.  The second sentence  
actually works if the first Superman refers to the persona, and  
the second to the person.  But getting back to Atom...


There are a lot of corner cases. I was trying to give an overview of  
a complicated field.
I was restricting myself to sentences where words clearly identify  
objects.  If you use Superman
to refer to a persona then we are speaking about something else.  
Other cases are Superman is so called because he is strong. Well  
known, but it does not undermine the distinction I was making.



[snip]

So to prevent a DOS attack, best is to have aggregator feeds such as:

feed
!-- aggregator feed --
feed src=http://true.org;
   idtag://true.org,2005/feed1/id
   entry
  titleEnter your credit card number here/title
  ...
   /entry
 /feed
feed src=http://false.org;
   idtag://true.org,2005/feed1/id
   entry
  titleEnter your credit card number here/title
  ...
   /entry
/feed
/feed

Here all the aggregator feed is claiming is that he has seen  
entries inside other

feeds.


...

It will be up to the consumer of such aggregated feeds to decide  
which to trust.




From the end user's point of view, it's not much

  1   2   3   >