france@VTOPUS.CS.VT.EDU (Robert France) (02/04/88)
Regarding the discussion by (among others) Ron Jacobs and Will Neuhauser, we have also tried applying the basic software engineering principles of modularity and information hiding to expert systems construction, and can report good success. For about the last four years, a group of graduate students under the direction of Ed Fox has been working here at Virginia Tech to build a large expert system to test the applicability of knowledge-based techniques to information retrieval tasks. Faced with the size and volatility of the intended system, as well as the amount of knowledge it is intended to use and the size of the research community involved in its construction and use, we opted for a highly modular design. Basically, the system is broken down into domain experts, each with its own rule base and inference style. This sounds pretty close to the approaches of Messrs. Jacobs and Neuhauser, and is really the obvious countermeasure to the problems of unwanted inference and rule inter- action. The intention is to have a set of generic inference engines; at the moment I think they are all either forward- or backward-chaining rule followers. These experts all communicate through a blackboard that serves both as a communication interlink and a summary of the system state at any point in the task. State information on the blackboard then provides the data for task planning by a separate module called the *strategist*, that tells the experts (in general terms) what to do. The system also has large fact bases shared among the experts and a separate user interface module. Details of the design can be found in: Fox, Edward A. and Robert K. France. "Architecture of an expert system for composite document analysis, representation, and retrieval." *International Journal of Approximate Reasoning* v. 1 (1987), pp. 151-175. We are currently working up a paper on the details of the blackboard/ strategist complex and the implementation of the initial version of the system: anyone who wants a preprint can send me a line, and I'll send out copies when they're available. The good news is that we have a minimal functional system at this point (Just. We're still congratulating ourselves before we start running experiments comparing it to classical information retrieval methods.) and that the modularity contributed highly to both ease of construction and ease of modification. We were even able to take experts imple- mented as stand-alone modules and integrate them into the system with a minimum of fuss and bother. Further, while the modularity means that the system has a *lot* of potential communication overhead, the cost is less than we feared (it is, for instance, overwhelmed by the cost of inferential processing) and bearable (most system operations take less than a second running on a lightly loaded VAX 11/785, even if they involve moderation by the blackboard and scheduling activity by the strategist as well as activity by the called expert). And this in the relatively unsophisticated implementation of `Version 1.0'. To sum up, our experience with expert system modularity is that it is practical, functional, and that it greatly eases system constuction and modification. But then, isn't that what the software engineers told us to expect? Cheers, Robert France france@vtopus Department of Computer Science Virginia Tech Blacksburg, VA 24014 "It doesn't stop; it doesn't even slow down."