In case-based reasoning (CBR) a problem is solved by matching the problem description to a previously solved case, using the past solution in solving the new problem. A case-based reasoner learns after each problem solving session by retaining relevant information from a problem just solved, making the new experience available for future problem solving. Crucial steps in a CBR process include finding a good match to a new problem, adapting a previous solution to successfully solve the new problem, and deciding how to index and store a new case for later effective retrieval. Previous CBR systems relied on syntactic rather than semantic or pragmatic criteria in performing these steps. A comprehensive model of general domain knowledge is needed in order to match cases based on their meaning contents. This has lead to systems that attempt to combined case-based methods with model-based - explanation-based - approaches. Two systems representative of this research, PROTOS and CASEY, are bri...