Categories
RDF Specs

What is FOAF and why do you need it?

I thought I would break in with a little tech talk and discuss FOAF, or Friend of a Friend. If you hang around weblogging for any length of time, you’ll probably come across this term. Might be nice to know that it’s not some kind of new goverment regulation.

FOAF is XML created using a specific RDF (Resource Description Framework) vocabulary that allows you to provide a file with information about yourself, and basically, who you know. It’s the brainchild of Dan Brickley and I believe Libby Miller, and has its own support site and blog, though I’m not sure if the weblog is still being updated.

You don’t usually make a FOAF file by hand–either it’s created for you by your tools, or you can use the FOAF-a-matic, a handy forms-based tool that generates valid FOAF XML for you. You can then copy the contents into a file, named something like foaf.rdf, and put this file into the same location as your weblog. Some weblogging tools can do this for you, and you’ll need to check with yours to see if it does, or doesn’t manage FOAF files for you.

To enable people to autodiscover your FOAF file, you can then add the following into your primarily web page, in the HEAD section:

(Note, I had to remove the example because it was not showing up in the page, even with angle brackets being escaped. This most likely is a bug with the underlying tool implementation. The link to autodiscovery also shows the code.)

To see a badly outdated version of a FOAF file, you can check out mine.

Now that you have an idea of what it is, you might be wondering what’s it good for.

Some weblogging tools use FOAF files to auto-generate blogrolls for a weblog. Some people might consider this a goodness, but I’m not one of them. The reason why is that just because you know someone doesn’t mean you want to recommend to the world that they read them.

Others build libraries of photos and friends’ photos using FOAF and it’s image capability, which could be particularly useful for managing photos across many different web sites but based on the same event.

There has been talk of using FOAF to build a Web of Trust — to be able to state who you trust in FOAF and then a person knows based on this that they can also trust them. Though there has been a great deal of work on FOAF and privacy and accountability, the vocabulary isn’t there yet, and even the creators would be hesitant about recommending FOAF as it stands now to be used for a basis of trust.

There has also been discussion about extending the FOAF vocabulary to expand the types of relationships available. However the concern on this is the impact something like this could have, if one person considers you a friend and you put into your FOAF file that they’re just someone you know. And do we really want people to know whom we love, have birthed, work for, and so on? Sometimes. Sometimes not.

However, using relationships internally in an application, something such as an address book, could be very useful — but then why use FOAF, which is primarily used to create networks based on publicly accessible FOAF files.

Regardless of use and opinions about FOAF, it is now the second most widely dessiminated example of RDF/XML in use today, after RSS 1.0. And if you hang around weblogs, you’ll be stumbling across it at one time or another. More than that, the tools you use may be asking you whether you want a FOAF file or not.