Six degrees for geeks

Stewart Butterfield has an interesting piece wondering whether it’s possible to automate the creation of groups from a network of 1-to-1 relationships. He seems to think (or maybe it’s just my own conclusion) that an automated system could suggest some kind of groups but these would be more crude than real-life groups whose boundaries are not on/off, but fade out. If real-life group boundaries were distinct one would never be in the situation of deciding where to draw the line when inviting a group of friends to a dinner, party, etc.; it would be obvious where the social grouping ended.

Anyway, this has prompted me to get round to writing up the making of my friend-of-a-friend file

The FOAF file is an XML file describing a person and their acquaintances. If you look at mine you can see some lines describing me and linking to photos of me. Then there are is list of people I know, some of whom also have photos associated with them. The lines enclosed in <foaf:mbox_sha1sum> are email addresses that have been disguised to prevent harvesting by spammers. If one had a collection of FOAF files one could identify the same people mentioned in different files by looking for their email addresses (addresses are assumed to be unique, whereas more than one person can have the same name). From this it should be possible to create networks of people who know each other. In addition, if, say, two people are associated with the same photo (even in different FOAF files) we can assume that they in turn know each other.

Here are several links that explain this all rather more and show what people are doing with it (not much so far to be honest):

Which is all well and good, and although there seem to be a number of unexplained variations and additional tags in different FOAF files I learnt enough to create my file.

But what now? A very good question. There are things like a database of RDF files and, well, something very similar but all lack decent explanation and don’t seem to do a huge amount. One problem could be the disguising of email addresses — maybe this confuses these databases when one is trying to search by email address? But I haven’t found anywhere that this, or the email obfuscation, are discussed.

So I’m left wondering what to do with this file other than linking to it. For example, Jo Walsh has me in her FOAF file and she is in mine. But I’m at a loss as to how or where or when the meaning from this link can be extracted. What now? It all seems like an interesting idea, particularly from the point of view of the automation of group definitions. But it seems unlikely to take off without more explanation and usable tools. Maybe this is because it’s still forming, and I hope it makes some progress so it’s clearer whether I can do something.

UPDATE: Minutes after posting this, I found another nice thing, a Perl RDF harvester that grabs photos from FOAF files and puts them all on a page. When I initially saw this page of photos I thought it must be doing some clever and wonderful grouping like the co-depiction page linked to above. But I can’t work out how the photos are grouped, other than the fact those from my FOAF file are close together. And what’s the difference between that page and this script output? Again, some more explanation of what this all means wouldn’t go amiss.

Comments

  • The images extracted from foaf data, is nothing clever, it’s simply a list of all images that depict a person, the interesting thing there is the ease of which the scutter achieved it.

    The interesting things you can do with FOAF, are finding connections between people, and simple distributed address book stuff, it’s surprising how much I use my foaf database purely as an addressbook - that may be a bit mundane of course but it’s mush easier than your own address book.

    Once there’s a lot of foaf (within your community) you can start doing searches like “find me people interested in X” and then with even finer grained questions. This allows you to seek out potential collaborators, or someone to have a beer with that would share your interests - you could also limit it to “friends of friends” so that you could get yourself an introduction to them.

    FOAFBot is a very useful bot to, who is a person with a particular nick, how can I email them etc. (nick’s aren’t unique of course, so FOAF provides more information so you can identify which is the person you were actually talking to.)

    Perhaps the most interesting interface to the foaf world at the moment is the foafnaut:
    http://jibbering.com/foaf/foafnaut.svg?sha1=7967191d47d6368dc7ca42add4e1a6307846b93a which allows you to explore the foaf world in an SVG interface, seeing info about people, and who they know, what pictures they appear in etc.

    Jim.

  • Yeah, sorry the ayf documentation is so rough. It really started out as a page-sized Perl script with no dependencies. The Perl version simply generated a big HTML page with an image for each image encountered by the harvester. When I rewrote it in Ruby I hooked in a proper RDF parser, which meant that, well, that it _worked_, and it found loads of interlinked documents. The page with the screenshot of lots of tiny images was just intended to capture the feel of finding all these RDF-described images in the Web.

    If you can make it past this lack of documentation, and the relative obscurity of the Ruby language, you might find ayf.rb interesting in that it shows the rough shape that RDF harvesting tools may take. It basically gets a bunch of RDF docs, and for each one successfully parsed it will run a bunch of ‘handler’ code fragments that do application-specific things. The .rb docs in the same directory indicate some variant themes.

    Hope this makes some sense :)

    danbri