Qualitative reasoning programs use a modelling language to discover the function of a mechanical device and a theory of causality to explain the reason for the device's behavior. A library of reusable model pieces for linear mechanical oscillators was developed for use with a causality theory developed by Forbus called...