Don’t use Neutrino, use FOAF

OK, so in my last post I rather eloquently described my distaste for the neutrino.xml format.

My problems with it are manifold. In no particular order:

  • it’s yet another meta-format and yet another format to parse
  • it doesn’t describe anything new
  • it suffers from any number of the problems it claims to solve
  • users shouldn’t have to know about feed URLs

A number have people have asked Why not just use OPML?. The neutrino.xml wiki says:

Whilst it may be possible to implement most of what Neutrino hopes to achieve with OPML, this would be by convention rather than by design. Passing an OPML file to an aggregator gives no guarantees about what the file will contain or mean. Neutrino is specifically person-oriented whilst OPML is general-purpose.

To this I say “Tish and pshah, OPML can have anything you like in it. Define some attributes and you‘re away!”, except of course this isn’t a very good solution because you‘re defining an arbitrary data set onto a format already used for something else within the syndication world.

“But wait!”, I hear you say, “if the main argument against using OPML is that it has no idea of identity, then why not use a format which does, like FOAF?” Well, the author of neutrino has thought of this:

Whilst FOAF attempts to describe properties of an individual and their entire social network, Neutrino stops at the boundary of the individual.

I hate to shatter the illusion, but a FOAF file doesn’t have to describe an “entire social network”, it can just describe a single person. In which case, we‘re in business. Regardless of this though, I firmly believe that a user shouldn’t have to know the URLs of any feeds in order to create a file listing their various feeds. Feeds which belong to and represent a user are very almost always going to be site syndication, and not synthetic (such as a feed of search results), and so a list of sites which provide feed autodetection should be sufficient. If my workplace suddenly decides to start syndicating their website in a feed, every member of that company shouldn’t have to go and update an XML file, it should already contain the main site URL and they can let autodetection do its work.

What happens when my workplace silently drops their RSS 2.0 feed and switches to Atom? An ideal world would see a 301 redirect, but in the real world that doesn’t happen (especially not for weblogs in hosted environments or with the technological nous to do this), so I’d have to a) notice and b) update my file. Far better to have your file point at the site instead (i.e. what is actually being syndicated).

In addition, people shouldn’t have to specify a title and description – these are elements present in the feed already! What’s with the duplication?

Anyway, that’s plenty long enough to be getting on with, and I haven’t even begun to cover other benefits of using FOAF, such as using the OnlineAccount property so that you can list all the people in your blogroll who have a Flickr account…

Published by

3 thoughts on “Don’t use Neutrino, use FOAF”

  1. Maybe I’m just deluded by the sight of something shiny (I’ll favor anything I haven’t argued about for more than three years already, no matter what), but it sounds like you’re missing the purpose of Neutrino, which is to actually subscribe to it, as an XML redirect to feeds on (generally) third party services. It’s not trying to replace autodiscovery, it’s trying to replace the actual URL that your aggregator fetches each hour. I’d really rather not have my aggregator start each run by fetching my blog, autodiscovering my FOAF, fetching it, fetching all the referenced HTML and parsing it for feed autodiscovery links, and then fetching the actual feeds. Fetching a Neutrino file, parsing it, and fetching the feed URLs in it, though… that’s reasonable enough.

    In a world with infinite money and technical ability, there’s no need for it whatsoever, but for who it’s for, a kid in high school or junior high with a cheap vanity domain name without any real hosting behind it, and with an LJ (oops, that was last month, now he’s moved to Dead Journal) and a Furl feed (oops, he didn’t like the purchase, now it’s and a Flickr feed (which will be whatever’s next, because he’s way too cool to use something owned by Yahoo!), whose friends want to subscribe to “him” and not lose him as he moves from one free service to another, it would be pretty useful (within the limits of how stable his /neutrino.xml URL turns out to be).

  2. I think I get that, but I still think the autodiscovery is better.

    In the Neutrino scenario, this kid’s going to have to find each and every feed for his new services, and add them in, one at a time (so, go to homepage, view source, find autodiscovery links, copy/paste n times for each service), if he’s using FOAF then he changes his Furl homepage URL to his homepage URL, and he’s done. Isn’t the point of computers that they do the work for us?

    btw, I wouldn’t whatever app this is start at my blog, I’d give it the URL of my FOAF, just like I’d give it the URL of my Neutrino file. I think the one layer of auto-detection is worth it for the other benefits you get.

    FWIW I now have a working version of FeedOnFeeds which does exactly this (it works, but it ain’t pretty – I didn’t know PHP before I started :).

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.