Permalink
Find file
ba9fead Feb 17, 2017
@apease @msvarny @ArtificialMarty
executable file 27252 lines (23345 sloc) 855 KB
;; ==============================
;; MILO (Mid-Level Ontology)
;; ==============================
;; This is the source file for the MILO (MId-Level Ontology), an ontology that
;; is being developed as a bridge between the abstract content of the SUMO and
;; the rich detail of the various domain ontologies.
;; Those who are interested in making use of this ontology are urged
;; to contact Adam Pease (apease [at] articulatesoftware [dot] com).
;; The MILO (MId-Level Ontology) is copyrighted by Teknowledge (c)
;; 2003 and Articulate Software 2004-2007. It is released under the GNU Public License
;; <http://www.gnu.org/copyleft/gpl.html>. Users of this code also consent, by
;; use of this material, to credit Teknowledge and Articulate Software
;; in any writings, briefings,
;; publications, presentations, or other representations of any code or other
;; product which incorporates, builds on, or uses this material.
;; We ask that people using or referencing this work cite our primary paper:
;; Niles, I., and Pease, A. 2001. Towards a Standard Upper Ontology. In
;; Proceedings of the 2nd International Conference on Formal Ontology in
;; Information Systems (FOIS-2001), Chris Welty and Barry Smith, eds,
;; Ogunquit, Maine, October 17-19, 2001. See also http://www.ontologyportal.org
;; NS: delete.
;; [1]
;; (subclass HumanCorpse OrganicObject)
;; NS: delete.
;; [2]
;; (documentation HumanCorpse EnglishLanguage "A &%Dead thing which was
;; formerly a &%Human.")
;; NS: delete.
;; [3]
;; (=>
;; (instance ?CORPSE HumanCorpse)
;; (exists (?HUMAN)
;; (and
;; (instance ?HUMAN Human)
;; (before (WhenFn ?HUMAN) (WhenFn ?CORPSE))
;; (not
;; (exists (?OTHERPART)
;; (and
;; (holdsDuring
;; (WhenFn ?CORPSE)
;; (part ?OTHERPART ?CORPSE))
;; (not
;; (holdsDuring
;; (WhenFn ?HUMAN)
;; (part ?OTHERPART ?HUMAN)))))))))
;; NS: delete.
;; [4]
;; (=>
;; (instance ?CORPSE HumanCorpse)
;; (attribute ?CORPSE Dead))
;; NS: The KR above is inadequate for several reasons: (1)
;; It completely fails to generalize, saying nothing about
;; the remains of organisms other than humans, or remains
;; that are not partonomically identical to the original
;; living organism; (2) Rule [3] is malformed, because
;; &%before must be used with TimePoints, not TimeIntervals;
;; and (3) Axioms that apply the attributes &%Living and
;; &%Dead to &%Organism and &%HumanCorpse probably result in
;; unintended conclusions. Consider rule [4], above, in
;; conjuction with rules [5] and [6], below, both of which
;; appear in Merge.kif:
;;
;; [5] From Merge.kif. Already changed there to prevent
;; concluding that Organisms can be Dead.
;; (=>
;; (and
;; (instance ?DEATH Death)
;; (experiencer ?DEATH ?AGENT))
;; (holdsDuring
;; (FutureFn
;; (WhenFn ?DEATH))
;; (attribute ?AGENT Dead)))
;;
;; [6] From Merge.kif. Already changed there, broadening
;; the consequent to (instance ?ORG OrganicObject).
;; (=>
;; (and
;; (attribute ?ORG ?ATT)
;; (instance ?ATT BiologicalAttribute))
;; (instance ?ORG Organism))
;;
;;
;; [6.1] From Merge.kif
;; (=>
;; (and
;; (instance ?PATH PathologicProcess)
;; (experiencer ?PATH ?ORG))
;; (exists (?PART ?DISEASE)
;; (and
;; (part ?PART ?ORG)
;; (instance ?DISEASE DiseaseOrSyndrome)
;; (attribute ?PART ?DISEASE))))
;;
;; [6] and [6.1] together entail the conclusion that every
;; skolemized part of an Organism that is affected by a
;; skolemized disease is also, itself, an instance of
;; Organism (since DiseaseOrSyndrome is a subclass of
;; BiologicalAttribute).
;; TO DO:
;;
;; 1. Delete axioms [1] - [4], above, which already are
;; commented out.
;;
;; 2. In Merge.kif, delete [6] and replace it with the
;; following: (already done.)
;;
;; (=>
;; (and
;; (instance ?ATT BiologicalAttribute)
;; (holdsDuring ?T1 (attribute ?ORG ?ATT)))
;; (instance ?ORG OrganicObject))
;;
;; 3. In Merge.kif, rewrite [5] to avoid concluding that
;; Organisms can be Dead. (already done.)
;;
;; 4. Apparently, the intent of rule [3], above, is to
;; represent the state of most &%Dead &%Humans in a
;; rather short time interval following death, when the
;; body is still an intact, integral whole, and
;; embalming, cremation, mummification, or burial have
;; not yet occurred. Add the section below, which tries
;; to address the presumed intent of [1] - [4], but also
;; tries to include human remains within a broader theory
;; of "organism remains".
;; Start: OrganismRemains
;; NS: new.
(subclass OrganismRemains OrganicObject)
(documentation OrganismRemains EnglishLanguage "An
&%instance of &%OrganismRemains is &%Dead matter of a
formerly &%Living &%Organism: &%Plant, &%Animal, or
&%Microorganism. An &%instance of &%OrganismRemains might
or might not be recognizable as the remains of a particular
kind or species of organism, depending on the cause of the
&%Organism's &%Death (heart failure, stroke, roadkill,
dismemberment, etc.), the elapsed time since death, the
speed of decomposition, and any post-mortem processing of
the dead organism (embalming, cremation, mummification,
boiling, consumption as food, etc.).")
;; [7] All organism remains are dead.
(=>
(instance ?X OrganismRemains)
(holdsDuring (WhenFn ?X) (attribute ?X Dead)))
;; [8] The parts of organism remains were once parts of some
;; &%Organism.
(=>
(and
(instance ?REM OrganismRemains)
(holdsDuring ?T2
(part ?OBJ ?REM)))
(exists (?ORG ?T1)
(and
(instance ?ORG Organism)
(earlier (WhenFn ?ORG) (WhenFn ?REM))
(instance ?T1 TimeInterval)
(finishes ?T1 (WhenFn ?ORG))
(holdsDuring ?T1
(part ?OBJ ?ORG)))))
;; [8a] - [8d] refine [8] and the rule in Merge.kif that
;; defines the Death of Organisms.
;; [8a] The organic result of an organism's death is an
;; instance of OrganismRemains.
(=>
(and
(instance ?REM OrganicObject)
(instance ?DEATH Death)
(instance ?ORG Organism)
(experiencer ?DEATH ?ORG)
(result ?DEATH ?REM))
(instance ?REM OrganismRemains))
;; [8b]
(=>
(instance ?REM OrganismRemains)
(exists (?DEATH)
(and
(instance ?DEATH Death)
(result ?DEATH ?REM))))
;; [8c]
(=>
(and
(instance ?DEATH Death)
(instance ?REM OrganismRemains)
(instance ?ORG Organism)
(holdsDuring ?T2 (part ?OBJ ?REM))
(holdsDuring ?T1 (part ?OBJ ?ORG))
(earlier ?T1 ?T2)
(result ?DEATH ?REM))
(experiencer ?DEATH ?ORG))
;; [8d]
(=>
(and
(instance ?DEATH Death)
(instance ?REM OrganismRemains)
(instance ?ORG Organism)
(holdsDuring ?T2 (part ?OBJ ?REM))
(holdsDuring ?T1 (part ?OBJ ?ORG))
(earlier ?T1 ?T2)
(experiencer ?DEATH ?ORG))
(result ?DEATH ?REM))
;; [9] Every Organism is alive.
(=>
(instance ?ORG Organism)
(holdsDuring (WhenFn ?ORG)
(attribute ?ORG Living)))
(subclass HumanCorpse OrganismRemains)
(documentation HumanCorpse EnglishLanguage "&%HumanCorpse is the &%OrganismRemains of
a &%Human")
(=>
(instance ?X HumanCorpse)
(instance ?X (DeadFn Human)))
;; NS: new. Add DeadFn and [11], below.
(instance DeadFn UnaryFunction)
(domainSubclass DeadFn 1 Organism)
(rangeSubclass DeadFn OrganismRemains)
(documentation DeadFn EnglishLanguage "(&%DeadFn ?ORGCLASS)
denotes the &%Class of all remains that were once part
of &%Living &%Organisms of the type ?ORGCLASS.")
;; [11]
(=>
(and
(instance ?REM (DeadFn ?ORGTYPE))
(instance ?DEATH Death)
(result ?DEATH ?REM)
(experiencer ?DEATH ?ORG))
(instance ?ORG ?ORGTYPE))
;; [12]
(=>
(and
(instance ?REM OrganicObject)
(instance ?DEATH Death)
(experiencer ?DEATH ?ORG)
(instance ?ORG ?ORGTYPE)
(subclass ?ORG Organism)
(result ?DEATH ?REM))
(instance ?REM (DeadFn ?ORGTYPE)))
;; NS: The diagram below depicts the temporal relationships
;; between the main attributes and classes mentioned above,
;; as applied to one instance of Organism. Before it is the
;; experiencer of its Death, an Organism X has the
;; BiologicalAttribute Living. X's Death has as its result
;; a new instance of OrganismRemains, Y, which consists of
;; the same material (parts) as the previously existing
;; Organism X.
;; Death
;; (experiencer = X)
;; (result = Y)
;; ^
;; |
;; |------- Living --------|-|------- Dead -------->
;;
;; |----- Organism X -------|-- OrganismRemains Y -->???|
;; The distinction between "existing" as a chunk of more or
;; less organism-shaped matter and simply being Dead (having
;; experienced death), as well as the temporal aspects, make
;; this all seem excessively difficult, but alternatives
;; that make it possible to express the same distinctions of
;; meaning all seem about equally awkward. In the approach
;; chosen here, Organism and OrganismRemains are conceived
;; as temporally disjoint. It would be a mistake to apply
;; Dead to an instance of Organism for any time interval,
;; and a mistake to apply Living to an instance of
;; OrganismRemains for any time interval. In other words,
;; in this approach there are no Dead Organisms, only Living
;; Organisms or Dead OrganismRemains.
;; End: OrganismRemains
(instance HumanSlave SocialRole)
(documentation HumanSlave EnglishLanguage "A &%Human who is owned by someone else.")
;; NS: delete.
;; (=>
;; (attribute ?SLAVE HumanSlave)
;; (exists (?PERSON)
;; (and
;; (instance ?PERSON Human)
;; (not (equal ?PERSON ?SLAVE))
;; (possesses ?PERSON ?SLAVE))))
;; NS: add.
(=>
(holdsDuring ?TIME (attribute ?SLAVE HumanSlave))
(exists (?PERSON)
(and
(instance ?PERSON Human)
(not (equal ?PERSON ?SLAVE))
(holdsDuring ?TIME
(possesses ?PERSON ?SLAVE)))))
(subclass HumanAdult Human)
;; NS: add.
;; this is very unprecise as the age to become a legal agent depends on country and purpose
(subclass HumanAdult LegalAgent)
(documentation HumanAdult EnglishLanguage "The class of
&%Humans that are 18 years of age or older.")
;; NS: delete.
;; (=>
;; (and
;; (instance ?ADULT HumanAdult)
;; (age ?ADULT (MeasureFn ?NUMBER YearDuration)))
;; (greaterThanOrEqualTo ?NUMBER 18))
;; NS: add.
(=>
(holdsDuring ?TIME
(and
(instance ?ADULT HumanAdult)
(age ?ADULT (MeasureFn ?NUMBER YearDuration))))
(greaterThanOrEqualTo ?NUMBER 18))
;; NS. add. An alternate formulation.
(=>
(holdsDuring ?TIME (instance ?H HumanAdult))
(exists (?AGE)
(and
(holdsDuring ?TIME (age ?H ?AGE))
(instance ?AGE (IntervalFn (MeasureFn 18 YearDuration) (MeasureFn 120 YearDuration))))))
;; NS: add.
(=>
(and
(instance ?H Human)
(holdsDuring ?T1
(age ?H (MeasureFn ?N YearDuration)))
(greaterThanOrEqualTo ?N 18))
(holdsDuring ?T1 (instance ?H HumanAdult)))
;; NS: add.
(=>
(holdsDuring ?TIME
(instance ?ADULT HumanAdult))
(holdsDuring ?TIME
(developmentalForm ?ADULT FullyFormed)))
;; NS: add.
(=>
(and
(instance ?ORG Human)
(holdsDuring ?TIME
(attribute ?ORG FullyFormed)))
(holdsDuring ?TIME
(instance ?ORG HumanAdult)))
;; NS: add. Missing from Merge.kif. Narrow to
;; developmentalForm.
(=>
(and
(instance ?ORG OrganicObject)
(instance ?ATTR DevelopmentalAttribute)
(holdsDuring ?TIME (property ?ORG ?ATTR)))
(holdsDuring ?TIME (developmentalForm ?ORG ?ATTR)))
(subclass HumanYouth Human)
(documentation HumanYouth EnglishLanguage "The class of &%Humans that are younger than
18 years of age.")
;; NS: delete.
;; (=>
;; (and
;; (instance ?YOUTH HumanYouth)
;; (age ?YOUTH (MeasureFn ?NUMBER YearDuration)))
;; (lessThan ?NUMBER 18))
;; NS: add.
(=>
(holdsDuring ?TIME
(and
(instance ?YOUTH HumanYouth)
(age ?YOUTH (MeasureFn ?NUMBER YearDuration))))
(lessThan ?NUMBER 18))
;; NS. An alternate formulation.
(=>
(holdsDuring ?TIME (instance ?H HumanYouth))
(exists (?AGE)
(and
(holdsDuring ?TIME (age ?H ?AGE))
(instance ?AGE (IntervalFn (MeasureFn 0 YearDuration) (MeasureFn 17 YearDuration))))))
;; NS: add.
(=>
(and
(instance ?H Human)
(holdsDuring ?T1 (age ?H (MeasureFn ?N YearDuration)))
(lessThan ?N 18))
(holdsDuring ?T1 (instance ?H HumanYouth)))
(subclass HumanChild HumanYouth)
(documentation HumanChild EnglishLanguage "A &%HumanYouth between birth and puberty, i.e a
&%Human who is &%NonFullyFormed.")
;; NS: edit.
(=>
(holdsDuring ?TIME
(instance ?CHILD HumanChild))
(holdsDuring ?TIME
(developmentalForm ?CHILD NonFullyFormed)))
;; NS: add. Narrowing from Human.
(=>
(and
(instance ?CHILD Human)
(holdsDuring ?TIME
(attribute ?CHILD NonFullyFormed)))
(holdsDuring ?TIME
(instance ?CHILD HumanYouth)))
;; NS: edit.
(=>
(holdsDuring ?TIME
(and
(instance ?CHILD HumanChild)
(age ?CHILD (MeasureFn ?NUMBER YearDuration))))
(lessThanOrEqualTo ?NUMBER 14))
;; NS: add. An alternate formulation.
(=>
(holdsDuring ?TIME (instance ?H HumanChild))
(exists (?AGE)
(and
(holdsDuring ?TIME (age ?H ?AGE))
(instance ?AGE (IntervalFn (MeasureFn 0 YearDuration) (MeasureFn 14 YearDuration))))))
;; NS: add.
(=>
(and
(instance ?H Human)
(holdsDuring ?T1 (age ?H (MeasureFn ?N YearDuration)))
(lessThanOrEqualTo ?N 14))
(holdsDuring ?T1 (instance ?H HumanChild)))
;; NS: edit.
(subclass Teenager Human)
(documentation Teenager EnglishLanguage "A &%Human between puberty and the age of 20.")
(=>
(holdsDuring ?TIME
(and
(instance ?TEEN Teenager)
(age ?TEEN (MeasureFn ?NUMBER YearDuration))))
(and
(greaterThan ?NUMBER 12)
(lessThan ?NUMBER 20)))
;; NS: add. An alternate formulation.
(=>
(holdsDuring ?TIME (instance ?H Teenager))
(exists (?AGE)
(and
(holdsDuring ?TIME (age ?H ?AGE))
(instance ?AGE (IntervalFn (MeasureFn 13 YearDuration) (MeasureFn 19 YearDuration))))))
;; NS: add.
(=>
(and
(instance ?H Human)
(holdsDuring ?T1 (age ?H (MeasureFn ?N YearDuration)))
(greaterThan ?N 12)
(lessThan ?N 20))
(holdsDuring ?T1 (instance ?H Teenager)))
(subclass Boy HumanChild)
(subclass Boy Man)
(documentation Boy EnglishLanguage "A &%HumanChild who is &%Male.")
;; NS: add.
(=>
(holdsDuring ?T1
(and
(instance ?H HumanChild)
(attribute ?H Male)))
(holdsDuring ?T1 (instance ?H Boy)))
(subclass Girl HumanChild)
(subclass Girl Woman)
(documentation Girl EnglishLanguage "A &%HumanChild who is &%Female.")
;; NS: add.
(=>
(holdsDuring ?T1
(and
(instance ?H HumanChild)
(attribute ?H Female)))
(holdsDuring ?T1 (instance ?H Girl)))
(subclass HumanBaby HumanChild)
(documentation HumanBaby EnglishLanguage "A &%Human between birth and the first year of age.")
;; NS: edit.
(=>
(holdsDuring ?TIME
(and
(instance ?BABY HumanBaby)
(age ?BABY (MeasureFn ?NUMBER YearDuration))))
(lessThanOrEqualTo ?NUMBER 1))
;; NS: add. An alternate formulation. Constructing a query
;; to ask for the age of ?BABY is awkward with both
;; formulations, and probably won't give the
;; desired/expected answer.
(=>
(holdsDuring ?TIME (instance ?BABY HumanBaby))
(exists (?AGE)
(and
(holdsDuring ?TIME (age ?BABY ?AGE))
(instance ?AGE (IntervalFn (MeasureFn 0 YearDuration) (MeasureFn 1 YearDuration))))))
;; NS: Note that ?BABY, above, will also inherit less restrictive
;; numeric age constraints from HumanChild and HumanYouth. How
;; this will work out in inference depends on the inference
;; algorithm (presumably resolution), type of query (variable
;; binding or true/false), number of answers requested, and time
;; allowed for the inference engine to run.
;; NS: add.
(=>
(and
(instance ?H Human)
(holdsDuring ?T1 (age ?H (MeasureFn ?N YearDuration)))
(lessThanOrEqualTo ?N 1))
(holdsDuring ?T1 (instance ?H HumanBaby)))
(documentation older EnglishLanguage "(older ?OBJ1 ?OBJ2) means that ?OBJ1 is older than
?OBJ2, i.e. the age of ?OBJ1 is &%greaterThan the age of ?OBJ2.")
(instance older BinaryPredicate)
(domain older 1 Object)
(domain older 2 Object)
(=>
(older ?O1 ?O2)
(exists (?N1 ?N2 ?U)
(and
(age ?O1 (MeasureFn ?N1 ?U))
(age ?O2 (MeasureFn ?N2 ?U))
(greaterThan ?N1 ?N2))))
(documentation StartFn EnglishLanguage "(StartFn ?PROCESS) denotes &%IntentionalProcesses
of bringing it about that &%Processes of type ?PROCESS begin, e.g. start
working, begin running, etc.")
(instance StartFn UnaryFunction)
(domain StartFn 1 Process)
(rangeSubclass StartFn IntentionalProcess)
(=>
(instance ?S (StartFn ?P))
(exists (?I)
(and
(instance ?I ?P)
(starts (WhenFn ?S) (WhenFn ?I)))))
(documentation StopFn EnglishLanguage "(StopFn ?PROCESS) denotes &%IntentionalProcesses
of bringing it about that &%Processes of type ?PROCESS end, e.g. stop
walking, quit working, etc.")
(instance StopFn UnaryFunction)
(domain StopFn 1 Process)
(rangeSubclass StopFn IntentionalProcess)
(=>
(instance ?S (StopFn ?P))
(exists (?I)
(and
(instance ?I ?P)
(finishes (WhenFn ?S) (WhenFn ?I)))))
(subclass Dodging BodyMotion)
(subclass Dodging IntentionalProcess)
(documentation Dodging EnglishLanguage "Purposely moving one's body in such a way as
to avoid being hit by something.")
;; NS: edited to temporally relate ?I to ?D.
(=>
(and
(instance ?D Dodging)
(agent ?D ?A)
(equal ?DT (WhenFn ?D)))
(hasPurpose ?D
(not
(exists (?I)
(and
(or
(meetsTemporally ?DT (WhenFn ?I))
(overlapsTemporally ?DT (WhenFn ?I)))
(instance ?I Impacting)
(patient ?I ?A))))))
(subclass Mounting BodyMotion)
(documentation Mounting EnglishLanguage "Any &%BodyMotion which results in being &%On
something else.")
(=>
(and
(instance ?M Mounting)
(agent ?M ?A)
(patient ?M ?O))
(and
(holdsDuring
(BeginFn (WhenFn ?M))
(not (orientation ?A ?O On)))
(holdsDuring
(EndFn (WhenFn ?M))
(orientation ?A ?O On))))
(subclass Stepping BodyMotion)
(documentation Stepping EnglishLanguage "The &%BodyMotion of
extending one foot forward and then bringing the other foot
to the same lateral position as the first leg.")
;; NS. delete.
;; (=>
;; (instance ?AMBULATE Ambulating)
;; (exists (?SUB)
;; (and
;; (subclass ?SUB Stepping)
;; (forall (?INST)
;; (<=>
;; (instance ?INST ?SUB)
;; (subProcess ?INST ?AMBULATE))))))
;; NS: add. The conception here is that each instance of
;; Ambulating (Walking or Running) includes at least two
;; Stepping subProcesses: a starting one, and an ending one.
(=>
(and
(instance ?AMBULATE Ambulating)
(equal ?DURATION (WhenFn ?AMBULATE)))
(exists (?STEP1 ?STEPN)
(and
(instance ?STEP1 Stepping)
(instance ?STEPN Stepping)
(subProcess ?STEP1 ?AMBULATE)
(subProcess ?STEPN ?AMBULATE)
(starts (WhenFn ?STEP1) ?DURATION)
(finishes (WhenFn ?STEPN) ?DURATION)
(not (equal ?STEP1 ?STEPN)))))
;; NS: add.
(=>
(and
(instance ?A Ambulating)
(subProcess ?S1 ?A)
(instance ?S1 Stepping)
(subProcess ?S2 ?A)
(instance ?S2 Stepping)
(equal ?S1-START (BeginFn (WhenFn ?S1)))
(equal ?S2-START (BeginFn (WhenFn ?S2)))
(not
(or
(before ?S1-START ?S2-START)
(before ?S2-START ?S1-START))))
(equal ?S1 ?S2))
;; NS: add.
(=>
(and
(instance ?AMBULATE Ambulating)
(instance ?STEP Stepping)
(subProcess ?STEP ?AMBULATE)
(agent ?AMBULATE ?AGENT))
(agent ?STEP ?AGENT))
;; NS: add.
(=>
(and
(instance ?AMBULATE Ambulating)
(instance ?STEP Stepping)
(subProcess ?STEP ?AMBULATE)
(agent ?STEP ?AGENT))
(agent ?AMBULATE ?AGENT))
(subclass Wading Walking)
(documentation Wading EnglishLanguage "Any instance of &%Walking which occurs through a
&%BodyOfWater.")
(=>
(instance ?P Wading)
(exists (?W)
(and
(instance ?W WaterArea)
(eventLocated ?P ?W))))
(subclass Jumping BodyMotion)
(subclass Jumping MotionUpward)
(documentation Jumping EnglishLanguage "Any &%MotionUpward which is done by one's body
and which results in a situation where one's feet are unsupported.")
(=>
(and
(instance ?J Jumping)
(agent ?J ?A))
(holdsDuring
(EndFn (WhenFn ?J))
(not
(attribute ?A Standing))))
(subclass Somersaulting BodyMotion)
(documentation Somersaulting EnglishLanguage "Any &%BodyMotion which begins and ends in
a &%Sitting position and where the feet roll over the head and return to
their original position.")
(=>
(and
(instance ?S Somersaulting)
(agent ?S ?A))
(and
(holdsDuring
(BeginFn (WhenFn ?S))
(attribute ?A Sitting))
(holdsDuring
(EndFn (WhenFn ?S))
(attribute ?A Sitting))))
(subclass Reflecting Radiating)
(documentation Reflecting EnglishLanguage "Any instance of &%Radiating where the radiated
waves rebound from a surface, e.g. an echo of sound or a reflection of
light.")
(subclass ReflectingLight Reflecting)
(subclass ReflectingLight RadiatingLight)
(documentation ReflectingLight EnglishLanguage "Those
instances of &%RadiatingLight where the &%instrument is not
a light source, but is simply a surface which bends light
waves that come in contact with it.")
(documentation wavelength EnglishLanguage "(wavelength ?RADIATION ?MEASURE) means that the
instance of radiation, ?RADIATION, has an average wavelength of ?MEASURE.")
(instance wavelength SingleValuedRelation)
(domain wavelength 1 Radiating)
(domain wavelength 2 LengthMeasure)
(instance wavelength AsymmetricRelation)
(instance wavelength BinaryPredicate)
;(subrelation wavelength measure)
(subclass RadiatingInfrared Radiating)
(disjoint RadiatingInfrared RadiatingLight)
(disjoint RadiatingInfrared RadioEmission)
(documentation RadiatingInfrared EnglishLanguage "Any instance of &%Radiating where the
&%wavelengths are longer than those of visible light and shorter than those
of radio emissions.")
(subclass RadiatingUltraviolet RadiatingElectromagnetic)
(disjoint RadiatingUltraviolet RadiatingLight)
(disjoint RadiatingUltraviolet RadiatingXRay)
(documentation RadiatingUltraviolet EnglishLanguage "Any case of &%RadiatingElectromagnetic where the
&%wavelengths are shorter than those of visible light and longer than those
of X-Rays.")
(abbreviation "UV" RadiatingUltraviolet)
;MS: Duplicity with RadiatingXRay defined in Merge.kif
;(subclass XRayRadiation Radiating)
;(documentation XRayRadiation EnglishLanguage "Electro-magnetic radiation of short wavelength, often made use of by devices that scan the inside of objects.")
(=>
(instance ?X RadiatingXRay)
(exists (?M)
(and
(instance ?M LengthMeasure)
(wavelength ?X ?M)
(greaterThanOrEqualTo ?X
(MeasureFn 0.01 Nanometer))
(greaterThan
(MeasureFn 10 Nanometer) ?X))))
(subclass RadiatingVisibleLight RadiatingLight)
(disjoint RadiatingVisibleLight RadiatingUltraviolet)
(documentation RadiatingVisibleLight EnglishLanguage "Any instance of &%RadiatingLight that can
be detected by normal human visual perception.")
(=>
(and
(instance ?R RadiatingLight)
(instance ?H Human)
(instance ?S Seeing)
(agent ?S ?H)
(patient ?S ?R))
(instance ?R RadiatingVisibleLight))
(subclass Sunlight RadiatingLight)
(documentation Sunlight EnglishLanguage "Any instance of &%RadiatingLight where the
Sun (&%Sol) is the origin.")
(subclass RadioReceiver ReceiverDevice)
(documentation RadioReceiver EnglishLanguage "A &%RadioReceiver is a &%Device for receiving
radio broadcast signals from a &%RadioStation.")
(subclass Script Collection)
(documentation Script EnglishLanguage "The collection of &%Characters in a particular
written language. Every &%WrittenCommunication consists of &%Characters
written in a particular script. Scripts include different typefaces, as
well as entirely different characters. 'Times Roman' is a very specific
script. While the 'latin' character set is a general one, that has
specific subclasses like Times Roman. Other scripts include Devanagri
(which may be expressed in many different more specific typefaces), or
Simplified Chinese.")
;; NS: edited to fix argument order for &%part.
(=>
(instance ?W WrittenCommunication)
(exists (?T ?C ?S)
(and
(result ?W ?T)
(instance ?T Text)
(part ?C ?T)
(instance ?C Character)
(instance ?S Script)
(member ?C ?S))))
(subclass Orthography Procedure)
(documentation Orthography EnglishLanguage "A method for representing the sounds of a &%Language
with written &%Characters.")
(subclass Lyrics Text)
(documentation Lyrics EnglishLanguage "Any &%Text which is intended to be sung.")
(=>
(instance ?LYRIC Lyrics)
(hasPurpose ?LYRIC
(exists (?SING)
(and
(instance ?SING Singing)
(patient ?SING ?LYRIC)))))
(subclass Paragraph Text)
(documentation Paragraph EnglishLanguage "A &%Text which consists of one or more sentences,
begins with an indented line, and expresses a single topic.")
(=>
(instance ?T Paragraph)
(exists (?S)
(and
(instance ?S Sentence)
(part ?S ?T))))
(documentation sententialObject EnglishLanguage "(sententialObject ?OBJECT ?SENTENCE)
means that the &%NounPhrase ?OBJECT is the object of the &%Sentence
?SENTENCE.")
(domain sententialObject 1 NounPhrase)
(domain sententialObject 2 Sentence)
(subrelation sententialObject grammaticalRelation)
(documentation sententialSubject EnglishLanguage "(sententialSubject ?SUBJECT ?SENTENCE)
means that the &%NounPhrase ?SUBJECT is the subject of the &%Sentence
?SENTENCE.")
(domain sententialSubject 1 NounPhrase)
(domain sententialSubject 2 Sentence)
(subrelation sententialSubject grammaticalRelation)
(documentation speaksLanguage EnglishLanguage "(speaksLanguage ?AGENT ?LANGUAGE) means that the
&%SentientAgent ?AGENT is capable of understanding and/or generating the &%Language
?LANGUAGE.")
(instance speaksLanguage BinaryPredicate)
(domain speaksLanguage 1 SentientAgent)
(domain speaksLanguage 2 Language)
;; KJN: Deleting this. Made MakingInstrumentalMusic in Music ontology and moved
;; it to Merge
;;(subclass InstrumentalMusic Music)
;;(documentation InstrumentalMusic EnglishLanguage "&%Music
;;which is produced (at least in part) by a
;;&%MusicalInstrument.")
;;(=>
;; (instance ?MUSIC InstrumentalMusic)
;; (exists (?INSTRUMENT)
;; (and
;; (instance ?INSTRUMENT MusicalInstrument)
;; (instrument ?MUSIC ?INSTRUMENT))))
;;(partition Music MonophonicMusic PolyphonicMusic)
;; KJN: Making this into an attribute to describe a MakingMusic or
;; MusicRecording instance, instead of a subclass of MakingMusic
(instance MonophonicMusic RelationalAttribute)
(documentation MonophonicMusic EnglishLanguage "&%MakingMusic
which has a single part, i.e. &%MakingMusic which cannot be
divided into two or more contemporaneous &%subProcesses
which are also instances of &%MakingMusic.")
(instance PolyphonicMusic RelationalAttribute)
(documentation PolyphonicMusic EnglishLanguage "&%MakingMusic
which has two or more parts, i.e. &%MakingMusic which can be
divided into two or more contemporaneous &%subProcesses
which are also instances of &%MakingMusic.")
(<=>
(attribute ?MUSIC PolyphonicMusic)
(exists (?PART1 ?PART2)
(and
(instance ?MUSIC MakingMusic)
(instance ?PART1 MakingMusic)
(instance ?PART2 MakingMusic)
(subProcess ?PART1 ?MUSIC)
(subProcess ?PART2 ?MUSIC)
(not (equal ?PART1 ?PART2))
(cooccur ?PART1 ?MUSIC)
(cooccur ?PART2 ?MUSIC))))
;; KJN: Removing this. Created MakingVocalMusic and put it in Merge.kif
;;(subclass VocalMusic Music)
;;(documentation VocalMusic EnglishLanguage "&%Music which is produced (at least in part)
;;by &%Singing.")
;;(=>
;; (instance ?M VocalMusic)
;; (exists (?S)
;; (and
;; (instance ?S Singing)
;; (subProcess ?S ?M))))
(subclass MusicalTone RadiatingSound)
(documentation MusicalTone EnglishLanguage "A &%Process of &%RadiatingSound where the
sound has a fundamental frequency and 0 or more partial frequencies
or unrelated transients or noise components that have a lesser
amplitude than the fundamental.")
(subclass RadiatingSoundUltrasonic RadiatingSound)
(documentation RadiatingSoundUltrasonic EnglishLanguage "All sound waves that have frequencies
above those that normal &%Human ears can detect.")
(instance soundFrequency BinaryPredicate)
(documentation soundFrequency EnglishLanguage "A relation between a &%Process of
&%MusicalTone and the fundamental frequency of that tone.")
(domain soundFrequency 1 MusicalTone)
(domain soundFrequency 2 FunctionQuantity)
;; NS: The ambiguity of &%patient, in particular, creates
;; unnecessary confusion for axiom authors, and definitely
;; will be a problem if SUMO is ever used in an application
;; requiring serious inference. On the one hand, &%patient
;; is frequently used to indicate the object acted on (in
;; grammatical terms, the direct object) of a Process. On
;; the other hand, it is also used to gather up just about
;; all of the objects that play any role in a Process,
;; except for &%agent, &%origin, &%destination, and perhaps
;; a few others. This means that a user (human or
;; application) won't really be able to determine the object
;; acted on/direct object of a Process (e.g., Process1)
;; without posing a query like the following:
;;
;; (and
;; (patient Process1 ?X)
;; (not (instrument Process1 ?X))
;; (not (resource Process1 ?X))
;; (not (result Process1 ?X))
;; ... etc.)
;;
;; The solution is to (a) restrict the meaning of &%patient
;; to "object acted on/direct object" and define some new
;; predicate to gather up all of the non-&%agent
;; subrelations, or (b) define some new predicate that
;; strictly means "object acted on/direct object", relate it
;; to those predicates it should subsume, and redefine
;; &%patient to mean "every case role in a Process that is
;; not the &%agent". Either way, all of the axioms that
;; currently use &%patient and its current subrelations will
;; have to be reviewed and, if necessary, rewritten. This
;; should be done sooner rather than later.
;;
;; To determine all of the entities that play any role in
;; Process1, a user can pose this query:
;;
;; (involvedInEvent Process1 ?X)
(subclass WrittenCommunication LinguisticCommunication)
(documentation WrittenCommunication EnglishLanguage "Any
&%LinguisticCommunication where the &%instrument is a
&%Text, e.g. a letter, an email, a memo, etc.")
;; NS: There is a tendency throughout MILO and the domain
;; ontologies, and sometimes even within Merge.kif, to
;; compose rules in relative isolation, as if no more
;; general rule already stated somewhere else could possibly
;; be relevant. One practical result is that we allow (or
;; force) inference engines to do unnecessary skolemization.
;; Typically, an inference engine will have no way of
;; proving that two skolemized terms should be considered
;; &%equal, so newly introduced terms that "pass in the
;; night" will proliferate during inference. Another
;; problem is the relatively small and imprecise (at least
;; as used) set of CaseRoles. Over-skolemization and
;; CaseRole imprecision combine to pretty much guarantee
;; that many of the rules in MILO and the domain ontologies
;; will not produce the intended or desired inference
;; results.
;; [12] - [24] below are interrelaed, but should be much
;; more so.
;; Merge.kif
;;
;; [12] (documentation Communication EnglishLanguage "A
;; SocialInteraction that involves the transfer of
;; information between two or more
;; CognitiveAgents. Note that Communication is closely
;; related to, but essentially different from,
;; ContentDevelopment. The latter involves the creation
;; or modification of a ContentBearingObject, while
;; Communication is the transfer of information for the
;; purpose of conveying a message.")
;;
;; [13]
;; (=>
;; (instance ?COMMUNICATE Communication)
;; (exists (?PHYS ?ENTITY ?AGENT1 ?AGENT2)
;; (and
;; (refers ?PHYS ?ENTITY)
;; (patient ?COMMUNICATE ?PHYS)
;; (instance ?AGENT1 CognitiveAgent)
;; (agent ?COMMUNICATE ?AGENT1)
;; (instance ?AGENT2 CognitiveAgent)
;; (destination ?COMMUNICATE ?AGENT2))))
;;
;; NS: [12] and [13] seem not to correspond to each other.
;;
;; TO DO: Try to think of a more useful way to capture the
;; salient meaning of Communication. (refers ?PHYS
;; ?ENTITY) seems so vague as to be pointless.
;; According to the documentation statement, an
;; instance of Communication is essentially a
;; transfer of information from at least one agent to
;; at least one other agent. I understand why this
;; rule is so general, but I'm inclined to view
;; Communication as involving (at least)
;; representation and ContentBearingPhysicals.
;; Merge.kif
;;
;; [14] (subclass LinguisticCommunication Communication)
;;
;; [15]
;; (=>
;; (instance ?COMMUNICATE LinguisticCommunication)
;; (exists (?OBJ)
;; (and
;; (represents ?COMMUNICATE ?OBJ)
;; (instance ?OBJ LinguisticExpression)
;; (patient ?COMMUNICATE ?OBJ))))
;;
;; TO DO: Relate [15] to [13], or to a revised version of [13].
;; Merge.kif
;;
;; [16] (subclass Writing ContentDevelopment)
;;
;; [17]
;; (=>
;; (instance ?DEVELOP ContentDevelopment)
;; (exists (?OBJ)
;; (and
;; (instance ?OBJ ContentBearingObject)
;; (result ?DEVELOP ?OBJ))))
;; Mid-level-ontology.kif
;;
;; [18] (subclass WrittenCommunication Communication)
;;
;; [19]
;; (=>
;; (instance ?COMMUNICATE WrittenCommunication)
;; (exists (?WRITE ?READ ?TEXT)
;; (and
;; (instance ?WRITE Writing)
;; (instance ?READ Reading)
;; (instance ?TEXT Text)
;; (instrument ?COMMUNICATE ?TEXT)
;; (result ?WRITE ?TEXT)
;; (patient ?READ ?TEXT)
;; (subProcess ?WRITE ?COMMUNICATE)
;; (subProcess ?READ ?COMMUNICATE))))
;;
;; NS: In Merge.kif, the documentation for &%Reading
;; indicates that the term denotes the process of reading
;; aloud, but &%Reading is not related to &%Speaking. The
;; process of reading silently is supposedly denoted by
;; &%Interpreting. &%Reading is not usefully related to
;; &%Interpreting. So, according to [19], an instance of
;; WrittenCommunication entails reading a text aloud, but
;; not interpreting (understanding) the text. Also, [19]
;; fails to specify any temporal ordering between ?WRITE and
;; ?READ.
;;
;; TO DO: Fix [19].
;; Merge.kif
;;
;; [20] (subclass Speaking Vocalizing)
;;
;; [21] (subclass Vocalizing RadiatingSound)
;;
;; [22] (documentation Vocalizing EnglishLanguage "Any
;; instance of RadiatingSound where the instrument is the
;; Human vocal cords. This covers grunts, screams, roars, as
;; well as Speaking.")
;;
;; [23]
;; (=>
;; (instance ?VOCAL Vocalizing)
;; (exists (?HUMAN)
;; (and
;; (instance ?HUMAN Human)
;; (agent ?VOCAL ?HUMAN)
;; (instrument ?VOCAL ?HUMAN))))
;;
;; NS: [22] and [23] do not correspond, perhaps because
;; creating a term for vocal cord was not within the scope
;; of Merge.kif.
;; Merge.kif
;;
;; [24]
;; (=>
;; (and
;; (instance ?EMIT RadiatingSound)
;; (agent ?EMIT ?SOUND))
;; (exists (?ATTR)
;; (and
;; (instance ?ATTR SoundAttribute)
;; (attribute ?SOUND ?ATTR))))
;;
;; NS: [20], [21], [23], and [24] together entail a CaseRole
;; mismatch. In [23], the &%agent is a Human. In [24], the
;; &%agent is presumably a sound, but neither Merge.kif nor
;; Mid-level-ontology.kif contain a representation of
;; *Sound, *SoundWave, etc. So, currently, [23] and [24]
;; entail that the Human who is the agent in a Speaking is
;; also the instrument (and, so, the patient) in the
;; Speaking, and is either &%Stressed or &%Audible as well.
;;
;; TO DO: Clean up the CaseRole mess, creating the necessary
;; concepts.
;;MSv: Moved here VocalCords, Vocalizing and Speaking from Merge. kif to resolve dependenc issue.
(subclass VocalCords Organ)
(documentation VocalCords EnglishLanguage "The vocal cords, are composed
of two folds of mucous membrane stretched horizontally across the
larynx. They vibrate, modulating the flow of air being expelled from the
lungs during &%Vocalizing. ")
(typicalPart VocalCords Human)
(typicallyContainsPart VocalCords Human)
(initialPart VocalCords Human)
;; NS: delete.
;; (=>
;; (instance ?VOCAL Vocalizing)
;; (exists (?HUMAN)
;; (and
;; (instance ?HUMAN Human)
;; (agent ?VOCAL ?HUMAN)
;; (instrument ?VOCAL ?HUMAN))))
;; NS: add. This probably is too restrictive, given that primates and
;; many other types of mammals, as well as birds, also vocalize.
;; Create VocalCord, and add the instrument part of the rule above, in
;; Mid-level-ontology.kif.
(subclass Vocalizing RadiatingSound)
(documentation Vocalizing EnglishLanguage "Any instance of &%RadiatingSound where
the instrument is the vocal cord. This covers grunts, screams, roars, as well as
&%Speaking.")
(=>
(instance ?VOCAL Vocalizing)
(exists (?CORD ?ORGANISM)
(and
(instance ?CORD VocalCords)
(instrument ?VOCAL ?CORD)
(part ?CORD ?ORGANISM)
(instance ?ORGANISM Organism))))
(subclass Speaking LinguisticCommunication)
(subclass Speaking Vocalizing)
(subclass Corresponding LinguisticCommunication)
(documentation Corresponding EnglishLanguage "Instances of &%LinguisticCommunication which
are achieved by means of &%Texts that are mailed between the persons
communicating with one another.")
(=>
(instance ?C Corresponding)
(exists (?M ?T)
(and
(instance ?M Mailing)
(subProcess ?M ?C)
(instance ?T Correspondence)
(patient ?M ?T)
(patient ?C ?T))))
(subclass Reminding Requesting)
(documentation Reminding EnglishLanguage "Any &%Requesting that is intended to cause a
&%Remembering of something.")
(=>
(instance ?REMIND Reminding)
(exists (?REMEMBER)
(and
(instance ?REMEMBER Remembering)
(causes ?REMIND ?REMEMBER))))
(subclass Threatening Committing)
(documentation Threatening EnglishLanguage "Any &%Committing where the thing promised
is something that is deemed undesirable by the &%destination of the
&%Committing.")
(=>
(and
(instance ?THREATEN Threatening)
(agent ?THREATEN ?AGENT)
(patient ?THREATEN ?PROP)
(destination ?THREATEN ?DEST))
(not (desires ?DEST ?PROP)))
(subclass Punishing RegulatoryProcess)
(documentation Punishing EnglishLanguage "A &%RegulatoryProcess where the agent does
something to the &%destination that the &%agent knows is undesirable
for the &%destination.")
(=>
(and
(instance ?P Punishing)
(agent ?P ?A)
(patient ?P ?F)
(destination ?P ?D))
(knows ?A
(not
(desires ?D ?F))))
(subclass Registering Stating)
(subclass Registering PoliticalProcess)
(documentation Registering EnglishLanguage "Submitting official paperwork in a government
agency, e.g. filing for divorce, making a legal claim against someone.")
(=>
(instance ?ACTION LegalAction)
(exists (?REGISTER)
(and
(instance ?REGISTER Registering)
(subProcess ?REGISTER ?ACTION))))
(subclass Answering Stating)
(documentation Answering EnglishLanguage "Responding to a &%Questioning, i.e. trying to answer
someone's question.")
(=>
(instance ?ANSWER Answering)
(exists (?QUESTION)
(and
(instance ?QUESTION Questioning)
(refers ?ANSWER ?QUESTION)
(earlier (WhenFn ?QUESTION) (WhenFn ?ANSWER)))))
(subclass Arguing Stating)
(documentation Arguing EnglishLanguage "Any &%Stating which has the form of an &%Argument.")
(=>
(instance ?ARGUE Arguing)
(exists (?STATEMENT ?ARGUMENT)
(and
(patient ?ARGUE ?STATEMENT)
(instance ?STATEMENT Statement)
(containsInformation ?STATEMENT ?ARGUMENT)
(instance ?ARGUMENT Argument))))
;; changing this to LinguisticCommunication
;;(subclass TellingALie Stating)
(subclass TellingALie LinguisticCommunication)
(documentation TellingALie EnglishLanguage "Any &%LinguisticCommunication which is both &%False and believed
to be &%False by the &%agent of the &%LinguisticCommunication.")
(=>
(and
(instance ?STATE TellingALie)
(agent ?STATE ?AGENT)
(patient ?STATE ?STATEMENT))
(holdsDuring
(WhenFn ?STATE)
(believes ?AGENT (truth ?STATEMENT False))))
(subclass Founding Declaring)
(subclass Founding OrganizationalProcess)
(documentation Founding EnglishLanguage "Setting up an &%Organization.")
(=>
(instance ?FOUND Founding)
(exists (?ORG)
(and
(instance ?ORG Organization)
(result ?FOUND ?ORG))))
(subclass Club Organization)
(documentation Club EnglishLanguage "A Club is an &%Organization of people that share some &%desire")
(=>
(and
(instance ?CLUB Club)
(member ?MEM1 ?CLUB)
(member ?MEM2 ?CLUB))
(exists (?DESIRE)
(and
(desires ?MEM1 ?DESIRE)
(desires ?MEM2 ?DESIRE))))
(documentation yearOfFounding EnglishLanguage "(yearOfFounding ?ORG ?NUMBER) means that the &%Organization
?ORG was founded in the year expressed in ?NUMBER.")
(instance yearOfFounding BinaryPredicate)
(instance yearOfFounding AsymmetricRelation)
(domain yearOfFounding 1 Organization)
(domain yearOfFounding 2 Integer)
(=>
(yearOfFounding ?O ?Y)
(dateEstablished ?O
(YearFn ?Y)))
(<=>
(yearOfFounding ?O ?Y)
(exists (?F)
(and
(overlapsTemporally ?F (YearFn ?Y))
(instance ?F Founding)
(result ?F ?O))))
(instance dateEstablished BinaryPredicate)
(domain dateEstablished 1 Physical)
(domainSubclass dateEstablished 2 TimePosition)
(documentation dateEstablished EnglishLanguage "(&%dateEstablished ?THING ?TIME) means
that the &%Physical ?THING was founded on the date indicated by ?TIME.
For example, (&%dateEstablished &%UnitedNations
(&%DayFn 26 (&%MonthFn &%June (&%YearFn 1945)))).")
(=>
(dateEstablished ?THING ?DATE)
(exists (?DAY)
(and
(instance ?DAY ?DATE)
(overlapsTemporally ?DAY (BeginFn (WhenFn ?THING))))))
(instance dateUsed TernaryPredicate)
(domain dateUsed 1 Object)
(domain dateUsed 2 TimePoint)
(domain dateUsed 3 Agent)
(documentation dateUsed EnglishLanguage "The date an &%Object is used by an &%Agent.")
(termFormat EnglishLanguage dateUsed "date used")
(=>
(dateUsed ?OBJECT ?DATE ?AGENT)
(exists (?PROCESS)
(and
(instance ?PROCESS Process)
(patient ?PROCESS ?OBJECT)
(agent ?PROCESS ?AGENT)
(uses ?OBJECT ?AGENT)
(overlapsTemporally ?DATE (WhenFn ?PROCESS)))))
(subclass Accrediting Declaring)
(documentation Accrediting EnglishLanguage "Any process of certifying an &%EducationalOrganization.")
(=>
(and
(instance ?A Accrediting)
(patient ?A ?EO))
(instance ?EO EducationalOrganization))
(subclass Indicating Communication)
(subclass Indicating BodyMotion)
(documentation Indicating EnglishLanguage "Pointing out a person, place or thing with
one's hand or with an &%Artifact.")
(subclass Divorcing Declaring)
(documentation Divorcing EnglishLanguage "A &%LegalAction whereby a marriage (&%Wedding) is dissolved. This
includes annulments.")
(=>
(instance ?D Divorcing)
(exists (?P1 ?P2 ?T1 ?T2)
(and
(holdsDuring ?T1
(spouse ?P1 ?P2))
(holdsDuring ?T2
(not (spouse ?P1 ?P2)))
(finishes ?T1 ?D)
(starts ?T2 ?D))))
(subclass Appointing Declaring)
(documentation Appointing EnglishLanguage "Any instance of &%Declaring by which the
patient is assigned to a &%Position within an &%Organization where
the patient previously had no position. For example, the appointments
of people to non-elective offices in a government.")
(=>
(and
(instance ?A Appointing)
(patient ?A ?H))
(exists (?P ?ORG)
(and
(holdsDuring
(BeginFn (WhenFn ?A))
(not
(occupiesPosition ?H ?P ?ORG)))
(holdsDuring
(ImmediateFutureFn
(WhenFn ?A))
(occupiesPosition ?H ?P ?ORG)))))
(=>
(instance ?A Appointing)
(not
(exists (?H)
(and
(agent ?A ?H)
(instance ?H Public)))))
(subclass TurningOffDevice InternalChange)
(documentation TurningOffDevice EnglishLanguage "Any &%Process whose result is that the patient
of the process is in the state of &%DeviceOff. In other words, this class covers
any process of turning off a device, e.g. turning off the lights, switching off a
television set, etc.")
(=>
(and
(instance ?P TurningOffDevice)
(patient ?P ?D))
(and
(holdsDuring
(BeginFn (WhenFn ?P))
(attribute ?D DeviceOn))
(holdsDuring
(EndFn (WhenFn ?P))
(attribute ?D DeviceOff))))
(=>
(and
(instance ?P TurningOffDevice)
(patient ?P ?D))
(instance ?D Device))
(subclass TurningOnDevice InternalChange)
(documentation TurningOnDevice EnglishLanguage "Any &%Process whose result is that the patient
of the process is in the state of &%DeviceOn. In other words, this class covers
any process of turning on a device, e.g. turning on the lights, switching on a
television set, etc.")
(=>
(and
(instance ?P TurningOnDevice)
(patient ?P ?D))
(and
(holdsDuring
(BeginFn (WhenFn ?P))
(attribute ?D DeviceOff))
(holdsDuring
(EndFn (WhenFn ?P))
(attribute ?D DeviceOn))))
(=>
(and
(instance ?P TurningOnDevice)
(patient ?P ?D))
(instance ?D Device))
(subclass Projectile Weapon)
(documentation Projectile EnglishLanguage "A missile, bullet, etc. that is fired from
a &%Weapon.")
(=>
(instance ?PROJECTILE Projectile)
(capability Shooting patient ?PROJECTILE))
(subclass ProjectileShell Container)
(documentation ProjectileShell EnglishLanguage "The outer casing of a &%Projectile.")
;; NS: No. Arrows don't have shells. And the mechanics are
;; not described very precisely. Typically, the casing
;; stays behind in the gun (does not move). The true
;; projectile is the slug/warhead. TO DO: rework this
;; subtopic someday.
(=>
(instance ?PROJECTILE Projectile)
(exists (?SHELL)
(and
(instance ?SHELL ProjectileShell)
(part ?SHELL ?PROJECTILE))))
(subclass ProjectileLauncher Weapon)
(documentation ProjectileLauncher EnglishLanguage "A &%Weapon that shoots a &%Projectile.")
(=>
(instance ?L ProjectileLauncher)
(capability Shooting instrument ?L))
(=>
(instance ?S Shooting)
(exists (?P ?L)
(and
(instance ?P Projectile)
(patient ?S ?P)
(instance ?L ProjectileLauncher)
(instrument ?S ?L))))
(subclass Spear Weapon)
(documentation Spear EnglishLanguage "A &%Weapon with a long handle and a short
blade.")
(subclass Sword Weapon)
(documentation Sword EnglishLanguage "A &%Weapon with a long blade and covered
handle.")
(subclass Whip Weapon)
(documentation Whip EnglishLanguage "A &%Weapon that consists of a thin strand of
&%Fabric, usually &%Leather, and a handle by which the strand is
impelled at a high rate of speed.")
(subclass Gun Weapon)
(subclass Gun ProjectileLauncher)
(partition Gun ArtilleryGun Firearm)
(documentation Gun EnglishLanguage "A &%Weapon that shoots a &%Projectile.")
(=>
(instance ?GUN Gun)
(capability Shooting instrument ?GUN))
(=>
(instance ?SHOOT Shooting)
(exists (?PROJECTILE ?GUN)
(and
(instance ?PROJECTILE Projectile)
(patient ?SHOOT ?PROJECTILE)
(instance ?GUN Gun)
(instrument ?SHOOT ?GUN))))
(subclass MortarGun ArtilleryGun)
(documentation MortarGun EnglishLanguage "A short-range &%Gun that is positioned on the ground
at a high angle and fires explosive shells.")
(subclass Bullet Projectile)
(documentation Bullet EnglishLanguage "A &%Projectile that is designed to be fired by a &%Gun.")
(=>
(instance ?B Bullet)
(hasPurpose ?B
(exists (?S ?GUN)
(and
(instance ?S Shooting)
(instrument ?S ?GUN)
(instance ?GUN Gun)
(patient ?S ?B)))))
(subclass BulletCartridge Projectile)
(documentation BulletCartridge EnglishLanguage "The entire projectile consisting of a bullet,
casing, gunpowder, and primer.")
(termFormat EnglishLanguage BulletCartridge "bullet cartridge")
(=>
(instance ?CARTRIDGE BulletCartridge)
(hasPurpose ?CARTRIDGE
(exists (?BULLET ?CASE)
(and
(instance ?BULLET Bullet)
(instance ?CASE CartridgeCase)
(properPart ?BULLET ?CARTRIDGE)
(properPart ?CASE ?CARTRIDGE)))))
(subclass CartridgeCase EngineeringComponent)
(documentation CartridgeCase EnglishLanguage "the part of a cartridge that holds the bullet")
(termFormat EnglishLanguage CartridgeCase "case")
(=>
(instance ?CASE CartridgeCase)
(exists (?CARTRIDGE ?BULLET ?K)
(and
(instance ?CARTRIDGE BulletCartridge)
(instance ?BULLET Bullet)
(instance ?K Keeping)
(properPart ?CASE ?CARTRIDGE)
(properPart ?BULLET ?CARTRIDGE)
(agent ?K ?CASE)
(patient ?K ?BULLET))))
(subclass GunBarrel EngineeringComponent)
(documentation GunBarrel EnglishLanguage "The part of a &%Gun through which a &%Projectile travels
when it is fired.")
(=>
(instance ?B GunBarrel)
(exists (?G)
(and
(instance ?G Gun)
(part ?B ?G))))
(=>
(and
(instance ?G Gun)
(instance ?B GunBarrel)
(part ?B ?G)
(instance ?S Shooting)
(instrument ?S ?GUN)
(patient ?S ?P)
(instance ?P Projectile))
(exists (?SUB)
(and
(subProcess ?SUB ?S)
(path ?SUB ?B))))
(subclass GunPowder Mixture)
(documentation GunPowder EnglishLanguage "A &%Mixture of potassium nitrate, sulfur, and
charcoal that is used in &%ExplosiveDevices and to propell &%Projectiles
in &%ProjectileWeapons.")
(instance physicalEnd BinaryPredicate)
(subrelation physicalEnd properPart)
(format EnglishLanguage physicalEnd "one end of %2 is %1")
(documentation physicalEnd EnglishLanguage "A notion of an indeterminate portion
at the end of an &%Object that has a &%LongAndThin &%ShapeAttribute.")
(domain physicalEnd 1 Object)
(domain physicalEnd 2 Object)
(=>
(physicalEnd ?E ?O)
(attribute ?O LongAndThin))
(=>
(physicalEnd ?E ?O)
(not
(attribute ?E LongAndThin)))
(=>
(and
(physicalEnd ?E1 ?O)
(physicalEnd ?E2 ?O)
(not
(equal ?E1 ?E2)))
(not
(overlapsSpatially ?E1 ?E2)))
(=>
(and
(physicalEnd ?E1 ?O)
(physicalEnd ?E2 ?O)
(not
(equal ?E1 ?E2)))
(not
(meetsSpatially ?E1 ?E2)))
(=>
(and
(physicalEnd ?E ?O)
(superficialPart ?SP ?O))
(meetsSpatially ?E ?SP))
(=>
(and
(physicalEnd ?E1 ?O)
(physicalEnd ?E2 ?O)
(part ?P1 ?E1)
(part ?P2 ?E2)
(distance ?P1 ?P2 ?D1)
(not
(equal ?E1 ?E2)))
(not
(exists (?OP1 ?OP2 ?D2)
(and
(not
(part ?OP1 ?E1))
(not
(part ?OP2 ?E2))
(distance ?OP1 ?OP2 ?D2)
(greaterThan ?D2 ?D1)))))
(subclass Lever Device)
(termFormat EnglishLanguage Lever "lever")
(documentation Lever EnglishLanguage "Anything which is actually used
as a lever, since many things can be used as such, regardless of the
intent during their &%Manufacture. A lever necessarily has a &%Fulcrum
around which the lever exhibits &%Rotating. A lever has a mechanical
advantage at the point of output compared to the point of input of
force.")
(externalImage Lever "http://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Palanca-ejemplo.jpg/800px-Palanca-ejemplo.jpg")
(=>
(instance ?L Lever)
(exists (?A)
(axis ?A ?L)))
(=>
(and
(instance ?L Lever)
(instance ?P Pushing)
(instance ?M1 Motion)
(destination ?P ?E1)
(physicalEnd ?E1 ?L)
(physicalEnd ?E2 ?L)
(not
(equal ?E1 ?E2))
(holdsDuring (ImmediatePastFn (WhenFn ?M1))
(located ?E1 ?P1))
(holdsDuring (ImmediateFutureFn (WhenFn ?M1))
(located ?E1 ?P2))
(holdsDuring (ImmediatePastFn (WhenFn ?M1))
(located ?E2 ?P3))
(holdsDuring (ImmediateFutureFn (WhenFn ?M1))
(located ?E2 ?P4))
(distance ?P1 ?P2 ?D1)
(distance ?P3 ?P4 ?D2))
(greaterThan ?D2 ?D1))
(=>
(instance ?P GunPowder)
(capability Explosion instrument ?P))
(subclass GunTrigger EngineeringComponent)
(subclass GunTrigger Lever)
(documentation GunTrigger EnglishLanguage "The part of the &%Gun which is pulled in &%Shooting
the &%Gun.")
(typicalPart GunTrigger Gun)
(typicallyContainsPart GunTrigger Gun)
(subclass LoadingWeapon Inserting)
(documentation LoadingWeapon EnglishLanguage "Inserting ammunition into a &%ProjectileWeapon
in such a way that the ammunition can be fired by the weapon.")
(=>
(and
(instance ?L LoadingWeapon)
(patient ?L ?P))
(instance ?P Projectile))
(=>
(and
(instance ?L LoadingWeapon)
(destination ?L ?W))
(instance ?W ProjectileLauncher))
(instance effectiveRange BinaryPredicate)
(instance effectiveRange SingleValuedRelation)
(subrelation effectiveRange measure)
(domain effectiveRange 1 Device)
(domain effectiveRange 2 LengthMeasure)
(documentation effectiveRange EnglishLanguage "Models the effective range of some
device that is able to move by itself (like vehicles, rockets and so
on) or move other things (like weapons).")
;; effectiveRange of weapons means the ability to damage objects
(=>
(and
(instance ?GUN Gun)
(effectiveRange ?GUN ?LM)
(distance ?GUN ?O ?LM1)
(not
(exists (?O2)
(between ?O ?O2 ?GUN)))
(lessThanOrEqualTo ?LM1 ?LM))
(capability
(KappaFn ?DAMAGING
(and
(instance ?DAMAGING Damaging)
(patient ?DAMAGING ?O)))
instrument ?GUN))
;; effectiveRange of weapons means the ability to kill living things
(=>
(and
(instance ?GUN Gun)
(effectiveRange ?GUN ?LM)
(distance ?GUN ?O ?LM1)
(instance ?O Organism)
(not
(exists (?O2)
(between ?O ?O2 ?GUN)))
(lessThanOrEqualTo ?LM1 ?LM))
(capability
(KappaFn ?KILLING
(and
(instance ?KILLING Killing)
(patient ?KILLING ?O)))
instrument ?GUN))
(subclass GunStock EngineeringComponent)
(documentation GunStock EnglishLanguage "The part of a &%Gun that is placed against the
shoulder to absorb some of the recoil action when it is fired.")
(=>
(instance ?STOCK GunStock)
(exists (?GUN)
(and
(instance ?GUN Gun)
(part ?STOCK ?GUN))))
(subclass WeaponOfMassDestruction Weapon)
(documentation WeaponOfMassDestruction EnglishLanguage "Nuclear, chemical and biological weapons.
What these weapons have in common is that they are designed to kill large numbers
of people indiscriminately.")
;; KJN: Moving to WMD.kif as BiochemicalWeapon is defined there
;;(subclass RadioactiveWeapon WeaponOfMassDestruction)
;;(disjoint RadioactiveWeapon BiochemicalWeapon)
;;(documentation RadioactiveWeapon EnglishLanguage "A &%WeaponOfMassDestruction which
;;achieves its effect through radioactivity, either by an explosion resulting
;;from nuclear fission or by a conventional explosive device that scatters
;;radioactive debris.")
;;(documentation RadiologicalWeapon EnglishLanguage "&%Weapons which are designed to spread
;;radioactive particles over a large area by means of a conventional
;;explosive device rather than a nuclear reaction. These weapons are often
;;referred to as 'dirty bombs'.")
;;(subclass RadiologicalWeapon RadioactiveWeapon)
;;(subclass NuclearWeapon ExplosiveDevice)
;;(subclass NuclearWeapon Weapon)
;;(documentation NuclearWeapon EnglishLanguage "An &%ExplosiveDevice and &%RadioactiveWeapon
;;which achieves its effect by means of a critical mass of a radioactive substance.")
;;(subclass NuclearWeapon RadioactiveWeapon)
;;(=>
;; (instance ?W NuclearWeapon)
;; (capability RadiatingNuclear instrument ?W))
(subclass Handle EngineeringComponent)
(documentation Handle EnglishLanguage "The part or parts of an &%Artifact that are designed to be
held with the &%Hands when the &%Artifact is used or carried.")
(=>
(instance ?H Handle)
(hasPurpose
?H
(exists (?G ?D)
(and
(instance ?G Grabbing)
(patient ?G ?H)
(instrument ?G ?D)
(instance ?D Hand)))))
(subclass Shield Artifact)
(documentation Shield EnglishLanguage "An &%Artifact that is held by the hand or whole arm and
is used to prevent injuries from &%Weapons.")
(=>
(instance ?S Shield)
(hasPurpose ?S
(exists (?P ?H)
(and
(instance ?P Protecting)
(instrument ?P ?S)
(instance ?H Human)
(patient ?P ?H)
(prevents ?P
(KappaFn ?I
(and
(instance ?I Injuring)
(exists (?W)
(and
(instance ?W Weapon)
(instrument ?I ?W)))
(=>
(patient ?I ?H)
(not
(patient ?P ?H))))))))))
(=>
(instance ?S Shield)
(exists (?H)
(and
(instance ?H Handle)
(part ?H ?S))))
(subclass Mast Artifact)
(documentation Mast EnglishLanguage "A large pole in the center of a &%WaterVehicle which is
used to support a sail.")
(=>
(instance ?M Mast)
(exists (?W)
(and
(instance ?W WaterVehicle)
(part ?M ?W))))
;; KJN: Moving this to Engineering.kif
;;(subclass Rotor EngineeringComponent)
;;(documentation Rotor EnglishLanguage "The &%Rotating component of a motor, generator or similar
;;&%Device.")
;;(=>
;; (instance ?R Rotor)
;; (capability Rotating instrument ?R))
(subclass WingDevice EngineeringComponent)
(documentation WingDevice EnglishLanguage "The wings of &%Aircraft, i.e. the parts of &%Aircraft
that allow them to become and remain airborne.")
(=>
(instance ?W WingDevice)
(exists (?A)
(and
(instance ?A Aircraft)
(part ?W ?A))))
(subclass Tube Artifact)
(documentation Tube EnglishLanguage "A long, narrow, and hollow &%Artifact that is designed for
moving &%Fluids from place to another.")
(=>
(instance ?T Tube)
(hasPurpose ?T
(exists (?P ?OBJ)
(and
(instance ?P Transfer)
(path ?P ?T)
(patient ?P ?OBJ)
(attribute ?OBJ Fluid)))))
(subclass PhotographicFilm Artifact)
(documentation PhotographicFilm EnglishLanguage "Celluloid covered with an emulsion which can
be converted into photographic negatives by a &%Camera.")
(subclass PictureFrame Artifact)
(documentation PictureFrame EnglishLanguage "A frame which surrounds a &%PaintedPicture or
&%Photograph and has the function of protecting and accenting the picture.")
(=>
(instance ?F PictureFrame)
(hasPurpose ?F
(exists (?P)
(and
(meetsSpatially ?F ?P)
(or
(instance ?P PaintedPicture)
(instance ?P Photograph))))))
(subclass Shelf Artifact)
(documentation Shelf EnglishLanguage "An piece of &%Furniture or part of a piece of &%Furniture
that is used for keeping or displaying things.")
(=>
(instance ?S Shelf)
(exists (?F)
(and
(instance ?F Furniture)
(part ?S ?F))))
(subclass AutomaticGun Gun)
(documentation AutomaticGun EnglishLanguage "A &%Gun that fires a burst of &%Projectiles
with each pull of the trigger. Also known as a machine gun.")
(=>
(instance ?G AutomaticGun)
(hasPurpose ?G
(exists (?S1 ?S2 ?P ?T)
(and
(instance ?P Pulling)
(instance ?T GunTrigger)
(patient ?P ?T)
(part ?T ?G)
(instance ?S1 Shooting)
(instance ?S2 Shooting)
(instrument ?S1 ?G)
(instrument ?S2 ?G)
(not (equal ?S1 ?S2))
(causes ?P ?S1)
(causes ?P ?S2)))))
(=>
(instance ?T GunTrigger)
(hasPurpose ?T
(exists (?S ?G ?P)
(and
(instance ?G AutomaticGun)
(part ?T ?G)
(patient ?P ?T)
(instance ?P Pulling)
(instance ?S Shooting)
(instrument ?S ?G)
(causes ?P ?S)))))
(subclass ArtilleryGun Gun)
(documentation ArtilleryGun EnglishLanguage "A &%Gun that is too large to be carried and fired
by a single &%Human. Typically, &%ArtilleryGuns are on wheels.")
(subclass Firearm Gun)
(partition Firearm Rifle Pistol)
(documentation Firearm EnglishLanguage "A &%Gun that is small enough to be carried and fired by
a single &%Human.")
(subclass Rifle Firearm)
(documentation Rifle EnglishLanguage "A &%Firearm with a long barrel that is intended to be fired
from the shoulder.")
(subclass Pistol Firearm)
(documentation Pistol EnglishLanguage "A &%Firearm that is intended to be aimed and fired with a
single hand.")
(subclass RevolverGun Pistol)
(documentation RevolverGun EnglishLanguage "A &%Pistol whose magazine is a revolving cylinder with
six chambers for &%Bullets.")
(instance ContainerEmpty RelationalAttribute)
(documentation ContainerEmpty EnglishLanguage "&%ContainerEmpty is the &%Attribute of a
&%Container that is empty.")
(=>
(attribute ?C ContainerEmpty)
(instance ?C Container))
(=>
(attribute ?C ContainerEmpty)
(not
(exists (?H ?S)
(and
(instance ?H Hole)
(hole ?H ?C)
(partiallyFills ?S ?C)))))
(instance ContainerFull RelationalAttribute)
(contraryAttribute ContainerFull ContainerEmpty)
(documentation ContainerFull EnglishLanguage "&%ContainerFull is the &%Attribute of a
&%Container that is full to capacity.")
(=>
(attribute ?C ContainerFull)
(instance ?C Container))
(=>
(attribute ?C ContainerFull)
(exists (?H ?S)
(and
(instance ?H Hole)
(hole ?H ?C)
(fills ?S ?C))))
(subclass Holster Container)
(documentation Holster EnglishLanguage "A &%Container for a &%Pistol. It is generally made of
Leather and worn on either the shoulder or the waist.")
(=>
(instance ?H Holster)
(hasPurpose ?H
(exists (?P)
(and
(instance ?P Pistol)
(contains ?H ?P)))))
(subclass Wastebasket Container)
(documentation Wastebasket EnglishLanguage "A &%Container which is used for trash.")
(subclass ArrowProjectile Projectile)
(documentation ArrowProjectile EnglishLanguage "A long, thin &%Projectile with a pointed tip is
fired from a bow.")
(subclass DriveComponent EngineeringComponent)
(documentation DriveComponent EnglishLanguage "An &%EngineeringComponent whose purpose is to
transfer force from one part of a &%Device to another part.")
;; KJN: Moving this to Economy.kif as the definition for MiningProduct is found there
;;(subclass PetroleumProduct MiningProduct)
(subclass PetroleumProduct Oil)
(documentation PetroleumProduct EnglishLanguage "&%PetroleumProduct is a broad class that
includes both crude oil (Petroleum) and &%RefinedPetroleumProducts.")
(=>
(instance ?PP PetroleumProduct)
(exists (?O)
(and
(instance ?O OrganicCompound)
(part ?O ?PP))))
(subclass FossilFuel Fuel)
(subclass FossilFuel PetroleumProduct)
(documentation FossilFuel EnglishLanguage "&%FossilFuel is the subclass of &%Fuel whose
instances are derived from fossilized organic deposits, such as &%Coal
and &%LiquefiedPetroleumGas.")
(subclass Fuel Substance)
(documentation Fuel EnglishLanguage "Fuel is the class of &%Substances that can be
used as resources in Combustion processes in order to produce heat.
Mechanical energy can be produced by burning fuel in an &%Engine.")
(=>
(instance ?X FossilFuel)
(attribute ?X Flammable))
(subclass Wax Substance)
(documentation Wax EnglishLanguage "Any &%Substance of high molecular weight that resembles
beeswax.")
(subclass LiquefiedPetroleumGas FossilFuel)
;; KJN: Moving this to Economy.kif as the definition for RefinedPetroleumProduct is there
;;(subclass LiquefiedPetroleumGas RefinedPetroleumProduct)
(documentation LiquefiedPetroleumGas EnglishLanguage "&%LiquefiedPetroleumGas is a
compressed hydrocarbon gas.")
(subclass Gasoline FossilFuel)
(documentation Gasoline EnglishLanguage "&%Gasoline is the subclass of
RefinedPetroleumProducts that are fuels for internal combustion engines.")
(subclass DieselFuel FossilFuel)
(documentation DieselFuel EnglishLanguage "&%DieselFuel is the subclass of
RefinedPetroleumProducts that are fuels for diesel engines.")
(documentation Transducer EnglishLanguage "A &%Device which is capable of converting one
form of energy into another. Formally, a &%Twoport that neither stores
nor dissipates, but only transfers energy between its two ports.")
(subclass Transducer Device)
(subclass Engine Transducer)
(documentation Engine EnglishLanguage "Engine is a subclass of &%Transducer. &%Engines
are devices for converting some form of energy resource into mechanical
power.")
(documentation powerComponent EnglishLanguage "(powerComponent ?GENERATOR ?THING) means that the &%CorpuscularObject ?GENERATOR is the power-producing component of the &%CorpuscularObject ?THING which provides the energy for its operation.")
(instance powerComponent BinaryPredicate)
(instance powerComponent AsymmetricRelation)
(instance powerComponent IrreflexiveRelation)
(domain powerComponent 1 CorpuscularObject)
(domain powerComponent 2 CorpuscularObject)
(subrelation powerComponent component)
(=>
(powerComponent ?G ?O)
(and
(instance ?G Device)
(instance ?O Artifact)))
(=>
(and
(powerComponent ?G ?O)
(instance ?O Device))
(instance ?O SelfPoweredDevice))
;(=>
; (powerComponent ?G ?O)
; (or
; (instance ?G Engine)
; (instance ?G Battery)))
(subclass SteamEngine Engine)
(documentation SteamEngine EnglishLanguage "&%SteamEngine is the subclass of &%Engines
that produce mechanical power from heat and steam pressure.")
(subclass Turbine Engine)
(documentation Turbine EnglishLanguage "An &%Engine which converts the kinetic energy of a moving
&%Liquid (typically &%Water) into mechanical energy.")
(subclass Windmill Engine)
(documentation Windmill EnglishLanguage "Windmill is the subclass of &%Engines that
produce mechanical power from &%Wind energy.")
(subclass InternalCombustionEngine Engine)
(documentation InternalCombustionEngine EnglishLanguage "&%InternalCombustionEngine is
the subclass of &%Engines in which a heat reaction that occurs inside
the engine is transformed into mechanical energy.")
(=>
(instance ?R (OperatingFn InternalCombustionEngine))
(exists (?E ?C ?F)
(and
(instance ?E InternalCombustionEngine)
(instrument ?R ?E)
(hole ?C ?E)
(instance ?F Combustion)
(completelyFills ?F ?C))))
(subclass Manifold EngineeringComponent)
(documentation Manifold EnglishLanguage "A pipe which has several outlets for other pipes that flow
into or out of it.")
(subclass ElectricMotor Engine)
(subclass ElectricMotor ElectricDevice)
(documentation ElectricMotor EnglishLanguage "&%ElectricMotor is the subclass of &%Engines
that produce mechanical power from electricity.")
(subclass SwitchDevice EngineeringComponent)
(documentation SwitchDevice EnglishLanguage "An &%EngineeringComponent which is capable of turning
an &%ElectricDevice on and off.")
(=>
(instance ?DEVICE SwitchDevice)
(exists (?PROC1 ?PROC2 ?ELECTRIC)
(and
(instrument ?PROC1 ?DEVICE)
(causes ?PROC1 ?PROC2)
(instrument ?PROC2 ?ELECTRIC)
(instance ?ELECTRIC ElectricDevice))))
(subclass Microphone ElectricDevice)
(subclass Microphone CommunicationDevice)
(documentation Microphone EnglishLanguage "A &%CommunicationDevice that converts sound
into electrical energy.")
(subclass ReceiverDevice CommunicationDevice)
(subclass ReceiverDevice ElectricDevice)
(documentation ReceiverDevice EnglishLanguage "An &%ElectricDevice that is capable of
receiving and decoding &%RadioEmissions, e.g. &%Radios and &%Televisions.")
(=>
(and
(instance ?E RadioEmission)
(destination ?E ?D))
(instance ?D ReceiverDevice))
(subclass Telegraph ElectricDevice)
(subclass Telegraph CommunicationDevice)
(documentation Telegraph EnglishLanguage "A &%Device that permits &%LinguisticCommunication
between remote points by means of a code of aural dots and dashes that can
be converted into letters of an alphabet.")
(subclass ProjectionScreen CommunicationDevice)
(documentation ProjectionScreen EnglishLanguage "A &%CommunicationDevice upon which images
are projected so that they can be viewed.")
(subclass Pencil WritingDevice)
(documentation Pencil EnglishLanguage "A &%WritingDevice that consists of an encased piece of
graphite.")
;; NS: delete. In general, it's bad practice to list
;; instances or subclasses in documentation, except as
;; designated examples. Otherwise, changes to the file (or
;; another domain file) tend to make the documentation
;; obsolete.
;; (documentation DeviceAttribute EnglishLanguage "This class
;; contains two &%Attributes to indicate whether a &%Device is or is
;; not behaving as it is intended to behave, &%Functioning and
;; &%Malfunctioning.")
;; NS: add.
(subclass DeviceAttribute ObjectiveNorm)
(documentation DeviceAttribute EnglishLanguage "This class
contains &%Attributes that indicate how a &%Device is
behaving with respect to some norm or expectation.
Examples: &%Functioning, &%Malfunctioning.")
(=>
(and
(attribute ?DEVICE ?ATTRIBUTE)
(instance ?ATTRIBUTE DeviceAttribute))
(instance ?DEVICE Device))
(instance Functioning DeviceAttribute)
(contraryAttribute Functioning Malfunctioning)
(documentation Functioning EnglishLanguage "Indicates that a &%Device is performing its
intended function.")
(=>
(and
(attribute ?DEVICE Functioning)
(hasPurpose ?DEVICE ?PROP))
(truth ?PROP True))
(instance Malfunctioning DeviceAttribute)
(documentation Malfunctioning EnglishLanguage "Indicates that a &%Device is not performing
its intended function.")
(=>
(and
(attribute ?DEVICE Malfunctioning)
(hasPurpose ?DEVICE ?PROP))
(truth ?PROP False))
;; NS: delete. This is wrong, because attributes such as
;; Malfunctioning and Functioning are instances of
;; ObjectiveNorm and, so, of RelationalAttribute. Instances
;; of DeviceStateAttribute (DeviceOn, DeviceOff, etc.)
;; probably should be considered instances of
;; InternalAttribute, since they aren't "normative", but
;; rather simply descriptive of a device's state.
;; (subclass DeviceStateAttribute DeviceAttribute)
;; NS: add.
(subclass DeviceStateAttribute InternalAttribute)
(documentation DeviceStateAttribute EnglishLanguage
"&%DeviceStateAttribute is the class of attributes that represent
different states that a Device may be in. Examples: &%DeviceOff,
&%DeviceOn, &%DeviceOpen, and &%DeviceClosed.")
(instance DeviceClosed DeviceStateAttribute)
;; NS: delete. Now inconsistent.
;; (instance DeviceClosed RelationalAttribute)
;; NS: The treatment of attributes in MILO and even in SUMO
;; is confused, and confusing. The partition of Attribute
;; into InternalAttribute and RelationalAttribute is not
;; explained well enough to prevent it from seeming
;; spurious. I suspect that InternalAttribute was intended
;; to mean (and, perhaps, should be renamed to)
;; *IntrinsicAttribute. There are no rules associated with
;; either InternalAttribute or RelationalAttribute, so the
;; basis of the partition and its utility are a little hazy.
(instance DeviceOff DeviceStateAttribute)
;; NS: delete. Now redundant.
;; (instance DeviceOff InternalAttribute)
(instance DeviceOn DeviceStateAttribute)
;; NS: delete. Now redundant.
;; (instance DeviceOn InternalAttribute)
(instance DeviceOpen DeviceStateAttribute)
;; NS: delete. Now inconsistent.
;; (instance DeviceOpen RelationalAttribute)
(documentation deviceState EnglishLanguage "(deviceState ?DEVICE ?STATE) means that
the &%Object ?DEVICE is in the &%DeviceStateAttribute ?STATE.")
(instance deviceState BinaryPredicate)
(domain deviceState 1 Object)
(domain deviceState 2 DeviceStateAttribute)
(subrelation deviceState attribute)
(subclass Aerator Device)
(documentation Aerator EnglishLanguage "A &%Device whose purpose is to mix &%Substances with
&%Air.")
(=>
(instance ?AERATOR Aerator)
(hasPurpose ?AERATOR (exists (?COMBINE ?AIR)
(and
(instance ?COMBINE Combining)
(resource ?COMBINE ?AIR)
(instance ?AIR Air)
(instrument ?COMBINE ?AERATOR)))))
(subclass Aerating Combining)
(documentation Aerating EnglishLanguage "Combining a substance with &%Air.")
(=>
(instance ?AERATE Aerating)
(exists (?AIR ?S)
(and
(patient ?AERATE ?AIR)
(instance ?AIR Air)
(patient ?AERATE ?S)
(attribute ?S Liquid))))
(subclass Broom BrushOrComb)
(documentation Broom EnglishLanguage "A &%BrushOrComb whose purpose is to remove dirt and other
small particles from floors.")
(=>
(instance ?B Broom)
(hasPurpose ?B
(exists (?S)
(and
(instance ?S Sweeping)
(instrument ?S ?B)))))
(subclass BrushOrComb Device)
(documentation BrushOrComb EnglishLanguage "A &%Device which consists of a handle and bristles and
whose purpose is to remove particles from something or to smooth something out.")
(=>
(instance ?B BrushOrComb)
(hasPurpose ?B
(exists (?S)
(and
(or
(instance ?S Removing)
(instance ?S SurfaceChange))
(instrument ?S ?B)))))
(subclass MatchDevice Device)
(documentation MatchDevice EnglishLanguage "A small stick of carboard or wood that is treated
with chemicals that can be easily ignited with friction. MatchDevices are
used for starting fires.")
(=>
(instance ?M MatchDevice)
(capability (StartFn Combustion) instrument ?M))
(subclass VendingDevice Device)
(documentation VendingDevice EnglishLanguage "A &%Device which is capable of &%Selling a &%Product
to a customer automatically when the customer inserts the appropriate amount of
Currency.")
(=>
(instance ?VD VendingDevice)
(hasPurpose ?VD
(exists (?T ?C ?P)
(and
(instance ?T FinancialTransaction)
(instrument ?T ?VD)
(patient ?T ?C)
(instance ?C Currency)
(patient ?T ?P)
(instance ?P Product)))))
(subclass WritingDevice Device)
(documentation WritingDevice EnglishLanguage "A &%Device whose purpose is to be an instrument
of &%Writing, e.g. pens, pencils, crayons, etc.")
(=>
(instance ?D WritingDevice)
(hasPurpose ?D
(exists (?W)
(and
(instance ?W Writing)
(instrument ?W ?D)))))
(subclass SmokingDevice Device)
(documentation SmokingDevice EnglishLanguage "Any Device whose purpose is &%Smoking.")
(=>
(instance ?D SmokingDevice)
(hasPurpose ?D
(exists (?S)
(and
(instance ?S Smoking)
(instrument ?S ?D)))))
(subclass SmokingPipe SmokingDevice)
(documentation SmokingPipe EnglishLanguage "A &%SmokingDevice consisting of a tube and a small
bowl.")
(subclass Shower BathingDevice)
(documentation Shower EnglishLanguage "&%Shower refers to a plumbing fixture that
sprays water over you.")
(termFormat EnglishLanguage Shower "shower")
(=>
(instance ?SHOWER Shower)
(hasPurpose ?SHOWER
(exists (?SPRAY)
(and
(instance ?SPRAY WaterMotion)
(origin ?SPRAY ?SHOWER)))))
(=>
(instance ?SHOWER Shower)
(exists (?X ?FLOOR)
(and
(or
(instance ?X Wall)
(instance ?X Ceiling))
(connected ?SHOWER ?X)
(instance ?FLOOR Floor)
(orientation ?SHOWER ?FLOOR Above))))
(subclass BathTub BathingDevice)
(subclass BathTub FluidContainer)
(documentation BathTub BathingDevice "&%BathTub refers to a &%BathingDevice that you
can fill with water to use to watch the body")
(termFormat EnglishLanguage BathTub "tub")
(=>
(instance ?TUB BathTub)
(hasPurpose ?TUB
(exists (?WATER)
(and
(instance ?WATER Water)
(contains ?TUB ?WATER)))))
(subclass Excrement BodySubstance)
(documentation Excrement EnglishLanguage "&%Excrement refers to the waste matter
that is discharged from the body")
(termFormat EnglishLanguage Excrement "excrement")
(=>
(instance ?X Excrement)
(exists (?PROC ?ORG)
(and
(instance ?ORG Organism)
(instance ?PROC PhysiologicProcess)
(result ?PROC ?X)
(agent ?PROC ?ORG))))
(subclass Feces Excrement)
(documentation Feces EnglishLanguage "&%Feces is a type of &%Solid &%Excrement
evacuated from the bowels")
(termFormat EnglishLanguage Feces "feces")
(=>
(instance ?X Feces)
(attribute ?X Solid))
(=>
(instance ?X Feces)
(exists (?PROC ?INT)
(and
(instance ?PROC PhysiologicProcess)
(instrument ?PROC ?INT)
(instance ?INT Intestine)
(result ?PROC ?X))))
(subclass Urine Excrement)
(documentation Urine EnglishLanguage "&%Urine is a type of &%Liquid &%Excrement that
is secreted by the &%Kidney")
(termFormat EnglishLanguage Urine "urine")
(=>
(instance ?X Urine)
(attribute ?X Solid))
(=>
(instance ?X Urine)
(exists (?PROC ?KIDNEY)
(and
(instance ?PROC PhysiologicProcess)
(instrument ?PROC ?KIDNEY)
(instance ?KIDNEY Kidney)
(result ?PROX ?X))))
(subclass Excretion OrganismProcess)
(documentation Excretion EnglishLanguage "&%Excretion is a type of &%OrganismProcess
that discharges waste from tissues, organs or the body")
(termFormat EnglishLanguage Excretion "excretion")
(=>
(instance ?PROC Excretion)
(exists (?ORG ?WASTE ?PART)
(and
(instance ?ORG Organism)
(agent ?PROC ?ORG)
(patient ?PROC ?WASTE)
(instance ?WASTE Excrement)
(instance ?PART BodyPart)
(instrument ?PROC ?PART))))
(subclass Urination Excretion)
(documentation Urination EnglishLanguage "&%Urination is a type of &%Excretion that
discharges &%Urine")
(termFormat EnglishLanguage Urination "urination")
(=>
(instance ?PROC Urination)
(exists (?URINE)
(and
(instance ?URINE Urine)
(patient ?PROC ?URINE))))
(subclass Defecation Excretion)
(documentation Defecation EnglishLanguage "&%Defecation is a type of &%Excretion that
discharges &%Feces")
(termFormat EnglishLanguage Defecation "defecation")
(=>
(instance ?PROC Defecation)
(exists (?FECES)
(and
(instance ?FECES Feces)
(patient ?PROC ?FECES))))
(subclass Sewage Mixture)
(documentation Sewage EnglishLanguage "The byproduct of &%Animal digestion. Sewage is a
waste product that is removed from the body of an animal by a normally
functioning &%BiologicalProcess. Sewage consists largely of substances
which the animal cannot digest, or may be harmful, so the breakdown of
the biological waste removal process can be evidence or cause of a
&%DiseaseOrSyndrome.")
(=>
(and
(instance ?ANI Animal)
(instance ?D DiseaseOrSyndrome)
(not
(attribute ?ANI ?D)))
(exists (?P ?W)
(and
(instance ?P BiologicalProcess)
(instance ?P Removing)
(origin ?P ?ANI)
(instance ?W Sewage)
(agent ?P ?ANI)
(patient ?P ?W))))
(subclass Bidet WashingDevice)
(documentation Bidet EnglishLanguage "&%Bidet is a &%WashingDevice intended for
washing genitals and the anal area while on the toilet")
(termFormat EnglishLanguage Bidet "bidet")
(=>
(instance ?X Bidet)
(hasPurpose ?X
(exists (?PROC ?WASH ?PART)
(and
(or
(instance ?PROC Defecation)
(instance ?PROC Urination))
(instrument ?PROC ?PART)
(instance ?WASH Washing)
(patient ?WASH ?PART)
(instrument ?WASH ?X)
(before
(BeginFn (WhenFn ?PROC))
(BeginFn (WhenFn ?WASH)))))))
(subclass Toilet Device)
(documentation Toilet EnglishLanguage "A &%Device for the disposal of wastes resulting from
urination and defecation.")
(=>
(and
(located ?T ?R)
(instance ?T Toilet)
(instance ?R Room))
(instance ?R Bathroom))
(=>
(instance ?X Toilet)
(hasPurpose ?X
(exists (?PROC)
(and
(or
(instance ?PROC Defecation)
(instance ?PROC Urination))
(destination ?PROC ?X)))))
(subclass Toothbrush BrushOrComb)
(documentation Toothbrush EnglishLanguage "A small &%BrushOrComb with relatively soft
bristles and a long handle, used for brushing teeth (see &%Tooth). It is
used help control bacteria living in the mouth. While most typically used
by humans on themselves, it can be used by &%Dentists on their
patients and by adults assisting children. They are occasionally used by
humans caring for pets, zoo animals and valuable livestock.")
(=>
(instance ?T Toothbrush)
(hasPurpose ?T
(exists (?K)
(and
(instance ?TOOTH Tooth)
(instrument ?K ?T)
(instance ?K Killing)
(instance ?B Bacterium)
(patient ?K ?B)
(patient ?K ?TOOTH)))))
(subclass CigarOrCigarette SmokingDevice)
(documentation CigarOrCigarette EnglishLanguage "A tube of thin paper containing finely ground
tobacco that is smoked.")
(=>
(instance ?C CigarOrCigarette)
(exists (?T)
(and
(instance ?T Tobacco)
(part ?T ?C))))
(subclass Tableware Device)
(documentation Tableware EnglishLanguage "&%Devices that are used in &%Ingesting (&%Eating
and/or &%Drinking) a meal. This coves dishware, flatware, and glassware.")
(=>
(instance ?T Tableware)
(hasPurpose ?T
(exists (?I)
(and
(instance ?I Ingesting)
(instrument ?I ?T)))))
(subclass Compass Device)
(subclass Compass ContentBearingObject)
(documentation Compass EnglishLanguage "A &%Device that indicates the direction of the
various &%DirectionalAttributes with respect to the device.")
(=>
(instance ?C Compass)
(exists (?D)
(and
(instance ?D DirectionalAttribute)
(represents ?C ?D))))
(subclass MajorAppliance Device)
;; TERMS - subclasses of &%MajorAppliance:
(subclass Refrigerator MajorAppliance)
(subclass Freezer MajorAppliance)
(subclass Stove MajorAppliance)
(subclass CookingOven MajorAppliance)
(subclass HotWaterHeater MajorAppliance)
(subclass ClothesWashingMachine MajorAppliance)
(subclass ClothesDryer MajorAppliance)
(subclass Dishwasher MajorAppliance)
(subclass CoolingDevice Device)
(documentation CoolingDevice EnglishLanguage "A &%Device whose purpose is &%Cooling something,
e.g. air conditioners, refrigerators, freezers, etc.")
(=>
(instance ?D CoolingDevice)
(hasPurpose ?D
(exists (?C)
(and
(instance ?C Cooling)
(instrument ?C ?D)))))
(subclass FanDevice CoolingDevice)
(documentation FanDevice EnglishLanguage "A &%CoolingDevice which consists simply of one or more
blades that circulate the air. Note that this class covers both electrical fans
and fans that are manually operated.")
(=>
(instance ?F FanDevice)
(hasPurpose ?F
(exists (?W)
(and
(instance ?W Wind)
(instrument ?W ?F)))))
(subclass HeatingDevice Device)
(documentation HeatingDevice EnglishLanguage "A &%Device whose purpose is &%Heating something,
e.g. electric heaters, heat lamps, ovens, stoves, etc.")
(=>
(instance ?D HeatingDevice)
(hasPurpose ?D
(exists (?H)
(and
(instance ?H Heating)
(instrument ?H ?D)))))
(subclass Oven HeatingDevice)
(subclass Oven Container)
(documentation Oven EnglishLanguage "A &%HeatingDevice with a door for inserting and removing
&%Food that is to undergo &%Baking.")
(=>
(instance ?O Oven)
(hasPurpose ?O
(exists (?C)
(and
(instance ?C Cooking)
(instrument ?C ?O)))))
(subclass Stove HeatingDevice)
(documentation Stove EnglishLanguage "A &%HeatingDevice which consists one or more burners for
heating pots and pans of &%Food.")
(=>
(instance ?S Stove)
(hasPurpose ?S
(exists (?C)
(and
(instance ?C Cooking)
(instrument ?C ?S)))))
(subclass Refrigerator CoolingDevice)
(subclass Refrigerator ElectricDevice)
(subclass Refrigerator Container)
(documentation Refrigerator EnglishLanguage "The intersection of &%Containers and &%ElectricDevices
in which the temperature is reduced from that of the outside air by a &%Cooling
process.")
(subclass PotOrPan Container)
(documentation PotOrPan EnglishLanguage "A &%Container which has a handle and is used for
&%Cooking.")
(=>
(instance ?P PotOrPan)
(hasPurpose ?P
(exists (?C)
(and
(instance ?C Cooking)
(instrument ?C ?P)))))
(subclass Ramp SelfConnectedObject)
(documentation Ramp EnglishLanguage "Ramp is the class of &%SelfConnectedObjects that are
inclined planes used for moving objects from one level to another,
especially used for wheeled vehicles and people who cannot climb stairs.")
(=>
(instance ?R Ramp)
(capability MotionUpward path ?R))
(=>
(instance ?R Ramp)
(capability MotionDownward path ?R))
(subclass RecreationOrExerciseDevice Device)
(documentation RecreationOrExerciseDevice EnglishLanguage "A &%Device whose purpose is &%RecreationOrExercise.")
(=>
(instance ?D RecreationOrExerciseDevice)
(hasPurpose ?D
(exists (?E)
(and
(instance ?E RecreationOrExercise)
(instrument ?E ?D)))))
(subclass WalkingCane Device)
(documentation WalkingCane EnglishLanguage "A &%Device which has the form of a staff with
a handle and which enables some people to walk with greater assurance.")
(=>
(instance ?C WalkingCane)
(hasPurpose ?C
(exists (?W)
(and
(instance ?W Walking)
(instrument ?W ?C)))))
(subclass WashingDevice Device)
(documentation WashingDevice EnglishLanguage "Any &%Device whose purpose is &%Washing
something, e.g. washing machines, dishwashers, bathtubs, etc.")
(=>
(instance ?D WashingDevice)
(hasPurpose ?D
(exists (?W)
(and
(instance ?W Washing)
(instrument ?W ?D)))))
(subclass MaterialHandlingEquipment Device)
(documentation MaterialHandlingEquipment EnglishLanguage "&%MaterialHandlingEquipment
is a class of &%Devices that are equipment used for handling goods and
supplies more efficiently or safely. Examples are cranes, hoists,
forklifts, conveyors, racks, etc.")
(subclass Crane MaterialHandlingEquipment)
(documentation Crane EnglishLanguage "Crane is a subclass of mechanical &%Devices
that consist of a &%HoistingDevice on a moveable boom, designed to
assist in moving heavy loads.")
(=>
(instance ?C Crane)
(exists (?H)
(and
(instance ?H HoistingDevice)
(component ?H ?C))))
(subclass HoistingDevice MaterialHandlingEquipment)
(documentation HoistingDevice EnglishLanguage "&%HoistingDevice is a subclass of
mechanical &%Devices that provide a mechanical advantage in lifting
and lowering, e.g., by use of a block and tackle.")
(=>
(instance ?H HoistingDevice)
(capability MotionUpward instrument ?H))
(=>
(instance ?H HoistingDevice)
(capability MotionDownward instrument ?H))
(subclass OpticalDevice Device)
(documentation OpticalDevice EnglishLanguage "A &%Device which enables someone to see something
more clearly or with greater magnification.")
(=>
(instance ?D OpticalDevice)
(hasPurpose ?D
(exists (?S)
(and
(instance ?S Seeing)
(instrument ?S ?D)))))
(subclass EyeGlass OpticalDevice)
(documentation EyeGlass EnglishLanguage "A lens or pair of lenses with or without frames whose
purpose is to to correct a defect in vision. This class covers ordinary eye
glasses, reading glasses, contact lenses, monocles, etc.")
(subclass Lens OpticalDevice)
(documentation Lens EnglishLanguage "An &%OpticalDevice which consists of a polished,
transparent piece of glass or plastic. Lenses are often part of
other &%OpticalDevices.")
(subclass Microscope OpticalDevice)
(documentation Microscope EnglishLanguage "An &%OpticalDevice with a stand and a focus, which is
used for magnifying the images of things that are placed in the stand.")
(subclass Filter Device)
(documentation Filter EnglishLanguage "A &%Device whose purpose is to remove part of a
&%Mixture that is passed through the &%Filter.")
(=>
(instance ?FILTER Filter)
(hasPurpose ?FILTER
(exists (?REMOVE ?M)
(and
(instance ?REMOVE Removing)
(origin ?REMOVE ?M)
(instance ?M Mixture)
(instrument ?REMOVE ?FILTER)))))
(subclass FileDevice Device)
(documentation FileDevice EnglishLanguage "A &%Device whose purpose is to make something
smoother. For example, a nail file is used to even out the tips of one's
finger nails.")
(=>
(instance ?DEVICE FileDevice)
(capability SurfaceChange instrument ?DEVICE))
(subclass ElectricDevice Device)
(documentation ElectricDevice EnglishLanguage "A &%Device that uses &%Electricity as its
primary power source.")
;; NS: edit. patient -> instrument. If I put a toaster on
;; my counter, the toaster is a "patient" in the putting,
;; but no Electricity is required.
(=>
(and
(instance ?DEV ElectricDevice)
(instance ?EV Process)
(instrument ?EV ?DEV))
(exists (?R)
(and
(instance ?R Electricity)
(resource ?EV ?R))))
(subclass Electricity Substance)
(documentation Electricity EnglishLanguage "While electricity is typically thought of as just a difference
in electrical potential, one way of modeling electricity is as a substance
that can be moved from one point to another or consumed. One could make the claim
that subatomic physics also supports the classification as a substance since electrons
are objects.")
(documentation PowerSource EnglishLanguage "A source of electrical power.")
(termFormat EnglishLanguage PowerSource "power source")
(subclass PowerSource Device)
(=>
(instance ?PS PowerSource)
(exists (?RE)
(and
(instance ?RE RadiatingElectromagnetic)
(origin ?RE ?PS))))
(documentation DCPowerSource EnglishLanguage "A direct-current &%PowerSource.")
(termFormat EnglishLanguage DCPowerSource "DC power source")
(subclass DCPowerSource PowerSource)
(subclass Battery DCPowerSource)
(subclass Battery ElectricDevice)
(documentation Battery EnglishLanguage "Battery is a subclass of &%Device. Batteries are
devices that use chemical means to store or produce electrical power.")
(subclass Radar ElectricDevice)
(documentation Radar EnglishLanguage "An &%ElectricDevice that emits and receives microwave
radiation for the purpose of locating and tracking distant objects.")
(=>
(instance ?RADAR Radar)
(hasPurpose ?RADAR
(exists (?DISCOVER)
(and
(instance ?DISCOVER Discovering)
(instrument ?DISCOVER ?RADAR)))))
(=>
(instance ?RADAR Radar)
(capability RadiatingElectromagnetic agent ?RADAR))
(instance discovers BinaryPredicate)
(domain discovers 1 Agent)
(domain discovers 2 Object)
(documentation discovers EnglishLanguage "(discovers ?AGENT ?OBJECT) means that the
&%Agent ?AGENT discovered the &%Object ?OBJECT.")
(termFormat EnglishLanguage discovers "discovers")
(=>
(discovers ?AGENT ?OBJECT)
(exists (?DISCOVERING)
(and
(instance ?DISCOVERING Discovering)
(agent ?DISCOVERING ?AGENT)
(patient ?DISCOVERING ?OBJECT))))
(subclass Sonar CorpuscularObject)
(documentation Sonar EnglishLanguage "Something that emits and receives sound
for the purpose of locating and tracking distant objects. Note that
this covers both manmade devices and &%BodyParts such as the sonar
of bats and dolphins.")
(=>
(instance ?SONAR Sonar)
(hasPurpose ?SONAR
(exists (?DISCOVER)
(and
(instance ?DISCOVER Discovering)
(instrument ?DISCOVER ?SONAR)))))
(=>
(instance ?SONAR Sonar)
(capability RadiatingSound agent ?SONAR))
(subclass Echoing RadiatingSound)
(documentation Echoing EnglishLanguage "Instances of &%RadiatingSound where the instrument
is a surface which bounces sound waves back to their origin, where they can
be heard again.")
(subclass ElectricalSignalling Signalling)
(documentation ElectricalSignalling EnglishLanguage "&%ElectricalSignalling is the
subclass of &%Signalling processes that involve control of an electrical
current. Cf. &%ElectronicSignalling.")
(=>
(instance ?S ElectricalSignalling)
(exists (?D)
(and
(instance ?D ElectricDevice)
(instrument ?S ?D))))
;;KJN: Not necessarily by a computer. Read Wikipedia on Electronics and Signalling.
;; Also, should probably be a subclass of ElectricalSignalling since theoretically
;; ElectronicSignalling cannot exist without Electricity as well
;;(subclass ElectronicSignalling Signalling)
(subclass ElectronicSignalling ElectricalSignalling)
(documentation ElectronicSignalling EnglishLanguage "&%ElectronicSignalling is the
subclass of &%ElectricalSignalling that involve a signal generated through electronic
means.")
;;(=>
;; (instance ?S ElectronicSignalling)
;; (exists (?D)
;; (and
;; (instance ?D Computer)
;; (instrument ?S ?D))))
(subclass SecurityDevice Device)
(documentation SecurityDevice EnglishLanguage "A &%Device whose purpose is to protect people or
property from kidnappers and/or thieves.")
(subclass Lock SecurityDevice)
(documentation Lock EnglishLanguage "A &%Device, which, through a &%Key or a combination prevents
access to a &%Container or &%StationaryArtifact.")
(subclass Key SecurityDevice)
(documentation Key EnglishLanguage "A &%Device which opens and closes a &%Lock.")
(=>
(instance ?X Key)
(hasPurpose ?X
(exists (?LOCK)
(and
(instance ?LOCK Lock)
(capability
(KappaFn ?CLOSE
(and
(instance ?CLOSE Closing)
(patient ?CLOSE ?LOCK)
(holdsDuring
(ImmediateFutureFn ?CLOSE)
(attribute ?LOCK Locked)))) instrument ?X)
(capability
(KappaFn ?OPEN
(and
(instance ?OPEN Closing)
(patient ?OPEN ?LOCK)
(holdsDuring
(ImmediateFutureFn ?OPEN)
(not
(attribute ?LOCK Locked))))) instrument ?X)))))
(instance Locked RelationalAttribute)
(documentation Locked EnglishLanguage "An &%Attribute of &%Objects. A &%Locked &%Object is in some way restricted in movement, there is some movement, that the the &%Object can not performed, when it's locked.")
(=>
(attribute ?X Locked)
(exists (?LOCK ?CLOSE ?MOVE)
(and
(instance ?LOCK Lock)
(connected ?LOCK ?X)
(instance ?CLOSE Closing)
(patient ?CLOSE ?LOCK)
(instance ?MOVE Motion)
(earlier
(WhenFn ?CLOSE)
(WhenFn (attribute ?X Locked)))
(holdsDuring
(WhenFn (attribute ?X Locked))
(not
(modalAttribute
(patient ?MOVE ?X) Possibility))))))
(=>
(attribute ?X Locked)
(instance ?X Object))
(subclass SafeContainer Container)
(subclass SafeContainer SecurityDevice)
(documentation SafeContainer EnglishLanguage "A &%Container with a &%Lock which is intended
to secure items from theft. Note that this covers safes, lockers, and locked
storage compartments.")
(=>
(instance ?S SafeContainer)
(exists (?L)
(and
(instance ?L Lock)
(part ?L ?S))))
(subclass AnimalController Device)
(documentation AnimalController EnglishLanguage "Any &%Device which is used to control the
movements of an &%Animal or &%Human, e.g. leashes, reins, harnesses, muzzles,
bridles, shackles, handcuffs, etc.")
(=>
(instance ?AC AnimalController)
(hasPurpose ?AC
(exists (?G ?A)
(and
(instance ?G Guiding)
(instrument ?G ?AC)
(instance ?A Animal)
(patient ?G ?A)))))
(subclass SelfPoweredDevice Device)
(documentation SelfPoweredDevice EnglishLanguage "&%SelfPoweredDevice is
the subclass of &%Devices whose action is powered by some kind of on-board
component or power source (not the user, which would be a
&%UserPoweredVehicle).")
(=>
(instance ?DEVICE SelfPoweredDevice)
(exists (?SOURCE)
(and
(instance ?SOURCE Device)
(powerComponent ?SOURCE ?DEVICE))))
(subclass AnimalPoweredDevice Device)
(documentation AnimalPoweredDevice EnglishLanguage "&%AnimalPoweredDevice is the subclass
of &%Devices that function with power supplied by animals. Examples:
oxcarts, horse-drawn plows, mule-driven mills.")
(=>
(and
(instance ?D AnimalPoweredDevice)
(instrument ?P ?D))
(exists (?A)
(and
(instance ?A Animal)
(instrument ?P ?A))))
;; NS: delete.
;; (documentation Flat EnglishLanguage "A three dimensional object for which
;; two dimensions are markedly larger than the third the
;; two larger dimensions are also not of markedly different length.")
;; NS: add.
(documentation Flat EnglishLanguage "This &%ShapeAttribute
describes a three dimensional &%Object for which two
dimensions are markedly larger than the third, and the two
larger dimensions also are not of markedly different
lengths.")
(instance Flat ShapeAttribute)
(=>
(attribute ?F Flat)
(and
(side ?S1 ?F)
(side ?S2 ?F)
(meetsSpatially ?S1 ?S2)
(not (equal ?S1 ?S2))
(height ?F ?H)
(greaterThan ?S1 (MultiplicationFn 2 ?H))
(greaterThan ?S2 (MultiplicationFn 2 ?H))))
;; NS: delete.
;; (documentation LongAndThin EnglishLanguage "A three dimensional object that
;; has two thin dimensions and one markedly larger one.")
;; NS: add.
(documentation LongAndThin EnglishLanguage "This
&%ShapeAttribute describes a three dimensional &%Object that
is markedly longer in one dimension than in the other two.")
(instance LongAndThin ShapeAttribute)
(=>
(attribute ?F LongAndThin)
(and
(side ?S1 ?F)
(side ?S2 ?F)
(meetsSpatially ?S1 ?S2)
(not (equal ?S1 ?S2))
(length ?F ?H)
(lessThan ?S1 (MultiplicationFn 3 ?H))
(lessThan ?S2 (MultiplicationFn 3 ?H))))
(instance LevelShape ShapeAttribute)
(documentation LevelShape EnglishLanguage "The &%ShapeAttribute of &%Objects where no
part of the top of the &%Object is higher than any other part of the
top.")
(=>
(attribute ?O LevelShape)
(not
(exists (?P1 ?P2 ?T ?H1 ?H2)
(and
(top ?T ?O)
(part ?P1 ?T)
(part ?P2 ?T)
(height ?P1 ?H1)
(height ?P2 ?H2)
(greaterThan ?H1 ?H2)))))
(instance SymmetricShape ShapeAttribute)
(documentation SymmetricShape EnglishLanguage "A &%ShapeAttribute that applies to a
&%SelfConnectedObject that can be divided into two copies of each other.")
(=>
(attribute ?T SymmetricShape)
(exists (?C1 ?C2)
(and
(copy ?C1 ?C2)
(equal ?T
(MereologicalSumFn ?C1 ?C2)))))
(subclass Baton Device)
(documentation Baton EnglishLanguage "A thin stick which is used for &%MusicalConducting.")
;; NS: edit.
(=>
(instance ?B Baton)
(hasPurpose ?B
(exists (?M ?G)
(and
(instance ?M MusicalPerformance)
(instance ?G Guiding)
(subProcess ?G ?M)
(instrument ?G ?B)))))
(=>
(instance ?B Baton)
(attribute ?B LongAndThin))
;; NS: Note that a baton (typically a cylindrical aluminum
;; tube or wooden dowel) would have some strange things
;; concluded about it, given the rule for LongAndThin stated
;; above. In particular, what are the two shorter "sides"
;; that spatially meet? In general, I think the current
;; naive (commonsense) treatment of object faces and
;; dimensions (&%side, &%top, &%bottom, &%BackFn, &%FrontFn,
;; etc.), with its implicit but unexplained notion of
;; default orientation, should be related to a more general
;; scheme that explicitly treats dimensions in terms of an
;; object's maximal extent along x, y, and z axes,
;; regardless of orientation.
;; TO DO: Add the x, y, z axes representation mentioned above,
;; and relate it to the &%side, &%top, etc. one, where possible.
(subclass SecurityAlarm SecurityDevice)
(subclass SecurityAlarm ElectricDevice)
(documentation SecurityAlarm EnglishLanguage "A &%SecurityDevice that detects intrusions to
a &%StationaryArtifact and issues a warning of some sort.")
(partition Quantity FiniteQuantity InfiniteQuantity)
(subclass FiniteQuantity Quantity)
(documentation FiniteQuantity EnglishLanguage "Any &%Quantity that is limited or bounded in
magnitude.")
(subclass InfiniteQuantity Quantity)
(documentation InfiniteQuantity EnglishLanguage "Any &%Quantity that is not limited or bounded
in magnitude.")
(subclass Clock MeasuringDevice)
(documentation Clock EnglishLanguage "Any &%Device that measures and represents &%TimeDuration
or &%TimePosition.")
(=>
(and
(instance ?M Measuring)
(result ?M ?Q)
(instrument ?M ?C)
(instance ?C Clock))
(instance ?Q TimeMeasure))
(subclass WatchClock Clock)
(documentation WatchClock EnglishLanguage "A &%Clock that can be worn on the &%Wrist.")
(=>
(and
(wears ?P ?C)
(located ?C ?W)
(instance ?C Clock)
(instance ?W Wrist))
(instance ?C WatchClock))
(subclass Thermometer MeasuringDevice)
(documentation Thermometer EnglishLanguage "Any &%Device that measures and represents
&%TemperatureMeasure.")
(=>
(and
(instance ?MEASURE Measuring)
(result ?MEASURE ?QUANTITY)
(instrument ?MEASURE ?THERMOMETER)
(instance ?THERMOMETER Thermometer))
(instance ?QUANTITY TemperatureMeasure))
(subclass PressureMeasuringDevice MeasuringDevice)
(documentation PressureMeasuringDevice EnglishLanguage "Any &%Device that measures and
represents &%PressureMeasure.")
(=>
(and
(instance ?M Measuring)
(result ?M ?Q)
(instrument ?M ?T)
(instance ?T Thermometer))
(instance ?Q TemperatureMeasure))
(documentation measurementReading EnglishLanguage "(measurementReading ?DEVICE ?QUANTITY)
means that ?QUANTITY is a reading of the &%MeasuringDevice ?DEVICE, e.g. if
?THERMOMETER is a &%Thermometer, (measurementReading ?THERMOMETER
(&%MeasureFn 42 &%CelsiusDegree)) would mean that ?THERMOMETER registers 42
degrees &%Celsius.")
(instance measurementReading BinaryPredicate)
(domain measurementReading 1 MeasuringDevice)
(domain measurementReading 2 ConstantQuantity)
(subclass CommunicationDevice EngineeringComponent)
(documentation CommunicationDevice EnglishLanguage "A
&%CommunicationDevice is a &%Device which serves at the
&%instrument in a &%Communication &%Process by allowing the
communicated message to be conveyed between the participants.")
(relatedInternalConcept Communication CommunicationDevice)
(=>
(instance ?DEVICE CommunicationDevice)
(capability Communication instrument ?DEVICE))
(subclass Telephone ElectricDevice)
(subclass Telephone CommunicationDevice)
(documentation Telephone EnglishLanguage "A &%Telephone is a
&%CommunicationDevice that enables &%LinguisticCommunication
between nodes in a &%TelephoneSystem by converting sound into
electrical signals that are then transmitted. When the signals
are received, they are converted back into sound.")
;; NS: edit. Speaking -> Communication.
(subclass Telephoning Communication)
;; NS: edit.
(documentation Telephoning EnglishLanguage "A &%Telephoning is a
&%Communication in which the &%instrument is a &%Telephone, and
which typically includes an &%instance of &%Speaking as a
&%subProcess.")
(=>
(instance ?TEL Telephoning)
(exists (?DEVICE)
(and
(instance ?DEVICE Telephone)
(instrument ?TEL ?DEVICE))))
;; NS: add.
(=>
(instance ?TEL Telephoning)
(exists (?SPEAK)
(and
(instance ?SPEAK Speaking)
(subProcess ?SPEAK ?TEL)
(=>
(agent ?TEL ?AGENT)
(agent ?SPEAK ?AGENT)))))
(subclass Fax ArtifactMediatedCommunication)
(documentation Fax EnglishLanguage "The communication of a printed page between remote locations.")
(=>
(instance ?Fax Fax)
(exists (?FaxMachine)
(and
(instance ?FaxMachine FaxMachine)
(instrument ?Fax ?FaxMachine))))
;; NS: add. Device -> TelephonyDevice (in OntologyX.kif).
(subclass FaxMachine TelephonyDevice)
;; NS: edit.
(subclass FaxMachine ElectricDevice)
(subclass FaxMachine CommunicationDevice)
(documentation FaxMachine EnglishLanguage "A &%FaxMachine is a
&%TelephonyDevice that scans a paper page and transmits a coded
image of the page over a &%TelephoneSystem to a receiving
&%FaxMachine, which decodes the coded and image and prints a
replica of the original. A typical &%FaxMachine is made up of a
scanner, a printer, a modem, and a control panel with some sort
of status display.")
;; NS: delete.
;; (subrelation telephoneNumber uniqueIdentifier)
;; NS: &%telephoneNumber is defined further in OntologyX.kif.
;; &%postAddress is defined in OntologyX.kif.
;; NS: delete phoneNumber, dayPhone, eveningPhone. The rules
;; commented out below are absurd, and the relations are
;; superceded by others in OntologyX.kif.
;; (instance phoneNumber BinaryPredicate)
;; (subrelation phoneNumber refers)
;; (domain phoneNumber 1 SymbolicString)
;; (domain phoneNumber 2 Telephone)
;; (documentation phoneNumber EnglishLanguage "(&%phoneNumber ?Phone ?Agent) holds if ?Phone is
;; a phone number corresponding to the Telephone ?Phone.")
;; (instance dayPhone BinaryPredicate)
;; (domain dayPhone 1 SymbolicString)
;; (domain dayPhone 2 Agent)
;; (documentation dayPhone EnglishLanguage "(&%dayPhone ?Phone ?Agent) means that ?Phone is a phone
;; number corresponding to the location where ?Agent can be reached during the day.")
;; (=>
;; (and
;; (dayPhone ?Number ?Agent)
;; (instance ?Day Day))
;; (exists (?Phone)
;; (and
;; (phoneNumber ?Number ?Phone)
;; (holdsDuring (HourFn ?Number ?Day) (possesses ?Agent ?Phone))
;; (lessThan ?Number 18))))
;; (instance eveningPhone BinaryPredicate)
;; (domain eveningPhone 1 SymbolicString)
;; (domain eveningPhone 2 Agent)
;; (documentation eveningPhone EnglishLanguage "(&%eveningPhone ?Phone ?Agent) means that ?Phone
;; is a phone number corresponidng to the location where ?Agent can be reached
;; during the evening.")
;; (=>
;; (and
;; (eveningPhone ?Number ?Agent)
;; (instance ?Day Day))
;; (exists (?Phone)
;; (and
;; (phoneNumber ?Number ?Phone)
;; (holdsDuring (HourFn ?Number ?Day) (possesses ?Agent ?Phone))
;; (greaterThan ?Number 18))))
(instance emailAddress BinaryPredicate)
(subrelation emailAddress refers)
(domain emailAddress 1 SymbolicString)
(domain emailAddress 2 Agent)
;; NS: edit.
(documentation emailAddress EnglishLanguage "(&%emailAddress
?Address ?Agent) means that ?Address denotes a &%VirtualPlace at
which ?Agent can be contacted.")
(subclass LightFixture Device)
(documentation LightFixture EnglishLanguage "Any &%Device whose purpose is to be a source of
visible light.")
(=>
(instance ?F LightFixture)
(capability RadiatingLight instrument ?F))
(subclass Candle LightFixture)
(documentation Candle EnglishLanguage "An &%LightFixture that consists of &%Wax and a wick,
which is lit with a flame.")
(=>
(instance ?CANDLE Candle)
(material Wax ?CANDLE))
(=>
(instance ?C Candle)
(hasPurpose ?C
(exists (?F)
(and
(instance ?F Fire)
(resource ?F ?C)))))
(subclass Lightning WeatherProcess)
(subclass Lightning Radiating)
(documentation Lightning EnglishLanguage "A &%WeatherProcess which involves a significant
release of electricity from a &%Cloud.")
(=>
(instance ?L Lightning)
(exists (?C)
(and
(instance ?C Cloud)
(eventLocated ?L ?C))))
(subclass Thunder WeatherProcess)
(subclass Thunder RadiatingSound)
(documentation Thunder EnglishLanguage "Any instance of &%RadiatingSound which is caused by
an instance of Lightning.")
(=>
(instance ?T Thunder)
(exists (?L)
(and
(instance ?L Lightning)
(causes ?L ?T))))
(subclass VehicleLight LightFixture)
(documentation VehicleLight EnglishLanguage "Any &%LightFixture which is attached to the
surface of a &%Vehicle and whose purpose is to illuminate that area around
the &%Vehicle so that potential obstacles can be detected or alerted.")
(=>
(instance ?L VehicleLight)
(exists (?V)
(and
(instance ?V Vehicle)
(part ?L ?V))))
(subclass Headlight VehicleLight)
(documentation Headlight EnglishLanguage "Any &%VehicleLight which is attached to the front
of a &%Vehicle.")
(=>
(instance ?L Headlight)
(exists (?V)
(and
(instance ?V Vehicle)
(part ?L (FrontFn ?V)))))
(subclass Taillight VehicleLight)
(documentation Taillight EnglishLanguage "Any &%VehicleLight which is attached to the back
of a &%Vehicle.")
(=>
(instance ?L Taillight)
(exists (?V)
(and
(instance ?V Vehicle)
(part ?L (BackFn ?V)))))
(subclass PaintedPicture ArtWork)
(documentation PaintedPicture EnglishLanguage "Any &%ArtWork which is produced by &%Painting.")
(=>
(instance ?PP PaintedPicture)
(exists (?PAINT ?PAINTING)
(and
(instance ?PAINT Paint)
(instance ?PAINTING Painting)
(resource ?PAINTING ?PAINT)
(result ?PAINTING ?PP))))
(subclass WatercolorPicture PaintedPicture)
(documentation WatercolorPicture EnglishLanguage "Any &%PaintedPicture which is created
with water-based paints.")
(=>
(instance ?W WatercolorPicture)
(exists (?WP ?P)
(and
(instance ?WP WatercolorPaint)
(instance ?P Painting)
(resource ?P ?WP)
(result ?P ?W))))
(subclass Wallpaper ArtWork)
(documentation Wallpaper EnglishLanguage "Any decorative paper that is used to cover the
&%Walls of &%Rooms.")
(=>
(and
(instance ?W Wallpaper)
(part ?P ?W))
(instance ?P Paper))
(=>
(instance ?P Wallpaper)
(hasPurpose ?P
(exists (?W ?R ?C)
(and
(instance ?W Wall)
(part ?W ?R)
(instance ?R Room)
(instance ?C Covering)
(patient ?C ?W)
(instrument ?C ?P)))))
(subclass Sculpture ArtWork)
(documentation Sculpture EnglishLanguage "Any &%ArtWork which is not constructed on the
two-dimensional surface of a canvas, piece of paper, etc.")
(subclass Portrait PaintedPicture)
(documentation Portrait EnglishLanguage "A &%PaintedPicture that represents someone's &%Face.")
(=>
(instance ?P Portrait)
(exists (?F)
(and
(instance ?F Face)
(represents ?P ?F))))
(subclass Sketch ArtWork)
(documentation Sketch EnglishLanguage "Any &%ArtWork which is produced by a pencil or
piece of charcoal.")
(subclass Collage ArtWork)
(documentation Collage EnglishLanguage "Any abstract &%ArtWork that is produced by arranging
bits of paper or photographs.")
(subclass Folding ShapeChange)
(documentation Folding EnglishLanguage "Bending something in such a way that one part of
it covers another part.")
(=>
(and
(instance ?F Folding)
(patient ?F ?O))
(exists (?C ?P1 ?P2)
(and
(instance ?C Covering)
(subProcess ?C ?F)
(part ?P1 ?O)
(part ?P2 ?O)
(instrument ?C ?P1)
(patient ?C ?P2))))
(subclass Painting Covering)
(subclass Painting Coloring)
(documentation Painting EnglishLanguage "The application of &%Paint to a &%surface. Note that
this class covers both &%ArtPainting (the creation of &%PaintedPictures), as
well as painting one's kitchen, for example.")
(=>
(and
(instance ?PAINT Painting)
(patient ?PAINT ?SURFACE)
(resource ?PAINT ?STUFF))
(exists (?OBJ)
(and
(surface ?SURFACE ?OBJ)
(instance ?STUFF Paint))))
(subclass Paint Solution)
(documentation Paint EnglishLanguage "Any &%Solution which is capable of &%Coloring something.")
(=>
(instance ?PAINT Paint)
(capability Coloring instrument ?PAINT))
(subclass WatercolorPaint Paint)
(documentation WatercolorPaint EnglishLanguage "Any &%Paint which is a water-based &%Solution.")
(=>
(instance ?P WatercolorPaint)
(exists (?W)
(and
(instance ?W Water)
(part ?W ?P))))
(subclass OilPaint Paint)
(disjoint OilPaint WatercolorPaint)
(documentation OilPaint EnglishLanguage "Any &%Paint which is an oil-based &%Solution.")
(=>
(instance ?P OilPaint)
(exists (?O)
(and
(instance ?O Oil)
(part ?O ?P))))
(subclass OilPicture PaintedPicture)
(disjoint OilPicture WatercolorPicture)
(documentation OilPicture EnglishLanguage "Any &%OilPicture which is created
with oil-based paints.")
(=>
(instance ?P OilPicture)
(exists (?O ?PAINTING)
(and
(instance ?O OilPaint)
(instance ?PAINTING Painting)
(resource ?PAINTING ?O)
(result ?PAINTING ?P))))
(subclass ArtPainting ContentDevelopment)
(subclass ArtPainting Painting)
(documentation ArtPainting EnglishLanguage "Any &%ContentDevelopment that results in a
&%PaintedPicture.")
(=>
(instance ?PAINT ArtPainting)
(exists (?PICTURE)
(and
(instance ?PICTURE PaintedPicture)
(result ?PAINT ?PICTURE))))
(subclass PaintingDevice Device)
(documentation PaintingDevice EnglishLanguage "A &%Device used as an &%instrument for &%Painting. Paintbrushes, rollers or sprayers can belong into this class.")
(=>
(instance ?PD PaintingDevice)
(exists (?PAINT)
(and
(instance ?PAINT Painting)
(capability ?PAINT instrument ?PD))))
(=>
(instance ?PD PaintingDevice)
(hasPurpose ?PD
(exists (?STUFF ?COVER ?SURF ?OBJ)
(and
(instance ?STUFF Substance)
(instance ?COVER Covering)
(instance ?OBJ Object)
(surface ?SURF ?OBJ)
(agent ?COVER ?PD)
(instrument ?COVER ?STUFF)
(patient ?COVER ?SURF)))))
(subclass Sculpting ContentDevelopment)
(subclass Sculpting Transfer)
(documentation Sculpting EnglishLanguage "The process of creating three-dimensional artwork by shaping or combining hard materials, typically stone such as marble or metal, glass, or wood.")
(subclass GraphicDesigning Designing)
(documentation GraphicDesigning EnglishLanguage "Graphic designing is the process of assembling together images, typography or motion graphics to create a piece of design.")
(documentation potentialOfHydrogen EnglishLanguage "(potentialOfHydrogen ?SOLUTION ?NUMBER)
means that the Solution ?SOLUTION has a pH value of ?NUMBER. The ph varies
between 0 and 14, and it is a measure of the acidity or alkalinity of ?SOLUTION.
More precisely, and it is the logarithm of the reciprocal of the quantity of
&%AtomGrams of &%Hydrogen ions.")
(instance potentialOfHydrogen BinaryPredicate)
(domain potentialOfHydrogen 1 Solution)
(domain potentialOfHydrogen 2 RealNumber)
(=>
(potentialOfHydrogen ?S ?N)
(and
(greaterThanOrEqualTo ?N 0)
(lessThanOrEqualTo ?N 14)))
(subclass Tracing ContentDevelopment)
(subclass Tracing SurfaceChange)
(documentation Tracing EnglishLanguage "Any &%ContentDevelopment that results in a &%Blueprint.")
(=>
(instance ?T Tracing)
(exists (?P)
(and
(instance ?P Blueprint)
(result ?T ?P))))
(subclass ComposingMusic ContentDevelopment)
(documentation ComposingMusic EnglishLanguage "&%ComposingMusic is a type of &%ContentDevelopment
that results in a &%MusicalComposition")
(termFormat EnglishLanguage ComposingMusic "composing music")
(=>
(instance ?C ComposingMusic)
(exists (?M)
(and
(instance ?M MusicalComposition)
(result ?C ?M))))
(subclass Drawing ContentDevelopment)
(subclass Drawing SurfaceChange)
(documentation Drawing EnglishLanguage "Any &%ContentDevelopment that results in a &%Sketch.")
(=>
(instance ?DRAW Drawing)
(exists (?SKETCH)
(and
(instance ?SKETCH Sketch)
(result ?DRAW ?SKETCH))))
(subclass Focusing QuantityChange)
(documentation Focusing EnglishLanguage "Altering the relative distance of a &%Lens
so that a visual image is sharper.")
(=>
(instance ?F Focusing)
(exists (?L)
(and
(instance ?L Lens)
(patient ?F ?L))))
(subclass DisplayArtifact Artifact)
(documentation DisplayArtifact EnglishLanguage "Something for posting content so
that it can be disseminated to the public.")
(=>
(instance ?DA DisplayArtifact)
(hasPurpose ?DA
(exists (?P ?D ?I)
(and
(instance ?P Putting)
(instance ?D Disseminating)
(instance ?I ContentBearingObject)
(patient ?P ?I)
(patient ?D ?I)
(destination ?P ?DA)))))
(subclass VehicleWheel Wheel)
(documentation VehicleWheel EnglishLanguage "&%VehicleWheel is a class of cylindrical
&%Devices used to move a &%RoadVehicle along a road, running either
directly on the wheel rims or on tires attached to the wheel rims.")
(subclass Wheel Artifact)
(documentation Wheel EnglishLanguage "A circular &%Artifact which is a component of
&%LandVehicles and of some &%Devices.")
(=>
(instance ?VEHICLE LandVehicle)
(exists (?WHEEL)
(and
(instance ?WHEEL Wheel)
(part ?WHEEL ?VEHICLE))))
(subclass VehicleController Device)
(documentation VehicleController EnglishLanguage "Any &%Device which is used to start, stop or
control the movements of a &%Vehicle. This class covers steering wheels, brakes,
acceleration pedals, airplane sticks, etc.")
(=>
(instance ?C VehicleController)
(exists (?V)
(and
(instance ?V Vehicle)
(part ?C ?V))))
(=>
(instance ?C VehicleController)
(hasPurpose ?C
(exists (?D)
(and
(instance ?D Driving)
(instrument ?D ?C)))))
(subclass SteeringWheel VehicleController)
(documentation SteeringWheel EnglishLanguage "A &%VehicleController which enables one to steer
a &%Vehicle.")
(=>
(instance ?W SteeringWheel)
(capability DirectionChange instrument ?W))
(subclass VehicleBrake VehicleController)
(documentation VehicleBrake EnglishLanguage "A &%VehicleController which is capable of stopping
the motion of a &%Vehicle.")
(=>
(and
(instance ?B VehicleBrake)
(instance ?V Vehicle)
(part ?B ?V))
(hasPurpose ?B
(exists (?S)
(and
(instance ?S (StopFn Motion))
(patient ?S ?V)
(instrument ?S ?B)))))
(subclass VehicleThrottle VehicleController)
(documentation VehicleThrottle EnglishLanguage "A &%VehicleController which controls the amount
of &%Fuel which is supplied to the &%Engine.")
(subclass VehicleTire Artifact)
(documentation VehicleTire EnglishLanguage "A covering, usually made of rubber, for a &%Wheel.")
(=>
(instance ?T VehicleTire)
(exists (?W)
(and
(instance ?W VehicleWheel)
(part ?T ?W))))
(subclass VehicleWindow Window)
(documentation VehicleWindow EnglishLanguage "Any &%Window which is part of a &%Vehicle,
e.g. the &%Windshield and &%RearWindow of an &%Automobile.")
(=>
(instance ?W VehicleWindow)
(exists (?V)
(and
(instance ?V Vehicle)
(part ?W ?V))))
(subclass Windshield VehicleWindow)
(disjoint Windshield RearWindow)
(documentation Windshield EnglishLanguage "Any &%VehicleWindow which located at the front
of a &%RoadVehicle.")
(=>
(instance ?W Windshield)
(exists (?A)
(and
(instance ?A RoadVehicle)
(part ?W (FrontFn ?A)))))
(subclass LandVehicle Vehicle)
(documentation LandVehicle EnglishLanguage
"&%LandVehicle is the class of &%TransportationDevices that travel on
land. The two main types of &%LandVehicle are &%RoadVehicle and
&%RailVehicle. Note that this includes vehicles which travel on any solid
surface, including a frozen body of water or snow.")
(=>
(instance ?X LandVehicle)
(hasPurpose ?X
(exists (?EV ?SURF)
(and
(surface ?SURF GeographicArea)
(instance ?EV Transportation)
(holdsDuring
(WhenFn ?EV)
(meetsSpatially ?X ?SURF))))))
(subclass WaterVehicle Vehicle)
(documentation WaterVehicle EnglishLanguage "&%WaterVehicle is the class of all
&%TransportationDevices used to travel on or in water.")
(=>
(instance ?X WaterVehicle)
(hasPurpose ?X
(exists (?EV ?SURF)
(and
(instance ?SURF Water)
(instance ?EV Transportation)
(holdsDuring
(WhenFn ?EV)
(meetsSpatially ?X ?SURF))))))
(=>
(and
(instance ?CRAFT WaterVehicle)
(instance ?EVENT Transportation)
(instrument ?EVENT ?CRAFT))
(exists (?WATER)
(and
(instance ?WATER WaterArea)
(eventLocated ?EVENT ?WATER))))
(subclass RoadVehicle LandVehicle)
(documentation RoadVehicle EnglishLanguage "The class of &%LandVehicles that are not
&%RollingStock.")
(subclass Fleet Collection)
(documentation Fleet EnglishLanguage "A &%Collection of &%Vehicle")
(termFormat EnglishLanguage Fleet "Fleet")
(=>
(instance ?FLEET Fleet)
(memberType ?FLEET Vehicle))
(instance fleetSize BinaryPredicate)
(domain fleetSize 1 Agent)
(domain fleetSize 2 Integer)
(documentation fleetSize EnglishLanguage "(fleetSize ?AGENT ?NUM) means the &%Agent
?AGENT has a fleet size of an &%Integer ?NUM. The &%Fleet can consists of any type of
&%Vehicle")
(termFormat EnglishLanguage fleetSize "Fleet Size")
(=>
(and
(instance ?FLEET Fleet)
(fleetSize ?AGENT ?NUM)
(possesses ?AGENT ?FLEET))
(memberCount ?FLEET ?NUM))
(subclass Axle Device)
(documentation Axle EnglishLanguage "Axle is a class of &%Devices each of which can
be paired with two &%VehicleWheels to rotate and move a &%RoadVehicle.")
(=>
(and
(instance ?W VehicleWheel)
(instance ?V RoadVehicle)
(part ?W ?V))
(exists (?A)
(and
(instance ?A Axle)
(component ?A ?V)
(connected ?W ?A))))
;;MSv:changed definition of paper based on use to one based on production
(documentation Paper EnglishLanguage "Paper is a flat sheet
of fibers, usually produced by spreading a wet solution of
wood particles on a flat surface and drying through heat and
pressure. The fibers can also be cotton or a synthetic,
although typically the bulk of the substance is wood fibers.
This includes all manner of paper products that may have
varying thicknesses, colors or texture. This is
distinguished from flat wood products such as plywood and
particle board which have a structural function in building
construction. Sheathing materials such as the paper affixed
to sheetrock however, is paper.")
(subclass Paper Artifact)
(=>
(instance ?X Paper)
(exists (?MAKE ?CELL ?PRESS)
(and
(instance ?MAKE Making)
(instance ?CELL Cellulose)
(instance ?PRESS Compressing)
(resource ?MAKE ?CELL)
(result ?MAKE ?X)
(subProcess ?MAKE ?PRESS)
(patient ?PRESS ?CELL))))
;;(=>
;; (instance ?PAPER Paper)
;; (hasPurpose ?PAPER
;; (exists (?TEXT)
;; (and
;; (instance ?TEXT Text)
;; (part ?TEXT ?PAPER)))))
(subclass CurrencyBill Currency)
(partition Currency CurrencyBill CurrencyCoin)
(documentation CurrencyBill EnglishLanguage "Any instance of &%Currency that is made
of paper.")
(=>
(instance ?BILL CurrencyBill)
(exists (?PAPER)
(and
(instance ?PAPER Paper)
(part ?PAPER ?BILL))))
(subclass CurrencyCoin Currency)
(documentation CurrencyCoin EnglishLanguage "Any instance of &%Currency that is made
of &%Metal.")
(=>
(instance ?COIN CurrencyCoin)
(exists (?METAL)
(and
(subclass ?METAL Metal)
(material ?METAL ?COIN))))
(subclass Wire Artifact)
(documentation Wire EnglishLanguage "A long, thin strand of &%Metal that is used in a wide
range of applications, including the wiring of electrical systems, creating
bundles and the construction of cages.")
(=>
(instance ?WIRE Wire)
(material Metal ?WIRE))
(subclass WireSpring Wire)
(subclass WireSpring EngineeringComponent)
(documentation WireSpring EnglishLanguage "An &%EngineeringComponent consisting of a coil of
&%Wire that returns to its original shape when pulled apart or pressed together.")
(subclass WireLine Wire)
(subclass WireLine EngineeringComponent)
(documentation WireLine EnglishLanguage "A &%Wire that is designed for conducting electricity.")
(=>
(instance ?WL WireLine)
(hasPurpose ?WL
(exists (?R)
(and
(instance ?R Radiating)
(path ?R ?WL)))))
(subclass TelephoneLine WireLine)
(documentation TelephoneLine EnglishLanguage "A &%WireLine that carries telephone signals and
allows users of &%Telephones or &%Telegraphs to communicate with one another.")
(=>
(instance ?TL TelephoneLine)
(exists (?T1 ?T2)
(and
(or
(instance ?T1 Telephone)
(instance ?T1 Telegraph))
(or
(instance ?T2 Telephone)
(instance ?T2 Telegraph))
(not (equal ?T1 ?T2))
(connects ?TL ?T1 ?T2))))
(subclass String Artifact)
(documentation String EnglishLanguage "A long, thin strand of Fabric that is used for &%Tying
things together, etc. Note that this class covers a cord of any width, including
rope, twine, and thread, for example.")
(=>
(instance ?S String)
(material Fabric ?S))
(subclass Plug Artifact)
(documentation Plug EnglishLanguage "An &%Artifact which is designed to fit snugly within
a &%Hole.")
(=>
(instance ?PLUG Plug)
(exists (?HOLE)
(completelyFills ?PLUG ?HOLE)))
(subclass Pottery Artifact)
(documentation Pottery EnglishLanguage "Household &%Artifacts that are made out of baked &%Clay.")
(=>
(instance ?POTTERY Pottery)
(exists (?CLAY)
(and
(instance ?CLAY Clay)
(part ?CLAY ?POTTERY))))
(subclass Pillow Artifact)
(documentation Pillow EnglishLanguage "A soft, stuffed &%Artifact to support the &%Head or
the body as a whole while one is sleeping or relaxing.")
(subclass Mirror Artifact)
(documentation Mirror EnglishLanguage "An &%Artifact with a surface that is capable of
displaying an image by reflecting light.")
(=>
(instance ?M Mirror)
(capability ReflectingLight instrument ?M))
(subclass Furniture Artifact)
(documentation Furniture EnglishLanguage "Any free-standing and movable
&%Artifacts which which are used in day-to-day living and designed
to rest on the &%Floor of a &%Room. This excludes items such as a rock
which may serve as a chair but was not created with the intention of
supporting that use.")
(=>
(instance ?F Furniture)
(hasPurpose ?F
(exists (?FL)
(and
(instance ?FL Floor)
(meetsSpatially ?F ?FL)))))
(=>
(instance ?F Furniture)
(capability Translocation moves ?F))
(disjoint Furniture EngineeringComponent)
(disjoint Furniture Machine)
(disjoint Furniture TransportationDevice)
(disjoint Furniture Weapon)
(subclass Seat Furniture)
(documentation Seat EnglishLanguage "Any instance of &%Furniture which is designed to
accommodate &%Humans who are &%Sitting.")
(=>
(instance ?SEAT Seat)
(hasPurpose ?SEAT
(exists (?PERSON)
(and
(instance ?PERSON Human)
(located ?PERSON ?SEAT)
(attribute ?PERSON Sitting)))))
(subclass Chair Seat)
(documentation Chair EnglishLanguage "A &%Seat that is designed to accommodate a single
&%Human.")
(=>
(instance ?CHAIR Chair)
(not (exists (?PERSON1 ?PERSON2)
(and
(instance ?PERSON1 Human)
(instance ?PERSON2 Human)
(attribute ?PERSON1 Sitting)
(attribute ?PERSON2 Sitting)
(located ?PERSON1 ?CHAIR)
(located ?PERSON2 ?CHAIR)
(not (equal ?PERSON1 ?PERSON2))))))
(subclass Sofa Seat)
(documentation Sofa EnglishLanguage "A padded &%Seat that is designed to accommodate more
than one &%Human.")
(=>
(instance ?S Sofa)
(hasPurpose ?S
(exists (?P1 ?P2 ?T)
(and
(not (equal ?P1 ?P2))
(instance ?P1 Human)
(instance ?P2 Human)
(holdsDuring ?T
(and
(attribute ?P1 Sitting)
(attribute ?P2 Sitting)
(eventLocated ?P1 ?S)
(eventLocated ?P2 ?S)))))))
(subclass Bed Furniture)
(documentation Bed EnglishLanguage "A piece of &%Furniture which is primarily for sleeping.")
(=>
(instance ?BED Bed)
(hasPurpose ?BED (exists (?PERSON)
(and
(attribute ?PERSON Asleep)
(located ?PERSON ?BED)))))
(subclass KingBed Bed)
(documentation KingBed EnglishLanguage "A &%KingBed is a type of &%Bed that is 1.9m
by 2.0m in size")
(termFormat EnglishLanguage KingBed "king-sized bed")
(=>
(instance ?X KingBed)
(and
(width ?X (MeasureFn 1.9 Meter))
(length ?X (MeasureFn 2.0 Meter))))
(=>
(instance ?X KingBed)
(modalAttribute
(exists (?P1 ?P2 ?P3 ?TIME)
(and
(not (equal ?P1 ?P2))
(not (equal ?P2 ?P3))
(not (equal ?P1 ?P3))
(attribute ?P1 Asleep)
(attribute ?P2 Asleep)
(attribute ?P3 Asleep)
(instance ?P1 Human)
(instance ?P2 Human)
(instance ?P3 Human)
(holdsDuring ?TIME
(and
(located ?P1 ?X)
(located ?P2 ?X)
(located ?P3 ?X))))) Possibility))
(subclass QueenBed Bed)
(documentation QueenBed EnglishLanguage "A &%QueenBed is a type of &%Bed that is 1.5m
by 2.0m in size")
(termFormat EnglishLanguage QueenBed "queen-sized bed")
(=>
(instance ?X QueenBed)
(and
(width ?X (MeasureFn 1.5 Meter))
(length ?X (MeasureFn 2.0 Meter))))
(=>
(instance ?X QueenBed)
(modalAttribute
(exists (?P1 ?P2)
(and
(not (equal ?P1 ?P2))
(not (equal ?P2 ?P3))
(attribute ?P1 Asleep)
(attribute ?P2 Asleep)
(instance ?P1 Human)
(instance ?P2 Human)
(holdsDuring ?TIME
(and
(located ?P1 ?X)
(located ?P2 ?X))))) Possibility))
(subclass DoubleBed Bed)
(documentation DoubleBed EnglishLanguage "A &%DoubleBed is a type of &%Bed that is 1.35m
by 2.0m in size")
(termFormat EnglishLanguage DoubleBed "full-sized bed")
(=>
(instance ?X DoubleBed)
(and
(width ?X (MeasureFn 1.35 Meter))
(length ?X (MeasureFn 2.0 Meter))))
(=>
(instance ?X DoubleBed)
(modalAttribute
(exists (?P1 ?P2)
(and
(not (equal ?P1 ?P2))
(not (equal ?P2 ?P3))
(attribute ?P1 Asleep)
(attribute ?P2 Asleep)
(instance ?P1 Human)
(instance ?P2 Human)
(holdsDuring ?TIME
(and
(located ?P1 ?X)
(located ?P2 ?X))))) Possibility))
(subclass SingleBed Bed)
(documentation SingleBed EnglishLanguage "A &%SingleBed is a type of &%Bed that is 1m
by 2.0m in size")
(termFormat EnglishLanguage SingleBed "twin-sized bed")
(=>
(instance ?X SingleBed)
(and
(width ?X (MeasureFn 1.0 Meter))
(length ?X (MeasureFn 2.0 Meter))))
(subclass BunkBed Bed)
(documentation BunkBed EnglishLanguage "A &%BunkBed is a type of &%Bed has one bed
directly above another")
(termFormat EnglishLanguage BunkBed "bunk bed")
(=>
(instance ?X BunkBed)
(exists (?BED1 ?BED2)
(and
(instance ?BED1 SingleBed)
(instance ?BED2 SingleBed)
(part ?BED1 ?X)
(part ?BED2 ?X)
(orientation ?BED1 ?BED2 Above))))
(subclass MurphyBed Bed)
(documentation MurphyBed EnglishLanguage "A &%MurphyBed is a type of &%Bed that can
be stored vertically inside a wall, closet or cabinet")
(termFormat EnglishLanguage MurphyBed "pull-down bed")
(=>
(instance ?X MurphyBed)
(exists (?STORAGE)
(and
(instance ?STORAGE Compartment)
(meetsSpatially ?STORAGE ?X)
(hasPurpose ?STORAGE
(exists (?K)
(and
(instance ?K Keeping)
(patient ?K ?X)
(destination ?K ?STORAGE)
(holdsDuring
(WhenFn ?K)
(attribute ?X Vertical))))))))
(subclass RollawayBed Bed)
(documentation RollawayBed EnglishLanguage "A &%RollawayBed is a type of &%Bed that is
mounted on rollers so that it can be easily moved")
(termFormat EnglishLanguage RollawayBed "rollaway bed")
(=>
(instance ?X RollawayBed)
(exists (?WHEEL)
(and
(instance ?WHEEL Wheel)
(part ?WHEEL ?X))))
(subclass SofaBed Bed)
(documentation SofaBed EnglishLanguage "A &%SofaBed is a &%Bed that can be kept inside
a compartment in a &%Sofa")
(termFormat EnglishLanguage SofaBed "sofa bed")
(=>
(instance ?X SofaBed)
(exists (?SOFA ?STORAGE)
(and
(instance ?STORAGE Compartment)
(part ?STORAGE ?SOFA)
(instance ?SOFA Sofa)
(hasPurpose ?STORAGE
(exists (?K)
(and
(instance ?K Keeping)
(patient ?K ?X)
(destination ?K ?STORAGE)))))))
(subclass Crib Bed)
(documentation Crib EnglishLanguage "A &%Crib is a &%Bed for babies")
(termFormat EnglishLanguage Crib "crib")
(=>
(instance ?X Crib)
(hasPurpose ?X
(exists (?BABY)
(and
(instance ?BABY HumanBaby)
(attribute ?BABY Asleep)
(located ?BABY ?X)))))
(subclass Hammock Bed)
(documentation Hammock EnglishLanguage "&%Hammock is a type of &%Bed made of rope or
canvas and is suspended between two stationary objects")
(termFormat EnglishLanguage Hammock "hammock")
(=>
(instance ?X Hammock)
(and
(material Fabric ?X)
(exists (?POLE1 ?POLE2 ?GROUND)
(and
(orientation ?POLE1 ?POLE2 Near)
(connected ?POLE1 ?X)
(connected ?POLE2 ?X)
(instance ?GROUND LandArea)
(located ?X ?GROUND)
(orientation ?X ?GROUND Above)))))
(=>
(instance ?X Hammock)
(hasPurpose ?X
(exists (?PROC)
(and
(instance ?PROC LyingDown)
(eventLocated ?PROC ?X)))))
(subclass Mattress Artifact)
(documentation Mattress EnglishLanguage "A &%Mattress is a &%component of a &%Bed
that is a cushion to make it more comfortable")
(termFormat EnglishLanguage Mattress "mattress")
(=>
(instance ?X Mattress)
(exists (?BED)
(and
(instance ?BED Bed)
(component ?X ?BED))))
(=>
(instance ?X Mattress)
(hasPurpose ?X
(exists (?PERSON)
(and
(attribute ?PERSON Asleep)
(orientation ?PERSON ?X On)))))
(subclass BedFrame Artifact)
(documentation BedFrame EnglishLanguage "A &%BedFrame is a %&component of a &%Bed that
supports the mattress")
(termFormat EnglishLanguage BedFrame "bed frame")
(=>
(and
(instance ?X Bed)
(component ?BEDFRAME ?X)
(instance ?BEDFRAME BedFrame)
(component ?MATTRESS ?X)
(instance ?MATTRESS Mattress))
(orientation ?MATTRESS ?BEDFRAME On))
(subclass FourPosterBed BedFrame)
(documentation FourPosterBed EnglishLanguage "&%FourPosterBed is a type of &%BedFrame
with a post at each corner to support curtains or a canopy")
(termFormat EnglishLanguage FourPosterBed "four-poster bed")
(=>
(instance ?X FourPosterBed)
(exists (?SHAPE)
(and
(attribute ?X ?SHAPE)
(instance ?SHAPE Quadrilateral)
(forall (?CORNER)
(=>
(and
(pointOfIntersection ?SIDE1 ?SIDE2 ?CORNER)
(sideOfFigure ?SIDE1 ?SHAPE)
(sideOfFigure ?SIDE2 ?SHAPE)
(not (equal ?SIDE1 ?SIDE2)))
(exists (?POST ?FLOOR)
(and
(meetsSpatially ?CORNER ?POST)
(instance ?POST Artifact)
(instance ?FLOOR Floor)
(orientation ?BED ?FLOOR On)
(orientation ?POST ?FLOOR Vertical))))))))
(subclass BedAttribute RelationalAttribute)
(documentation BedAttribute EnglishLanguage "&%BedAttribute is the class of attributes
attached to the type of cushion a &%Bed has")
(termFormat EnglishLanguage BedAttribute "bed attribute")
(=>
(and
(attribute ?X ?ATTR)
(instance ?ATTR BedAttribute))
(instance ?X Bed))
(instance WaterBed BedAttribute)
(documentation WaterBed EnglishLanguage "&%WaterBed describes how the cushion of a &%Bed
is filled with water")
(termFormat EnglishLanguage WaterBed "water bed")
(=>
(attribute ?X WaterBed)
(exists (?MATTRESS ?WATER)
(and
(component ?MATTRESS ?X)
(contains ?MATTRESS ?WATER)
(instance ?WATER Water))))
(subclass BedLinen Artifact)
(documentation BedLinen EnglishLanguage "&%BedLinen is an &%Artifact made of &%Fabric
that is used to &%Covering a &%Bed")
(termFormat EnglishLanguage BedLinen "bed linen")
(=>
(instance ?X BedLinen)
(material Fabric ?X))
(=>
(instance ?X BedLinen)
(hasPurpose ?X
(exists (?COVER ?BED)
(and
(instance ?COVER Covering)
(patient ?COVER ?BED)
(instance ?BED Bed)
(instrument ?COVER ?X)))))
(subclass Table Furniture)
(documentation Table EnglishLanguage "A piece of &%Furniture with four legs and a flat top.
It is used either for eating, paperwork or meetings.")
(subclass Desk Table)
(documentation Desk EnglishLanguage "A &%Table for a single person which is intended to be
used for paperwork.")
(subclass ChestOrCabinet Furniture)
(subclass ChestOrCabinet Container)
(documentation ChestOrCabinet EnglishLanguage "Any piece of &%Furniture which is also a
Container, e.g. a chest of drawers, a memory chest, an armoire, etc.")
(subclass Coffin Container)
(documentation Coffin EnglishLanguage "A &%Container for a &%HumanCorpse.")
(=>
(instance ?C Coffin)
(hasPurpose ?C
(exists (?HC)
(and
(instance ?HC HumanCorpse)
(located ?HC ?C)))))
(subclass Compartment Container)
(documentation Compartment EnglishLanguage "A &%Container which is part of another &%Container,
e.g. a drawer, a zippered pouch in a piece of luggage, a compartment in a TV
dinner, etc.")
(=>
(instance ?C Compartment)
(exists (?O)
(and
(instance ?O Container)
(not (equal ?C ?O))
(part ?C ?O))))
(subclass Mailbox Container)
(documentation Mailbox EnglishLanguage "A &%Container whose purpose is to receive items
that are mailed to the address associated with the &%Mailbox.")
(=>
(instance ?B Mailbox)
(hasPurpose ?B
(exists (?M ?I)
(and
(instance ?M Mailing)
(patient ?M ?I)
(destination ?M ?B)))))
(subclass Screw AttachingDevice)
(documentation Screw EnglishLanguage "An &%AttachingDevice which contains a spiral of grooves to
hold it in place and which is fastened with a &%Screwdriver.")
(subclass Screwdriver Device)
(documentation Screwdriver EnglishLanguage "A &%Device that is used to rotate
a &%Screw, which by the action of its helical threads is driven into a
medium that is softer than the material of the screw itself.")
(=>
(instance ?D Screwdriver)
(hasPurpose ?D
(exists (?R ?S)
(and
(instance ?R Rotating)
(instrument ?R ?D)
(patient ?R ?S)
(instance ?S Screw)))))
(subclass Hammer Device)
(documentation Hammer EnglishLanguage "A &%Device that is used to pound &%Nails into a
surface, where they become firmly attached.")
(=>
(instance ?H Hammer)
(hasPurpose ?H
(exists (?I ?N)
(and
(instance ?I Impelling)
(instrument ?I ?H)
(patient ?I ?N)
(instance ?N Nail)))))
(subclass Nail AttachingDevice)
(documentation Nail EnglishLanguage "An &%AttachingDevice which is a thin piece of metal, with
or without a head, that is fastened with a &%Hammer.")
(subclass Tape AttachingDevice)
(documentation Tape EnglishLanguage "A thin strip of &%Fabric or &%Paper that is used to attach
two things.")
(=>
(instance ?TAPE Tape)
(exists (?PART)
(and
(part ?PART ?TAPE)
(or
(instance ?PART Paper)
(instance ?PART Fabric)))))
(subclass Anchor AttachingDevice)
(documentation Anchor EnglishLanguage "An &%AttachingDevice which is large hook or set of hooks
that are used to secure a &%WaterVehicle on the open water.")
(=>
(and
(instance ?A Anchor)
(instance ?ATTACH Attaching)
(instrument ?ATTACH ?A)
(patient ?ATTACH ?S))
(instance ?S WaterVehicle))
(subclass BoatDeck Artifact)
(documentation BoatDeck EnglishLanguage "One of the levels of a &%WaterVehicle, e.g. the
upper deck and lower deck of small boats with a cabin.")
(=>
(instance ?D BoatDeck)
(exists (?B)
(and
(instance ?B WaterVehicle)
(part ?D ?B))))
(subclass Button AttachingDevice)
(documentation Button EnglishLanguage "An &%AttachingDevice that is used on &%Clothing.")
(=>
(instance ?B Button)
(hasPurpose ?B
(exists (?C)
(and
(instance ?C Clothing)
(part ?B ?C)))))
(subclass Clamp AttachingDevice)
(documentation Clamp EnglishLanguage "An &%AttachingDevice which is designed to attach
two things together by means of a movable part which can be tightened
or loosened.")
(subclass Washer Device)
(documentation Washer EnglishLanguage "A thin plate (typically disk-shaped) with a &%Hole (typically in the middle) that is normally used to distribute the load of a threaded &%AttachingDevice, but can have also other functions")
(=>
(instance ?W Washer)
(hasPurpose ?W
(exists (?O1 ?O2)
(and
(instance ?O1 CorpuscularObject)
(instance ?O2 AttachingDevice)
(meetsSpatially ?O1 ?W)
(contains ?W ?O2)))))
(=>
(and
(instance ?W Washer)
(instance ?O1 CorpuscularObject)
(instance ?O2 AttachingDevice)
(meetsSpatially ?O1 ?W)
(contains ?W ?O2))
(exists (?PURPOSE)
(hasPurpose ?W ?PURPOSE)))
(=>
(instance ?W Washer)
(attribute ?W RingTorus))
(subclass Holder Device)
(documentation Holder EnglishLanguage "A large class of &%Devices whose purpose is to hold
something else, i.e. be the &%instrument of a &%Keeping.")
(=>
(instance ?DEVICE Holder)
(capability Keeping instrument ?DEVICE))
(subclass Saddle Holder)
(documentation Saddle EnglishLanguage "A &%Device which allows a &%Human to ride on a
&%Horse.")
(=>
(instance ?SADDLE Saddle)
(capability
(KappaFn ?RIDE
(exists (?HUMAN ?HORSE)
(and
(instance ?RIDE Carrying)
(patient ?RIDE ?HUMAN)
(instance ?HUMAN Human)
(agent ?RIDE ?HORSE)
(instance ?HORSE Horse)))) instrument ?SADDLE))
(subclass HorseRiding Carrying)
(documentation HorseRiding EnglishLanguage "Any instance of &%Carrying where the &%Animal is
a &%Horse.")
(=>
(instance ?R HorseRiding)
(exists (?H)
(and
(instance ?H Horse)
(instrument ?R ?H))))
(instance carries BinaryPredicate)
;; KJN: Editing this to be more general not only to Animal but to any Agent
;;(domain carries 1 Animal)
(domain carries 1 Agent)
(domain carries 2 Object)
;;(documentation carries EnglishLanguage "(carries ?ANIMAL ?OBJECT) means that
;;an &%Animal ?ANIMAL transers an &%OBJECT ?OBJECT from one point to another")
(documentation carries EnglishLanguage "(carries ?AGENT ?OBJECT) means that
an &%Agent ?AGENT transers an &%OBJECT ?OBJECT from one point to another")
(termFormat EnglishLanguage carries "carries")
(=>
(carries ?AGENT ?OBJECT)
(exists (?CARRYING)
(and
(instrument ?CARRYING ?AGENT)
(patient ?CARRYING ?OBJECT))))
(subclass Tray Holder)
(documentation Tray EnglishLanguage "A &%Holder that is designed for &%Food, dishes, and
flatware.")
(subclass Dish Holder)
(documentation Dish EnglishLanguage "A &%Holder for &%Food while the &%Food is being eaten.")
(=>
(instance ?D Dish)
(hasPurpose ?D
(exists (?F ?E)
(and
(instance ?E Eating)
(patient ?E ?F)
(patient ?E ?D)
(instance ?F (FoodForFn Animal))
(located ?F ?D)))))
(subclass Container Holder)
(documentation Container EnglishLanguage "Any &%Holder whose purpose is to contain
something else. Note that &%Container is more specific in meaning
than &%Holder, because a &%Container must have a &%Hole that is at
least partially filled by th