The CML ontology is the theory underlying the CML language. It defines the basic concepts, such as model-fragment and time-dependent-relation, that are assumed in the language. It gives axiomatic semantics for the notion of time and change inherent in CML. The CML ontology is built upon the Engineering Math ontologies, extending the unary-scalar-functions and standard-units theories.

**Last modified:***Wednesday, 2 February 1994***Source code: cml-base-theory.lisp****List of other known theories**

Unary-Scalar-FunctionsPhysical-QuantitiesFrame-OntologyKif-RelationsKif-SetsKif-ListsKif-NumbersAbstract-AlgebraFrame-Ontology...Standard-UnitsPhysical-Quantities...Standard-Units...

ThermodynamicsDmeThermodynamics

Attribute-FunctionEntityEverywhere-Continuous-FunctionInfiniteModel-FragmentParticipant-FunctionPiecewise-Continuous-FunctionPiecewise-Continuous-QuantityEverywhere-Continuous-QuantityStandard-QuantityQuantity-FunctionScenarioTime-Dependent-RelationTime-Dependent-Function

**Active****Attribute-Function-Of****C+****C-****Continuous-At****Continuous-Over****Has-Attribute-Function****Has-Participant-Function****Has-Quantity-Function****M+****M-****Participant-Function-Of****Qprop+****Qprop-****Quantity-Function-Of**

**The following constants were used from included theories:**

**-***defined as a***function***in theory***Kif-Numbers****-***defined as a***function***in theory***Physical-Quantities****-***defined as a***function***in theory***Unary-Scalar-Functions****<***defined as a***relation***in theory***Kif-Numbers****<***defined as a***relation***in theory***Physical-Quantities****<***defined as a***relation***in theory***Unary-Scalar-Functions****Arity***defined as a***function***in theory***Frame-Ontology****Class***defined as a***class***in theory***Frame-Ontology****Constant-Quantity***defined as a***class***in theory***Physical-Quantities****D/Dt***defined as a***function***in theory***Unary-Scalar-Functions****Defined***defined as a***class***in theory***Kif-Relations****Documentation***defined as a***relation***in theory***Frame-Ontology****Domain***defined as a***relation***in theory***Frame-Ontology****Exact-Domain***defined as a***function***in theory***Frame-Ontology****Function***defined as a***class***in theory***Kif-Relations****Function***defined as a***class***in theory***Frame-Ontology****Function-Quantity***defined as a***class***in theory***Physical-Quantities****Individual***defined as a***class***in theory***Kif-Sets****Instance-Of***defined as a***relation***in theory***Frame-Ontology****Member***defined as a***relation***in theory***Kif-Sets****N-Ary-Relation***defined as a***class***in theory***Frame-Ontology****Nth-Domain***defined as a***relation***in theory***Frame-Ontology****Physical-Quantity***defined as a***class***in theory***Physical-Quantities****Range***defined as a***relation***in theory***Frame-Ontology****Relation***defined as a***class***in theory***Kif-Relations****Relation***defined as a***class***in theory***Frame-Ontology****Set***defined as a***class***in theory***Kif-Sets****Subclass-Of***defined as a***relation***in theory***Frame-Ontology****Time-Dependent-Quantity***defined as a***class***in theory***Unary-Scalar-Functions****Time-Quantity***defined as a***class***in theory***Unary-Scalar-Functions****Unary-Function***defined as a***class***in theory***Kif-Relations****Unary-Function***defined as a***class***in theory***Frame-Ontology****Unary-Scalar-Function-Quantity***defined as a***class***in theory***Unary-Scalar-Functions****Value***defined as a***function***in theory***Kif-Relations****Value-Cardinality***defined as a***function***in theory***Frame-Ontology****Value-Type***defined as a***relation***in theory***Frame-Ontology**

**The following constants were used from theories not included:**

**The following constants were undefined:**

Norm

A MODEL-FRAGMENT instance describes an aggregate (perhaps empty) of participating objects under certain conditions.

**Subclass-Of:**Individual

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

An ENTITY is an object with structurally stable properties. It differs from a MODEL-FRAGMENT in the set of properties that make sense for it. E.g. an 'automobile' is naturally represented as an entity, which might have attributes such as color: red, manufacturer: ford.

**Subclass-Of:**Individual

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A model-fragment is associated with a set of time-dependent conditions and consequences; when those conditions hold, the consequences hold. While conditions and consequences are time-dependent, the participants, attributes, and quantities associated with a model-fragment are part of its definition and the associations do not change over time. Similarly, model-fragment classes are organized in a class hierarchy, and a model-fragment instance can be an instance of more than one class.The ACTIVE predicate associates a set of conditions with a model-fragment class. A model fragment

