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”)

6 thoughts on “Foafster”

  1. Adam,

    1. you should put geo data in your FOAF. I’m looking for other Austinites on PLINK and it says I’m the only one within 50mi.

    2. “similar to trackback” – YES, FOAF needs services with open specifications in order to grow. So how do I “invite” someone to foaf me? currently I send an email :-/ I would love to have a service that allows me to specify the invitee(s) by email addr, and send invites to them on my behalf after checking to see that I have indeed put them in my foaf file already.

    That may not be the best way to do it exactly, but the idea is that the service would have a standard interface like trackback. PLINK could offer an implementation of the service, so could TypePad, BlogSpot and so on.

    It wouldn’t have to be a full blown web service, but the way things are going it’d be the best route. Imageine FOAF web services + salesforce.com web services for lead generation metaservices.

    cheers (sorry about the run-ons. couldn’t get paragraph tags to work for some reason)

  2. Sean–You’re right: I’ll put my geo data in there. That’s the problem with XML namespaces–you never know when to stop. The FOAF file I posted was pretty much what the generator spat out.

    I’m trying to get up to speed so that I can actually code up some of the ideas I want to see happen.

  3. I’m acquainted with People Aggregator (and have signed in their before–nice picture of you on the front page, btw).

    Last time I checked, it did not allow you to define relationships (though apparently it does now). What it still does not do, apparently, is parse existing FOAF files. I’ve already got one, but I see no way to get PA to recognize it.

  4. My account was created from a foaf file, so it is possible to feed it an existing foaf file. The thing i hate about it though, is that it creates me a second set of foaf entries, much like ecademy. Only PeopleAggregator doesn’t mess up everything while doing it.

    What it still lacks is the possibility to compare the entry in PA to my current foaf file and display the differences, or update my current PA account with my foaf file. I guess you can’t have everything, but you can always hope.

Comments are closed.