Behavior, Content, Money – 3 Things you should never give away for free!!!

BCmoney MobileTV

FOAF and the Facebook Death Star

Posted by bcmoney on May 18, 2012 in E-Business, JSON, Semantic Web, Web Services, XML with 2 Comments

No Gravatar
An updated SVG of the FOAF logo...

The Facebook Death Star

Since the February confirmation of the Facebook IPO, Facebook has continued to stagnate in user-base yet as an organization it holds no punches as it attempts to grow internationally, and its stock price continues to soar as Class A shares finally open up to the average person (major investment firms had first dibs at the initial Class A shares released during the IPO). Facebook founder and owner Mark Zuckerberg maintains 58% control of the company through complete control of Class C shares and veto power over all Class B shares. This is indeed shaping up to be a new Galactic (global internet) Empire, similar to that sought by a young Annakin Skywalker in Revenge of the Sith. The new schematics for a seemingly unstoppable battle station would be the carefully-timed Facebook Timeline rollout along with Facebook Connect and OpenGraph protocol. So if one can draw vague parallels between Mark Zuckerberg and Darth Vader, who can play the role of the Emperor? An obvious choice would be early angel investor Petr Thiel of PayPal, but a more appropriate figure is Microsoft CEO Steve Ballmer, whose company owns approximately 2% of Facebook:

Symbolizing Facebook as the death star is hardly a new concept, just check out these previous references.

Enter the FOAF project and its RDF/XML data format for representing friendship connections in a social network, as well as personal interests and contact info. Although the FOAF file format is designed first of all to be machine readable, it is often desirable to be able to browse it as if it were a usual Web page.

In this sense, FOAF plays an important role as fulfilling the “porthole” metaphor to the otherwise indestructible empire’s most frightening tool of all, the Facebook Death Star. Now I should make it perfectly clear, that I have nothing against Facebook in particular. In fact, since the social network’s inception in 2004 (and widespread open launch in 2006), I have been a user from almost day one, according to Facebook I joined just three days (two days if you subtract the 13 hour dateline from the Tokyo timezone, as I was living in Japan) on September 29th, 2006. Back then, Facebook was nothing more than a slightly useful private, yet sharable (with your select list of contacts only) address book. My issue comes with the hype that surrounds it today, as well as their increasing assault on personal privacy.

Since they have continually relaxed their privacy policy, I’ve personally deleted more and more of my private information (or intentionally left it out of date) and have attempted to lock my profile down as much as possible. See the following infographic (click on the infographic to see the demise of privacy on Facebook over time):
Privacy on Facebook

Initiatives like FOAF+SSL combined with a Single Sign-On authentication mechanism like WebFinger or OpenID and an authorization mechanism like OAuth provide an excellent alternative to storing your personal information and online activities in Facebook. The problem is that updating and storing raw XML or JSON data or writing your own web application to keep track of pings from various web services is way beyond the technical understanding (or desired use of personal time) of the average web user. Thus, Facebook came along and filled a void in an incredibly useful manner, by providing the easiest to use UI and many features. The question, which many projects such as Elgg and Diaspora have tried to answer, is whether its possible to provide a similar service in a more open and transparent, de-centralized manner that puts users’ privacy at the forefront of its advantages.

The Facebook Death Star

Other applications skip the schnazzy and flashy “information sink-hole” features of Facebook which are designed to get more and more personal info from its users, instead opting to provide a simple visual representation of raw FOAF data. For example, the now defunct MyBlogLog which was a personal blogging platform that got acquired by Yahoo! in 2007 only to be disbanded in May 2011. While operating, it offered a raw FOAF export version of blogger profiles and blog community connections.

Kent Brewster, then a Yahoo! employee, created a prototype visualizer for FOAF relationship objects, which mashed up MyBlogLog FOAF objects with links to other online Social Network accounts associated with a user’s MyBlogLog, creating a cyclical graph node browser complete with breadcrumbs:
FOAFster. What FOAFster allowed you to visualize was profile images for a bunch of FOAF contacts (friends), scattered around the screen, and network services accounts owned by a particular person, in a much neater line at the top.

When the MyBlogLog service was finally shutdown, the last remaining service for lightweight, client-side FOAF profile visualizations became FOAF.vix, a visualizer and relation explorer for standalone, single-user FOAF files. This is an excellent little tool created by Wojciech Polak which can act as a quick and dirty “FOAF Importer” for any social media app. The only thing missing is an answer to the question “where will all the FOAF data come from?” The answer is quite simple of course. For most of us, we have already created a rich personalized FOAF file; the only problem is that it is stuck in our Facebook profile. However previous attempts to allow the export of this valuable personal data have thus far been squashed (by throttling, blocking or removal from Facebook App repository altogether).

So today, I’m releasing a snippet of code from OpenRecommender which will ultimately be used in SkipSearch, a new front-end Recommendation Engine for all types of content. The code allows you to do just that, export a snapshot of your Facebook profile as a shiny new FOAF document, that can be backed up on your own computer/devices and used to import into other services (although I’m not necessarily encouraging that, just trying to empower users with potential to backup and a little choice). As usual you can run a quick demo or download the code snippet used:


Facebook’s IPO is sure to make a splash today, but my only hope from this post is that people keep the hype in check. Be reminded of the last Web boom & bubble burst, as more and more companies with small competitive differentiation and modes revenues such as Facebook, Zynga, LinkedIN and Grouper gain astronomical IPO valuations. At the same time, I wish Facebook, as well as their employees and investors all the best during what is sure to be a tumultuous time. Please keep your feet firmly planted on the ground and don’t get any “delusions of grandeur”.

Lastly, I encourage everyone with the technical expertise to do so, to take the code snippets provided (before its too late and the Facebook Death Star closes its FOAF porthole), and integrate FOAF import/export capabilities into your own Facebook Applications, to ensure that in the aftermath of the IPO, you are not at Facebook’s mercy if they decide to start charging for access to their API or blocking attempts to crawl the social graph. Rest assured though, there will always be a weakness in their defences, and there are more than one way to scale the seemingly impenetrable data wall… I welcome other ideas and methods of getting your friends/contacts and interest data out of Facebook, to allow more data portability. Please add your thoughts in the comments area!

UPDATE: (2012-05-18): It seems like since posting this, both FOAF Generator and GiveMeMyData are back in operation with revamped versions. Hopefully they also make use of a similar single API request graph-generation method rather than repeatedly crawling the Facebook Graph API, otherwise we all risk the same blocking as before.