Abstract
Supply "/atom:feed/atom:entry" with an "atom:origin" element indicating the original feed the entry came from.
Status
Accepted
Rationale
Provide the ability for client tools and other Atom processors to determine the origin feed of a given entry.
Proposal
Add to the Atom Syndication Format 0.3 pre-draft document the following text:
4.13.10 The "atom:origin" element's content conveys the original feed for the entry (the feed where the entry was initially published). If the orginating feed is an Atom format one, then this content MUST be the same as that of the "/atom:feed/atom:link/@href" attribute where the "/atom:feed/atom:link/@rel='alternate'" (a Link construct that conveys a URI associated with the feed). The URI reference of atom:origin MUST NOT be changed. An atom:entry MAY contain an atom:origin element, but MUST NOT contain more than one.
Example, where the entry is in its origin feed:
<atom:feed version="0.3" xmlns:atom="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en"> <atom:title/> <atom:link rel="alternate" type="text/html" href="http://www.example.org/feed/" /> <atom:modified/> <atom:tagline/> <atom:id/> <atom:generator /> <atom:copyright/> <atom:entry> <atom:title/> <atom:link/> <atom:modified/> <atom:issued/> <atom:id/> <atom:created/> <atom:summary/> <atom:author> <atom:name/> <atom:url/> <atom:email/> </atom:author> <atom:content /> <atom:origin>http://www.example.org/feed/</atom:origin> </atom:entry> </feed>
Example, heavily elided, of a "composite feed" where the entries are not in their origin feed:
<atom:feed version="0.3" xmlns:atom="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en"> <atom:title/> <atom:link rel="alternate" type="text/html" href="http://www.example.org/composite-feed/" /> <atom:modified/> <atom:tagline/> <atom:id/> <atom:generator /> <atom:copyright/> <atom:entry> ... <atom:origin>http://www.a.org/feed/a/</atom:origin> </atom:entry> <atom:entry> ... <atom:origin>http://www.b.org/feed/b/</atom:origin> </atom:entry> <atom:entry> ... <atom:origin>http://www.c.org/feed/c/</atom:origin> </atom:entry> <atom:entry> ... <atom:origin>http://www.d.org/feed/d/</atom:origin> </atom:entry> </feed>
Impacts
schema; validation; possibly entry processing.
Notes
The element name origin was choosen to avoid namespaces (namespaces are lossy with respect to document structure)
See also: http://www.dehora.net/journal/2004/06/atomrss_relating_entries_and_feeds.html
See also: http://imc.org/atom-syntax/mail-archive/msg04136.html
Another option would be to place origin as an attribute of entry thus
<atom:entry origin="...">
And:
<atom:origin href="..." />
Yet another is to prefer the link idiom with a new @rel enumeration 'origin':
<link href="http://www.example.org/feed/" rel="origin" title="" type="" />
for the latter see also the 'source' enumeration in LinkTagMeaning.
Discussion
Please engage in discussion on the atom-syntax list.