My brain is presently in overload as I try to wrap my head around all the concepts of the semantic web. I thought I might as well try to get my thoughts out here, to help other people, and to selfishly help myself out (by either just clarifying my thoughts, or by being beaten by a stick from those in the know).
So, why should one care about the semantic web - isn't web 2.0 doing just fine by being oblivious to this semantic web thing? I guess so, but then, the web 2.0 is a bandwagon anyone can jump on (and as an aside, my blog is now largely web 2.0 :p). Web 2.0 is all about, in my opinion, making the web a more user-focused place. Semantic web is all about (once again, in my opinion) all about making the web a more usable place.
Web 2.0 == User-focused?
All web 2.0 sites are about making the web do things it has never done before, using technologies like ajax. We all marvel at google maps, del.icio.us, etc, etc. It's amazing - the web makes my life easier, or at least, more convenient. It also makes me more social in a geeky kind of way. I can now see what other people bookmark when I tag my bookmarks with a particular keyword. The opportunities explode really.
But Google maps, del.icio.us, etc, etc all have a common theme (if you don't dig too deep) - they use meta-data to make the experience more valuable. What would Google maps be without the additional information about where places are. What about the whole basis of del.icio.us - tags? Without them, and what they can do when computed and commonalities found, del.icio.us would be nothing more than a static html page where I post my favourite links.
Semantic Web....Usable for who?
So.....meta data huh? That's pretty web 2.0 I hear you all saying. The other thing that can use metadata is of course the computer you are sitting in front of right now (don't worry - I'm not watching you). Imagine if there was a way for me to explain to the computer my details, and my friends. Imagine if my friends could do the same. Essentially, we'd be building up a big web of friends, and in a way, making a dynamic address book (insofar that I don't need to update my friends details, as I will simply be linking to his profile remotely). Well, it exists - the FOAF project is all about this. It builds on top of technologies such as RDF to allow people to make their own 'foaf files'.
I have one here. My one is in a pretty pitiful state at the moment - but that doesn't matter - I can update it as time progresses. Imagine if OldFriends gave each user account a FOAF file (or alternatively let them link in their own foaf file). I would love the opportunity to add all these old friends of mine into my foaf file.
You're probably all wondering, why bother doing this? Well, for me, two reasons:
- I can visualise these people in a program like Centruflow. Imagine being able to see all your friends in what is essentially an constantly updated, and fully distributed address book. I could discover lost friends by navigating to the friends of my friends, and further out ('To Infinity....and Beyond!').
- I never maintain address books, as they are always my responsibility to update. FOAF is all about making each individual only have to worry about keeping their address book up to date
So....FOAF is the semantic web....seems kinda sucky?
No, FOAF is just an application built on top of the semantic web. It offers a small glimpse into what is possible when we give our computers a little structure to the information. You've probably noticed my site lists my contact details on the side - this is of no use to a computer really. My FOAF profile gives the computer everything it needs to help you.
So what are you doing again?
My work right now is on making it easier to get data from all over the semantic web (or just straight from the web in terms of databases), and making it possible for a computer to make far more sense from it. Want to say "I'm interested in things related to this widget here"? How would you do that now - go to Google and search through the results? My research will automatically give you suggestions on this kind of thing, but not based on computer-decided result, but on how people tag and inform the system using metadata. My work won't be on the internet, as it will initially focus more on individual business intranets.
This explains why my head is exploding - I'm needing to learn a lot of technologies to allow for this work to be done.