A Language for Rule-based Systems
Expert systems are proliferating in many situations in which it is important to capture expertise in a computer system. This type of system is useful in situations in which human expertise is expensive or difficult to obtain or in which the operating environment is too dangerous for a person. Expert systems are used to address the following categories of problems: interpretation, prediction, diagnosis, design, planning, monitoring, debugging, repair, instruction, and control. [Hayes-Roth] Expert system have now moved out of the laboratory and are being used in production environments. Herein lies the problem addressed by this research. Expert systems have traditionally been used in a research environment in which the software engineering of the product is not particularly important. Production environments are much more demanding. The quality necessary for continual use and abuse is not generally built into research quality expert systems. The problem is further exacerbated when an expert system is to be embedded in an autonomous system for which human interaction is difficult. (For example, an expert system could be used to drive a robot in a hazardous environment. If the expert system fails, it may not be easy for a human to reach the robot for repair.) Quality in these situations is vital.