Singpolyma

XOXO (A Semantic Weblog)

Distributed Social Networking

Posted on

I’ve recently been thinking a fair bit about distributed and what that could look like. To my surprise, so have other people! (Yes, I just used the much-hated link on random words technique. First time, I’m experimenting 😉 ). I usually think in code, so this has resulted in the hCard for Blogger Generator and XFN + XOXO + hCard Blogroll Generator. Turns out that this is just step #1 of the same kinds of things others are thinking of.

I have also created a first draft of a WordPress plugin implementing some of these ideas and those to follow.

What would distributed social networking look like? It would look like people from Facebook, MySpace, BeBo, etc adding me as a friend by entering the URL of one of my profiles (likely my blog home page). They then get all the features of the network with me and vice-versa even though I have no account with their service. This also means that Facebook people could add friends from MySpace and vice-versa.

To further the discussion (and my own code / implementations, theory is useless without practice!) I would like to propose the following ‘levels’ of distributed social networking:

  1. Publish an hCard for each blog author / web page owner. This would allow all services to identify whose profile that page is and acts as a basic profile. If Pingerati is pinged this would also allow a person to be found on an hCard search engine. This could replace the traditional social networking search completely. This is implemented by the hCard generator for Blogger (above) and the WordPress Plugin (above).
  2. Publish blogrolls as XFN. This implements friends lists that social networks thrive on. If this is mixed with hCard markup it allows your friends to be better identified and indexed as well. At this level one can view relationship networks with something like RubHub. This is implemented by the blogroll generator (above) and the WordPress plugin (above, WordPress already has XFN, adds hCard).
  3. Public/private profiles. If you are not my friend (or you are a search engine) you should see less of my information than if you are my friend. If I have marked you as a friend (XFN, level 2). How do I know you are my friend if it’s decentralised? We need a decentralised auth system. Oh, we have one! If you are logged in via OpenID and your OpenID URL is either linked to with rel=friend in my blogroll (or the page that I do link to has a rel=me pointing to your OpenID URL) you are my friend (you own a URL I have marked as friend) and thus can see more of my information. I doubt this can be done for Blogger, but it is implemented by the WordPress plugin (above).
  4. Messaging. At least we need a way to notify people that we’ve added them as a friend to give them a chance to reciprocate. I know of no standard for REST communication. I have hacked together a basic prototype for the WordPress plugin (above). Passing a GET string to a profile URL with the var from containing either your URL or email address, subject containing the message subject, and body containing the message body (i.e. ?from=http://singpolyma-tech.blogspot.com&subject=Hi&body=Hello there) emails the owner with that information.Certain subject could have special meaning. That was some kinds of messages could be turned off (to deter SPAM). If subject=add_friend then the body is ignored and the user is simply notified that from has added them as a friend. This notification could be done automatically when you add that person as a friend to your XFN blogroll.All of this is supported by the WordPress plugin.

Another thought is that to accomplish the college network, etc, features of Facebook and other existing services one could apply rel=tag to one’s own hCard.

We need a way to log in with OpenID in one place and then have all the little places (i.e. blogs) know you’re logged in. Can’t do that with cookies, but maybe something will be though of. Just putting it out there for discussion.

3 Responses

Leave a Response