Expert systems have been applied in a number of ways to the field of simulation. One of these is the application of an expert system to “drive” a simulation, by making run-time decisions that affect the simulation. This approach has been successful for a number of specific simulation models. The “simulation engine” extends this capability by supporting this type of interaction in a general purpose setting. A general purpose simulation language is provided for building models, and an inference engine is provided for knowledge processing. This combination results in a mechanism that allows general purpose models to be simulated in concert with interactive knowledge bases.