OPML Chaining

OPML is a simply, yet very useful format.  I have an idea that I believe would make it more useful.  I’m not sure if this would fit best as an extension, or an addition to the spec.  I did a quick review of the spec, and I don’t believe this functionality is included yet.


What I would like to be able to do is add an outline element that instead of being a node contained within the OPLM file, would link to another OPML file.  Basically something like this:



<?xml version=”1.0″ encoding=”utf-8″?>
<opml>
  <head />
  <body>
    <outline title=”Scoble’s Blogroll” text=”Scoble’s Blogroll” link=”http://scobleizer.wordpress.com/scOPML.opml” />
    <outline title=”Hallihan Family Blogroll” text=”Hallihan Family Blogroll ” link=”http://hallihan.us/familyblogs.opml” />
    <outline title=”Geek Blogs I Like” text=” Geek Blogs I Like” link=”http://blobservations.net/publicblogroll.opml” />
  </body>
</opml>


What does this get me?  It allows me to define my attention field using dynamic outlines.  Assuming that Scoble actually posted a straight OPML file, and kept it up to date, I’d have a dynamic view of what he had in his blogroll.  The Family Blogroll could be maintained by one family member to include any family-related blogs.  Everyone could add it to their own OPLM file, and now a new family blog only has to be added in one place for everyone to have it show up in their feed reader. 


The missing piece to this pie is that RSS Aggregators would have to allow me to use an arbitrary OPML file, and then they’s have to process the links.  I’d like this better anyway, but the impression I have gotten from most readers I’ve tried is that they are maintaining feed lists in some internal data structure, and they only export OPML.  They would have to start using OPML more natively, and then they either have to extend OPLM to handle things like read status, or maintain a separate data structure.  There’s a ton more details on the implementation front (cycle detection, removing duplicates, etc.), but if the basic idea is sound, then these can be overcome.


Taking this one step further, we could expand the above to include:



<?xml version=”1.0″ encoding=”utf-8″?>
<opml>
  <head />
  <body>
    <outline title=”Scoble’s Blogroll” text=”Scoble’s Blogroll” link=”http://scobleizer.wordpress.com/scOPML.opml”>
      <filter type=”random” value=”1:100”/>
    </outline>
    <outline title=”Hallihan Family Blogroll” text=”Hallihan Family Blogroll ” link=”http://hallihan.us/familyblogs.opml”>
      <filter type=”priority” value=”10”/>
    </outline>
    <outline title=”Geek Blogs I Like” text=” Geek Blogs I Like” link=”http://blobservations.net/publicblogroll.opml” >
      <filter type=”priority” value=”5”/>
    </outline>
  </body>
</opml>


Now I only get a 1/100 sampling from Robert Scoble’s extensive blogroll & my family’s blog posts go to the top of my news stack.


If you think this is useful, then trackback with your thoughts & ideas.


—-


Note, as I was doing some due diligence on this post, I stumbled upon Attention.xml.  That format already incorporates some of what I outline above, with the notable omission of the filtering.  Attention.xml looks like more of a swiss-army-knife solve every problem fortmat, and I’m not sure if it still comes in under the “simple” format idea, but it’s not a simple problem so I guess that’s ok.  I had seen many mentions before about Attention.xml, but I never “got it”.  Not I “get it” and I’m hopeful that the Newsgator’s and Bloglines’ of the world catch on soon.