Case-based reasoning has been formalized for purposes of computer reasoning as a four-step process[1]:
- Retrieve: Given a target problem, retrieve cases from memory that are relevant to solving it. A case consists of a problem, its solution, and, typically, annotations about how the solution was derived.
- Reuse: Map the solution from the previous case to the target problem. This may involve adapting the solution as needed to fit the new situation.
- Revise: Having mapped the previous solution to the target situation, test the new solution in the real world (or a simulation) and, if necessary, revise.
- Retain: After the solution has been successfully adapted to the target problem, store the resulting experience as a new case in memory.
The complexities associated with programming and implementation of a knowledge management system based on case histories is both non-obvious and difficult, but ironically this is the actual process that an expert physician uses in his day to day clinical work.