* is the multiplication operator for physical-quantities. The * function is defined for numbers as part of KIF specification (in the kif-numbers ontology). Here it is extended polymorphically to operate on physical quantities. The main difference between quantities and ordinary numbers is the notion of dimension and unit. The dimension of the product of two quantities is the analogous product of their dimensions (the * function is also extended to dimensions). For example, the product of two length quantities is a quantity of dimension 'length * length'.The relationship between the magnitudes of two quantities and their product cannot be stated completely in this ontology. It depends on the whether the magnitudes are scalars or higher-order tensors. The * function is further specialized when applied to these different kinds of quantities in the ontologies for scalar-quantities and vector-quantities. It must be commutative and associative, however, in order to allow factoring of magnitudes and units.
The function * is also a commutative and associative operator for specifying products of PHYSICAL-DIMENSIONS. Together with the identity-dimension, * forms an abelian group over physical-dimensions.
(=> (And (Physical-Dimension ?D1) (Physical-Dimension ?D2) (* ?D1 ?D2 ?D3)) (Physical-Dimension ?D3)) (Distributes * + Physical-Quantity) (=> (And (Physical-Quantity ?X) (Physical-Quantity ?Y) (* ?X ?Y ?Z)) (And (Physical-Quantity ?Z) (= (Quantity.Dimension ?Z) (* (Quantity.Dimension ?X) (Quantity.Dimension ?Y)))))
(= work (* force length-dimension))