instanceis active with respect to the conditions associated with a model-fragmentclassand a particular time. Thus, (active ?t ?mf-class ?mf-instance) holds when the conditions of the class ?mf-class, instantiated for instance ?mf-instance, are true at the time ?t.The translation of CML forms into KIF produces axioms that determine when ACTIVE holds for particular model fragments.

**Arity:**3

**Axioms:**

(Nth-Domain Active 3 Model-Fragment) (Nth-Domain Active 1 Time-Quantity) (=> (Active ?Time ?Model-Fragment-Class ?Mf-Instance) (Subclass-Of ?Model-Fragment-Class Model-Fragment) )

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

The class of infinite quantities which includes infinite quantities for every physical dimension.

**Subclass-Of:**Constant-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A scenario is a description of a modeled system, a set of initial conditions for exogenous constants, and an interval of time over which the system is to be analyzed or simulated.

**Subclass-Of:**Individual

**Final-Time:***Slot-Value-Type:*Time-quantity**Initial-Time:***Slot-Value-Type:*Time-quantity**Scenario.Participants:***Slot-Cardinality:*1

*Slots Of Instances:*

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

The initial time of a scenario is a time-quantity.

**Arity:**2**Domain:**Scenario**Range:**Time-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

The final time of a scenario is a time-quantity.

**Arity:**2**Domain:**Scenario**Range:**Time-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

The scenario.participants of a scenario is a set of entities for which the scenario is defined.

**Arity:**2**Domain:**Scenario**Range:**Set

**Axioms:**

(=> (Scenario.Participants ?S ?Participants) (=> (Member ?P ?Participants) (Entity ?P)) )

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A participant function is a unary function from model fragments to entities.

**Subclass-Of:**Unary-function

**Domain:**Model-fragment**Range:**Entity

*Slots Of Instances:*

**Axioms:**

(<=> (Participant-Function ?F) (And (Unary-Function ?F) (Domain ?F Model-Fragment) (Range ?F Entity) ))

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

An attribute-function is a unary function defined over model fragments or entities.

**Subclass-Of:**Unary-function

**Axioms:**

(<=> (Attribute-Function ?F) (And (Unary-Function ?F) (Domain ?F (Kappa (?X) (Or (Model-Fragment ?X) (Entity ?X))) )))

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

== is equality between quantities, factoring out differences between constants and time-dependent quantities. A time-dependent quantity that always returns the same value is == to its value, but not = to its value.

**Arity:**3

**Axioms:**

(Nth-Domain == 2 Physical-Quantity) (Nth-Domain == 1 Physical-Quantity) (<=> (== ?Q1 ?Q2 ?Result) (And (Physical-Quantity ?Q1) (Physical-Quantity ?Q2) (Forall (?T) (= (Value-At ?Q1 ?T) (Value-At ?Q2 ?T))) ))

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

If ?x is defined over some dense interval of ?t, then there are a finite number of points at which ?t is not continuous.

**Subclass-Of:**Function-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

**Subclass-Of:**Piecewise-continuous-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A STANDARD-QUANTITY is everywhere continuous, has a piecewise continuous derivative, and a dimension. Quantities in QPT and QPC are standard-quantities. In QSIM, the derivatives are continuous as well within a behavior.

**Subclass-Of:**Everywhere-continuous-quantity

**D/Dt:***Slot-Value-Type:*Piecewise-continuous-quantity

*Slots Of Instances:*

**Axioms:**

(<=> (Standard-Quantity ?X) (And (Everywhere-Continuous-Quantity ?X) (Value-Type ?X D/Dt Piecewise-Continuous-Quantity) ))

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

Time dependent relations are relations whose first argument is a time quantity. This is a second order relation.

**Subclass-Of:**N-ary-relation, Relation

**Axioms:**

(=> (Time-Dependent-Relation ?Rel) (Nth-Domain ?Rel 1 Time-Quantity))

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

Time dependent functions are functions whose first argument is a time quantity. This is a second order relation.

**Subclass-Of:**Function, Time-dependent-relation

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

The function value-at returns the value of a quantity at some point in time. If the quantity is a function-quantity, then its value-at is its function value applied to the 'time' argument. If the quantity is constant-quantity, then its value-at is the quantity itself for all 'times'.

**Arity:**3

**Axioms:**

(Nth-Domain Value-At 2 Time-Quantity) (Nth-Domain Value-At 1 Quantity) (=> (Value-At ?Q ?Time ?Val) (And (Quantity ?Q) (Time-Quantity ?Time)) ) (= (Value-At ?Q ?Time) (If (Function-Quantity ?Q) (Value ?Q ?Time) ?Q) )

**Defined in theory: Cml****Source code: cml-base-theory.lisp****Also defined in:**Unary-scalar-functions

