(in-package "ONTOLINGUA-USER")

(define-theory
     standard-dimensions
     (physical-quantities)
   "This theory defines a set of physical dimensions for quantities.
It is independent of any choice of units of measure.  This set is based
on physics and economics."
   :io-package
   "ONTOLINGUA-USER"
   :issues
   ("This theory used to be combined with standard-dimensions in a
theory called standard-units-and-dimensions.  We divided them because commitments
to one are often independent of commitments to the other."
    (:see-also
     "The EngMath paper on line")))


(in-theory (quote standard-dimensions))



;;; power-dimension


(define-instance
     power-dimension
     (physical-dimension)
     :axiom-def
     (= power-dimension (/ work-dimension time-dimension)))

;;; work-dimension


(define-instance
     work-dimension
     (physical-dimension)
     :axiom-def
     (= work-dimension (* force-dimension length-dimension))
   :issues
   ("Provided by Bernd Bachmann, DFKI"))

;;; therm^-1-dimension


(define-instance
     therm^-1-dimension
     (physical-dimension)
     :axiom-def
     (= therm^-1-dimension (expt thermodynamic-temperature-dimension -1))
   :issues
   ("Provided by Bernd Bachmann, DFKI"))

;;; pressure-dimension


(define-instance
     pressure-dimension
     (physical-dimension)
     "the physical dimension of pressure is defined as 
force over area"
     :axiom-def
   (= pressure-dimension (* force-dimension (expt area-dimension -1)))
   :issues
   ("Provided by Bernd Bachmann, DFKI"))

;;; area-dimension


(define-instance
     area-dimension
     (physical-dimension)
     "The physical dimension of an area is defined as
length dimension squared."
     :axiom-def
   (= area-dimension (expt length-dimension 2))
   :issues
   ("Provided by Bernd Bachmann, DFKI"))

;;; currency-dimension


(define-instance
     currency-dimension
     (physical-dimension)
     "The fundamental dimension of currency or money.
CURRENCY-DIMENSION is to currencies as US-dollar's and ECU's as the
LENGTH-DIMENSION is to units of length such as meters.")

;;; energy-dimension


(define-instance
     energy-dimension
     (physical-dimension)
     "The physical dimension of energy is defined as mass times length squared
over time squared."
     :axiom-def
   (= energy-dimension
      (* mass-dimension
         (* (expt length-dimension 2) (expt time-dimension -2)))))

;;; force-dimension


(define-instance
     force-dimension
     (physical-dimension)
     "The physical dimension of force is defined as mass times length
over time squared.  In some systems FORCE-DIMENSION is fundamental and
MASS-DIMENSION is a derived dimension.  This theory goes with the SI
standard, but we include the definition of force as a non-fundamental
built-in dimension."
     :axiom-def
   (= force-dimension
      (* mass-dimension (* length-dimension (expt time-dimension -2)))))

;;; luminous-intensity-dimension


(define-instance
     luminous-intensity-dimension
     (physical-dimension)
     "The fundamental dimension of luminous-intensity, as defined by the
SI standard.")

;;; amount-of-substance-dimension


(define-instance
     amount-of-substance-dimension
     (physical-dimension)
     "The fundamental dimension of amount of substance, as defined by the
SI standard.")

;;; thermodynamic-temperature-dimension


(define-instance
     thermodynamic-temperature-dimension
     (physical-dimension)
     "The fundamental dimension of temperature, as defined by the SI standard.")

;;; electrical-current-dimension


(define-instance
     electrical-current-dimension
     (physical-dimension)
     "The fundamental dimension of electrical current, as defined by the
SI standard.")

;;; time-dimension


(define-instance
     time-dimension
     (physical-dimension)
     "The fundamental dimension of physical, continuous time, 
as defined by the SI standard.")

;;; mass-dimension


(define-instance
     mass-dimension
     (physical-dimension)
     "The fundamental dimension of mass, as defined by the SI standard.")

;;; length-dimension


(define-instance
     length-dimension
     (physical-dimension)
     "The fundamental dimension of length, as defined by the SI
standard.")

;;; frequency-dimension


(define-instance
     frequency-dimension
     (physical-dimension)
     :axiom-def
     (= frequency-dimension (expt time-dimension -1)))

;;; resistance-dimension


(define-frame resistance-dimension
              :own-slots
              ((documentation "The quantity denoting resistance")
               (instance-of individual-thing individual thing
                physical-dimension)))

;;; voltage-dimension


(define-frame voltage-dimension
              :own-slots
              ((documentation "The quantity denoting voltage")
               (instance-of individual-thing individual thing
                physical-dimension)))

;;; voltage-quantity


(define-frame voltage-quantity
              :own-slots
              ((documentation "Some amount of voltage.") (instance-of class)
               (subclass-of constant-quantity))
              :axioms
              ((<=> (voltage-quantity ?x)
                (quantity.dimension ?x voltage-dimension))))

;;; resistance-quantity


(define-frame resistance-quantity
              :own-slots
              ((documentation "Some quantity of resistance.")
               (instance-of class) (subclass-of constant-quantity))
              :axioms
              ((<=> (resistance-quantity ?x)
                (quantity.dimension ?x resistance-dimension))))

;;; electrical-current-quantity


(define-frame electrical-current-quantity
              :own-slots
              ((documentation "Some quantity of electrical current")
               (instance-of class) (subclass-of constant-quantity))
              :axioms
              ((<=> (electrical-current-quantity ?x)
                (quantity.dimension ?x electrical-current-dimension))))

;;; frequency-quantity


(define-frame frequency-quantity
              :own-slots
              ((documentation "A quantity denoting how frequently something occurs.")
               (instance-of class) (subclass-of constant-quantity))
              :axioms
              ((<=> (frequency-quantity ?x)
                (quantity.dimension ?x frequency-dimension))))

;;; power-quantity


(define-frame power-quantity
              :own-slots
              ((documentation "Some quantity of electrical current")
               (instance-of class) (subclass-of constant-quantity))
              :axioms
              ((<=> (power-quantity ?x)
                (quantity.dimension ?x power-dimension))))

This Lisp-to-HTML translation was brought to you by
François Gerbaux and Tom Gruber