There is a new acronym floating around that has at least two things going for it, it sounds cool, and it has a cool logo. FOAF stands for Friend of a Friend and is a file format intended to express identity and relationships. Basically, it’s a computer-readable file that identifies you and the people you know (by pointing to their FOAF files). A computer can then go grab their files, and so on.
The practical applications haven’t really been figured out yet – but people seem to be in agreement that having this type of info available could make for some interesting applications. The TypePad service is the first major weblogging platform to create FOAF files by default – this should spread adoption beyond XML-nerds.
Right now my FOAF file says I know three other FOAF-enabled friends (Dan James, Peter Rukavina, and Ben Wright are the lucky trio). If you follow Peter’s FOAF trail, he “knows” 14 people, most of whom I also know, some of whom I don’t. If you were to follow the trail a step further, I would likely know fewer.
Overlapping circles of friends and acquaintances form a web. The further someone is away from you on the web, the less you are able to trust them solely based on relationships. I trust my friends. I would trust a friend of a friend. I would trust a friend of a friend of a friend, but less so.
So what can we do with all of these social connections? Block spam. I propose a FOAF-powered super-whitelist.
The usual “whitelist” in an email program is basically a list of people that you have explicitly told the program are not spammers. You can usually do this manually, or by a few other semi-automatic means (anyone in your contact list or anyone you reply to, can be added).
The whitelist works well, but it’s not a very good way to make new friends. What if I want to send a legitimate email to someone I’ve never emailed before?
What if your “FOAF-knows“ list was your email whitelist – and people further away from you on the web of FOAF could have something along the lines of “whitelist” points according to their distance from you on the chain.
For example, anyone on my FOAF-knows list gets on my email whitelist (call them Group A). Anyone on the FOAF-knows list of anyone in Group A gets on my email whitelist (call this pack Group B). Anyone on the FOAF-knows list of Group B could be given some level of “whitelist point”, and so on.
Make any sense? Wanna implement it? Please do.