FOAF? What’s it all about then? Technology is terrible for having interesting things buried in acronyms or abbreviations. FOAF is one of those gems and I’ve been intending to write about it for a long while. Thank you to Dave Terrar (and  weaverluke) for the nudge.

These days we are all a bit social on-line. We have always been social creatures, but now we have technology to help us manage those connections, from well-known sites like Facebook, YouTube, and Digg, to photo sharing sites like Flickr , even virtual world applications such as Second Life.


Computer technology means we can start to map out the relationships an individual has. Certainly we could have done this in the past with paper and pen, but applications like Twitter, Linked-In and Facebook mean that a vast swathe of the population are now submitting details of their relationships into databases, where they can be graphed and modelled by computer. This idea of a social graph – a map of relationships that individuals have with each other – has applications in both business and consumer marketing.

In the early days of the Internet it was joked that “on The Internet nobody knows you are a dog”. However, on today’s Internet we do know who you are, what you do, and the relationships that you have. Depending on your privacy settings, this information is available to a narrower or broader set of people – but it is, nonetheless, available.

One of the most interesting things about making a graph of the relationships is looking at the connections of our connections. Taking an obvious example: I know a few people, those people know other people. With a social graph (or with social media applications) I can see that two of my friends don’t know each other, but they do know a third mutual acquaintance. That creates new ways of introducing people to each other, and strengthening relationships with mutual contacts (see the Dunbar’s Number – Groups, Language and Social Media post with reference to tribes and clans in this context).

In some ways there’s nothing new there. Social people have been doing this sort of thing for millenia, but what is new is that people can use computer technology to identify friends or contacts that might be relevant with information that might previously have been missed or unnoticed. I have two friends who live at the opposite ends of the country, who I’ve never seen at the same time, and I assumed never knew each other. It wasn’t until Facebook came on the scene that I realised they went to the same school as children. A detail that might not (and in fact did not) come up in years of conversation.


This idea is codified in the concept of friends of a friend or “FOAF“. It was an early attempt to capture a person’s social graph and publish it on the web. The idea is that I could embed a list people that I know on my web site, so that you can see who you know too – that way you can see if you are a friend of a friend. One hop away on the social graph. By identifying those mutual contacts it provides a way for us to come to know each other. That is the concept that business social networking site LinkedIn is based upon.

So how does FOAF work? It uses something called RDF – Resource Description Framework – to express metadata, that is information about information. In the case of FOAF that is information about people and their interests, relationships and actitivites.

FOAF uses RDF to express metadata about people, and their interests, relationships and activities. Founded by Dan Brickley and Libby Miller, FOAF is an open community-lead initiative which is tackling head-on the wider Semantic Web goal of creating a machine processable web of data.

Semantic web overlays data about data on the Internet so that computers can make sense of it. Because FOAF information is machine readable, computer applications can read it and process it to present information or bring things to our attention. So a very simple and idealistic view might be you come to my website or my page on Facebook and the web brouser automatically picks up that FOAF information and is able to notifiy you that there are some people we know in common. The idea is to build that information into all sorts of web pages so that many applications become, as it were, social or at least socially aware.

So FOAF, in the technical sense, is a very simple text structure, based on an XML format, which is machine and human readable – although not too pretty for a human. It is very easy to write applications to use it. A FOAF entry might include information such as my name, gender, title, what my preferred nickname is, separate out my family name, point to my home page or my blog, and include similar information for my contacts. It is a very simple piece of data, but we can add details about the nature of the relationships. It isn’t as complex as it probably sounds, it is flat text, which might look a bit like this:

   <foaf:name>Benjamin Ellis</foaf:name>
   <foaf:nick >jamin</foaf:nick>
   <foaf:mbox_sha1sum>...(inverse functional property)...</foaf:mbox_sha1sum>
   <foaf:homepage rdf:resource=""/>
   <foaf:weblog rdf:resource=""/>
   <foaf:workplacehomepage rdf:resource="" />
           rdf:resource="http://benjaminellis/images/bmje.jpg" />
         <foaf:name>Joe Blogs</foaf:name>

What does all this technology do? It give us opportunities to introduce people to other people, or to find people via mutual contacts. It might be computer-based, but the end goal is human to human social interaction. The power of my social graph, the map of my relationships, is not just in the releationsips I have, but also in that friend of a friend information – The relationships my contacts have, and they or I might have as a result of them.

People’s social graphs are exceptionally complicated. The FOAF proposal is a long way from providing even the beginnings of being able to express the relationships we have. I’ve played in a band with someone across the street, who baby sits for us on occasion. Are they my neighbour? A fellow musician? My baby sitter? Computers struggle with such vagaries, some people thrive on them. A social graph is not a simple star with me in the middle and people around the outside. It is actually a complex mixture of more and less connected individuals.

In using social networking platforms for marketing, agencies often seek out the person with the most ‘connections’ or ‘friends’. That is an error. Who is going to be more effective in propagating a message – someone with 350 contacts, or someone with 20? It depends as much on the second and third degrees of their social graph (ie out to the friend of a friend level) as on the direct contacts in the first.

One person might know 100 contacts, another might know 10. For the person who knows 100 contacts each of those people might know 100 or they might know a 1,000. Some of them may be very well connected , some may have a few tightly formed relationships, that are heavily meshed –  where all their contacts and mutual friends are related. Others may be outliers, or bridgers as I like to call them, sitting across different communities. They might only have a few relationships. but they bridge between large communities.

Social software, even in its current form, is effective in the ‘discovery’ phase of relationships. One of the reasons that Twitter is so popular with many is that it makes it easy to find new people, based on their interests or experience, and start exchanges with them. Browsers like Flock aim to integrate the social and data aspects of web surfing. The area certainly has a lot of potential, for example knowing that a web site is written by a friend of a trusted friend might have me interpret the information as more trusted than that of a total stranger (for better or for worse). There are applications that generate FOAF from your Facebook page , Firefox includes a built in FOAF browser.

FOAF also has the potential to act as a format for porting our social graphs from one social networking platform to another (as long as the platforms stop banning people for running export scripts). A number of platforms (at last a dozen at last count) already allow exporting data as FOAF information. The approach might also be useful in the Enterprise 2.0 context, where social graphs might need to be used across applications.

All of this is, of course, still in a nascent stage. Be it FOAF, or a functionally equivalent standard, we will be seeing a lot more activity around the portability and interpretation of social graph data in the coming year. In the mean time, don’t forget that it is all about connecting with people!