All over the place. Who knows. So many social networking sites. I have no accurate repository of relationships.
Proliferation of non-interoperable social networking sites & social applications.
Islands of friends
Can’t add friends across islands
Can’t even synchronize your friends on each island, should you want to
Can’t “throw sheep across islands”
Hard to create social applications
Roll your own? Use a platform? If so, which one?
Where do you get the social graph?
Ask users? Get it from elsewhere? Where?
Users are frustrated.
Sick of redefining their friends on each site.
Sick of invite spam.
Worried, confused about privacy & persona management.
Developers are frustrated.
Hard-to-get, incomplete social graph data, even when users want it to be available.
Ask users for it? That frustrates them.
Tie yourself to a platform? Which? Why?
In the ideal, future(?) world,
Social applications are easy to write
The social graph is easy to access
… but subject to users’ access controls,
… and users are in control of their data, able to keep it globally updated.
This all works with open protocols and no centralized provider
Users can even run their own graph providers (similar to what OpenID enables today, for identity), or delegate to his/her trusted graph/“Address Book” provider(s).
We’re not there yet.
How do we get there?
Lot of little steps?
Building blocks seem to be all maturing.
Slowly converge on the ideal.
One big step by everybody at the same time?
I doubt it.
Comparison to other social systems
Only brief period of time without interop, mostly in pre-networking days.
Global identifiers: brad@______.___ (says which “brad”)
Works beautifully with the exception of lack of sender’s identity
SPF/DomainKeys aren’t widely used
Spam would be a lot easier to fight if you knew who people were
Comparison to other social systems
Historically a proprietary mess of non-interoperating walled gardens
AOL can’t talk to Yahoo can’t talk to MSN can’t talk to ICQ
Some business mergers & ad-hoc interop deals
AOL and ICQ. MSN and Yahoo.
Hacks to ease the pain of being on each service give illusion of interop:
Gaim, Trillian, Miranda, AIM-in-GMail/GTalk
Not real federation, still no global identifier. (what to put on business card?)
Promise for the future: Jabber (XMPP). True federation.
Earthlink, Google Talk, LiveJournal, SAPO.pt, ….
Free federation (both libre & gratis) federation. No business deals. Anybody can play, just like email (except XMPP has authentication of peers)
Global identifiers (brad@___.__)
Comparison to other social systems (table) Few, uncommon, often banned. Not needed Yes (Trillian, Gaim, etc..) Not needed Hacks to ease multi-provider pain rapidly increasing number of them relatively few handful tons # of providers Kinda. Mix of styles. Yes Kinda (biz deals, spotty federation) IM Kinda (URLs?) Yes Yes Global Identifiers Not really (OpenID, kinda) Yes Kinda (DK, SPF, …) Peer authentication No Yes Yes Interop Social Networking XMPP IM Email
How do we improve the situation?
Lot of sub-problems.
Not one solution.
Lots of little steps.
Let’s discuss some of them….
There will be more than one social networking site.
(there are already dozens)
While many sites have niche-/market-/region-specific social apps, many social apps are common, useful on all sites.
It should be easy to write portable social applications that plug into any site (container)
No dependence on Google. It’s just a spec. Open Source reference implementation of container code provided, or make your own.
information about individual people and their relationships to each other
ability to post and view updates on what people are doing
a simple key-value data store to allow server-free stateful applications
Where does the OpenSocial container get its view of the social graph from?
That’s up to the container.
Its own graph.
Somebody else’s graph?
The public subset of the “ Giant Global Graph ”, as crawled from public XFN and FOAF markup?
ACL’d private user data from somewhere?
Merged view of some/all of the above?
Lot of interesting things happening in this space, all very new…
Interesting Things Lately…
Distributed social networking:
XFN, hCard, OpenID, OAuth, etc…
Plaxo.com, FriendFeed.com, Mugshot.org
Aggregate from multiple accounts
Realtime XML stream of public relationship changes
Anybody can submit with OAuth
“ a fake social network, a meta open social network mixing profiles from different social networks.”, uses OpenSocial, FOAF, XFN
Throwing Sheep Between Islands
Not many deep discussions yet, sadly.
Just high-level “wouldn’t it be nice if….” thoughts.
XMPP has been proposed.
Probably a good candidate
Bootstrapping problem: need at least 1-2 largish providers supporting it, and/or many small providers?
Probably a ways off.
What can the developer community do now?
Throw sheep between islands?
XMPP? Harder. Boot strapping problem. Ways off.
Sync friends between islands, then throw sheep at them on each island you visit?
More viable short-term “solution”
When users want to sync their accounts (each account may be a separate persona )
But where to get the data? …
Making it easier for users to get their data out makes them more confident to put data in & use your site.
Exporting public relationship data
“ Friend Of A Friend”
XML RDF files describing profiles, friends, interests, schools, and SHA1_hex(“mailto:” + email_address). Extensible.