Social Graph & Data Portability

   Wow, that is a broad subject.  It is also one that is getting a lot of attention as of late.  First, there was the Internet, Next the need for Social networks, Next the need to have your social network follow you wherever you go.  How do you do that?Currently there are many (hundreds?  thousands?) of Social networking / or (something) built around a social network websites.  There are the full blown MySpace, Facebook, Hi5, etc.  These sites are built for social interaction, it is not a by-product, it is the main purpose.  Next you have the websites devoted to Photos, Video, and News.  These websites also include social networking features in order to attract/retain users. (And to improve their service, but that is a minor detail) Flickr, a simple idea upload you photos..oh and build a social network.  Digg, vote on news…oh and build a social network.  Youtube, *I’m going to trust you to fill in the rest of this sentence, be careful.* .

    Each of this sites comes with, or has added a social component.  It has  made the service better, more useful, and barring a few exceptions more fun.  Here is the big exception to the better-ness/usefulness/fun-ness:  I filled in my data, I filled in my friends, I filled in my profile, my network over and over (and over again).  

    The issue is that I need a global Social network, without the copy and paste. And forget filling things in the first time…that is painful enough, but keeping it all up-to-date is all the more horrid.

    So how do you make you social network follow you, how can you centralize your info.  Well, facebook is aiming to become that central point for your social network with some of their new APIs.  But, that is not going to work for me.  No One Person / Site Should Control MY Network.  No Way.  No How.  Though a central location (Google, facebook, myspace, or joebruan2312.net) would be easy to query, easy to find, I have major trust issues, future of the system issues, and adoption issues (not that I’m looking for new parents, but if you got a lot of money drop me a line anyway, thanks.) The only way I could even dream of the centralized point for this data, is something open source, run by a non-profit foundation.  A wikipedia/mozilla/OPEN system.  But even then we have many adoption and future management  issues.

    It needs to be decentralized (like what we have, sigh), but with a common/standard (scary) way of accessing every social network(hooray!).  Intro www.dataportability.org/ stage kinda almost next to center.  They have a start (meaning the got a logo designed, which does look cool *thumbs up*)  on a draft of a draft of a proposed standard.  check them out, weigh in on the discussion, this effects you too…and maybe U2.  Here as the aspects of this that need to be in place as I see it, please keep in mind that I only got like 2hrs of sleep last night, the current time is after midnight, and I have only been thinking about this for 10-20mins.  

1. Service Definition.  A *standard* programatic way to ask a website:  what services do you provide?, where are they?, what do I need in order to use them?

2. OpenID…I think we have enough big players behind it now, but it will still be a far bit of time before any kind of wide scale implementation is seen across the web.

3.  Standard Data Requests I have been calling a lot of APIs recently, they are all different, they all have their own names for everything, and they all have different limits.  But most of them are for the same data.  Now I’m not the one to say that one approach is so much better than another, but I will say that We should see *standards*, yes standards.  Imagine if I code call information about users from Flickr, Digg, Facebook, etc.  all in the same way.  Imagine a standard that defined how I query a website about it’s data, it’s users, it’s anything.  We have made the returns of this data into standard formats, XML, RSS, JSON.  But way not the requesting of it?

 4. Syncing(No, please no).  Websites are going to store the information that they know about you, about your network on there servers.  The want to provide fast, reliable, and often profitable services.  The are going to keep a copy of the data that they need in order to make that happen.  So what is needed as a method (a standard)  for Syncing changes.  And that is a complication. Diffs, merges, revision numbers, no user will want to deal with that.  And the implementation would be left up to the service?  what if some dont care / dont have time or resources and don’t provide means for you to sync?

 5. Central, but in a good way.   We are ready agreed that centralized is bad (well at least I agreed that centralized is bad.) But much like the Open ID concept,  profiles need to be centralized to a location, tho that location is dependent on the user.  One user might choose Yahoo to keep the master of their profile.  Yahoo being a profile provider.  Maybe the user decides to keep it on their own server, whatever the case, that would be the end all be all of that users online profile.  Much like an Open Id provider.  Then whatever the service that you use on the web, for photos or news or video, or anything would and should access your master profile.(and do so on a regular basis)  The should draw information about you, from their, and anything that you added to your social network from the photo service that your are using, should be updated in your master profile.  

    Though some of your data my never leave the service (the photos for example)  there should be a clear, accessible way for them to be called from your master profile.  Your master profile not only should define you, it needs to catalog, define, and track all of your content on the web.

      This post may have gotten off track here at the end, but hopefully it was not too hard to follow.  This is the next big thing that faces the internet.  As we continue to expand our social networks, the sites that we choose to share that information with, and the burden of updating profiles / tracking web assets / and connecting with new services, this step becomes necessary, perhaps without it it becomes a roadblock to the future of the web.  

     I think I might have mentioned:  My ideas are not perfect, nor fully defined.  We need discussion, we need input , and we ideas.  Please visit www.dataportability.org/, please comment, this issue involves you too.