All in the <head> – Ponderings and code by Drew McLellan –

Social Networking Technology

There’s been quite a lot of talk about social networking of late, with much of the discussion naturally centering on FOAF and XFN. I’ve taken an interest in both these technologies, but for different reasons. They are, of course, two very different technologies but not for reasons of implementation (although they do differ in implementation). XFN exists only to communicate the relationship between yourself and the person to which you are linking. Simple concept, with a lot of different uses. It’s not all that, but it’s not trying to be. FOAF attempts to communicate a large collection of personal details, including relationships along with the URNs of other FOAF documents. FOAF also keys on email address, which I find to be so incredibly short-sighted that I haven’t bothered to work with it at all. It seems too inherently flawed to be worth investing in.

One of the main problems hanging over these social networking technologies is that of change. The first aspect of this is one of link rot. Plain and simple – links do change. People change hosting accounts or domain names or site structure and FOAF files move. Old, outdated FOAF files may languish on forgotten hosting accounts, or might have a very good need to move a file’s location without a technical forwarding solution (ISPs do go out of business) and have no means of knowing who is linking to that file. Without a central (albeit technically decentralised) directory service, these networks look like they could easily collapse, maybe within months. The other issue of change is that of the relationships themselves. Relationships change over time, and as far as I can see from the information about both FOAF and XFN, this data isn’t preserved. XFN’s FAQ page encourages you to destroy it.

Up until this point, all the social networking proposals seem to provide very interesting information that enable us to pull exciting reports and draw pretty graphs, but they don’t seem all that useful. Not in a real-world sense, at least. This frustrates me a little because I desperately need this technology for a specific use – that of contact management.

Traditional contact management systems (like Maximizer, Goldmine, ACT! etc) are basically just pre-schema’d databases. They enable the user to enter details of contacts and to record interaction. They don’t attempt (as far as I’m aware) to record relationships, and they certainly don’t make good use of the internet to perform any sort of data validation or auto-collection. In addition, when a contact changes their details (they move addresses, for example), the contact has to inform you that their address has changed, and then you in turn have to update their records. If the contact forgets to inform you, or you mishandle the information, the details don’t get update and the record drifts into invalidity.

Imagine a new breed of contact manager. On a really simple level, you should be able to specify a URN of a resource such as a FOAF file, to automatically fill out that person’s record. Next, it should represent the relationships between contacts – in the business world it is crucially important to know that Person A, a director of Client X is a business partner of Person B, director of Supplier Y. If you can enter relationships like that, you save yourself a lot of problems and possibly create some opportunities too. If this data can be auto-discovered, so much the better. The link rot problem can be easily sorted with a central directory, keyed against a unique but human-friendly ID. Everyone would maintain their own record, and field requests from those requesting to access it (it would be permission based – possibly with auto-grant/deny rules). If you change address, everyone who holds records on your would be able to pick up the change without you needing to send out thousands of postcards. Of course, each individual would keep their own private notes in their contact manager, which wouldn’t normally get shared anywhere but would merely supplement the data available online.

This would be really useful, even to individuals keeping track of buddies, and the silly thing is that it would be easy to implement. Look at the success of things like FriendsReunited – wouldn’t it be nice to put them out of business by enabling people never to lose touch in the first place? That’s what I’m looking for.