Previous: Semantics Up: How KQML Stacks Up Next: Networking
The two implementations of KQML currently available, the Lockheed KQML API and the UNISYS KQML API, each provides a content--independent message router and a facilitator. Facilitators are specialized KQML agents that maintain information about other agents in their domain and those agents' query--answering capabilities (existing versions of facilitators supply only simple registration services). The application must provide handler functions for the performatives in order for the communication acts to be processed by the application and eventually return the proper response(s). It is not necessary that an application should handle all performatives since not all KQML-speaking applications will be equally powerful. Creating a KQML speaking interface to an existing application is a matter of providing the handler functions. The efficiency of KQML communication has been investigated. Various compression enhancements have been added which cut communication costs by reducing message sizes and also by eliminating a substantial fraction of symbol lookup and string duplication.