[uf-discuss] Next/Prev [was Rationale for providing hAtom instead of Atom/RSS feeds]

Toby A Inkster mail at tobyinkster.co.uk
Thu May 29 12:41:56 PDT 2008


André Luís wrote:

> Still, do you see any way of tieing two hFeeds on separate pages
> together? Any way at all?

The best way that I can come up with involves a slight extension to  
hAtom. The current hAtom spec only covers a subset of the full Atom  
spec. In particular, to cover feed consolidation, you'd want to  
implement in hAtom an equivalent to the <id> element in Atom. Because  
class="id" or rel="id" look a bit confusing (confusion with the "id"  
attribute) I'd suggest:

	rel="feed-id"
	rel="entry-id"

rel="entry-id" isn't really needed for this task, but if you're in a  
situation where the same entry could appear on several pages, then it  
may be useful.

The feed <id> assigns a unique ID (in the form of a URI) to a feed.  
If two hAtom feeds have the same ID, it should be safe to assume that  
they're different HTML representations of the same underlying logical  
feed. Going back to my original examples, this could become:

   <html>
     <title>Page 1</title>
     <link rel="next" rev="prev" href="page-2">
     <link rel="feed-id"
       href="urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6">
     <body>
       <div class="hentry">
         <h1 class="entry-title">Entry 1</h1>
         <p class="entry-content">Content.</p>
       </div>
     </body>
   </html>

   <html>
     <title>Page 2</title>
     <link rel="prev" rev="next" href="page-1">
     <link rel="feed-id"
       href="urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6">
     <body>
       <div class="hentry">
         <h1 class="entry-title">Entry 2</h1>
         <p class="entry-content">Content.</p>
       </div>
     </body>
   </html>

OK, that solves part of the problem - a way of determining if two  
hAtom pages represent the same underlying feed. However, given that  
these pages may be on "opposite sides of the Internet", to  
consolidate the feed we need a way of finding them. For this, I'd  
suggest using rel="meta", an existing rel value which is used to link  
to additional metadata. Because rel="meta" is often used to link to  
RDF files, it may be helpful to RDF parsers to explicitly include the  
"type" attribute.

Adding all this to the mix gives us:

   <html>
     <title>Page 1</title>
     <link href="page-1" rel="feed-id">
     <link href="page-2" rel="next meta"
           type="text/html">
     <body>
       <div class="hentry">
         <h1 class="entry-title">Entry 1</h1>
         <p class="entry-content">Content.</p>
       </div>
     </body>
   </html>

   <html>
     <title>Page 2</title>
     <link href="page-1" rel="feed-id prev meta"
           type="text/html">
     <body>
       <div class="hentry">
         <h1 class="entry-title">Entry 2</h1>
         <p class="entry-content">Content.</p>
       </div>
     </body>
   </html>

What do other people think?

-- 
Toby A Inkster
<mailto:mail at tobyinkster.co.uk>
<http://tobyinkster.co.uk>




More information about the microformats-discuss mailing list