The M+ relationship holds between two quantities x y exactly when y = f(x) and f is a monotonic increasing function.

**Arity:**2**Domain:**Time-dependent-quantity**Range:**Time-dependent-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

The M- relationship holds between two quantities x y exactly when y = f(x) and f is a monotonic decreasing function.

**Arity:**2**Domain:**Time-dependent-quantity**Range:**Time-dependent-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

The C+ relation between two quantities x and y means that x = f(...,y,...) and the partial of f w.r.t. y is 1. If all of the arguments to f are C+, this is equivalent to saying that x is their sum.

**Arity:**2**Domain:**Time-dependent-quantity**Range:**Time-dependent-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

The C+ relation between two quantities x and y means that x = f(...,y,...) and the partial of f w.r.t. y is -1. If all of the arguments to f are C+, this is equivalent to saying that -x is their sum.

**Arity:**2**Domain:**Time-dependent-quantity**Range:**Time-dependent-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

The qualitative proportionality, Qprop+, also known as an indirect influence in the qualitative process theory literature, states that all things being equal ?x is proportional to ?y. If there are no other influences on ?x, then (Qprop+ ?x ?y) is equivalent to (M+ ?y ?x). Otherwise, it means that x = f(...,y,...) and the partial of f w.r.t. y is greater than zero.

**Arity:**2**Domain:**Time-dependent-quantity**Range:**Time-dependent-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

The qualitative proportionality, Qprop-, also known as an indirect influence in the qualitative process theory literature, states that all things being equal ?x is proportional to ?y. If there are no other influences on ?x, then (Qprop- ?x ?y) is equivalent to (M- ?y ?x). Otherwise, it means that x = f(...,y,...) and the partial of f w.r.t. y is less than zero.

**Arity:**2**Domain:**Time-dependent-quantity**Range:**Time-dependent-quantity

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A quantity function maps some objects to a quantity.

**Subclass-Of:**Function

**Range:**Time-dependent-quantity

*Slots Of Instances:*

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A function ?f is continuous at the point ?p.

**Arity:**2

**Axioms:**

(<=> (Continuous-At ?F ?P) (Forall (?X ?Epsilon) (=> (< (Norm (Value ?F ?P) (Value ?F ?X)) ?Epsilon) (Exists (?Delta) (< (Norm (- ?X ?P) ?Delta))) )))

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A function ?f is continous over the interval ?beg ?end if it is defined and continuous-at every point between ?beg and ?end exclusive.

**Arity:**3

**Axioms:**

(Nth-Domain Continuous-Over 1 Unary-Scalar-Function-Quantity) (<=> (Continuous-Over ?F ?Beg ?End) (And (Unary-Scalar-Function-Quantity ?F) (Member ?Beg (Exact-Domain ?F)) (Member ?End (Exact-Domain ?F)) (Forall (?X) (=> (And (< ?Beg ?X) (< ?X ?End)) (And (Defined (Value ?F ?X)) (Continuous-At ?F ?X) )))))

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A function is piecewise-continuous if it's domain can be partitioned into a sequence of intervals such that it is continuous-over each such interval, and there is a finite distance between each pair of break points.

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A function is everywhere-continuous if it is continuous over its entire domain.

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A class has an attribute if the attribute value is given by a unary function, called an attribute-function, that is defined for that class.

**Arity:**2**Domain:**Class**Range:**Attribute-function

**Axioms:**

(=> (Has-Attribute-Function ?Class ?Attribute-Function) (Attribute-Function-Of ?Attribute-Function ?Class) )

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

**Arity:**2

**Axioms:**

(=> (Attribute-Function-Of ?Function ?Class) (Has-Attribute-Function ?Class ?Function) )

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

A class has an quantity if the quantity value is given by a unary function, called an quantity-function, that is defined for that class.

**Arity:**2**Domain:**Class**Range:**Quantity-function

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

**Arity:**2

**Axioms:**

(=> (Quantity-Function-Of ?Quantity-Function ?Class) (Has-Quantity-Function ?Class ?Quantity-Function) )

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

**Arity:**2

**Axioms:**

(=> (Participant-Function-Of ?Function ?Class) (Has-Participant-Function ?Class ?Function) )

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

**Arity:**2**Domain:**Class**Range:**Participant-function

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

**Arity:**3

**Axioms:**

(Nth-Domain Slot-Documentation 2 Unary-Function) (Nth-Domain Slot-Documentation 1 Class) (<=> (Slot-Documentation ?Class ?Unary-Function ?Doc) (=> (Instance-Of ?Instance ?Class) (Documentation ?Instance ?Doc) ))

**Defined in theory: Cml****Source code: cml-base-theory.lisp**

Formatting and translation code was written by