Article
Portable Social Networks: Take Your Friends with You
Did you know that 98.6% of the world's population is on Facebook? It's not true, of course, but journalists would have you believe it! Two years ago they were saying the same thing about the growth of MySpace. But in two years' time, once you've tired of Facebook and your friends are urging you to join another new site, will you really want to start from scratch? Do you really want to form all those relationships again? The information is already there; why can't you transfer it across?
Well, you can! This is where portable social networks come in.
What is a Social Network?
Before we can make a social network portable, we need to know what a social network is. Wikipedia describes a social network as:
[...] a social structure made of nodes (which are generally individuals or organizations) that are tied by one or more specific types of interdependency, such as values, visions, idea, financial exchange, friends, kinship, dislike, [and on and on ad infinitum].
That's a pretty general definition. Many people will know of Stanley Milgram's famous small-world experiment -- more popularly know as "six degrees of separation" -- where Milgram hypothesised (and later proved through experimentation) that you are linked by no more than five people to any other person on the planet. These connections between people are what define social networks -- your connectedness to other people is defined by your ability to retrieve information from the best possible source through these connections.
In preparing for this article, I quickly counted how many social networking sites I use on a frequent basis. There were at least twenty -- and that's not even counting the more popular sites like Facebook and MySpace. As technically inclined as I am, I doubt I'm a good gauge of a typical person's social networking habits, but it's safe to say that over a lifetime, an ordinary web user will join many different sites. And as fads change, they'll want to migrate from one site to another: they'll go where their friends go and chat where their friends chat.
If you've ever decided to join a new network, you'll know how frustrating it can be to start everything all over again. You need to make the same friends again and contact the same acquaintances. Do it a few times and you'll find yourself with a bad case of social network fatigue.
On top of that, you have to convince your friends to join the new service too; the effort needed to overcome this inertia is usually too much. Migrating data, convincing your friends, tweaking preferences ... it's all a hassle, so people won't do it. Given the choice between extra effort and the status quo, they'll stick with the status quo.
Free Movement of Data
The free movement of data is what can make a social network portable. The ability to easily get your data in and out of an application is key, both from a vendor and consumer point of view.
The ability to move your data freely has two great implications. First, you are more likely to join a service that respects your time and data. Second, it helps to keep the companies honest.
One of the reasons I joined and now enjoy Flickr is because at any time I can get the data that I own back from the service and leave. This dosn't just affect my photos: it includes data related to my friends, my comments, and all the other metadata that enriches my network. If Flickr turns evil or makes poor decisions, users can go elsewhere. The team at Flickr knows this, and makes sure the company looks out for users' best interests -- otherwise, Flickr won't have many customers left!
The opposite of owning your data is vendor lock-in. Some vendors prevent you from having free movement of your data. They try to forcibly keep you as a customer through the use of proprietary formats, lengthy contracts, or a lack of export functionality. You're prevented from taking your data with you in the hope that the pain of moving your data will exceed the pain their products give you, so you stay.
But vendor lock-in and proprietary formats are not guaranteed keys to financial success -- a fact that more companies are leveraging every day. As we put more and more of our lives, connections, and data online, longevity and ownership have become key to the success of social networking applications. As owners of our data, we should demand the ability to move it from place to place as we see fit. Being part of a portable social networks mean that you can take your data anywhere you want. You spent a lot of time and effort in collecting, collating, annotating and organizing that data -- don't forget that it's yours.
Making Life Easier
The best way to get new customers is to make it very easy for them to join. A low barrier to entry makes it easier to signup, which means more people will try out the service. There must be as few hurdles, requirements and questions as possible in your signup process. With every checkbox, drop-down, form field and button you present to a customer, you lose potential business. There are new and old technologies that attempt to solve the issue of lowering the barrier, some of which have proven more successful than others.
One Login
A recent example of simple signup technology is OpenID. Put simply, OpenID is a distributed system for passwords. It allows you to maintain a single user name and password that you can use to log in to any site that understands OpenID. There is no licence fee, no set up fee, and anyone can accept OpenID logins.
When I visit Dopplr, I can use OpenID to log in. Backpack also has an option for OpenID login, as does Magnolia, so I can use the same OpenID login details for all three sites. OpenID excels because I now only have to manage one username and password over accounts on multiple sites.
Why would a social networking site want to allow customers to log in with OpenID? Because it's the first step toward lowering the barrier to joining. When you create a new social networking account using your OpenID, you log in to the social networking site for the first time and OpenID sends back a few pieces of data: your URL, your name (optionally), your nickname, and your email address. These bits of data are used to automatically create an account for you on the social networking site. Thus, time spent retyping repetitive data about yourself is minimised.
If I wanted the widest possible adoption for my web app or social networking site, making it easier and more comfortable for people to join and create accounts would be the first step. OpenID also has some really interesting features, such as white-listing. One social network could publicly list OpenID URLs for the people in a group. Other social networks could use that list of OpenID URLs to "pre-authorise" accounts, further speeding up the sign-up process.
People use this pre-authorisation feature for blog comments. Normally, if I left a comment on a blog without having an account, that comment would need to be authorised before it was published to the blog. If, instead, I left the comment and used my OpenID URL to verify myself, that site could reference a pre-authorised list of trusted URLs, and let those comments made from sources that matched automatically be published without explicit authorisation. There are plenty of other uses for OpenID functionality throughout your site; Simon Willison's short article titled "Six cool things you can build with OpenID" explains some more of them.
OpenID is also great for me as a customer. If I want to change my password for all twenty of my social networking sites, I simply change my password once with my OpenID provider and it is reflected across all those sites. This is because they do not store my password, just my OpenID URL. It also allows me to create accounts quickly to see if this new service is something worthwhile. I have probably missed scores of opportunities for finding cool stuff because I couldn't be bothered to enter my details yet again!
I recommend that you look into and sign up for an OpenID account today. OpenID is great to get the ball rolling, but the next step in lowering the barrier to portable social networking is bringing your friends along, too!
Sharing Your Connections
When jumping from one social networking site to the next, it's a pain to re-invite all your friends and rebuild those connections. How is it possible to bring all our friends and connections along, too? Well, it's actually pretty simple -- it all comes down to the glamorous world of HTML attributes, microformats, and something called XFN. Using the following technologies, it's possible to create open data that aids portability with nothing new or more complex than the basic HTML we have today.
XFN
XFN stands for XHTML Friends Network. It's a list of rel values that define relationships between two people via URLs. These connections range from a simple "contact" to more complex relationships such as "spouse". Rel values can also be space separated, so we have values such as rel="contact met friend neighbor" to define more complex relationships. These values begin to form the backbone for portable social networks.
If we define relationships in HTML, out in the open, other services can extract the information and the semantics so they can be used in some other network. Open data is a two-way street -- the same HTML file marked-up with XFN that's used for display and export can also be used for importing into another service.
Example blogroll:
<a href="http://example.org/blog/joe" rel="friend met">Joe Morris</a>
<a href="http://blog.terryj.com/" rel="friend met colleague">Terry Jacobs</a>
You can access the XFN relationship builder at http://gmpg.org/xfn/creator.
HTML rel Values
Besides the XFN values that have been created, the HTML specification defines several native rel attributes, a full list of which is available here. This list includes values like Help, Glossary, Index, and Start. The interesting values, when dealing with collecting open data, are Next and Prev. If a spider comes to a URL at which XFN data is located, and encounters a link that includes rel="next", the spider knows that there's another page which could contain XFN data. The inverse scenario works as well: if the spider has landed on page 3, a rel="prev" link tells the spider to go back a page for more XFN data. These rel values are very helpful for pagination purposes.
Twitter.com makes use of the rel="next" value in your list of friends. Each of your friend links is marked up with the XFN microformat describing the relationship between you and that friend. If you have multiple pages of friends, the rel="next" and rel="prev" attributes allow spiders to know that these pages are all connected to each other, and that all the data collected can be pooled together.
Identity Consolidation
The rel="me" value, a later addition to XFN, is a powerful value that allows you to perform identity consolidation. This task involves a few simple steps:
- Take your blog as the starting point, and link to your pages on all the social networking sites you belong to. Now simply add the
rel="me"value to those links. - Go to your profile page, and add a link back to your blog with the same
rel="me"value in the link.
Done! You have now claimed those sites as "you", which is useful when you're building a single identity for yourself across various sites on the Internet. The GMPG (Global Multimedia Protocols Group) offers more information about rel="me" and identity consolidation. And the Plaxo Pulse Open Graph Search tool can help in the consolidation effort. Enter a start URL, and it will crawl the rel="me" links and begin to consolidate information about you.
hCard
In my previous article, I touched on what an hCard is, and how you can create one. Briefly, hCard is a way of representing people, companies, organizations, and places in structured (X)HTML.
Since discovering the Internet back in 1996, Brian Suda has spent a good portion of each day connected to it. His own little patch of Internet is