Subject: PaceHeadInEntry

From: "Bob Wyman" <[email-masked]>
Date: Tue, 7 Sep 2004 13:46:09 -0400

I've created a new Pace which calls for atom:head to be permitted in
atom:entry.

---------------------------------------------------------------------

Abstract
Permit insertion of atom:head elements in atom:entry elements in order to
propagate feed metadata in entries that are copied from one feed to another.
This is particularly important for generators and readers of aggregate or
synthetic feeds and for cases, such as "Atom over XMPP," where documents
whose root element is atom:entry are passed. 

Status
Open 

Rationale
An entry is initially created within the context of a specific "source"
feed. In many cases, proper understanding or attribution of an entry relies
on the feed metadata. However, entries are often copied out of their
original source feeds or are passed as root elements without any enclosing
feed. Thus, we need a mechanism to propagate feed metadata as a contained
component of an entry. 

Proposal
Add the following to the definition of atom:entry: 

4.?  The "atom:head" Element 

   The atom:head element acts as a container for metadata about the feed
   within which the entry was created.

   atom:entry elements MAY contain at most one atom:head element.

   If an atom:entry is copied into one feed from another feed, then the 
   atom:head entry of the source feed SHOULD be inserted into the atom:entry
   unless the entry, as copied, already contains an atom:head element. If
   the atom:entry already contains an atom:head, then that atom:head SHOULD 
   be copied without modification.
The following shows an example "Atom over XMPP" entry that has an atom:head
inserted. In this case, the atom:head insertion is required since the entry
shown was copied into the XMPP feed from another feed. 

<iq type='set' 
       from='http-service.example.org'
       to='pubsub.example.org'
       id='publish2'>
     <pubsub xmlns='http://jabber.org/protocol/pubsub'>
       <publish node='http://example.org/feeds/atom-example.xml'>
         <item id='70b2a83be71dfca04df91133d953fb22b41b4267'>
           <entry version='draft-ietf-atompub-format-01: do not deploy'
             xmlns='http://purl.org/atom/ns#draft-ietf-atompub-format-01'>
             <head not-signed>
               <title>Example Feed</title>
               <link rel="alternate" type="text/html"
href="http://example.org/index.atom"/>
               <updated>2003-12-13T18:30:02Z</updated>
               <author><name>John Doe</name></author>
              </head>
             <title>Atom-Powered Robots Run Amok</title>
             <link rel='alternate'
                   type='text/html'
                   href='http://example.org/2003/12/13/atom03'/>
             <id>tag:example.org,2003-12-13:robots</id>
             <issued>2003-12-13T08:29:29-04:00</issued>
             <modified>2003-12-13T08:41:41-04:00</modified>
           </entry>
         </item>
       </publish>
     </pubsub>
   </iq>
Impacts
Synthetic feed generators must insert atom:head elements in entries. 

The size of entries in synthetic feeds will be increased. 

Proper attribution for atom entries is more likely. 

Notes
The behavior described here is similar to that which has been used by
PubSub.com in creating synthetic feeds based on the results of discussions
held at the Atom Community meeting in June at Sun. PubSub.com currently
inserts "<ps:source-feed>" elements to acccomplish what would be
accomplished by copying atom:head instead. 

This extension will make it much easier to provide proper attribution for
entries in protocols such as "Atom over XMPP". 

see:
http://www.ietf.org/internet-drafts/draft-saintandre-atompub-notify-01.txt

---

From: Sam Ruby <[email-masked]>
Date: Tue, 07 Sep 2004 20:18:27 -0400

> I've created a new Pace which calls for atom:head to be permitted in

Is this meant to be in addition to, or instead of, the current 
atom:origin element?  See section 5.10 of the current format draft.

My preference would be "instead of".

- Sam Ruby

---

From: "Bob Wyman" <[email-masked]>
Date: Wed, 8 Sep 2004 00:41:14 -0400

> My preference would be "instead of".
	It is intended to be "instead of" atom:origin as currently
defined. However, with a slight change, atom:origin could actually be
quite useful.
	Atom:head, when inserted into an entry, should consist of a copy
of the atom:head in the source feed of the entry. However, the
atom:links in head elements do not always reflect the actual location in
which a particular feed was found.
	Those familiar with the PubSub.com generated RSS files will know
that we insert a "source" link into each entry we generate. The source
link points to the actual location at which we found the feed -- not
what the source-feed claimed was the location in its channel or feed
metadata. 
	So, if the existing definition of atom:origin was rewritten
along the lines of the text below, I would be pleased if it were
maintained. This would avoid our having to insert private extensions to
indicate where we found it.

"The "atom:origin" element's content conveys the URI of the location
from which the entry was read.
"The content of this element MUST be a URI.  atom:entry elements MAY
contain an atom:origin element, but MUST NOT contain more than one."

Note: Sometimes, the "origin" or "source" of an entry will be something
like a Jabber/XMPP PubSub node. The URI won't always be "http:".

		bob wyman