Peter G. Selfridge
Representing knowledge of software and software systems is an important research area and a prerequisite to engineering expert-level systems to do software tasks. Printing a file in a UNIX environment is an example of a real-world problem that can pose surprising difficulties to UNIX users. The printing of files is also illustrative of a class of software problems characterized by the recombination of existing programs. Automating the printing process involves desigining knowledge representations to appropriately capture knowledge of both the printing software and the printing process and desigining a reasoning system that uses those knowledge representations in a working implementation. This paper examines the printing problem in detail, presents a model of printing and printing software, and describes an implementation designed to test the model and identify the next set of research issues. The implementation, ESP for Expert System for Software, successfully automates the printing process and illustrates a knowledge-based approach to software problems.