Thursday, July 24, 2003

Friend of a Friend

The Friend of a Friend (FOAF) project (details) is about creating a Web of machine-readable homepages describing people, the links between them and the things they create and do. FOAF is a project of RDFWeb.

Basic Idea - from the old RDFWeb project page:

The basic idea is pretty simple. If people publish information in the FOAF document format, machines will be able to make use of that information. If those files contain "see also" references to other such documents in the Web, we will have a machine-friendly version of today's hypertext Web. Computer programs will be able to scutter around a Web of documents designed for machines rather than humans, storing the information they find, keeping a list of "see also" pointers to other documents, checking digital signatures (for the security minded) and building Web pages and question-answering services based on the harvested documents.

So, what is the 'FOAF document format'? FOAF files are just text documents (well, Unicode documents). They are written in XML syntax, and adopt the conventions of the Resource Description Framework (RDF). In addition, the FOAF vocabulary defines some useful constructs that can appear in FOAF files, alongside other RDF vocabularies defined elsewhere. For example, FOAF defines categories such as 'Person', 'Document', 'Image', alongside some handy properties of those things, such as 'name', 'mbox' (ie. an internet mailbox), 'homepage' etc., as well as some useful kinds of relationship that hold between members of these categories. For example, one interesting relationship type is 'foaf:depiction'. This relates something (eg. a Person) to an Image. The FOAF demos that feature photos and listings of 'who is in which picture' are based on software tools that parse RDF documents and make use of this properties.

Edd Dumbill also has a good background article at developerWorks: Finding friends with XML and RDF.

You can use FOAF to describe yourself and who you know. The full FOAF vocabulary is here so you can browse through and add appropriate descriptors (e.g. MyersBriggs indicator or AIM chat ID). Identifying things in FOAF is a more readable overview.

Getting Started - you can use the FOAF-a-Matic to generate an initial FOAF (usually named foaf.rdf). This page also describes how to add a meta link to your HTML header for autodiscovery.

Here is a link to my FOAF document my FOAF (get buttons here). I have added a few bloggers to my FOAF as an example (hope you don't mind Ed, Ben, Ned).

FOAF Explorer This link is to a handy tool called FoaF Explorer. It allows you to explore FOAF documents and the relationships between friends. Click it to see how it parses my foaf.rdf. The site also has other tools available.

What does it mean? - this is real the question, of course. Or perhaps you should even ask "What does FOAF offer?" It seems to be a logical step to standardise (or at least flatten into XML) social/blogrolling connections in the same way that RSS is flattening a lot of web browsing.

If the FOAF meme gets some real traction, I suppose all the Domino Blog templates will need a this feature. I wonder who will be first?

Other FOAF links: k-collector - foaf,, technorati, Edd Dumbill, Danny Ayers, Marc Canter, Spring.

No comments: