Thursday, June 23, 2005

Semantic Web

I think the history of computing can be divided into a few distinct stages based upon how it fits into office/technical life and its relation to knowledge workers

1) Computers are used solely for calculation - as an executive you need to contact someone in your computing division who will take your requirements and make a set of punch cards to get your answer. Communication is done by the secratarial pool which will transribe your dictations and mail your letter.

2) In 1980, the personal PC brings an age of removing one intermediary - a user can start to do their own calculations (advent of Lotus 1-2-3 etc.) and may even type their own letters (Wordperfect), but mail and (eventually) fax still is the only easy way to send/receive information.

3) With the advent of email (the internet's killer app), communication is instant and coupled with the ability of a user to create their own documents, it effectively brings about the end of secrataries in the traditional sense. Only senior exectives have a PA now, whose role has expanded to include other tasks beyond data entry and communications management.

I think the next big wave will be 'agent' software. Currently many major websites expose their functionality via web services, however without a semantic understanding of these services, you need to 'hard-code' logic for each service you want to interact with. If one was to write an agent to say, find the cheapest price for a book - you would need to know first of all, which online stores sell books, but then you also need to know the data format for each, in order to properly query each service.

However, I think once content starts to become semantically tagged, things will start to become more obvious to agent software and the potential for a 'personal secratary in your PC' will become real. However there are many hurdles to overcome. Take the simple order "Ask Jay if he wants to go for a ride this weekend and find us a good route" contains many potential pitfalls for any automated system - it would have to infer many things from that sentence.

1) Jay is a shortform for Jason
2) I know many Jasons, so how it would have to know that the email was personal and not business related, eliminating some of the potential recipients
3) Of my friends Jason, it would need to know that only Jason Prini lives in the same city that I live in, and riding is likely a local activity.
4) And last, by riding - it would need to know by our personal interests that riding is bike riding, not say, horse riding.
5) Finding an appropriate route would require access to a map system with metadata information (indicated bike trails or safe roads).

Each of those tasks on it's own is a potential programming nightmare. Agent software would have to be able to draw upon many sources to obtain this understanding of the world, including sources like Wikipedia, Google Maps, my contacts, my past correspondence with Jason(s) and my habits and preferences in general (which can be devined from emails and blog postings)

This framework is gradually being built internally in disparate parts of the web - Amazon knows what books I like, Flickr knows some of my friends and what pictures I take and like (and where I was on certain dates). The key will be drawing this together in a unified framework.

A good place to start reading is the Wikipedia Article on the Semantic Web. And as always, Cringely has some good articles. Of course, once your computer can understand in every sense, you don't need a keyboard or even a monitor for most tasks. I think that computing is becoming interesting again.

;-)

No comments: