(in-package "ONTOLINGUA-USER")

(define-theory
     device-theory
     (product-theory)
   "A general theory for describing devices and properties of devices"
   :io-package
   "ONTOLINGUA-USER")


(in-theory (quote device-theory))



;;; temperature


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

;;; device


(define-frame device :own-slots ((instance-of class) (subclass-of product)))

;;; electronic-device


(define-frame electronic-device
              :own-slots
              ((instance-of class) (subclass-of device)))

;;; oscilloscope


(define-frame oscilloscope
              :own-slots
              ((instance-of class) (subclass-of electronic-device)))

;;; channel


(define-frame channel
              :own-slots
              ((instance-of class) (subclass-of electronic-device)
               (documentation "The notion of a channel as a device is counterintuitive, but it makes it easier to talk about the characteristics of a device when the device is using that channel."))
              :template-slots
              nil)

;;; oscilloscope-channel


(define-frame oscilloscope-channel
              :own-slots
              ((instance-of class) (subclass-of channel)
               (documentation "A channel on an Oscilloscope."))
              :template-slots
              nil)

;;; scope-channels


(define-frame scope-channels
              :own-slots
              ((instance-of relation) (arity 2) (range oscilloscope-channel)
               (domain oscilloscope)
               (documentation "This scope has the following channel(s)."))
              :axioms
              nil)

;;; number-of-channels


(define-frame number-of-channels
              :own-slots
              ((instance-of relation) (arity 2) (range integer)
               (domain electronic-device)
               (documentation "The number of channels that a device has."))
              :axioms
              nil)

;;; gsa-per-second


(define-frame gsa-per-second
              :own-slots
              ((instance-of unit-of-measure)
               (documentation "A unit of measure equal to one billion samples per second.")))

;;; msa-per-second


(define-frame msa-per-second
              :own-slots
              ((instance-of unit-of-measure)
               (documentation "A unit of measure equal to one million samples per second.")))

;;; max-sample-rate-repetitive


(define-frame max-sample-rate-repetitive
              :own-slots
              ((instance-of relation) (arity 2) (range constant-quantity)
               (domain electronic-device) (documentation))
              :axioms
              nil)

;;; max-sample-rate-single-shot


(define-frame max-sample-rate-single-shot
              :own-slots
              ((instance-of relation) (arity 2) (range constant-quantity)
               (domain electronic-device) (documentation))
              :axioms
              nil)

;;; single-shot-bandwidth


(define-frame single-shot-bandwidth
              :own-slots
              ((instance-of relation) (arity 2) (range constant-quantity)
               (domain electronic-device) (documentation))
              :axioms
              nil)

;;; minus-3db-bandwidth-dc


(define-frame minus-3db-bandwidth-dc
              :own-slots
              ((instance-of relation) (arity 2) (range constant-quantity)
               (domain electronic-device) (documentation))
              :axioms
              nil)

;;; ac-coupled-bandwidth


(define-frame ac-coupled-bandwidth
              :own-slots
              ((instance-of relation) (arity 2) (range constant-quantity)
               (domain electronic-device) (documentation))
              :axioms
              nil)

;;; max-rise-time


(define-frame max-rise-time
              :own-slots
              ((instance-of relation) (arity 2) (range constant-quantity)
               (domain electronic-device) (documentation))
              :axioms
              nil)

;;; measurement


(define-frame measurement
              :own-slots
              ((instance-of class) (subclass-of individual)
               (documentation "A kludge-class that holds Measurements that a device is capable of making."))
              :template-slots
              nil)

;;; automatic-measurements


(define-frame automatic-measurements
              :own-slots
              ((instance-of relation) (arity 2) (range measurement)
               (domain electronic-device) (documentation))
              :axioms
              nil)

;;; vavg


(define-frame vavg :own-slots ((instance-of measurement)))

;;; vrms


(define-frame vrms :own-slots ((instance-of measurement)))

;;; vpp


(define-frame vpp :own-slots ((instance-of measurement)))

;;; vtop


(define-frame vtop :own-slots ((instance-of measurement)))

;;; vbase


(define-frame vbase :own-slots ((instance-of measurement)))

;;; vmin


(define-frame vmin :own-slots ((instance-of measurement)))

;;; vmax


(define-frame vmax :own-slots ((instance-of measurement)))

;;; frequency


(define-frame frequency :own-slots ((instance-of measurement)))

;;; period


(define-frame period :own-slots ((instance-of measurement)))

;;; +/-width


(define-frame +/-width :own-slots ((instance-of measurement)))

;;; duty-cycle


(define-frame duty-cycle :own-slots ((instance-of measurement)))

;;; rise-time


(define-frame rise-time :own-slots ((instance-of measurement)))

;;; fall-time


(define-frame fall-time :own-slots ((instance-of measurement)))

;;; coupling


(define-frame coupling
              :own-slots
              ((instance-of relation) (arity 2) (range coupling-type)
               (domain electronic-device) (documentation))
              :axioms
              nil)

;;; coupling-type


(define-frame coupling-type
              :own-slots
              ((instance-of class) (subclass-of individual)
               (documentation "A class that holds different kinds of electrical couplings."))
              :template-slots
              nil)

;;; dc-coupling


(define-frame dc-coupling :own-slots ((instance-of coupling-type)))

;;; ac-coupling


(define-frame ac-coupling :own-slots ((instance-of coupling-type)))

;;; ground-coupling


(define-frame ground-coupling :own-slots ((instance-of coupling-type)))

;;; volts-per-division


(define-frame volts-per-division
              :own-slots
              ((instance-of relation) (arity 2) (range real-number)
               (domain electronic-device) (documentation))
              :axioms
              nil)

;;; vernier-accuracy


(define-frame vernier-accuracy
              :own-slots
              ((instance-of relation) (arity 2) (range real-number)
               (domain individual) (documentation))
              :axioms
              nil)

;;; accuracy


(define-frame accuracy
              :own-slots
              ((instance-of relation) (arity 2) (range real-number)
               (domain individual)
               (documentation "The accuracy of a device, expressed as a decimal fraction.  If the accuracy of a device is X, and the device is measuring quantity Y, the reading on the device will be Y plus-or-minus X."))
              :axioms
              nil)

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