Portable Social Networks: Take Your Friends with You

Tweet

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.

Open Data

Tools like Firefox plugin Operator can extract the hCard and XFN data and combine it with other sites in useful ways.

When importing data into a new social network, formats like XFN and hCard allow you to describe both the person, and his or her relationship to you. XFN is used to find links to the people you consider friends. hCard is used to extract structured information about those friends, including things such as URLs, email addresses, organisations and phone numbers, all of which can be migrated into other services through the use of open data.

Sites that Allow the Import of Data

As an example of helping users avoiding the tedious task of retyping their information over and over again, a site called GetSatisfaction.com allows them to create a user profile based on the URL of an hCard. Instead of filling out tedious common form fields about their names, addresses, phone numbers and email addresses, users simply enter their hCard URLs. GetSatisfaction will then fetch the HTML page, parse it for hCard data and populate the corresponding fields.
Several sites already have contact information marked up as hCards. If you have a Flickr account, for example, your profile page is encoded in hCard. So you could enter the URL of your Flickr profile, or maybe a page on your blog.

Ideally, GetSatisfaction would remember that URL, and if or when you changed the data on your Flickr profile page, GetSatisfaction would update its information as well. Much like RSS’s publish/subscribe model, GetSatisfaction and others could subscribe to your remote contact profile data encoded in hCard. Then you have only a single point of data that needs to be updated, and all the changes are reflected globally.

New microformats and social networking-related tools are popping up all the time. Dopplr, for example, offers users the ability to search for friends who might also be using the service. This simple tool helps you see if someone you know is a member of the service; then you can connect with them. The downside of the service is that I manually need to enter each friend’s name in order to search for it. My address book isn’t huge, but still, that’s too much work to search for my contacts one by one. Microformats to the rescue! Dopplr gives you the ability to enter a URL of a page that’s XFN encoded. It will parse that page for any XFN links, automatically search its database for matches, and tell you how many of your friends are part of Dopplr. It’s just reduced my workload from searching for hundreds of names, one by one, to searching on a single URL.

I’m not completely off the hook, though — much of the work is still on me. I need to keep an HTML page online, which has all my friends’ URLs marked up in XFN. That sounds like a lot of work just to start, let alone keep up to date. But because of the portability factor, we can use other social networks’ open data as our seed list of friends. My Twitter account, for example, has a Friends list that happens to be marked up with the XFN microformat. In Dopplr, I can point to that Twitter Friends URL as the list of friends I want to import. Effectively, I’m using one social network to jump-start another. Again, there’s also the possibility for Dopplr to "subscribe" to my Twitter Friends XFN list. So each time I update/add a new friend to Twitter, Dopplr would find it and check to see if the new friends are also a members of their services. This means I need to keep fewer places updated, because all the services are feeding from each other.

Sites that allow the importing of data through URLs are building the next step in creating a more open portable social network. By importing data from other sites, users are able to quickly build their new networks using these next-generation sites. By sharing this data as XFN, the social network sites become hubs from which other networks can extract data. The built-in power of HTML allows us to create these associations and links without using any new technologies.

Anti-patterns

Not everything that appears to help customers jump-start their social networks or import their data is a good idea. Several anti-patterns have emerged, and you should avoid them whenever possible.

Some sites ask you to upload your address book so they can "help you find friends". What they could really be asking for is a list of your friends’ email addresses so they can spam them. Privacy is certainly a grey area — and rarely will your friends want to be contacted by third parties on your behalf. You should think twice before uploading any personal data about your friends without their permission. Not all sites will spam your friends, of course, so be sure the read the fine print.

Another pitfall that you’ll want to avoid is sites that ask for the login details for your email account. This is a huge security hole. By handing over this information, you’re giving a random provider access to all your emails and friends, not to mention access to APIs through which they could edit and delete your information. And, as none of us want to admit, we often use the same passwords for many different services. Provide your email password to a site, and its owners can not only get into your email, but possibly your bank accounts (and a bunch of other services) as well. You should never give your password to anyone! Creating assurances of privacy lulls us into a false sense of security — it relaxes us into thinking everyone can be trusted and everything will be safe. This bad behaviour is exactly what phishers love to prey upon.

The ability to import data from another service is a great tool, but doing so with a username and password is the wrong approach. Sites like Flickr, with its Authentication API, Google’s AuthSub, and Yahoo’s Browser Based Authentication are doing the right thing with authentication. OAuth is an attempt at open authentication which will help consolidate the spectrum of different authentication methods across different web sites.

Using these tools, you can authorise other sites to access your data with the fine-grained permissions you set — not through giving full access through your username and password. If you’re using your username and password, then the social network developer is not importing your data the correct way.

Towards Real Portability

OpenSocial is a new development from Google that’s a step in the right direction. Although it doesn’t allow for the direct portability of your social network, it creates common hooks between any social network that implements the OpenSocial API. This means that a developer can use the People and Friends Data API to get a user’s profile, get a list of friends and, with that, obtain their profiles as well.

Even though there’s no export button (yet), a simple widget could be developed to export your data into portable formats such as XFN, hCard and FOAF.

OpenSocial is in its very early stages, and the only site that implements a limited API is Google’s own Orkut, but it is a very important step in creating portable social networks.

Promoting Good Behaviour

Sites that easily allow you to import and export your data should be promoted for their good behaviour. You should try to patronize sites like these and pressure other sites to follow their lead.

The Web works because anyone is allowed to link to anyone else. Your real-life social networks blossom because no one tells you who you can and can’t be friends with. Online networks should be no different. The Web is my social network; I just happen to use various sites to help me manage it, not be the traffic cop who controls it. Open portable social networks solve all these problems.

Your online identity is yours to control as you like.

For more information on portable social networks, check out these sources:

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

No Reader comments