AtomAPI search proposal

Joe Gregorio

Back to more thoughts on search. Sam Ruby mentioned a simpler kind of navigation based on the type of flow you see on this page from the Python documentation.

Note the bar across the top with left, up, and right arrows, as well as special purpose links. Of course the body of this page has a number of implicit "down" arrows. If we could make this information machine readable, every Atom file would potentially be a directory and an introspection file.

I like the idea of re-using the feed format, either by having a blog augment its public feed, or by generating a different private feed used for publication client navigation.

Below, as a way of demonstrating this idea I have taken a copy of Sam's Atom feed and augmented it with two kinds of navigation information.

<?xml version="1.0" encoding="iso-8859-1"?>
<feed version="0.2" xmlns="">

  <nav rel="next" title="Next 20 Entries" href="http://.."/>
<nav rel="previous" title="Previous 20 Entries" href="http://.."/>
<nav title="Last 20 Comments" href="http://.."/>

    <nav rel="comments" title="Comments on Entry 1630" href="/blog/1630.atom" />
    <title>One year ago today...</title>
    <content type="application/xhtml+xml" mode="xml">
      <div xmlns="">Microsoft
        <a href="">
        inhaled a blogger</a>.&#160; Now it looks like
        he is attempting to
        <a href="">

    <nav rel="comments" title="Comments on Entry 1628" href="/blog/1628.atom" />
    <title>Is &lt;content&gt; required on a POST?</title>
    <content type="application/xhtml+xml" mode="xml">
      <div xmlns="">
         I've kicked off what I intend to be a series of
         discussions leading up to the creation of a
         validation test suite for Atom implementors
         with the following question on the
         <a href="">
         atom-syntax mailing list</a>:
         <a href="">
         Is content required on a POST</a>?



This proposal would add a new element nav which provides named links to other Atom feeds. The relationship to the current feed, or a description of the target feed is given in the title attribute. Any number of nav elements may be present in the feed or in the Entry.

Parts of the nav element:

URI of another Atom feed. This can be either an absolute or relative URI. Required.
Plain text description of what is at the given href. Required.
Machine readable description of the relationship between this feed and the target feed. Optional, but strongly suggested. A set of common values for the rel attribute would be useful, for example 'previous', 'next' and 'comments' as used in the above example.


There is one other element introduced, the edit element. This element contains the 'editEntry' URI for that Entry.

Putting it all together

The nav elements in the feed and in the entry provide a framework for navigating among Atom feeds. This could be used by aggregators to discover new feeds. It also provides a navigation mechanism for the AtomAPI and could replace the search facet as it stands today. The client can move among the supplied Atom formatted files and from there find the 'editEntry' URI for each Entry. Note that this is a restricted form of the browse facet and this new form will hopefully cover some of the concerns raised about that interface, notably the potential complexity that the clients must be able to handle and also the fact that none of the previous proposals made sufficient re-use of the Atom format.

Can we get an updated "Busy Developer's Guide" or wiki page?  I've lost a sense of  "where we're at" to be able to comment on one specific facet in isolation.

Posted by Ken MacLeod on 2003-11-04

Perhaps we could merge nav and link?

Posted by Sam Ruby on 2003-11-04

comments powered by Disqus