(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)