Multiagent Architecture
For query functions, a set of multiagents is used generated from the INDEX environment described in [7]. Agents in this environment, unlike other agent systems such as those described in [5] and [6], work with a semantic knowledge base contained in the Jena middleware. The agents plan and execute interaction with Jena in order to satisfy user requests. The individual agent activities are coordinated within a Java based environment in which activities are taking place concurrently, i.e. agents are carrying out their designated routine tasks. The general multiagent coordination infrastructure supported by the INDEX environment is illustrated in Fig 6. The actual implementation of the framework only includes the Accommodation domain to this point in time. The ‘Car Hire’ and ‘Airline’ domains are included in Fig 6 to show how that architecture is designed to allow other domains to be added at a later time. The numbers shown in Fig 6 correspond to the key processes below
1. Coordination agent instructs domain agents to crawl the Internet to update domain ontologies and search for RDF annotated Web sites.
2. Domain agents search for and download relevant domain ontologies from the Web.
3. The ontologies are sent by the domain agents to the Jena agent whom is responsible for interacting with the Jena middleware application.
4. Having established a connection to the Jena middleware, the Jena agent creates a Jena ontology model and saves the model using Jena’s persistent storage capability linked to a backend database.
5. Domain agents crawl the Internet searching for and downloading Web pages with RDF markup containing a matching namespace to their domain specific ontology.
6. Domain agents extract the RDF annotations from the Web pages and send them to the Jena agent.
7. The Jena agent, having maintained a connection to Jena middleware writes the extracted RDF markup into the relevant ontology model contained in the persistent storage database.
8. End user issues requests for a travel service via the GUI.
9. GUI accepts the user request, converts the request to an XML form and sends it to the interface agent.
10. Interface agent receives the user request and transforms the task descriptions into technical specifications which are then are passed to the Coordination agent.
11. Coordination agent divides tasks into subtasks, formulates a plan and allocates subtasks tasks to domain agents.
12. Domain agents formulate a number of possible solutions to their specific tasks and convert the solutions into query specifications. The query specifications are each given a ranking based on best match to user request. Specifications are then sent to Jena agent.
13. Jena agent converts the query specifications into RDQL query language format using parameters and predefined query templates. Jena agent also invokes the Racer reasoner to classify the ontology models which now contain both schema and instance data for each domain. Jena agent then initiates RDQL queries over the inferred ontology model.
14. Jena agent retrieves the query results from the reasoner.
15. Results are sent back to the domain agents.
16. Domain agents sort the query results into their ordered hierarchy and send them to the coordination agent.
17. Coordination agent confirms that a solution has been found. It determines how results are to be displayed (order and number of hits etc) and sends the requirements and results to the interface agent.
18. Interface agent converts the results to HTML, formulates a page layout and passes results to the GUI.
19. GUI displays the results to the end user.
Accommodation Query Example
A tourism customer issues a query selecting a 5 Star Hotel/Motel with a swimming pool, bar, restaurant and valet parking. Room facilities are to include pay TV and air-conditioning (see Fig 7). The attractions hiking and surfing have also been selected in the search criteria. The customer is flexible about the exact location of the resort so has left the Location check box blank. Victoria (Australia) is the preferred state. Once the user presses submit, the query is processed by the agents.