Where are the Semantic Agents?
James Hendler asks Where are the Agents?. By "agents" he means semantic agents, such as an agent downloading OWL ontologies from various services then using a theorem prover to deduce new facts and thus create new connections among the data. A simple example would be an agent that retrieves a list of apartments for rent from craig's list and understands their address descriptions well enough (we assume these are semantically marked up) to determine their location and plots the ones within 20 miles of the user's work location in google maps. A more complex agent would use a common sense knowledge base, like cyc, to determine what "no pets allowed" means and couples it with the fact that the user has two dogs and that "people with dogs are unlikely to give them up when they move" to discard listing with such a policy.
First of all, I want to point out that there are two types of multiagent research. At one end of the spectrum are those that are interested in building complex systems that emerge from simple behaviors. The goal here is to achieve a desired emergent behavior while keeping the individual agents as simple as possible, BitTorrent is a good example. At the other end are those who are interested in building semantically sophisticated agents with solid inferencing capabilities. Hendler is specifically concerned with this second group of agents and he wonders why we have not seen more applications or research into them. I can think of several reasons:
- Building semantic agents quickly becomes the AI problem. In their Semantic Web article, Berners-Lee, Hendler and Lassila give the following example:
At the doctor's office, Lucy instructed her Semantic Web agent through her handheld Web browser. The agent promptly retrieved information about Mom's prescribed treatment from the doctor's agent, looked up several lists of providers, and checked for the ones in-plan for Mom's insurance within a 20-mile radius of her home and with a rating of excellent or very good on trusted rating services. It then began trying to find a match between available appointment times (supplied by the agents of individual providers through their Web sites) and Pete's and Lucy's busy schedules. (The emphasized keywords indicate terms whose semantics, or meaning, were defined for the agent through the Semantic Web.)
As a software developer I can see that it would be fairly easy to develop a specialized "appointment-finder" agent that will implement the required functionality, assuming that all the relevant data is available. However, Hendler seems to be asking about a more general "personal-assistant" agent who will not only do this one task but also be able to recommend good restaurants, find a pet grooming service, plan my trips, etc. That requires general intelligence. It is the big AI problem which no one has been able to solve, yet. - There are no incentives to generalize. Say I am building a trip planning agent which gathers information from various sources (plane, hotel, amusement reservations) along with the user's preferences and generates a schedule. I will first start using a few sources and hand-match them their terms (Delta:starttime is the same as USAIR:departuretime) to make sure my scheduler works. At this point I have a product which I can roll out on my website. Then, when I want to add a new airline I will need to go in add code support for their ontology. I could argue to my program manager that we should scrape the whole thing and use a general theorem prover to semantically match any new sources, all at a cost of several man years. Or, I could just write a few lines of code and have the new airline integrated by the end of the week. The decision is clear: demo or die. In the academic world we have a similar dictum publish or perish. Simply put, developing such a large software system would take several man years during which the professor and his students would not be able to publish anything and, at the end of which there is the high likelihood that the whole thing would not work anyway. Thus, very few are willing to take the risk.
- Keep It Simple I have posted before on the growing reluctance to use SOAP. We find that Google has canceled their SOAP API in favor of an AJAX Search API. The guys from flickr have said
Butterfield: On the strictly practical side, I think we had one person inquire about using the SOAP version of the API. I don't know if any apps were actually built. There is at least one application built on XML-RPC. But all the others--I don't even know how many there are--are built on the REST API. It's just so easy to develop that way; I think it's foolish to do anything else.
It does not matter how good a technology might be if no one uses it because it is too complicated. The proliferation of acronyms: SOAP, WSDL, UDDI, BPEL4WS only makes it worse. They are all DOA. - First, make it work on one machine. Every programmer knows that it is much easier to write a single threaded program than a distributed/parallel program. Thus, the first version of every program is centralized. We are only now starting to see software that can integrate knowledge from various sources using ontologies. Once this software becomes commonplace then we will start to see it used in multiagent systems.
Of course, I do believe that the semantic web is a fantastic technology and, just like general AI, it will someday revolutionize the world. But, economic and practical realities mean that it will take some time. I have mentioned that the likely path to success is via incremental improvements. We are seeing more and more companies implementing simple semantic inferencing techniques (using mostly RDF) on large corporate databases. They are integrating the disparate databases of large companies and thus allowing them to get a single view of all their data. They are thus centralized, but that is the first step. The current interest in mashup websites and the appearance of tools such as Yahoo pipes are the first step in building semantic agent applications. They are exploring what is currently possible by using a just a little bit of semantics. If they become popular then we will gradually see more and more sophisticated semantic inferencing mechanisms used.


Where are the agents discussion
We are discussing these ideas over at the Where are the agents post.