Johannes Ernst's Blog [XML]  [LID]

Embedding FOAF information in RSS -- that's really simple!

In my quest to find a version of FOAF that is much, no, MUCH simpler than FOAF, I earlier proposed an RSS-like, Real Simple FOAF aka RSFOAF. I thought what I proposed was the simplest-possible spec there could be for this purpose.

Well, I was wrong, it can be made simpler, and RSS itself is the answer! So I retract what I said before, and propose to instead to use RSS for FOAF purposes. No, I'm not mad, at least I don't think so ;-) Let me try and explain:

RSS was originally invented for news feeds, like the time-ordered set of the 10 most recent posts on a particular blog. But then, people started using it for other stuff, like to configure overlays on Yahoo Maps. And Dave Winer even welcomed Microsoft's Simple List Extensions that definitely were not created for news distribution, but for things such as the Amazon gift list.

When I tried to explain the RSFOAF idea to somebody last Friday, I got thinking: from an information structure perspective, how exactly is the set of members in my social network different from the set of gifts on an Amazon gift list? Well, it isn't, at least not much. So ... if RSS works for gift lists and other sets, why not for FOAF? Reminder to self: RSS is becoming the universal subscription format, so why not use it?

So here's my totally revised version of RSFOAF-as-RSS-extension, slightly renamed as RSS-FOAF to indicate that's really extended RSS:

But wait: are there any advantages of using RSS for FOAF-type information?

There are plenty, and they are quite convincing:

  • Everybody who has an RSS reader can subscribe to a FOAF feed! You've got a new friend? Pling, I know about it, because I'm suscribed to your RSS-FOAF feed. (My RSS reader may not understand the FOAF extensions, but even if it only parses standard tags, it is quite usable. See example below.)
  • RSS feeds with FOAF content can be aggregated and merged and intersected, and filtered and remixed and what not with standard RSS tools! Feedburner, your friend re-mixer? It's there already... (assuming that they pass on RSS extended tags, which I have not tested but which they probably should)
  • Whatever innovations are done in RSS land immediately are available for FOAF, such as, say, notifications, aggregation, ... or Microsoft's list extensions that allow sort and group, which is definitely useful. By reusing all the good new ideas around RSS, RSS-FOAF makes them available for FOAF, without any additional programming required.
  • Why invent a new format, if marginally extending an existing format works as well?
  • It's much easier to get people to adopt a simple extension of an existing specification than to get them to commit to an entirely new one.

To demonstrate, I have created an example RSS feed with embedded FOAF, aka RSS-FOAF. You might want to try this:

  1. Click on this link (but not in Internet Explorer, use Firefox), to see how it looks like in plain text (the new tags are quite similar to the ones in my original proposal)
  2. Here is the same with a few suitable style sheets for HTML browsers that show the possibilities. This is indeed the same file, just with a style sheet (look at source in your browser)
  3. Add it to your RSS reader, and see that it shows the standard RSS title and description fields. Our RSS-FOAF file contains values for those, i.e. the human-readable representations of the people in the feed. It also contains machine-readable fields defined by RSS-FOAF, which a machine client would look at (it would probably ignore title and description), so we have a reasonable fallback behavior to standard RSS, which is a great thing to have.
  4. Read the preliminary RSS-FOAF definition over at http://rss-extensions.org/wiki/RSS-FOAF on the RSS Extensions Wiki.

I liked the original RSFOAF proposal, but this RSS-FOAF is much better, don't you agree?

[permanent link]    Add to [del.icio.us