Short Primer on the Social Web (as defined by FOAF, XFN and WebFinger)

Since its creation, the Web has proven itself as a great social platform. Though we've come along way from talk, BBS's and chat rooms, there still remains a big problem with social software on the Web, that of identity.

As it stands today, my online persona is split in a hundred different ways. Am I or What about and Of course, I am all of these, but if you only follow me on Twitter or friend me on Facebook, you'll only see a sliver of my online identity (unless I do a bunch of work to cross-post all of my content to all of my accounts, which just annoys anyone following me on more than one of them).

So what is the solution? The solution is to build the fabric of this social landscape and content into the Web itself. Just as the original Web was built on the idea of linking documents to one another, the Social Web is built on the idea of linking:

  1. People to one another
  2. People to the content they author and sites they own

The two main technologies involved in enabling this linking are FOAF and XFN. What FOAF allows me to do is create one or more files that list my online accounts and my friends. XFN allows me to do the same thing on a case by case basis when I link to something. For example, to link to my Flickr account, instead of the usual:

<a href="">My Flickr Account</a>

I could use:

<a href="">rel="me">My Flickr Account</a>

That rel="me" is part of XFN and allows web crawlers, like search engines, see that I consider that link to go to a page of mine. If that page also has a rel="me" link back to this page, then the search engine can deduce "Well, the author of this blog post claims that this page of photos is his and the photographer that created these photos claims that he also wrote this blog post, so they must be the same person." / Creative Commons

As FOAF and XFN get incorporated into all of the sites I have accounts on, a web of all of these rel="me" links will start to grow, as each of my pages links to the others. This is a big step forward as we will have a way of aggregating all of someone's publicly available content. However, a big question arises, how do we refer to this little "web", a subset of the Web itself?

Another way of asking this is, how do we identify this web of pages? The natural desire is to identify it as me, but there has never been a good way of identifying an individual on the Web. This is where our last technology comes in, WebFinger. (For the geeks, WebFinger is so named because it acts as a Webified version of the old finger protocol that was ubiquitous on Unix systems.) Basically, WebFinger is a way of taking something that looks like an email address (and may very well be one) and using it to uniquely identify an individual on the Web. It also allows for associating some metadata to that individual. One possibility would be to associate a FOAF document with the individual.

So, what does this buy you? Well, recall that a FOAF document can contain a record of all of the various accounts you hold online and who all of your friends are. In other words, it can identify all of the nodes in this "web" that we've associated with you. Now, with WebFinger, we have a name for this web.

This isn't as pie in the sky as it sounds, either. Google has taken the step of enabling WebFinger on all GMail accounts. So, if you have a [your name] email address, then that can now act as a WebFinger identifier. If you spend some time filling out your Google Profile, Google will build you your own little web and name it [yourname] In fact, this acts as the underpinnings of Google Buzz.

Now, there are a lot of details I've left out and doubtless some that I've gotten wrong. My purpose here is not to be a definitive reference for all things FOAF, XFN and WebFinger. Instead, I just wanted to open some eyes to the possibilities and lay some groundwork for an idea on how we can better get ourselves unhitched from the silos that are Twitter, Facebook and every other social network out there.