Wrapping Mathematical Tools

This paper discusses the problem of making mathematical tools more usefully available to a heterogeneous modelling environment. The goal is to make explicit both the knowledge embodied in existing programs and their styles of use. The approach is to “wrap” each existing program with an expert system that contains a description of the knowledge of the program, so that other components of the environment can interact usefully with the wrapped program. The wrapping is a kind of smart interface filter that allows a computational program to be a component of the environment. It contains a large amount of self-description, including what the component does; reasons for using this component instead of others; constraints on acceptable problem specifications; rules for default values; what this component needs from its environment in the way of problem statements, auxiliary data, and computation; and other knowledge about how to use the component. This paper defines wrapping and discusses its importance, and presents some of the issues that arise when existing computational programs are wrapped.