Date Added: May 2009
The authors propose a new focus in language design where languages provide constructs that not only describe the computation of results, but also produce explanations of how and why those results were obtained. They posit that if users are to understand computations produced by a language, that language should provide explanations to the user. As an example of such an explanation-oriented language they present a domain-specific language for explaining probabilistic reasoning, a domain that is not well understood by non-experts. They show the design of the DSL in several steps. Based on a story-telling metaphor of explanations, they identify generic constructs for building stories out of events, and obtaining explanations by applying stories to specific examples.