Foafster

We’ve got a slew of social-network websites, and they all make you go through the same song-and-dance. Each has some pros and cons. They’re fun, I suppose, but what do they really do? They provide certain opportunities:

  1. for bragging about the size of your personal network. This is on par with who sits with who in the high-school cafeteria;
  2. for hitting on friends of friends, so that you feel like you’ve got an “in” with someone that is more personal than using typical online-dating sites (Friendster);
  3. for business match-making (Linkedin);
  4. for seeing what your friends are up to and organizing group events (Tribe and Friendster).
  5. for creating forums for affinity groups (Tribe and Ryze);

We’ve also got FOAF, which overlaps with what Friendster & Friends can do. There are a lot of drawbacks to FOAF, not the least of which is that it is damn complicated. Hand-coding a FOAF file is much more tedious than coding HTML, IMO. There are some rudimentary tools to help one generate the file, but these are barely a start.

Another problem with FOAF is that you need a place to store your FOAF file. I’d venture a guess that most Friendster users do not have their own websites, and do not have a burning desire to create one. But they obviously are interested in participating in social networking. Conversely, most people with their own websites–even people with a strong interest in social networks–don’t have FOAF files. So FOAF just hasn’t gotten much traction yet.

A third problem with FOAF is that FOAF files just sit there–they don’t do anything. You need specialized search engines to traverse these FOAF files and display interesting information about them.

A fourth problem is that, even with these search engines, you’re barely satisfying the first one point in the above list. But it wouldn’t take much extra to cover all those bases.

There is an opening here for a Friendster-like hosted service or user-installed tool (which I will refer to as FOAFster) to use FOAF and other standards to create an open system that helps people use FOAF more efficiently. As long as it is open, with a published API or plugin architecture, it doesn’t need to do all things for all people. This would be a specialized content-management tool that might be similar to a blogging tool in some ways (and might include rudimentary blogging tools). More important would be something like trackback for getting information from one FOAFster to another. This would be simplified by the existence of a central pingable resource like blo.gs but for FOAF, so that when Alice posts her FOAF file, her FOAFster tool can check the centralized site to see whether Bob has a FOAF file too, and if so, where it is. She could then ping Bob directly to let him know “I am marking you as a friend in my FOAF file.”

To cover point 1 properly, FOAF explorers need to show whether one person’s assertion of friendship is reciprocated. Exploring one-way links would be useful too, and could replicate the two-way checking that all the social-network services require: a good FOAFing tool would keep track of people claiming you to be a friend, and let you add them as friends to your FOAF file.

To cover points 2 and 3, the FOAF vocabulary would need to be extended a bit to include what kind of people you’re interested in meeting, and for what reason, eg, activity partners, hot monkey love, or professional contacts, and specifically in what context. I can imagine a new domain in FOAF that would look something like this:

<foaf:wanttomeet>
	<professional>
		<client>translation</client>
		<vendor>graphic design</vendor>
		<vendor>editing</vendor>
		<colleague>translation</colleague>
	</professional>
	<social>
		<partner>road cycling</partner>
	</social>
</foaf:wanttomeet>

Obviously this gets into hairy problems of defined vocubularies, but these problems are not insurmountable.

Point 4 can be easily covered by tracking RSS feeds of friends. Looking at the nitty-gritty of implementing this, there are several possible paths to take, each of which have their merits:

  • Include a simple blog-like tool for publishing announcements in FOAFster.
  • Suck in the RSS feed from another blog for this purpose
  • Accept trackbacks from another blog for this purpose
  • Accept iCal files
  • Acept Outlook schedules

If the tool could also push content from friends into one’s own iCal/Outlook, that could be very powerful.

FOAF already has several constructs for defining group membership that cover point 5. Again, the existence of a central pinged site that can keep track of what groups exist would be very helpful. Alternately, or additionally, there might be “group host” sites that would have pointers to group members, records of discussions, etc.

This doesn’t quite solve the problem of the group having a discussion forum, but this could also be managed similarly to the announcements in point 4, but with a little added complexity because the discussion thread would need to be maintained. This would probably be done by trackbacking to the previous post. The group host site would also need to be trackbacked or pinged on every group-related post to maintain a record. This gets a little hairy–I’m not aware of any discussion systems that are completely decentralized and distributed.

It’s not clear whether yet another social-network tool will solve the problem of proliferating social-network tools, but until existing ones are designed explicitly for interop, I don’t see any other way. I don’t have the programming chops to make this happen (not yet, anyhow), but I can picture it pretty clearly. I can imagine a tool that would sit alongside Movable Type or other blogging tools to help us manage our personal and professional lives.

LaterLooks like some blowhard has decided he invented this idea–see the bizarre “warning to copycats & clones”)