I'm toying with the idea of implementing a distributed social networking system. I want to get control back to my contacts and personal data!

To do this, here are the requirements I see for the system:

  1. personal data and contacts are kept and controlled by each users.
  2. information should be available differently to contacts and contacts of contacts than to others. So we can call one version restricted and the other one complete.
  3. information should be searchable.

Interesting components to implement the system are:

  • openid and/or gpg could be used to authenticate the users.
  • foaf could be used as a standard format to store data and exchange data.

Requirements lead to the following points:

  • To satisfy point 1, the data could be published on the personal web site of the user.
  • The data could be in FOAF format to satisfy point 3.
  • Point 2 is the more complex. One idea could be to publish on the web only the restricted version that will be searchable by search engine. Then we need a way to handle the complete version of the data. We could use an email automate for this or a web service or a kind of web proxy that will act for the user. Anyway what we need is an agent that will act for the user to answer requests from contacts and contacts of contacts. I have to think more to find what is the best way to go.