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>
    <id>tag:example.org,2005:some_entry</id>
    ...
  </entry>
</feed>

<feed xml:lang="fr">
  ...
  <entry>
    <id>tag: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>
    <id>tag:example.org,2005:some_entry</id>
    ...
  </entry>
</feed>

<feed xml:lang="fr">
  ...
  <link rel="translation"
        hreflang="de"
        href="http://.../thefeed?lang=de";
  <entry>
    <id>tag: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;
           ];
] .

Reply via email to