This week I was intrigued to read a blog entry from Yaron Goland that pointed to this video from the canadian privacy commissioner. The video seeks to educate canadians as to the perils of submitting data to online social networks and its well worth a couple of minutes of your time to go and read it.
Yaron moved on to talk about an open social network. One where we all host our own data and don’t rely on a multitude of walled-garden "providers" (you know them all by now) to do it for us. Yaron says:
"we could really use a real OpenSocial. It wouldn’t even be hard. Take a dollop of standardized data schemas, a side of REST and sprinkle some OpenID on top and you are basically there"
He’s spot on of course and in fact the standardized data schema that he talked about already exists. Its called Friend-of-a-friend (FOAF).
You probably haven’t heard much about FOAF. Well in short it is a specific schema built on top of the Resource Description Framework (RDF). RDF is basically a way of describing stuff in a machine readable format and FOAF is a specialized version of it where the "stuff" in question is people. What’s really cool about FOAF is that it enables you to provide as much or as little information about yourself as you like and also point to the FOAF descriptions of all your friends as well. The really crucial part of it is that you host it yourself – you don’t have to have some corporation doing it for you and that is why FOAF needs to have its day in the sun.
Do you want to see what a FOAF description looks like? Well OK, here’s mine:
<foaf:schoolHomepage rdf:resource="Horsforth School"/>
I didn’t want this blog post to get TOO technical but just give me a moment OK. As you can hopefully see FOAF (and thus RDF) is an XML grammar. That means that it is self-describing so a relatively untrained eye can look at this and instantly be able to know stuff about me. You know my name, my title, where I went to school, where I work and the name of one of my friends (who you will notice I’ve actually made up in this case). If I didn’t want you to know any of that stuff then I could just remove it all and this would still be a perfectly valid FOAF document that could be read and understood by a machine. Where it gets really powerful is when you consider this line:
- <rdfs:seeAlso rdf:resource="http://www.bettyboop.com/foad.rdf"/>
FOAF is providing a mechanism for me to link to my friends’ own FOAF files, thus defining my social network. And I didn’t require one of the big name social network "providers" to do it for me.
So, FOAF takes care of the "standardized data schema" that Yaron talked about. Now how about that "side of REST". Ostensibly that’s not too difficult either, all I need is somewhere to host it such as http://www.jamieshomepage.com/foaf.rdf and the job is done. Unfortunately I don’t have such a place where I could host it so I’m a bit lacking here – I’ll talk about that a bit more in a blog post I plan to write in follow-up to this one.
The third thing that Yaron talked about is OpenID. I don’t know much about OpenID except that it is a distributed authentication model for the web – the idea being that if everyone supported OpenID then you would only ever need one username and password to access everything that is out there. At the moment I don’t know how FOAF and OpenID would fit together because I don’t know anything about OpenID, but I’m going to endeavour to find out.
So, if I’ve managed to sell you on the fact that FOAF is the answer to our privacy and and walled-garden ills then the next thing you are going to want to do is go and build your own FOAF file, right? Happily that is dead easy because Leigh Dodds has provided a tool that enables you to do just that. Go to http://www.ldodds.com/foaf/foaf-a-matic to have a go. Once you have got your FOAF file hosted somewhere, let me know and I might list you within mine.
"…the web will win. Everyone who has fought the Web has lost. Facebook will not be an exception."
Really the only question to be asked is not if this will happen, but when.