Explanation-aware computing is the vision of complex information systems being smart in interactions with their users. It is about improving their explanation capabilities.
The ability to explain reasoning processes and results can substantially affect the usability and acceptance of a software system. But since the demise of expert systems research during the “AI winter” the topic of explanation has not received proper attention. Only recently explanation is seen as a research topic in its own right again.
Within the field of knowledge-based systems, explanations are considered as an important link between humans and machines. Their main purpose is to increase the confidence of the user in the system’s result (persuasion) or the system as a whole (satisfaction), by providing evidence of how the solution was derived (transparency). Explanations are part of human understanding processes and part of most dialogues, and, therefore, need to be incorporated into system interactions.
A helpful tool for designing and developing software systems from an explanation-aware viewpoint is the following general explanation scenario with three participants: user, originator, and explainer.
- The user communicates by way of a user interface (UI) with the whole software system and is the recipient of explanations.
- The originator is the tool the user works with to perform tasks and solve problems.
- The explainer can be seen as another tool that helps understanding how the originator works and what knowledge the originator uses.
This scenario is somewhat simplifying in so far as it does not consider the case where the software system asks the user for explanations or justifications.
Explainer and originator need to have knowledge about each other. The originator needs to provide knowledge about its reasoning process as well as intermediate results and decisions in order to allow the explainer to generate good explanations. The relationship between explainer and originator is somewhat asymmetrical regarding the used knowledge. Whereas the explainer needs to have access to the originator’s knowledge-base (in addition to its explanation supporting knowledge-base) this does not hold for the originator. For its problem-solving task the originator does not need to have access to the explainer’s knowledge-base, but the originator needs to be aware of it in order to fill it appropriately.
The described communication scenario guides our explanation-aware design and development of knowledge-based software systems with explanation capabilities.