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