A development shell for cooperative problem-solving environments

In complex domains such as scientific computing, users need support in choosing, chaining, and executing the adequate programs for problem solving. Problem solving environments are developed in order to solve automatically routine problems, decomposing them recursively in more and more elementary subproblems, and finally executing the corresponding programs. But often, the problem solving process cannot be completely automated; the user is requested to provide missing parameter values, to solve specific subtasks, or to validate input or output data. Besides, the user must have the possibility to supervise the whole problem solving process and all the decisions made by the computer system. He must be able to intervene whenever he wants, either to modify the systems decisions, or his own choices, concerning parameter values for example. SCARP is a shell that allows to develop problem solving environments providing the necessary cooperation facilities for interactive problem solving. Its architecture, structured in different layers, is first presented; then we discuss SLOT, a problem solving environment in exploratory data analysis, developed using SCARP.