Now, in my previous post, I'd mentioned that I might have some ideas to "put up" in response to this recent OPML and web directories kerfluffle. Here's my general idea:

How about trying XOXO, the rel attribute on HTML links, and the subsection link type—all with a bit of XSL to make it work?

Here's some working data and code:

Here are some clues as to what the above does:

  • This directory started with this top-level outline. View source on this page, notice the "Syndication Feeds" link with the rel="subsection".
  • Applying this XSL using this web service is where the work gets done. This consists of dereferencing each link with a rel="subsection" and transcluding the innards of the page at the end of the URL.
  • Notice that the URL of "Syndication Feeds" comes from a domain other than If I wanted to, the third level of transclusion could've come from yet another domain, too.

I think this solution is better than using OPML for web directories. Although it could use some refinement—using a bit of <iframe> or AJAX magic to include in a page, perhaps—it's not only already supported by more applications than OPML, it also leverages a lot of prior art and consensus work.

So, am I wrong here? If so, please tell me how, where, and why.

Archived Comments

  • You're not wrong. This is very awesome.

  • Bravo! I believe you've got the optimal approach to outline-style hierarchies on the Web.

    Gopher NG here we come!

  • Danny: Well, hey, if we're going to reinvent Gopher, we may as well do it right. :) Next, I set my sights on Archie--watch out, Google!

  • You're wrong because Dave Winer will say you're wrong for not using his format (dispite it being rather loosely specified).

    But yeah, I thought that XHTML was modular and that you could use sections of it as needed, and that <UL> and <OL> are good enough for outlines. Seems pretty obvious to me.

  • Ooh, Archie...yeah...

  • Hmm, excellent idea to use rel="subsection" - that make so much sense. I have a few Ajax based outliners lying around handling things from ul/li lists, atom feeds and opml outlines. I should pull it all together and prototype what you've suggested above. (I think I also have an OPML-friendly PHP proxy to "alleviate" the cross-domain security measure - should be able to hack it to accept XOXO-like outlines)

    Step two would be some WikiSyntax additions to author the above on a wiki (for instance defining transclusion links).