This is something that has been bothering me for a looooong time …
Social Networks are great, but great variety of sites and fragmentation of users is a big problem. I have a contact list in my email client and in Gmail, Yahoo Mail, etc. I have contacts in Flickr, del.icio.us, LinkedIn, Xing, Plaxo, Orkut, etc. And now I have started building my family tree in Geni. But none of these has all my contacts - they’re all not in sync. It would be great if there was a way to synchronize all this information. Yes, I realize that all these social networking sites have an interest in keeping this information separate, but that doesn’t make it good - social networking should be open, not closed. How can you have a true network if everything is closed?
FOAF seems like a great idea and seems to be working towards having a site-independent way of specifying these relationships, but none of these big sites seem to support or implement FOAF. Maybe FOAF is too cumbersome? Maybe FOAF is also lacking necessary functionality? Maybe FOAF is just too complex for “normal” people to understand?
Also, what I’m also missing from most of the existing services is that they usually don’t specify the type of relationship, i.e. friend, acquaintance, business associate, colleague, (former) classmate, relative (could be more specific - and might thus allow automatic building of family trees).
The following are just a couple of notes that I started writing down quite some time ago, and that I intended to expand on in order to write a proper blog entry, but I just don’t have the time right now and I want to get this posted. But I think you can all get the main points anyway …:
1) Standard API and data structures for information exchange
2) Locator/directory service, user identified by URL (FOAF?) (or optionally email address - using email address requires central webbased directory service), similar to myopenid. Designates Social Networking service used by user - could be special link tag in header of (home)page, points to site that user uses for contact management. URL of site (e.g. flickr.com) has another link tag that points to API endpoint
API functions:
1) Connection Request: send request from user A to user B with request to establish link and allow for information exchange.
2) Connection Response: approve or deny request for information exchange - approval includes public key of user B
3) Connection Acknowledgment: acknowledges receipt of approved connection request and includes user As public key
4) Contact Information Request/Response: retrieve users contact information - must supply public key of user to get information
5) Contact List Request/Response: if allowed by user, send users contact list to other user
Actual contact management, etc. are functions offered by individual sites, i.e. competition between sites is about additional features that can be offered (e.g. flickr is about photo sharing, etc.). Also, sites should allow easy export/import of contact list data (including public keys), so contact relationships do not have to be re-established manually.