Data Provenance and Computer Software Explanations

in which the phenomenon to be explained is the production of certain information, typically by a computer program or database system, and the explanation describes its sources, their interplay, and the steps by which they are computed.

Computer software is complex. When that software produces a result, it may be important to reproduce that result at a later time. For example, if the software is a simulation of the world's climate, and it reaches a threatening conclusion, it may be important to be able to determine all of the inputs to the simulation and the major computational steps taken in order to convince others of the validity of the output.

Similarly, when the software does not run as expected, we want to know why, so we can correct the software. The process of explaining the invalid output is called debugging.