With current social networks, if you're on one site, say Facebook, you can't add a friend who's on another site, say MySpace. The goal of open social networking is to allow people to connect as friends across different sites. This would make social networking more like email, where users on one site, such as Gmail, can send emails to users on Hotmail.
There are two main motivations for this:
With the massive dominance of Facebook, the first reason is the more compelling.
Some technical standard needs to be defined, that describe how sites interact. When a user is on a compliant site, they can connect to people on compatible sites. Most people are likely to use a large public hosting site, much like the existing social networking sites. Advanced users can run their own software, on their own web server. This decentralised arrangement has worked for decades for email. A key part of such a system is a distributed single sign-on system, which has already been invented with OpenID.
It's quite difficult to define exactly what social networking is, but the main features are:
As well as these features, two aspects are important to users: privacy and spam control.
The standard should be flexible and allow software to implement features in different ways. For example, one site could keep a simple list of friends, while another would record the date you became friends, and allow you to organise friends in groups.
There are existing distributed solutions to most of the required features already. These vary in how they compare to the offerings from centralised social networking sites.
To create a basic distributed social networking system, the first step is to create web-based software with the features of a blog, and an RSS reader. Creating good usability for social networking may make the user interface somewhat different to a traditional blog or RSS reader, but the basic features will be the same.
For privacy, access to information needs to be controlled, and this requires identifying users. It would be impractical to have people create themselves a user name and password on every one of the friends' profiles, so a single sign-on (SSO) system is needed. OpenID is a distributed SSO where users can choose their own identity provider, without relying on a central authority. The blog software needs to authenticate viewers using OpenID, and restrict access based on the profile owner's privacy controls. The RSS reader needs to authenticate as the profile owner, to access friends' profiles. There also needs to be a system for a user to request a friend relation, and for the profile owner to confirm or deny this.
The blog needs to allow for two main types of interaction - comments and logging. When Alice comments on an item on Bob's profile, this should cause a notification to be added to Alice's profile - "Alice commented on Bob's post". To help control spam, the process should originate on Alice's profile - like the linkback model for blog comments. Tagging is potentially a three-way operation - "Alice tagged Bob in Carol's post", although most commonly will be two-way "Alice tagged Bob in her post". Once Alice has interacted with Bob's post, she will want to be notified of further interactions by other users.
Removing the central server changes the security considerations substantially. Previously, all users would trust the central server. In a distributed environment, users will trust their own server, but not necessarily servers used by other users. This leads to some potential problems:
There are also some practical challenges:
The next step is to create prototype software to support this. To support the distributed principle, this software needs to be open-source. It may be best to adapt existing blog and RSS reader software, although highly complex software should be avoided.
We also need to create a community to share and discuss ideas. As lessons are learned developing the prototype software, the community can start drafting standards. It's important as well to start thinking early about the challenges, and what compromises may need to be made to overcome them.