Thursday, April 19, 2007

Self Learning Systems

It was yesterday around lunch time when I went out to buy myself lunch I got this thought. Been working in Software Development for more than 11 years now, I sometime get this feel that computers are nothing more than a dumb orderly. I still remember when someone (don't remember the name) explained me the Expansion of COMPUTER (Completely Obedient Machine Provided User Types Everything Right) first time. Not sure how correct this expansion is but it sounds very much correct in context of computers.

Coming back to the idea what I had. I was thinking if we can put in a place a mechanism to store the last user response to a certain user query; I am sure we turn this dumb machine to something more intelligent. Say for example I query for Pizza Order for Morningside, Brisbane with delivery option available after 10pm. There are different pizza shops in the same suburb. They will publish their services in regard to which suburb they can deliver, if they have a time limit for delivery etc. First time my computer does not know about which vendor to choose. But say I select a pizza vendor I know is good and place next request to get the menu from the vendor. After selecting the Pizza from the menu I place the order and pay by my visa card. Next time if I place the same request it should be able to query the vendor and get the menu in front of me from the vendor. At this point the computer the intelligent system will be able to tell me that last time I ordered the Chicken Pizza and paid by my visa card. Whether I would like to continue with the same or want a different pizza or want to pay by cash or some other card.

Where I am coming from is. The system in this context is not just able to obey my order but is also able to suggest me based on the previous decision I made. So next time on the system is exhibiting the intelligence and knows my preference as well.

In order to build such a system we need:
  1. Client Agent which will store the user query and also the results along with a validity (if applicable).
  2. Server Agent with whom the client will be interacting and passing on the query for which the client agent does not have the answer.
  3. Global Service Database where every vendor's services are listed.
  4. Query Server to perform query based on the parameters supplied. Also queries should be based on the meaning. Not just the attributes. eg. If I am after the pizza shop in Brisbane, Australia it should not bring back the results for Brisbane, California.
  5. The queries should be based on Ontology so that more meaning can be added to the Search criteria.
  6. The services published also have some sort of Ontological Commitment so that it can be retrieved by the Query server.
If we have similar kind of infrastructure in place. I am sure we can achieve an intelligent computer (and a computer network in-turn) and realize the vision of Semantic Web.

Until Next Time...:)


Pramit Singh said...

Good article in Semantic technologies, Samir.

Ajit told me to have a look here and I wasn't disappointed.