This document describes a compositional modeling language, CML, that is a general declarative modeling language for logically specifying the symbolic and mathematical properties of the structure and behavior of physical systems. CML is intended to facilitate model sharing between research groups, many of which had long been using similar languages. These languages are based primarily on the language originally defined by Qualitative Process theory [5] and include the languages used for the Qualitative Physics Compiler (QPC) [1, 4], compositional model formulation [3], and the Device Modeling Environment (DME) [7]. CML is an attempt to synthesize and provide a clean redesign of these languages.
CML was designed with the following desired features in mind:
There is a natural tension between trying to agree to a common
modeling language and supporting future research in this area. Our
intention is for this to be an open, evolving language. The current
document describes a base language that all of the parties
involved will support. Various extensions will then be defined
as they naturally arise in the course of research
(See section , page
). Writing in the base language should guarantee
sharability (although there will no doubt be some limitations on
sharability as a function of the class of numeric equations each
implementation supports). Thus, an important goal in designing the
base language is to support as much sharing as is reasonably possible.
This modeling language specification effort is not formally affiliated with the ARPA Knowledge Sharing Initiative. However, the effort has been strongly influenced by the Knowledge Interchange Format (KIF) being developed in that initiative. [6]; CML is fully translatable to KIF and where possible we have adopted conventions established by KIF. This effort is also not affiliated with the product description standardization effort (PDES) [10]. Integration of CML with the Express modeling language used in PDES is probably desirable, but beyond the scope of the current effort.
CML specifies a set of top-level forms for defining models and an
ontology of primitive functions, relations, and constants.
Section gives a brief overview of the typical usage
patterns of CML and section
introduces some
prerequisite conventions and definitions. Section
specifies the top-level forms while section
specifies
the syntax of atomic sentences and the semantics of predefined
functions and relations. As much as possible, a summary of the
relevant discussions, alternatives considered, and rationale for
decisions is included.