[comp.ai.digest] Software engineering and expert systems.

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."