The better explanation a system can give for its results, the more useful it is. Results of Prolog programs may appear quite cryptic to naive users, and even experienced programmer may be puzzled by the result, especially if some time has passed since they wrote the program. This paper outlines a suggestion for a system that will generate explanations for results of Prolog programs, which will have many advantages over existing explanation mechanisms. The system will use different verbs for describing actions done by the interpreter, and different explanations for different rule types. It will intelligently prune some steps in the execution trace of the program, and will employ rhetorical rules for creating English explanations. The general approach will include three major elements: extending the expressive power of the language, creating a raw explanation by parsing the execution trace according to a grammar of traces, and dynamic generations of English explanations from this raw explanation.
This paper is not available online