blogs.conchango.com

welcome to the conchango blogging site
Welcome to blogs.conchango.com Sign in | Join | Help
in Search

SSIS Junkie

Conchango are busy and need top level Technical Architects for Microsoft & Open Source platforms in and around London. Interested? Email me or send me a message

FOAF

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:

<rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
      xmlns:foaf="http://xmlns.com/foaf/0.1/"
      xmlns:admin="http://webns.net/mvcb/">
    <foaf:PersonalProfileDocument rdf:about="">
        <foaf:maker rdf:resource="#me"/>
        <foaf:primaryTopic rdf:resource="#me"/>
        <admin:generatorAgent rdf:resource="http://www.ldodds.com/foaf/foaf-a-matic"/>
        <admin:errorReportsTo rdf:resource="mailto:leigh@ldodds.com"/>
    </foaf:PersonalProfileDocument>
    <foaf:Person rdf:ID="me">
        <foaf:name>Jamie Thomson</foaf:name>
        <foaf:title>Mr</foaf:title>
        <foaf:givenname>Jamie</foaf:givenname>
        <foaf:family_name>Thomson</foaf:family_name>
        <foaf:nick>tommo</foaf:nick>
        <foaf:mbox_sha1sum>790ee6c822d243bd3be082ed7f2ef088f97fd855</foaf:mbox_sha1sum>
        <foaf:homepage rdf:resource="http://jamiethomson.spaces.live.com"/>
        <foaf:workplaceHomepage rdf:resource="http://www.conchango.com"/>
        <foaf:schoolHomepage rdf:resource="Horsforth School"/>
        <foaf:knows>
            <foaf:Person>
                <foaf:name>Betty Boop</foaf:name>
                <foaf:mbox_sha1sum>e0bc2b090650d4f4019475a8d3c2b1fafe885554</foaf:mbox_sha1sum>
                <rdfs:seeAlso rdf:resource="http://www.bettyboop.com/foad.rdf"/>
            </foaf:Person>
        </foaf:knows>
    </foaf:Person>
</rdf:RDF>

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:

FOAF is providing a mechanism for me to link to Betty Boop's own FOAF file, thus defining my social graph. 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.

 

FOAF deserves to conquer the walled-garden social networks because its closer to how the web works. How it was always supposed to work. As Dare Obasanjo points out:

"...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.

-Jamie

 

Cross-posted to here.

Published 24 November 2007 06:44 by jamie.thomson
Filed under: , ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

Nick Zadrozny said:

Interesting post. Especially in light of Tim Berners-Lee's recent post about the state of the social graph. I agree that 'when' is the real question — I'm working on a project right now with a few others that lets users break their social graph out of the walled gardens and into an easily accessible place. We've got RESTful XML in place and I'm personally adding FOAF export support this week.

I think there's a huge amount of potential for creative uses of this data. How would you personally use a FOAF export of your social network?

Also we're looking for some early alpha testers some time early December if you're interested. Just drop me a line at nick@beyondthepath.com :)

November 24, 2007 22:40
 

Andy said:

FOAF sounds like it has lots of potential as it's social network independant. It should not be too difficult to generate a FOAF file from facebook or myspace data.

However it also raises the question of do you really want to share all this information on the internet?

If for example everyone linked to their parents and they in turn linked to their parents then someone with a robot could easily get a list of names and mothers maiden names which could then be used in identity theft. Of course a simple solution for this would be for banks to stop using maiden names but this is just one obvious example, there could be other synarious that have not been thought of yet.

November 26, 2007 12:32
 

jamie.thomson said:

Indeed Andy, you're absolutely right. I firmly believe that there is an advantage in being completely in control yourself though. It will be interesting to see how it plays out...I certainly won't predict what or when it will happen.

-Jamie

November 26, 2007 15:02
 

Anthony.Steele said:

Very interesting, but how would you go about doing something useful with it, like showing posts to only people on your friends list? it's a solvable problem by exchanging tokens with the agent at those URLs, but has it been done?

November 26, 2007 18:48
 

jamie.thomson said:

Hey Anthony,

This question, and many others, remain unanswered. Delegation is an area of this I haven't looked into yet but I think it has a part to play in conjunction with OpenID.

-Jamie

November 26, 2007 20:06

Leave a Comment

(required) 
(optional)
(required) 
Submit

This Blog

Syndication

News

Powered by Community Server (Personal Edition), by Telligent Systems