;; ==============================
;;      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 Teknowledge domain ontologies.  The MILO is 
;; at this point in time (April 2003) provisional and incomplete.  It will be 
;; actively modified and greatly enlarged at least through the end of 2003.  
;; Those who are interested in making use of this ontology are urged 
;; to contact Adam Pease (apease@ks.teknowledge.com) or Ian Niles 
;; (iniles@teknowledge.com) for the latest version.

;; The MILO (MId-Level Ontology) is copyrighted by Teknowledge (c) 
;; 2003.  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 in any writings, briefings, 
;; publications, presentations, or other representations of any code or other 
;; product which incorporates, builds on, or uses this material. 


;; ===========
;; New Content
;; ===========

;; The following content (down to the header for "Elements Ontology") was 
;; newly created for the MILO.

(subclass HumanCorpse Human)
(documentation HumanCorpse "A &%Human which is &%Dead.")

(<=>
   (instance ?CORPSE HumanCorpse)
   (and
      (instance ?CORPSE Human)
      (attribute ?CORPSE Dead)))

(subclass HumanSlave Human)
(documentation HumanSlave "A &%Human who is owned by someone else.")

(=>
   (instance ?SLAVE HumanSlave)
   (exists (?PERSON)
      (and
         (instance ?PERSON Human)
         (not (equal ?PERSON ?SLAVE))
         (possesses ?PERSON ?SLAVE))))

(subclass Man Human)
(documentation Man "The class of &%Male &%Humans.")

(=>
   (instance ?MAN Man)
   (attribute ?MAN Male))

(subclass Woman Human)
(documentation Woman "The class of &%Female &%Humans.")

(=>
   (instance ?WOMAN Woman) 
   (attribute ?WOMAN Female))

(subclass HumanAdult Human)
(documentation HumanAdult "The class of &%Humans that are 18 years of 
age or older.")

(=>
   (and
      (instance ?ADULT HumanAdult)
      (age ?ADULT (MeasureFn ?NUMBER YearDuration)))
   (greaterThanOrEqualTo ?NUMBER 18))

(subclass HumanYouth Human)
(documentation HumanYouth "The class of &%Humans that are younger than 
18 years of age.")

(=>
   (and
      (instance ?YOUTH HumanYouth)
      (age ?YOUTH (MeasureFn ?NUMBER YearDuration)))
   (lessThan ?NUMBER 18))

(subclass HumanChild HumanYouth)
(documentation HumanChild "A &%HumanYouth between birth and puberty, i.e a 
&%Human who is &%NonFullyFormed.")

(=>
   (instance ?CHILD HumanChild)
   (attribute ?CHILD NonFullyFormed))

(=>
   (and
      (instance ?CHILD HumanChild)
      (age ?CHILD (MeasureFn ?NUMBER YearDuration)))
   (lessThanOrEqualTo ?NUMBER 14)) 

(subclass Teenager HumanYouth)
(documentation Teenager "A &%HumanYouth between puberty and the age of 20.")

(=>
   (and
      (instance ?TEEN Teenager)
      (age ?TEEN (MeasureFn ?NUMBER YearDuration)))
   (and
      (greaterThan ?NUMBER 12)
      (lessThan ?NUMBER 20))) 

(subclass Boy HumanChild)
(subclass Boy Man)
(documentation Boy "A &%HumanChild who is &%Male.")

(subclass Girl HumanChild)
(subclass Girl Woman)
(documentation Girl "A &%HumanChild who is &%Female.")

(subclass HumanBaby HumanChild)
(documentation HumanBaby "A &%Human between birth and the first year of age.")

(=>
   (and
      (instance ?BABY HumanBaby)
      (age ?CHILD (MeasureFn ?NUMBER YearDuration)))
   (lessThanOrEqualTo ?NUMBER 1)) 

(subclass Stepping BodyMotion)
(documentation Stepping "The &%BodyMotion of extending one foot forward 
and then bringing the other foot to the same lateral position as the 
first leg.")

(partition Ambulating Walking Running)

(=>
   (and
      (instance ?AMBULATE Ambulating)
      (agent ?AMBULATE ?AGENT))
   (attribute ?AGENT Standing))

(=>
   (instance ?AMBULATE Ambulating)
   (exists (?SUB)
      (and
         (subclass ?SUB Stepping)
         (forall (?INST)
            (<=>
               (instance ?INST ?SUB)
               (subProcess ?INST ?AMBULATE))))))

(subclass Walking Ambulating)
(documentation Walking "&%Ambulating relatively slowly, i.e. moving in such a 
way that at least one foot is always in contact with the ground.")

(subclass Running Ambulating)
(documentation Running "&%Ambulating relatively quickly, i.e. moving in such a 
way that, with each step, neither foot is in contact with the ground for a 
period of time.")

(=>
   (and
      (instance ?WALK Walking)
      (instance ?RUN Running)
      (agent ?WALK ?AGENT)
      (agent ?RUN ?AGENT)
      (holdsDuring (WhenFn ?WALK) (measure ?AGENT (SpeedFn ?LENGTH1 ?TIME)))
      (holdsDuring (WhenFn ?RUN) (measure ?AGENT (SpeedFn ?LENGTH2 ?TIME))))
   (greaterThan ?LENGTH2 ?LENGTH1))

(subclass ReflectingLight RadiatingLight)
(documentation ReflectingLight "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.")

(subclass Vocalizing RadiatingSound)
(subclass Vocalizing BodyMotion)
(documentation Vocalizing "Any instance of &%RadiatingSound where the 
&%instrument is the &%Human vocal cords.  This covers grunts, screams, 
roars, as well as &%Speaking.")

(=>
   (instance ?VOCAL Vocalizing)
   (exists (?HUMAN)
      (and
         (instance ?HUMAN Human)
         (agent ?VOCAL ?HUMAN)
         (instrument ?VOCAL ?HUMAN))))

(subclass Speaking LinguisticCommunication)
(subclass Speaking Vocalizing)
(documentation Speaking "Any &%LinguisticGeneration which is also a 
&%Vocalizing, i.e. any &%LinguisticCommunication by a &%Human which 
involves his/her vocal cords.")

(subclass Singing Speaking)
(subclass Singing Music)
(documentation Singing "&%Speaking that is also &%Music.")

(subclass Lyrics Text)
(documentation Lyrics "Any &%Text which is intended to be sung.")

(=>
   (instance ?LYRIC Lyrics)
   (hasPurpose ?LYRIC (exists (?SING)
                         (and
                            (instance ?SING Singing)
                            (patient ?SING ?LYRIC)))))

(subclass InstrumentalMusic Music)
(documentation InstrumentalMusic "&%Music which is produced (at least in part) 
by a &%MusicalInstrument.")

(=>
   (instance ?MUSIC InstrumentalMusic)
   (exists (?INSTRUMENT)
      (and
         (instance ?INSTRUMENT MusicalInstrument)
         (instrument ?MUSIC ?INSTRUMENT))))

(subclass Piano MusicalInstrument)
(documentation Piano "A &%MusicalInstrument with keys that, when pressed down, 
activate hammers that, in turn, strike strings.")

(partition Music MonophonicMusic PolyphonicMusic)

(subclass MonophonicMusic Music)
(documentation MonophonicMusic "&%Music which has a single part, i.e. &%Music 
which cannot be divided into two or more contemporaneous &%subProcesses which 
are also instances of &%Music.")

(subclass PolyphonicMusic Music)
(documentation PolyphonicMusic "&%Music which has two or more parts, i.e. &%Music 
which can be divided into two or more contemporaneous &%subProcesses which are 
also instances of &%Music.")

(<=>
   (instance ?MUSIC PolyphonicMusic)
   (exists (?PART1 ?PART2)
      (and
         (instance ?MUSIC Music)
         (instance ?PART1 Music)
         (instance ?PART2 Music)
         (subProcess ?PART1 ?MUSIC)
         (subProcess ?PART2 ?MUSIC)
         (not (equal ?PART1 ?PART2))
         (cooccur ?PART1 ?MUSIC)
         (cooccur ?PART2 ?MUSIC))))  

(subclass WrittenCommunication LinguisticCommunication)
(documentation WrittenCommunication "Any &%LinguisticCommunication where the 
&%instrument is a &%Text, e.g. a letter, an email, a memo, etc.")

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

(subclass Reminding Requesting)
(documentation Reminding "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 "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 OrganizationalProcess)
(documentation Punishing "Any &%OrganizationalProcess where the &%agent 
does something to the &%destination that the &%agent knows is undesirable 
for the &%destination.")

(=>
   (and
      (instance ?PUNISH Punishing)
      (agent ?PUNISH ?AGENT)
      (patient ?PUNISH ?PROP)
      (destination ?PUNISH ?DEST))
  (knows ?AGENT (not (desires ?DEST ?PROP))))

(subclass Registering Stating)
(subclass Registering PoliticalProcess)
(documentation Registering "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 "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 "Any &%Stating which has the form of an &%Argument.")

(=>
   (instance ?ARGUE Arguing)
   (exists (?STATEMENT)
      (and
         (patient ?ARGUE ?STATEMENT)
         (instance ?STATEMENT Statement)
         (containsInformation ?STATEMENT ?ARGUMENT)
         (instance ?ARGUMENT Argument))))

(subclass StatingALie Stating)
(documentation StatingALie "Any &%Stating which is both &%False and believed 
to be &%False by the &%agent of the &%Stating.")

(=>
   (and
      (instance ?STATE StatingALie)
      (agent ?STATE ?AGENT)
      (patient ?STATE ?STATEMENT))
   (and
      (true ?STATMENT False)
      (believes ?AGENT (true ?STATEMENT False))))

(subclass Wedding Declaring)
(documentation Wedding "Any &%Declaring that leads to one person being 
the &%spouse of another.")

(=>
   (instance ?WED Wedding)
   (exists (?PERSON1 ?PERSON2)
      (result ?WED (spouse ?PERSON1 ?PERSON2))))

(subclass Founding Declaring)
(subclass Founding OrganizationalProcess)
(documentation Founding "Setting up an &%Organization.")

(=>
   (instance ?FOUND Founding)
   (exists (?ORG)
      (and
         (instance ?ORG Organization)
         (result ?FOUND ?ORG)))) 

(subclass Naming Declaring)
(documentation "The &%Process of assigning a name to someone or something.")

(=>
   (and
      (instance ?PROCESS Naming)
      (patient ?PROCESS ?THING)
      (destination ?PROCESS ?NAME))
   (holdsDuring (FutureFn (WhenFn ?PROCESS)) (names ?NAME ?THING)))

(subclass Indicating Communication)
(subclass Indicating BodyMotion)
(documentation Indicating "Pointing out a person, place or thing with 
one's hand or with an &%Artifact.")

(subclass Projectile Weapon)
(documentation Projectile "A missile, bullet, etc. that is fired from 
a &%Weapon.")

(=>
   (instance ?PROJECTILE Projectile)
   (capability Shooting patient ?PROJECTILE))

(subclass ProjectileShell Container)
(documentation ProjectileShell "The outer casing of a &%Projectile.")

(=>
   (instance ?PROJECTILE Projectile)
   (exists (?SHELL)
      (and
         (instance ?SHELL ProjectileShell)
         (part ?SHELL ?PROJECTILE))))

(subclass Gun Weapon)
(partition Gun ArtilleryGun Firearm)
(documentation Gun "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 GunStock EngineeringComponent)
(documentation GunStock "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 ArtilleryGun Gun)
(documentation ArtilleryGun "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 "A &%Gun that is small enough to be carried and fired by 
a single &%Human.")

(subclass Rifle Firearm)
(documentation Rifle "A &%Firearm with a long barrel that is intended to be fired 
from the shoulder.")

(subclass Pistol Firearm)
(documentation Pistol "A &%Firearm that is intended to be aimed and fired with a 
single hand.")

(subclass Manifold EngineeringComponent)
(documentation Manifold "A pipe which has several outlets for other pipes that flow 
into or out of it.")

(subclass BirthControlDevice Device)
(documentation BirthControlDevice "&%Devices which permit sexual intercourse but 
which reduce the likelihood of conception.")

(subclass SwitchDevice Device)
(documentation SwitchDevice "A &%Device 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 Transducer Device)
(documentation Transducer "A &%Device which is capable of converting one form of 
energy into another.")

(subclass Aerator Device)
(documentation Aerator "A &%Device whose purpose is to mix &%Substances with 
&%Air.")

(=>
   (instance ?AERATOR Aerator)
   (hasPurpose ?AERATOR (exists (?COMBINE)
                           (and
                              (instance ?COMBINE Combining)
                              (resource ?COMBINE ?AIR)
                              (instance ?AIR Air)
                              (instrument ?COMBINE ?AERATOR)))))

(subclass Filter Device)
(documentation Filter "A &%Device whose purpose is to remove part of a 
&%Solution that is passed through the &%Filter.")

(=>
   (instance ?FILTER Filter)
   (hasPurpose ?FILTER (exists (?REMOVE ?SOLUTION)
                          (and
                             (instance ?REMOVE Removing)
                             (origin ?REMOVE ?SOLUTION)
                             (instance ?SOLUTION Solution)
                             (instrument ?REMOVE ?FILTER)))))

(subclass FileDevice Device)
(documentation FileDevice "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 "Any &%Device that is powered by electricity.")

(subclass Radar ElectricDevice)
(documentation Radar "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)))))

(subclass SecurityDevice Device)
(documentation SecurityDevice "A &%Device whose purpose is to protect people or 
property from kidnappers and/or thieves.")

(subclass Lock SecurityDevice)
(documentation Lock "A &%Device, which, through a &%Key or a combination prevents 
access to a &%Container or &%StationaryArtifact.")

(subclass Key SecurityDevice)
(documentation Key "A &%Device which opens and closes a &%Lock.")

(=>
   (instance ?KEY Key)
   (exists (?LOCK)
      (and
         (instance ?LOCK Lock)
         (capability Opening instrument ?LOCK)
         (capability Closing instrument ?LOCK))))
   
(subclass SecurityAlarm SecurityDevice)
(subclass SecurityAlarm ElectricDevice)
(documentation SecurityAlarm "A &%SecurityDevice that detects intrusions to 
a &%StationaryArtifact and issues a warning of some sort.")

(partition Quantity FiniteQuantity InfiniteQuantity)

(subclass FiniteQuantity Quantity)
(documentation FiniteQuantity "Any &%Quantity that is limited or bounded in 
magnitude.")

(subclass InfiniteQuantity Quantity)
(documentation InfiniteQuantity "Any &%Quantity that is not limited or bounded 
in magnitude.")

(subclass MeasuringDevice Device)
(documentation MeasuringDevice "Any &%Device whose purpose is to measure a 
&%PhysicalQuantity.")

(=>
   (instance ?DEVICE MeasuringDevice)
   (hasPurpose ?DEVICE (exists (?MEASURE) 
                           (and 
                               (instance ?MEASURE Measuring) 
                               (instrument ?MEASURE ?DEVICE)))))

(subclass Clock MeasuringDevice)
(documentation Clock "Any &%Device that measures and represents &%TimeDuration 
or &%TimePosition.")

(=>
   (and
      (instance ?MEASURE Measuring)
      (result ?MEASURE ?QUANTITY)
      (instrument ?MEASURE ?CLOCK)
      (instance ?CLOCK Clock))
   (instance ?QUANTITY TimeMeasure))

(subclass Thermometer MeasuringDevice)
(documentation Thermometer "Any &%Device that measures and represents 
&%TemperatureMeasure.")

(=>
   (and
      (instance ?MEASURE Measuring)
      (result ?MEASURE ?QUANTITY)
      (instrument ?MEASURE ?THERMOMETER)
      (instance ?THERMOMETER Thermometer))
   (instance ?QUANTITY TemperatureMeasure))

(subclass Telephone ElectricDevice)
(subclass Telephone CommunicationDevice)
(documentation Telephone "A &%Device that permits &%LinguisticCommunication 
between remote points by converting sound into electrical signals that are 
then transmitted.  When the signals are received, they are converted back 
into sound.")

(subrelation telephoneNumber uniqueIdentifier)
(domain telephoneNumber 1 SymbolicString)
(domain telephoneNumber 2 Agent)
(relatedInternalConcept telephoneNumber address)
(documentation telephoneNumber "(&%telephoneNumber ?NUMBER ?AGENT) means 
that ?NUMBER is a telephone number at which ?AGENT can be regularly contacted.")

(subclass LightFixture Device)
(documentation LightFixture "Any &%Device whose purpose is to be a source of 
visible light.")

(=>
   (instance ?FIXTURE LightFixture)
   (capability RadiatingLight instrument ?FIXTURE))

(subclass RepresentationalArtWork ArtWork)
(subclass RepresentationalArtWork Icon)
(documentation RepresentationalArtWork "Any &%ArtWork that represents 
something &%Physical.")

(subclass PaintedPicture ArtWork)
(documentation PaintedPicture "Any &%ArtWork which is produced by &%Painting.")

(subclass Sketch ArtWork)
(documentation Sketch "Any &%ArtWork which is produced by a pencil or 
piece of charcoal.")

(subclass Collage ArtWork)
(subclass Collage (ComplementFn RepresentationalArtWork))
(documentation Collage "Any abstract &%ArtWork that is produced by arranging 
bits of paper or photographs.")

(subclass Painting Covering)
(subclass Painting Coloring)
(documentation Painting "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)
      (instrument ?PAINT ?STUFF))
   (exists (?OBJ)
      (and
         (surface ?SURFACE ?OBJ)
         (instance ?STUFF Paint))))

(subclass Paint Solution)
(documentation Paint "Any &%Solution which is capable of &%Coloring something.")

(=>
   (instance ?PAINT Paint)
   (capability Coloring instrument ?PAINT))

(subclass Translating ContentDevelopment)
(subclass Translating DualObjectProcess)
(documentation Translating "Converting content from one &%Language into another.")

(=>
   (and
      (instance ?TRANSLATE Translating)
      (resource ?TRANSLATE ?EXPRESSION1)
      (result ?TRANSLATE ?EXPRESSION2))
   (exists (?LANGUAGE1 ?LANGUAGE2 ?ENTITY)
      (and
         (representsInLanguage ?EXPRESSION1 ?ENTITY ?LANGUAGE1)
         (representsInLanguage ?EXPRESSION2 ?ENTITY ?LANGUAGE2)
         (not (equal ?LANGUAGE1 ?LANGUAGE2))))) 

(subclass ArtPainting ContentDevelopment)
(subclass ArtPainting Painting)
(documentation ArtPainting "Any &%ContentDevelopment that results in a 
&%PaintedPicture.")

(=>
   (instance ?PAINT ArtPainting)
   (exists (?PICTURE)
      (and
         (instance ?PICTURE PaintedPicture)
         (result ?PAINT ?PICTURE))))

(subclass Drawing ContentDevelopment)
(subclass Drawing SurfaceChange)
(documentation Drawing "Any &%ContentDevelopment that results in a &%Sketch.")

(=>
   (instance ?DRAW Drawing)
   (exists (?SKETCH)
      (and
         (instance ?SKETCH Sketch)
         (result ?DRAW ?SKETCH))))

(subclass DisplayBoard Artifact)
(documentation DisplayBoard "A large board for posting information so 
that it can be disseminated to the public.")

(=>
   (instance ?BOARD DisplayBoard)
   (hasPurpose ?BOARD (exists (?PUT ?DISSEMINATE ?INFO)
                         (and
                            (instance ?PUT Putting)
                            (instance ?DISSEMINATE Disseminating)
                            (instance ?INFO ContentBearingObject)
                            (patient ?PUT ?INFO)
                            (patient ?DISSEMINATE ?INFO)
                            (destination ?PUT ?BOARD)))))

(subclass Wheel Artifact)
(documentation Wheel "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 Paper Artifact)
(documentation Paper "An &%Artifact made of cellulose pulp that is intended 
to contain a &%Text.")

(=>
   (instance ?PAPER Paper)
   (hasPurpose ?PAPER (exists (?TEXT) 
                         (and
                            (instance ?TEXT Text)
                            (part ?TEXT ?PAPER)))))

(subclass Wire Artifact)
(documentation Wire "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 Plug Artifact)
(documentation Plug "An &%Artifact which is designed to fit snugly within 
a &%Hole.")

(=>
   (instance ?PLUG Plug)
   (exists (?HOLE)
      (completelyFills ?PLUG ?HOLE)))

(subclass CigarOrCigarette Artifact)
(documentation CigarOrCigarette "A tube of thin paper containing finely ground tobacco 
that is smoked.")

(subclass Pottery Artifact)
(documentation Pottery "Household &%Artifacts that are made out of baked &%Clay.")

(=>
   (instance ?POTTERY Pottery)
   (exists (?CLAY)
      (and
         (instance ?CLAY Clay)
         (part ?CLAY ?POTTERY))))

(subclass Furniture Artifact)
(disjoint Furniture Device)
(documentation Furniture "Any free-standing &%Artifacts which are not 
&%Devices and which are used in day-to-day living.")

(subclass Seat Furniture)
(documentation Seat "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 "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 Bed Furniture)
(documentation Bed "A piece of &%Furniture which is primarily for sleeping.")

(=>
   (instance ?BED Bed)
   (hasPurpose ?BED (exists (?PERSON)
                       (and
                          (attribute ?PERSON Asleep)
                          (located ?PERSON ?BED)))))

(subclass Table Furniture)
(documentation Table "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 "A &%Table for a single person which is intended to be 
used for paperwork.")

(subclass AttachingDevice Device)
(documentation AttachingDevice "A &%Device whose purpose is to attach one thing 
to something else, e.g. nails, screws, buttons, etc.")

(=>
   (instance ?DEVICE AttachingDevice)
   (exists (?ATTACH)
      (and
         (instance ?ATTACH Attaching)
         (instrument ?ATTACH ?DEVICE))))

(subclass Screw AttachingDevice)
(documentation Screw "An &%AttachingDevice which contains a spiral of grooves to 
hold it in place and which is fastened with a screwdriver.")

(subclass Tape AttachingDevice)
(documentation Tape "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 Holder Device)
(documentation Holder "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 "A &%Device which allows a &%Human to ride on a 
&%Horse.")

(=>
   (instance ?SADDLE Saddle)
   (capability (KappaFn ?RIDE (and 
                                 (instance ?RIDE Carrying)
                                 (patient ?RIDE ?HUMAN)
                                 (instance ?HUMAN Human)
                                 (agent ?RIDE ?HORSE)
                                 (instance ?HORSE Horse))) instrument ?SADDLE))

(subclass Tray Holder)
(documentation Tray "A &%Holder that is designed for &%Food, dishes, and 
flatware.")

(subclass Container Holder)
(documentation Container "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 the thing contained.")

(=>
   (instance ?CONTAINER Container)
   (hasPurpose ?CONTAINER (exists (?OBJ) (contains ?CONTAINER ?OBJ))))

(subclass Box Container)
(documentation Box "Any six-sided &%Container whose sides are 
rectangular in shape.")

(=>
   (instance ?BOX Box)
   (equal (CardinalityFn (KappaFn ?SIDE (or
                                           (top ?SIDE ?BOX)
                                           (bottom ?SIDE ?BOX)
                                           (side ?SIDE ?BOX)))) 6))   

(subclass TravelContainer Container)
(documentation TravelContainer "Any &%Container which is intended to be 
used for carrying clothing, toiletries, and other personal effects that 
would be needed on a overnight trip.")   

(subclass FluidContainer Container)
(documentation FluidContainer "A &%Container which is used to store &%Fluids,  
i.e. &%Liquids and &%Gases.")

(=>
   (and
      (instance ?TANK TankContainer)
      (contains ?TANK ?STUFF))
   (attribute ?STUFF Fluid))

(subclass Bottle FluidContainer)
(documentation "A &%Container whose top is narrower than its bottom, which 
has no handle, and which is intended to store &%Liquids.")

(=>
   (and
      (instance ?BOTTLE Bottle)
      (contains ?BOTTLE ?STUFF))
   (attribute ?STUFF Liquid))

(=>
   (and
      (instance ?BOTTLE Bottle)
      (bottom ?BOTTOM ?BOTTLE)
      (top ?TOP ?BOTTLE)
      (width ?BOTTOM ?WIDTH1)
      (width ?TOP ?WIDTH2))
   (lessThan ?WIDTH2 ?WIDTH1))

(subclass Cup FluidContainer)
(documentation Cup "An open &%FluidContainer that is intended to serve a &%Beverage 
to a single person.  Note that this class includes both cups with handles and 
drinking glasses.")

(=>
   (and
      (instance ?CUP Cup)
      (contains ?CUP ?STUFF))
   (instance ?STUFF Beverage))
      
(subclass BoardOrBlock Artifact)
(documentation BoardOrBlock "A piece of material with flat, rectangular sides.  
Note that boards and blocks are lumped into a single concept, because the 
difference between these notions cannot be precisely defined.")

(=>
   (instance ?BOARD BoardOrBlock)
   (capability Constructing resource ?BOARD))

(subclass Nest CorpuscularObject)
(documentation Nest "Any structure which is created by nonhuman &%Animals for 
the purpose of giving birth to their offspring.")

(=>
   (instance ?NEST Nest)
   (hasPurpose ?NEST (exists (?BIRTH)
                        (and
                           (instance ?BIRTH Birth)
                           (located ?BIRTH ?NEST)))))

(subclass OutdoorClothing Clothing)
(documentation OutdoorClothing "&%Clothing that is intended to be worn 
outdoors.")  

(=>
   (and
      (instance ?CLOTHING OutdoorClothing)
      (holdsDuring ?TIME (wears ?PERSON ?CLOTHING)))
   (not (exists (?BUILDING)
      (and
         (instance ?BUILDING Building)
         (holdsDuring ?TIME (located ?PERSON ?BUILDING))))))
   
(subclass Hat OutdoorClothing)
(documentation Hat "A type of &%Clothing that is worn on the &%Head.  Note 
that this class covers caps, bonnets, berets, etc.")

(=>
   (and
      (wears ?PERSON ?HAT)
      (instance ?HAT Hat))
   (exists (?HEAD)
      (and
         (instance ?HEAD Head)
         (part ?HEAD ?PERSON)
         (meetsSpatially ?HAT ?HEAD))))

(subclass Coat OutdoorClothing)
(documentation Coat "&%Clothing that has sleeves and covers from the neck 
down.  &%Coats are intended to be worn outdoors.")

(subclass Shoe Clothing)
(documentation Shoe "&%Clothing that is intended to be worn on the &%Foot.  
It consists of an upper, a sole, and a heel.")

(=>
   (and
      (wears ?PERSON ?SHOE)
      (instance ?SHOE Shoe))
   (exists (?FOOT)
      (and
         (instance ?FOOT Foot)
         (part ?FOOT ?PERSON)
         (meetsSpatially ?SHOE ?FOOT))))

(subclass Shirt Clothing)
(documentation Shirt "An item of &%Clothing which covers the upper body of a 
&%Human.")

(=>
   (and
      (instance ?SHIRT Shirt)
      (wears ?PERSON ?SHIRT))
   (instance ?PERSON Human))

(subclass Dress Clothing)
(documentation Dress "An item of &%Clothing which covers the lower body of a 
&%Woman.")

(=>
   (and
      (instance ?DRESS Dress)
      (wears ?PERSON ?DRESS))
   (instance ?PERSON Woman))

(subclass ClothingSuit Collection)
(documentation ClothingSuit "A &%Collection of instances of &%Clothing that 
are designed to be worn together.")

(=>
   (and
      (instance ?SUIT ClothingSuit)
      (member ?ITEM1 ?SUIT)
      (holdsDuring ?TIME (wears ?PERSON ?ITEM1)))
   (forall (?ITEM2)
      (=>
         (member ?ITEM2 ?SUIT)
         (holdsDuring ?TIME (wears ?PERSON ?ITEM2)))))

(subclass Leather Fabric)
(documentation Leather "A &%Fabric that is the result of tanning an &%Animal 
&%Skin.")

(=>
   (instance ?LEATHER Leather)
   (exists (?MAKE)
      (and
         (instance ?MAKE Making)
         (resource ?MAKE ?SKIN)
         (instance ?SKIN Skin)
         (result ?MAKE ?LEATHER))))
      
(subclass Pocket Fabric)
(documentation Pocket "A pouch of &%Fabric in an instance of &%Clothing where 
something can be kept.")

(=>
   (instance ?POCKET Pocket)
   (exists (?CLOTHING)
      (and
         (instance ?CLOTHING Clothing)
         (part ?POCKET ?CLOTHING))))

(=>
   (instance ?POCKET Pocket)
   (capability Keeping instrument ?POCKET))

(subclass Blanket Fabric)
(documentation Blanket "A piece of &%Fabric whose purpose is to keep a sleeping 
person warm.")

(=>
   (instance ?BLANKET Blanket)
   (hasPurpose ?BLANKET (exists (?HEAT ?PERSON)
                           (and
                              (instance ?HEAT Heating)
                              (patient ?HEAT ?PERSON)
                              (instance ?PERSON Human)
                              (located ?PERSON ?BED)
                              (instance ?BED Bed)))))

(instance wears BinaryPredicate)
(domain wears 1 Animal)
(domain wears 2 Clothing)
(documentation wears "(&%wears ?AGENT ?CLOTHING) means that ?AGENT is wearing 
the item of &%Clothing ?CLOTHING.")

(=>
   (wears ?AGENT ?CLOTHING)
   (located ?CLOTHING ?AGENT))

(subclass Dressing Putting)
(documentation Dressing "The &%Process of putting on &%Clothing.")

(=>
   (and
      (instance ?DRESS Dressing)
      (agent ?DRESS ?AGENT)
      (patient ?DRESS ?CLOTHING))
   (and
      (instance ?CLOTHING Clothing)
      (holdsDuring (BeginFn (WhenFn ?DRESS)) (not (wears ?AGENT ?CLOTHING)))
      (holdsDuring (EndFn (WhenFn ?DRESS)) (wears ?AGENT ?CLOTHING))))

(subclass Tying Attaching) 
(documentation Tying "The &%Process of tying two things, or two strands of 
the same thing, together.") 

(subclass Untying Detaching) 
(disjoint Untying Tying)
(documentation Untying "The &%Process of untying two things, or two strands 
of the same thing.") 

(instance patientMedical BinaryPredicate)
(domain patientMedical 1 Human)
(domain patientMedical 2 CognitiveAgent)
(documentation patientMedical "The relation of receiving medical care 
from a recognized medical practitioner.  (&%patientMedical ?PATIENT 
?DOCTOR) means that ?PATIENT is the patient of ?DOCTOR.  Note that 
argument type restriction on the second argument is &%CognitiveAgent 
to allow for cases where someone is the patient of an &%Organization, 
viz. a &%CareOrganization.")

(=>
   (patientMedical ?PATIENT ?DOCTOR)
   (exists (?PROCESS)
      (and
         (patient ?PROCESS ?PATIENT)
         (agent ?PROCESS ?DOCTOR)
         (or
            (instance ?PROCESS DiagnosticProcess)
            (instance ?PROCESS TherapeuticProcess)))))

(subclass NonspecificDisease DiseaseOrSyndrome)
(documentation NonspecificDisease "The class of &%DiseaseOrSyndromes that are not 
caused by a single type of &%Microorganism.")

(=>
   (instance ?DISEASE NonspecificDisease)
   (not (exists (?AGENT)
      (and
         (instance ?AGENT Microorganism)
         (forall (?VICTIM)
            (=>
               (attribute ?VICTIM ?DISEASE)
               (located ?AGENT ?VICTIM)))))))

(instance Cancer DiseaseOrSyndrome)
(documentation Cancer "A &%DiseaseOrSyndrome characterized by pathologic and 
uncontrolled cell division that results in a &%Tumor.")

(=>
   (attribute ?PERSON Cancer)
   (exists (?TUMOR)
      (and
         (instance ?TUMOR Tumor)
         (part ?TUMOR ?PERSON))))

(instance conjugate BinaryPredicate)
(instance conjugate IrreflexiveRelation)
(instance conjugate SymmetricRelation)
(instance conjugate TransitiveRelation)
(domain conjugate 1 CompoundSubstance)
(domain conjugate 2 CompoundSubstance)
(documentation conjugate "(&%conjugate ?COMPOUND1 ?COMPOUND2) means that 
?COMPOUND1 and ?COMPOUND2 are identical &%CompoundSubstances except that 
one has one more &%Proton than the other.")

(=>
   (conjugate ?COMPOUND1 ?COMPOUND2)
   (exists (?NUMBER1 ?NUMBER2)
      (and
         (protonNumber ?COMPOUND1 ?NUMBER1) 
         (protonNumber ?COMPOUND2 ?NUMBER2)
         (or
            (equal ?NUMBER1 (AdditionFn ?NUMBER2 1))
            (equal ?NUMBER2 (AdditionFn ?NUMBER1 1))))))

(subrelation grasps meetsSpatially)
(domain grasps 1 Animal)
(domain grasps 2 Object)
(documentation grasps "The state of grasping an &%Object.  (&%grasps 
?ANIMAL ?OBJ) means that the &%Animal ?ANIMAL is intentionally holding 
on to the &%Object ?OBJ.")

(subclass Grabbing Touching)
(documentation Grabbing "Any instance of &%Touching which results in 
a situation where the &%agent &%grasps the &%patient of the &%Touching.")

(=>
   (and
      (instance ?GRAB Grabbing)
      (agent ?GRAB ?AGENT)
      (patient ?GRAB ?THING))
   (and
      (holdsDuring (BeginFn (WhenFn ?GRAB)) (not (grasps ?AGENT ?THING)))
      (holdsDuring (EndFn (WhenFn ?GRAB)) (grasps ?AGENT ?THING))))

(subclass Biting Grabbing)
(documentation Biting "Any instance of &%Grabbing where the &%instrument is 
the &%Mouth of the &%agent.")

(=>
   (and
      (instance ?BITE Biting)
      (agent ?BITE ?ANIMAL))
   (exists (?MOUTH)
      (and
         (instance ?MOUTH Mouth)
         (part ?MOUTH ?ANIMAL)
         (instrument ?BITE ?MOUTH))))

(subclass Spitting Impelling)
(documentation Spitting "Any instance of &%Impelling where the &%origin is 
the &%Mouth of the &%agent.")

(=>
   (and
      (instance ?SPIT Spitting)
      (agent ?SPIT ?ANIMAL))
   (exists (?MOUTH)
      (and
         (instance ?MOUTH Mouth)
         (part ?MOUTH ?ANIMAL)
         (origin ?SPIT ?MOUTH))))

(subclass Kicking Impelling)
(documentation Kicking "Any instance of &%Impelling where the &%instrument 
is a &%Foot of the &%agent.")

(=>
   (and
      (instance ?KICK Kicking)
      (agent ?KICK ?ANIMAL))
   (exists (?FOOT)
      (and
         (instance ?FOOT Foot)
         (part ?FOOT ?ANIMAL)
         (instrument ?KICK ?FOOT))))

(subclass Releasing Transfer)
(documentation Grabbing "Any instance of &%Transfer which results in 
a situation where it is not the case that the &%agent &%grasps something 
which he/she &%grasps previously.")

(=>
   (and
      (instance ?RELEASE Releasing)
      (agent ?GRAB ?AGENT)
      (patient ?GRAB ?THING))
   (and
      (holdsDuring (BeginFn (WhenFn ?RELEASE)) (grasps ?AGENT ?THING))
      (holdsDuring (EndFn (WhenFn ?RELEASE)) (not (grasps ?AGENT ?THING)))))

(subclass Mailing Transfer)
(documentation Mailing "Any instance of &%Transfer where a postal system is 
used to move the &%patient, either a letter or a package.")

(subrelation home inhabits)
(domain home 1 Human)
(domain home 2 StationaryArtifact)
(documentation home "The relation between a &%Human and a home of the 
&%Human.")

(instance neighbor BinaryPredicate)
(instance neighbor SymmetricRelation)
(instance neighbor IrreflexiveRelation)
(domain neighbor 1 Human)
(domain neighbor 2 Human)
(documentation neighbor "(&%neighbor ?PERSON1 ?PERSON2) means that ?PERSON1 is 
a neighbor of ?PERSON2, i.e. ?PERSON1 and ?PERSON2 have their &%homes &%Near 
one another.")

(=>
   (neighbor ?PERSON1 ?PERSON2)
   (exists (?HOME1 ?HOME2)
      (and
         (home ?PERSON1 ?HOME1)
         (home ?PERSON2 ?HOME2)
         (not (equal ?HOME1 ?HOME2))
         (orientation ?HOME1 ?HOME2 Near))))

(instance capacity BinaryPredicate)
(domain capacity 1 SelfConnectedObject)
(domain capacity 2 ConstantQuantity)
(relatedInternalConcept capacity humanCapacity)
(documentation capacity "(&%capacity ?OBJ ?QUANTITY) means that ?OBJ can contain 
something that has the &%measure of ?QUANTITY.  This predicate denotes maximal 
capacity, i.e. ?OBJ can hold no more than ?QUANTITY.  Note, however, that this 
does not mean that &%capacity is a &%SingleValuedRelation, since an object may 
have various maximal capacities across different dimensions, e.g. a particular 
box may have a &%capacity of 3 pounds and a &%capacity of 1 liter.")

(=>
   (and
      (measure ?OBJ1 ?MEAS)
      (contains ?OBJ2 ?OBJ1))
   (capacity ?OBJ2 ?MEAS)) 

(instance humanCapacity BinaryPredicate)
(instance humanCapacity SingleValuedRelation)
(domain humanCapacity 1 StationaryArtifact)
(domain humanCapacity 2 PositiveInteger)
(documentation humanCapacity "(&%humanCapacity ?CONSTRUCT ?NUMBER) means that the 
&%StationaryArtifact ?CONSTRUCT, e.g. a &%Building or a &%Room, can hold a maximum 
of ?NUMBER &%Humans without crowding.")

(instance LastFn UnaryFunction)
(domain LastFn 1 List)
(domain LastFn 2 Entity)
(documentation LastFn "(&%LastFn ?LIST) returns the last item in the 
&%List ?LIST.  For example, (&%LastFn (&%ListFn &%Monday &%Tuesday 
&%Wednesday)) would return the value of &%Wednesday.")

(<=>
   (and
      (instance ?LIST List)
      (equal (LastFn ?LIST) ?ITEM))
   (exists (?NUMBER)
      (and
         (equal (ListLengthFn ?LIST) ?NUMBER)
         (equal (ListOrderFn ?LIST ?NUMBER) ?ITEM))))

(instance FirstFn UnaryFunction)
(domain FirstFn 1 List)
(domain FirstFn 2 Entity)
(documentation FirstFn "(&%FirstFn ?LIST) returns the first item in 
the &%List ?LIST.  For example, (&%FirstFn (&%ListFn &%Monday &%Tuesday 
&%Wednesday)) would return the value of &%Monday.")

(=>
   (instance ?LIST List)
   (equal (FirstFn ?LIST) (ListOrderFn ?LIST 1)))

(instance address BinaryPredicate)
(domain address 1 Agent)
(domain address 2 Address)
(documentation address "(&%address ?AGENT ?ADDRESS) means that ?ADDRESS 
is an address or part of an address for the &%Agent ?AGENT.")

(subclass Address RelationalAttribute)
(documentation Address "A &%RelationalAttribute that indicates an address 
where an &%Agent can regularly be contacted.")

(subrelation postalCode uniqueIdentifier)
(domain postalCode 1 PositiveInteger)
(domain postalCode 2 Address)
(documentation postalCode "(&%postalCode ?NUMBER ?ADDRESS) means that the 
the postal code, e.g. zip code, ?NUMBER is part of the address ?ADDRESS.")

(subrelation postalBoxNumber uniqueIdentifier)
(domain postalBoxNumber 1 PositiveInteger)
(domain postalBoxNumber 2 Address)
(documentation postalBoxNumber "(&%postalBoxNumber ?NUMBER ?ADDRESS) means 
that the post office box ?NUMBER is part of the address ?ADDRESS.")

(subrelation cityAddress address)
(domain cityAddress 1 City)
(domain cityAddress 2 Address)
(documentation cityAddress "(&%cityAddress ?CITY ?ADDRESS) means that the 
&%City ?CITY is part of the address ?ADDRESS.")

(subrelation streetAddress address)
(domain streetAddress 1 Roadway)
(domain streetAddress 2 Address)
(documentation streetAddress "(&%streetAddress ?STREET ?ADDRESS) means 
that the &%Roadway ?STREET is part of the address ?ADDRESS.")

(subrelation streetNumber address)
(domain streetNumber 1 Building)
(domain streetNumber 2 Address)
(documentation streetNumber "(&%streetNumber ?BUILDING ?ADDRESS) means 
that the &%Building ?BUILDING is part of the address ?ADDRESS.")

(subrelation unitNumber address)
(domain unitNumber 1 StationaryArtifact)
(domain unitNumber 2 Address)
(documentation unitNumber "(&%unitNumber ?UNIT ?ADDRESS) means that the 
&%StationaryArtifact ?UNIT is part of the address ?ADDRESS.")

(instance StreetAddressFn QuaternaryFunction)
(domain StreetAddressFn 1 StationaryArtifact)
(domain StreetAddressFn 2 Roadway)
(domain StreetAddressFn 3 City)
(domain StreetAddressFn 4 Nation)
(range StreetAddressFn Agent)
(documentation StreetAddressFn "(&%StreetAddressFn ?BUILDING ?ROAD ?CITY 
?COUNTRY) returns the &%Agent, e.g. a family, an organization, a person, 
etc. that resides or conducts business at the corresponding &%address.")

(=>
   (equal (StreetAddressFn ?PLACE ?ROAD ?CITY ?COUNTRY) ?AGENT)
   (address ?AGENT ?PLACE))

(=>
   (equal (StreetAddressFn ?PLACE ?ROAD ?CITY ?COUNTRY) ?AGENT)
   (exists (?BUILDING)
      (and
         (instance ?BUILDING Building)
         (part ?PLACE ?BUILDING))))
 
(subclass ArtStudio StationaryArtifact)
(documentation ArtStudio "A &%Room, suite of &%Rooms or &%Building which is 
devoted to the creation of &%ArtWorks.")

(=>
   (instance ?STUDIO ArtStudio)
   (hasPurpose ?STUDIO (exists (?MAKE)
                          (and
                             (instance ?MAKE Making)
                             (result ?MAKE ?WORK)
                             (instance ?WORK ArtWork)))))

(subclass Mine StationaryArtifact)
(documentation Mine "An construction in the earth from which &%Minerals are removed, 
either in pure form or as part of ores.")

(=>
   (instance ?MINE Mine)
   (hasPurpose ?MINE (exists (?REMOVE ?MINERAL)
                        (and
                           (instance ?REMOVE Removing)
                           (patient ?REMOVE ?MINERAL)
                           (instance ?MINERAL Mineral)
                           (origin ?REMOVE ?MINE)))))

(subclass MobileResidence Artifact)
(disjoint MobileResidence Residence)
(documentation MobileResidence "Anything which serves to house people but 
which changes its location from time to time, e.g. a motorhome, a mobile 
home, a camp, etc.  Note that &%MobileResidence is disjoint from &%Residence, 
because the latter is a subclass of &%StationaryArtifact.")

(subclass Camp MobileResidence)
(documentation Camp "A &%MobileResidence consisting of tents and other temporary 
living quarters that is constructed on an undeveloped &%LandArea.")

(=>
   (instance ?CAMP Camp)
   (exists (?TENT)
      (and
         (instance ?TENT Tent)
         (part ?TENT ?CAMP))))

(subclass Tent MobileResidence)
(documentation Tent "A &%MobileResidence that is made of &%Fabric and poles and 
can be easily assembled and disassembled.")

(=>
   (instance ?TENT Tent)
   (exists (?FABRIC)
      (and
         (instance ?FABRIC Fabric)
         (part ?FABRIC ?TENT))))

(subclass Residence StationaryArtifact)
(partition Residence PermanentResidence TemporaryResidence)
(documentation Residence "A &%Building or part of a &%Building which provides 
some accomodation for sleeping.")

(=>
   (instance ?RESIDENCE Residence)
   (or
      (instance ?RESIDENCE House)
      (exists (?BUILDING)
         (and
            (instance ?BUILDING ResidentialBuilding)
            (part ?RESIDENCE ?BUILDING)))))
         
(subclass PermanentResidence Residence)
(documentation PermanentResidence "A &%Residence where people live, i.e. 
where people have a &%home.")

(=>
   (instance ?RESIDENCE PermanentResidence)
   (exists (?PERSON)
      (home ?PERSON ?HOTEL)))

(subclass ExecutiveResidence PermanentResidence)
(documentation ExecutiveResidence "A &%Residence of a &%chiefOfState, e.g. 
the White House, a state governor's mansion, Buckingham Palace, etc.")

(=>
   (instance ?RESIDENCE ExecutiveResidence)
   (exists (?AREA ?POSITION ?PERSON)
      (and
         (located ?RESIDENCE ?AREA)
         (home ?PERSON ?RESIDENCE)
         (chiefOfState ?AREA ?POSITION ?PERSON)))) 

(subclass TemporaryResidence Residence)
(documentation TemporaryResidence "A &%Residence which is strictly temporary, 
i.e. where no one makes his/her &%home.")

(=>
   (instance ?RESIDENCE TemporaryResidence)
   (not (exists (?PERSON)
      (home ?PERSON ?HOTEL))))

(subclass ResidentialBuilding Building)
(subclass ResidentialBuilding Residence)
(documentation ResidentialBuilding "A &%Building which provides some 
accomodation for sleeping.  Note that this class does not cover just 
permanent residences, e.g. &%Houses and condominium and apartment buildings, 
but also temporary residences, e.g. hotels and dormitories.  
&%ResidentialBuildings are also distinguished from &%CommercialBuildings, 
which are intended to serve an organizational rather than a residential 
function.")

(subclass Hotel ResidentialBuilding)
(subclass Hotel TemporaryResidence)
(subclass Hotel Corporation)
(documentation Hotel "A &%ResidentialBuilding which provides temporary 
accommodations to guests in exchange for money.")

(subclass SingleFamilyResidence PermanentResidence)
(documentation SingleFamilyResidence "A &%PermanentResidence which is 
intended to be the &%home of a single &%SocialUnit.  This class covers 
&%Houses, &%ApartmentUnits, and &%CondominiumUnits.")

(=>
   (instance ?RESIDENCE SingleFamilyResidence)
   (hasPurpose ?RESIDENCE (forall (?AGENT1 ?AGENT2)
                         (=>
                            (and
                               (home ?AGENT1 ?RESIDENCE)
                               (home ?AGENT2 ?RESIDENCE))
                            (exists (?UNIT)
                               (and
                                  (instance ?UNIT SocialUnit)
                                  (member ?AGENT1 ?UNIT)
                                  (member ?AGENT2 ?UNIT)))))))

(subclass ApartmentUnit SingleFamilyResidence)
(documentation ApartmentUnit "A &%SingleFamilyResidence that is not owned 
by any member of the &%SocialUnit that lives there.")

(=>
   (and
      (instance ?UNIT ApartmentUnit)
      (home ?PERSON ?UNIT))
   (not (possesses ?PERSON ?UNIT)))

(=>
   (instance ?UNIT ApartmentUnit)
   (exists (?BUILDING)
      (and
         (instance ?BUILDING ApartmentBuilding)
         (part ?UNIT ?BUILDING))))

(subclass CondominiumUnit SingleFamilyResidence)
(documentation CondominiumUnit "A &%SingleFamilyResidence that may be owned 
by a member of the &%SocialUnit that lives there.")

(=>
   (and
      (instance ?UNIT SingleFamilyResidence)
      (home ?PERSON ?UNIT)
      (possesses ?PERSON ?UNIT)
      (not (instance ?UNIT Building)))
   (instance ?UNIT CondominiumUnit))

(=>
   (instance ?UNIT CondominiumUnit)
   (exists (?BUILDING)
      (and
         (instance ?BUILDING CondominiumBuilding)
         (part ?UNIT ?BUILDING))))

(subclass House ResidentialBuilding)
(subclass House SingleFamilyResidence)
(documentation House "A &%ResidentialBuilding which is intended to be 
inhabited by members of the same &%SocialUnit.  &%Houses are distinguished 
from temporary housing like hotels and multi-family dwellings like condominium 
and apartment buildings.")

(subclass ApartmentBuilding ResidentialBuilding)
(disjoint ApartmentBuilding SingleFamilyResidence)
(documentation ApartmentBuilding "A &%ResidentialBuilding containing 
&%ApartmentUnits.")

(=>
   (instance ?BUILDING ApartmentBuilding)
   (exists (?UNIT1 ?UNIT2)
      (and
         (instance ?UNIT1 ApartmentUnit)
         (instance ?UNIT2 ApartmentUnit)
         (part ?UNIT1 ?BUILDING)
         (part ?UNIT2 ?BUILDING)
         (not (equal ?UNIT1 ?UNIT2)))))

(subclass CondominiumBuilding ResidentialBuilding)
(disjoint CondominiumBuilding SingleFamilyResidence)
(documentation CondominiumBuilding "A &%ResidentialBuilding containing 
&%CondominiumUnits.")

(=>
   (instance ?BUILDING CondominiumBuilding)
   (exists (?UNIT1 ?UNIT2)
      (and
         (instance ?UNIT1 CondominiumUnit)
         (instance ?UNIT2 CondominiumUnit)
         (part ?UNIT1 ?BUILDING)
         (part ?UNIT2 ?BUILDING)
         (not (equal ?UNIT1 ?UNIT2)))))

(subclass AnimalResidence Artifact)
(documentation AnimalResidence "An &%Artifact which is intended to house 
&%Animals and not &%Humans.  Note that an &%AnimalResidence may or may not 
be a &%StationaryArtifact, e.g. a horse stall is stationary while a doghouse 
generally is not.")

(=>
   (instance ?RESIDENCE AnimalResidence)
   (hasPurpose ?RESIDENCE (exists (?ANIMAL)
                             (and
                                (instance ?ANIMAL Animal)
                                (not (instance ?ANIMAL Human))
                                (inhabits ?ANIMAL ?RESIDENCE)))))

(subclass PlaceOfCommerce StationaryArtifact)
(partition PlaceOfCommerce CommercialBuilding CommercialUnit)
(documentation PlaceOfCommerce "A &%Building or part of a &%Building which is 
intended for organizational activities, e.g. retail or wholesale selling, 
manufacturing, office work, etc.")

(=>
   (instance ?OFFICE PlaceOfCommerce)
   (or
      (instance ?OFFICE CommercialBuilding)
      (exists (?BUILDING)
         (and
            (instance ?BUILDING CommercialBuilding)
            (part ?OFFICE ?BUILDING)))))

(subclass CommercialBuilding Building)
(subclass CommercialBuilding PlaceOfCommerce)
(documentation CommercialBuilding "A &%Building which is intended for 
organizational activities, e.g. retail or wholesale selling, manufacturing, 
office work, etc.")

(subclass CommercialUnit PlaceOfCommerce)
(documentation CommercialUnit "A &%Room or suite of &%Rooms intended for 
clerical and/or professional work of a single &%Organization.")

(=>
   (and
      (instance ?UNIT CommercialUnit)
      (instance ?ORG Organization)
      (located ?ORG ?UNIT))
   (not (exists (?OTHER)
      (and
         (instance ?OTHER Organization)
         (located ?OTHER ?UNIT)
         (not (equal ?OTHER ?ORG))))))

(subclass Auditorium Building)
(documentation Auditorium "Any &%Building whose purpose is to hold concerts, 
sports events, plays, etc. before an audience.  This class includes theaters, 
sports stadiums, university auditoriums, etc.")

(=>
   (instance ?AUDITORIUM Auditorium)
   (hasPurpose ?AUDITORIUM (exists (?DEMO)
                              (and
                                 (instance ?DEMO Demonstrating)
                                 (located ?DEMO ?AUDITORIUM)))))

(=>
   (instance ?AUDITORIUM Auditorium)
   (exists (?STAGE)
      (and
         (instance ?STAGE PerformanceStage)
         (part ?STAGE ?AUDITORIUM))))

(subclass AuditoriumSeat Seat)
(documentation Auditorium "A &%Seat within an &%Auditorium from which one 
can observe the &%PerformanceStage.")

(=>
   (instance ?SEAT AuditoriumSeat)
   (exists (?AUDITORIUM)
      (and
         (instance ?AUDITORIUM Auditorium)
         (part ?SEAT ?AUDITORIUM))))

(=>
   (and
      (instance ?SEAT AuditoriumSeat)
      (part ?SEAT ?AUDITORIUM)
      (part ?STAGE ?AUDITORIUM)
      (instance ?AUDITORIUM Auditorium)
      (instance ?STAGE PerformanceStage)
      (located ?PERSON ?SEAT)
      (instance ?PERSON Human)
      (subclass ?SEE Seeing)
      (forall (?INST)
         (=>
            (instance ?INST ?SEE)
            (patient ?INST ?STAGE))))
   (capability ?SEE agent ?PERSON))

(subrelation enjoys inScopeOfInterest)
(domain enjoys 1 CognitiveAgent)
(domainSubclass enjoys 2 IntentionalProcess)
(documentation enjoys "(&%enjoys ?AGENT ?PROCESS) means that the 
&%CognitiveAgent ?AGENT tends to enjoy actions of type ?PROCESS, 
i.e. tends to enjoy being the &%agent or &%experiencer of such 
actions.")

(=>
   (enjoys ?AGENT ?PROCESS)
   (desires ?AGENT (exists (?INSTANCE)
                      (and
                         (instance ?INSTANCE ?PROCESS)
                         (or
                            (agent ?INSTANCE ?AGENT)
                            (experiencer ?INSTANCE ?AGENT))))))

(subrelation expects believes)
(documentation expects "Any belief about the future.  (&%expects 
?AGENT ?BELIEF) means that (&%believes ?AGENT ?BELIEF) and, if 
?BELIEF happens, it will happen in the future, i.e. after the 
expectation.")

(=>
   (and
      (holdsDuring ?TIME1 (expects ?AGENT ?FORMULA))
      (holdsDuring ?TIME2 (true ?FORMULA True)))
   (earlier ?TIME1 ?TIME2))

(subrelation fears expects)
(documentation fears "(&%fears ?AGENT ?FORMULA) means that ?AGENT fears that 
the proposition ?FORMULA will be true, i.e. he/she believes that it will 
come to pass in the future and that it will be undesirable for ?AGENT.")

(=>
   (fears ?AGENT ?FORMULA)
   (not (desires ?AGENT ?FORMULA)))

(subrelation hopes expects)
(documentation hopes "(&%hopes ?AGENT ?FORMULA) means that ?AGENT hopes that 
the proposition ?FORMULA will be true, i.e. he/she believes that it will 
come to pass in the future and that it will be desirable for ?AGENT.")

(=>
   (hopes ?AGENT ?FORMULA)
   (desires ?AGENT ?FORMULA))

(instance doubts PropositionalAttitude)
(domain doubts 1 CognitiveAgent)
(domain doubts 2 Formula)
(documentation doubts "(&%doubts ?AGENT ?FORMULA) means that ?AGENT is unsure 
about the truth of ?FORMULA, in particular ?AGENT does not believe that 
?FORMULA is true.")

(=>
   (doubts ?AGENT ?FORMULA)
   (not (believes ?AGENT ?FORMULA)))

(instance dislikes ObjectAttitude)
(subrelation dislikes inScopeOfInterest)
(disjointRelation dislikes wants)
(relatedInternalConcept dislikes disapproves)
(domain dislikes 1 CognitiveAgent)
(domain dislikes 2 Object)
(documentation dislikes "(&%dislikes ?AGENT ?OBJECT) means that ?AGENT has a 
feeling of antipathy to ?OBJECT, i.e. ?AGENT believes that ?OBJECT will 
thwart one of his/her goals.  Note that there is no implication that what 
is hated by an agent is not already possessed by the agent.")

(=>
   (dislikes ?AGENT ?OBJECT)
   (desires ?AGENT (not (possesses ?AGENT ?OBJECT))))

(instance disapproves PropositionalAttitude)
(subrelation disapproves inScopeOfInterest)
(disjointRelation disapproves desires)
(domain disapproves 1 CognitiveAgent)
(domain disapproves 2 Formula)
(documentation disapproves "(&%disapproves ?AGENT ?FORMULA) means that 
?AGENT has a feeling of antipathy to the state of affairs represented by 
?FORMULA, i.e. ?AGENT believes that the realization of ?FORMULA will 
thwart one of his/her goals.  Note that there is no implication that what 
is disapproved of by an agent is not already true.")

(=>
   (dislikes ?AGENT ?OBJECT)
   (desires ?AGENT (not (possesses ?AGENT ?OBJECT))))

(subrelation lacks needs)
(documentation lacks "(&%lacks ?AGENT ?OBJECT) means that ?AGENT &%needs 
?OBJECT and it is not currently the case that ?AGENT &%possesses ?OBJECT.")

(=>
   (holdsDuring ?TIME (lacks ?AGENT ?OBJECT))
   (holdsDuring ?TIME (not (possesses ?AGENT ?OBJECT))))

(instance Antisemitism BeliefGroup)
(documentation Antisemitism "The &%BeliefGroup that is characterized by a 
dislike for &%Judaism.")

(=>
   (member ?MEMBER Antisemitism)
   (dislikes ?MEMBER Judaism))

(subclass SocialUnit Group)
(documentation SocialUnit "A group of people who all have the same &%home.")

(=>
   (instance ?UNIT SocialUnit)
   (exists (?HOME)
      (=>
         (member ?MEMBER ?UNIT)
         (home ?MEMBER ?HOME))))

(instance ImmediateFamilyFn UnaryFunction)
(domain ImmediateFamilyFn 1 Human)
(range ImmediateFamilyFn FamilyGroup)
(documentation ImmediateFamilyFn "(&%ImmediateFamilyFn ?PERSON) denotes the 
immediate family of ?PERSON, i.e. the &%Group consisting of the &%parents of 
?PERSON and anyone of whom ?PERSON is a &%parent.")

(=>
   (and
      (instance ?PERSON Human)
      (equal (ImmediateFamilyFn ?PERSON) ?FAMILY))
   (forall (?MEMBER)
      (<=>
         (member ?MEMBER ?FAMILY)
         (or
            (parent ?MEMBER ?PERSON)
            (parent ?PERSON ?MEMBER)))))

(subrelation daughter parent)
(domain daughter 1 Woman)
(domain daughter 2 Human)
(documentation daughter "The general relationship of daughterhood.  
(&%daughter ?CHILD ?PARENT) means that ?CHILD is the biological daughter
of ?PARENT.")

(subrelation son parent)
(domain son 1 Man)
(domain son 2 Human)
(documentation son "The general relationship of being a son.  
(&%son ?CHILD ?PARENT) means that ?CHILD is the biological 
son of ?PARENT.")

(subrelation brother sibling)
(instance brother IrreflexiveRelation)
(instance brother TransitiveRelation)
(domain brother Man)
(domain brother Human)
(documentation brother "The general relationship of being a brother.  
(&%brother ?MAN ?PERSON) means that ?MAN is the brother of ?PERSON.")

(subrelation sister sibling)
(instance sister IrreflexiveRelation)
(instance sister TransitiveRelation)
(domain sister Woman)
(domain sister Human)
(documentation sister "The general relationship of being a sister.  
(&%sister ?WOMAN ?PERSON) means that ?WOMAN is the sister of ?PERSON.")

(subrelation ancestor familyRelation)
(instance ancestor TransitiveRelation)
(instance ancestor IrreflexiveRelation)
(domain ancestor 1 Organism)
(domain ancestor 2 Organism)
(documentation ancestor "The transitive closure of the &%parent predicate.  
(&%ancestor ?DESCENDANT ?ANCESTOR) means that ?ANCESTOR is either the 
&%parent of ?DESCENDANT or the &%parent of the &%parent of &%DESCENDANT or 
etc.")

(=>
   (parent ?PARENT ?CHILD)
   (ancestor ?PARENT ?CHILD))

(instance DescendantsFn UnaryFunction)
(domain DescendantsFn 1 Human)
(range DescendantsFn FamilyGroup)
(documentation DescendantsFn "(&%DescendantsFn ?PERSON) denotes all and only 
the descendants of ?PERSON, i.e. the &%Group consisting of ?OFFSPRING who 
satisfy the following formula:  (&%ancestor ?OFFSPRING ?PERSON).")

(=>
   (and
      (instance ?PERSON Human)
      (equal (DescendantsFn ?PERSON) ?DESCENDANTS))
   (forall (?MEMBER)
      (<=>
         (member ?MEMBER ?DESCENDANTS)
         (ancestor ?MEMBER ?PERSON))))

(subclass GroupOfAnimals Group)
(documentation GroupOfAnimals "Any &%Group which contains exclusively 
non-human &%members.")

(=>
   (instance ?GROUP GroupOfAnimals)
   (forall (?MEMBER)
      (=>
         (member ?MEMBER ?GROUP)
         (and
            (instance ?MEMBER Animal)
            (not (instance ?MEMBER Human))))))

(subclass Brood GroupOfAnimals)
(documentation Brood "A &%GroupOfAnimals that are all born at the same time 
and to the same parents.")

(=>
   (instance ?BROOD Brood)
   (forall (?MEMBER1 ?MEMBER2)
      (=>
         (and
            (member ?MEMBER1 ?BROOD)
            (member ?MEMBER2 ?BROOD))
         (sibling ?MEMBER1 ?MEMBER2))))

(=>
   (instance ?BROOD Brood)
   (exists (?TIME)
      (forall (?MEMBER)
         (=>
            (member ?MEMBER ?BROOD)
            (exists (?BIRTH)
               (and
                  (instance ?BIRTH Birth)
                  (experiencer ?BIRTH ?MEMBER)
                  (equal ?TIME (WhenFn ?BIRTH))))))))
      

(subclass GroupOfPeople Group)
(documentation GroupOfPeople "Any &%Group whose &%members are 
exclusively &%Humans.")

(=>
   (and
      (instance ?GROUP GroupOfPeople)
      (member ?MEMBER ?GROUP))
   (instance ?MEMBER Human))

(subclass SportsTeam GroupOfPeople)
(documentation SportsTeam "A &%GroupOfPeople who habitually play a &%Sport 
together, either as an occupation or as a leisure activity.")

(=>
   (instance ?TEAM SportsTeam)
   (exists (?SPORT)
      (and
         (subclass ?SPORT Sport)
         (capability ?SPORT agent ?TEAM))))

(subclass Argument Proposition)
(documentation Argument "Any proposition which has the form of a deductive 
or inductive argument, i.e. a set of premises which, it is claimed, imply 
a conclusion.") 

(=>
   (instance ?REASON Reasoning)
   (exists (?ARGUMENT)
      (and
         (instance ?ARGUMENT Argument)
         (realization ?REASON ?ARGUMENT))))

(=>
   (instance ?ARGUMENT Argument)
   (exists (?PREMISES ?CONCLUSION)
      (and
         (equal (PremisesFn ?ARGUMENT) ?PREMISES)
         (conclusion ?CONCLUSION ?ARGUMENT))))

(subclass DeductiveArgument Argument)
(partition DeductiveArgument ValidDeductiveArgument InvalidDeductiveArgument)
(documentation DeductiveArgument "An &%Argument which has the form of a 
deduction, i.e. it is claimed that the set of &%premises &%entails the 
&%conclusion.")

(subclass ValidDeductiveArgument DeductiveArgument)
(documentation ValidDeductiveArgument "A &%DeductiveArgument which is 
valid, i.e. the set of &%premises in fact &%entails the &%conclusion.")

(=>
   (and
      (instance ?ARGUMENT ValidDeductiveArgument)
      (equal ?PREMISES (PremisesFn ?ARGUMENT))
      (conclusion ?CONCLUSION ?ARGUMENT))
   (exists (?FORMULA1 ?FORMULA2)
      (and
         (containsInformation ?FORMULA1 ?PREMISES)
         (containsInformation ?FORMULA2 ?CONCLUSION)
         (entails ?PREMISES ?CONCLUSION))))

(subclass InvalidDeductiveArgument DeductiveArgument)
(documentation InvalidDeductiveArgument "&%DeductiveArguments that are not 
&%ValidDeductiveArguments, i.e. it is not the case that the set of &%premises 
in fact &%entails the &%conclusion.")
     
(subclass Explanation DeductiveArgument)
(documentation Explanation "An &%Argument where the conclusion is an 
observed fact and the premises are other facts which collectively imply 
the conclusion.  Note that this is the they hypothetico-deductive model 
of explanation.")

(instance premise BinaryPredicate)
(instance premise TotalValuedRelation)
(domain premise 1 Argument)
(domain premise 2 Proposition)
(documentation premise "(&%premise ?ARGUMENT ?PROPOSITION) means that the 
&%Proposition ?PROPOSITION is an explicit assumption of the &%Argument 
?ARGUMENT.")

(instance PremisesFn UnaryFunction)
(domain PremisesFn Argument)
(range PremisesFn Proposition)
(documentation PremisesFn "(&%PremisesFn ?ARGUMENT) returns the complete 
set of &%premises of the &%Argument ?ARGUMENT.")

(=>
   (and
      (instance ?ARGUMENT Argument)
      (equal ?PREMISES (PremisesFn ?ARGUMENT)))
   (<=>
      (subProposition ?PROPOSITION ?PREMISES)
      (premise ?ARGUMENT ?PROPOSITION)))

(instance conclusion BinaryPredicate)
(instance conclusion SingleValuedRelation)
(instance conclusion TotalValuedRelation)
(domain conclusion 1 Argument)
(domain conclusion 2 Proposition)
(documentation conclusion "(&%conclusion ?ARGUMENT ?PROPOSITION) means that
the &%Proposition ?PROPOSITION is the conclusion explicitly drawn from the 
&%Argument ?ARGUMENT.  Note that it may or may not be the case that ?ARGUMENT 
&%entails ?PROPOSITION.")

(instance consistent BinaryPredicate)
(instance consistent SymmetricRelation)
(domain consistent 1 Proposition)
(domain consistent 2 Proposition)
(documentation consistent "(&%consistent ?PROP1 ?PROP2) means that the two 
&%Propositions ?PROP1 and ?PROP2 are consistent with one another, i.e. it 
is possible for both of them to be true at the same time.")

(subrelation groupMember member)
(domain groupMember 1 Human)
(domain groupMember 2 GroupOfPeople)
(documentation groupMember "A &%subrelation of &%member, &%groupMember 
is used to relate a &%Human to a &%GroupOfPeople of which he/she is a 
&%member.")

(subclass CareOrganization Organization)
(partition CareOrganization Hospital MedicalClinic)
(documentation CareOrganization "Any &%Organization whose purpose is to 
provide medical care for for &%Humans who reside there, either permanently 
or temporarily.")  

(=>
   (instance ?ORG CareOrganization)
   (hasPurpose ?ORG (exists (?PATIENT) (medicalPatient ?PATIENT ?ORG))))

(subclass Hospital CareOrganization)
(subclass Hospital TemporaryResidence)
(documentation Hospital "A &%CareOrganization where patients reside for a 
short period of time while they undergo treatment for a disease or disorder.")

(subclass MedicalClinic CareOrganization)
(subclass MedicalClinic (ComplementFn Residence))
(documentation MedicalClinic "A &%CareOrganization which provides medical care 
on an out-patient basis only, i.e. there are no rooms where patients may take 
up residence for a period of time while they receive care.")

(subclass Proprietorship Corporation)
(documentation Proprietorship "A &%Corporation that is owned by a single person.")

(=>
   (instance ?CORP Proprietorship)
   (exists (?HUMAN)
      (and
         (instance ?HUMAN Human)
         (possesses ?HUMAN ?CORP)
         (forall (?PERSON)
            (=>
               (possesses ?PERSON ?CORP)
               (equal ?PERSON ?HUMAN))))))

(subclass Restaurant Corporation)
(documentation Restaurant "Any &%Corporation whose services include selling 
&%Food to customers which is intended to be eaten on the premises.")

(=>
   (instance ?COMPANY Restaurant)
   (exists (?SERVICE ?FOOD)
      (and
         (instance ?SERVICE CommercialService)
         (agent ?SERVICE ?COMPANY)
         (instance ?SERVICE Selling)
         (patient ?SERVICE ?FOOD)
         (instance ?FOOD Food))))

(subclass Cafeteria Restaurant)
(documentation Cafeteria "Any &%Restaurant which does not offer table service.  
&%Food is selected and purchased at a central counter.")

(subclass Tavern Restaurant)
(documentation Tavern "A &%Restaurant whose primary service is selling 
&%AlcoholicBeverages to customers.")

(=>
   (instance ?COMPANY Tavern)
   (exists (?SERVICE ?BEVERAGE)
      (and
         (instance ?SERVICE CommercialService)
         (agent ?SERVICE ?COMPANY)
         (instance ?SERVICE Selling)
         (patient ?SERVICE ?BEVERAGE)
         (instance ?BEVERAGE Beverage))))

(subclass TransportationCompany Corporation)
(documentation TransportationCompany "Any &%Corporation whose services 
include &%Transportation, e.g. a &%RailroadCompany, an airline, a cruise 
ship line, etc.")

(=>
   (instance ?COMPANY TransportationCompany)
   (exists (?SERVICE)
      (and
         (instance ?SERVICE CommercialService)
         (agent ?SERVICE ?COMPANY)
         (instance ?SERVICE Transportation))))

(subclass RailroadCompany TransportationCompany)
(documentation RailroadCompany "Any &%TransportationCompany whose services 
include &%Transportation by &%Train.")

(=>
   (instance ?COMPANY RailroadCompany)
   (exists (?SERVICE)
      (and
         (instance ?SERVICE CommercialService)
         (agent ?SERVICE ?COMPANY)
         (instance ?SERVICE Transportation)
         (instrument ?SERVICE ?TRAIN)
         (instance ?TRAIN Train))))

(subclass Manufacturer Corporation)
(documentation Manufacturer "Any &%Corporation which manufactures &%Products.")

(=>
   (instance ?MANUFACTURER Manufacturer)
   (exists (?PLANT)
      (and
         (instance ?PLANT IndustrialPlant)
         (possesses ?MANUFACTURER ?PLANT))))
                       
(subclass MercantileOrganization Corporation)
(documentation MercantileOrganization "Any &%Corporation which sells 
physical goods to customers for a profit.")

(=>
   (instance ?ORG MercantileOrganization)
   (hasPurpose (exists (?SELL)
                  (and
                     (instance ?SELL Selling)
                     (instance ?SELL CommercialService)
                     (agent ?SELL ?ORG)))))

(subclass WholesaleStore MercantileOrganization)
(documentation WholesaleStore "A &%MercantileOrganization that sells its 
goods exclusively to &%Corporations.")

(=>
   (and
      (instance ?STORE WholesaleStore)
      (customer ?CUSTOMER ?STORE))
   (instance ?CUSTOMER Corporation))

(subclass RetailStore MercantileOrganization)
(disjoint RetailStore WholesaleStore)
(documentation RetailStore "The complement of &%WholesaleStore, i.e. 
&%MercantileOrganizations that sell their goods to the general public.")

(subclass GroceryStore RetailStore)
(documentation GroceryStore "A &%RetailStore that sells &%Food, and perhaps 
other items as well.")

(=>
   (instance ?STORE GroceryStore)
   (exists (?SELL)
      (and
         (instance ?SELL Selling)
         (agent ?SELL ?STORE)
         (patient ?SELL ?FOOD)
         (instance ?FOOD Food))))

(subclass OfferingForSale Offering)
(documentation OfferingForSale "&%Offering to sell something to someone.")

(=>
   (and
      (instance ?SALE OfferingForSale)
      (agent ?SALE ?AGENT))
   (patient ?SALE (exists (?SELL ?OBJ)
                     (and
                        (instance ?SELL Selling)
                        (patient ?SELL ?OBJ)
                        (agent ?SELL ?AGENT)))))

(subclass BargainSale Offering)
(documentation Sale "&%Offering to sell something to someone at a 
reduced price.")

(=>
   (and
      (instance ?SALE BargainSale)
      (patient ?SALE ?OBJ)
      (instance ?OBJ Object))
   (exists (?PRICE1 ?PRICE2 ?AGENT1 ?AGENT2)
      (and
         (holdsDuring (ImmediatePastFn (WhenFn ?SALE)) (price ?OBJ ?PRICE1 ?AGENT1))
         (holdsDuring (WhenFn ?SALE) (price ?OBJ ?PRICE2 ?AGENT2))
         (lessThan ?PRICE2 ?PRICE1))))

(subclass HolyBible Book)
(documentation HolyBible "Any instance of the collection of writings which is 
regarded as scripture by those who embrace &%Christianity.")

(subclass MissionOrganization ReligiousOrganization)
(documentation MissionOrganization "The class of &%ReligiousOrganizations 
that send members to foreign countries with the aim of coverting citizens 
of those countries to the beliefs of the &%ReligiousOrganization.")

(subclass ReligiousBuilding Building)
(documentation ReligiousBuilding "A &%Building which is intended to be 
used for religious worship.  This class covers churches, temples, 
religious shrines, etc.")

(=>
   (instance ?BUILDING ReligiousBuilding)
   (hasPurpose ?BUILDING (exists (?SERVICE)
                            (and
                               (instance ?SERVICE ReligiousService)
                               (located ?SERVICE ?BUILDING)))))

(subclass Steeple StationaryArtifact)
(documentation Steeple "A component of a &%ReligiousBuilding that is tall 
and narrow and symbolizes the connection between humanity and a deity.")

(=>
   (instance ?STEEPLE Steeple)
   (exists (?BUILDING)
      (and
         (instance ?BUILDING Building)
         (part ?STEEPLE ?BUILDING))))

(subclass ReligiousService ReligiousProcess)
(subclass ReligiousService Demonstrating)
(documentation ReligiousService "A formal process of public worship which is 
typically carried out in a church, temple or other sanctified building and 
which typically accords with a prescribed set of rules.")

(subclass ChristianService ReligiousService)
(documentation ChristianService "Any &%ReligiousService that is conducted by 
&%members of &%Christianity.")

(=>
   (and
      (instance ?SERVICE ChristianService)
      (agent ?SERVICE ?PERSON)
      (instance ?PERSON Human))
   (member ?PERSON Christianity))

(subclass Praying ReligiousProcess)
(subclass Praying Requesting)
(documentation Praying "A formal or informal process of private worship which 
may or may not be carried out in a &%ReligiousBuilding.")

(subclass PartyPlatform FactualText)
(documentation PartyPlatform "A &%Text which is authored by a &%PoliticalParty 
and which contains the core goals and principles of the &%PoliticalParty for a 
particular year or election cycle.")

(=>
   (and
      (subclass ?PLATFORM PartyPlatform)
      (authors ?PARTY ?PLATFORM)
      (instance ?PARTY Organization))
   (instance ?PARTY PoliticalParty))

(=>
   (and
      (subclass ?PLATFORM PartyPlatform)
      (authors ?PARTY ?PLATFORM)
      (instance ?PARTY PoliticalParty)
      (instance ?INST ?PLATFORM)
      (containsInformation ?INST ?PROP))
   (believes ?PARTY ?PROP))

(instance ResidentFn UnaryFunction)
(domain ResidentFn 1 GeopoliticalArea)
(range ResidentFn GroupOfPeople)
(documentation ResidentFn "(&%ResidentFn ?AREA) denotes the 
&%GroupOfPeople who have their &%home in ?AREA.")

(=>
   (member ?PERSON (ResidentFn ?AREA))
   (home ?PERSON ?AREA))

(subrelation CitizenryFn ResidentFn)
(domain CitizenryFn 1 GeopoliticalArea)
(range CitizenryFn GroupOfPeople)
(documentation CitizenryFn "(&%CitizenryFn ?AREA) denotes the 
&%GroupOfPeople who are legal and permanent residents of the 
&%GeopoliticalArea ?AREA.")

(=>
   (and
      (instance ?AREA GeopoliticalArea)
      (equal ?CITIZENRY (CitizenryFn ?AREA))
      (equal ?POPULATION (ResidentFn ?AREA)))
   (greaterThanOrEqualTo ?POPULATION ?CITIZENRY))

(instance PerCapitaFn BinaryFunction)
(domain PerCapitaFn 1 Quantity)
(domain PerCapitaFn 2 GeopoliticalArea)
(range PerCapitaFn Quantity)
(documentation PerCapitaFn "(&%PerCapitaFn ?AREA ?QUANTITY) denotes the 
average amount of ?QUANTITY possessed by a resident of &%GeopoliticalArea 
?AREA.")

(=>
   (equal (PerCapitaFn ?AREA ?QUANTITY1) ?QUANTITY2)
   (exists (?POPULATION)
      (and
         (equal ?POPULATION (CardinalityFn (ResidentFn ?AREA)))
         (equal ?QUANTITY2 (DivisionFn ?QUANTITY1 ?POPULATION)))))  

(subclass CityDistrict GeopoliticalArea)
(documentation CityDistrict "Any &%geopoliticalSubdivision of a &%City.")

(<=>
   (instance ?DISTRICT CityDistrict)
   (exists (?CITY)
      (and
         (instance ?CITY City)
         (geopoliticalSubdivision ?DISTRICT ?CITY))))

(subclass Downtown CityDistrict)
(documentation Downtown "The commercial center of a &%City.  The part of the 
&%City that contains more shops and offices than any other part.")

(subclass Park LandArea)
(documentation Park "A publicly owned &%LandArea which is intended to be used 
for recreation and/or exercise.")

(=>
   (instance ?PARK Park)
   (exists (?GOV)
      (and
         (instance ?GOV Government)
         (possesses ?GOV ?PARK))))

(=>
   (instance ?PARK Park)
   (hasPurpose ?PARK (exists (?REC)
                        (and
                           (instance ?REC RecreationOrExercise)
                           (located ?REC ?PARK)))))

(instance RedRiver River)
(part RedRiver UnitedStates)
(documentation RedRiver "A tributary of the Mississippi River.")

(subclass County GeopoliticalArea)
(subclass County LandArea)
(documentation County "A &%GeopoliticalArea that is a subdivision of a 
&%StateOrProvince.")

(=>
   (instance ?COUNTY County)
   (exists (?STATE)
      (and
         (instance ?STATE StateOrProvince)
         (part ?COUNTY ?STATE))))

(instance Mexico Nation)
(meetsSpatially Mexico UnitedStates)
(documentation Mexico "A large Spanish-speaking country that borders on 
the &%UnitedStates.")

(instance Laos Nation)
(documentation Laos "A &%Nation in southeastern Asia.")

(instance VirginIslands Collection)
(documentation VirginIslands "A &%Collection of &%Islands in the 
West Indies that are dependencies of the &%UnitedStates and the 
&%UnitedKingdomOfGreatBritainAndNorthernIreland.")

(=>
   (member ?ISLAND VirginIslands)
   (instance ?ISLAND Island))

(instance Guam Island)
(documentation Guam "An &%Island in the &%PacificOcean that is a 
protectorate of the &%UnitedStates.")

(instance Cuba Nation)
(instance Cuba Island)
(documentation Cuba "An &%Island &%Nation in the Carribbean.")

(instance UnitedStates Nation)
(documentation UnitedStates "The North American republic of 50 states.")

(subclass AmericanState StateOrProvince)
(documentation AmericanState "The class of states that make up the 
&%UnitedStates.")

(=>
   (instance ?STATE AmericanState)
   (part ?STATE UnitedStates))

(instance Alaska AmericanState)
(documentation Alaska "The largest state in the &%UnitedStates.")

(=>
   (and
      (subclass ?UNIT AreaMeasure)
      (measure Alaska (MeasureFn ?NUMBER1 ?UNIT))
      (measure ?STATE (MeasureFn ?NUMBER2 ?UNIT))
      (instance ?STATE AmericanState)
      (not (equal Alaska ?STATE)))
   (lessThan ?NUMBER2 ?NUMBER1))

(instance California AmericanState)
(documentation California "The &%AmericanState with the highest population.")

(=>
   (and
      (instance ?STATE AmericanState)
      (not (equal ?STATE California)))
   (greaterThan (ResidentFn California) (ResidentFn ?STATE)))

(instance NewYorkState AmericanState)
(documentation NewYorkState "A populous state in the northeastern &%UnitedStates.") 

(instance Pennsylvania AmericanState)
(documentation Pennsylvania "A mid-Atlantic &%AmericanState.  Its two major cities 
are Philadelphia and Pittsburgh.")

(instance Texas AmericanState)
(documentation Texas "The second largest &%AmericanState, located in the southwest 
on the Gulf of Mexico.")

(instance Virginia AmericanState)
(meetsSpatially Virginia WashingtonDC)
(documentation Virginia "A state in the southeastern &%UnitedStates 
that borders on &%WashingtonDC.")

(instance Georgia AmericanState)
(documentation Georgia "A state in the southeastern &%UnitedStates.")

(instance NewEngland GeographicArea)
(part NewEngland UnitedStates)
(documentation NewEngland "A &%GeographicArea in the &%UnitedStates that is 
made up of the states of Maine, New Hampshire, Vermont, Massachusetts, Rhode Island, 
and Connecticut.")

(subclass AmericanCity City)
(documentation AmericanCity "The class of cities that are in the 
&%UnitedStates.")

(=>
   (instance ?CITY AmericanCity)
   (part ?CITY UnitedStates))

(instance NewYorkCity AmericanCity)
(part NewYorkCity NewYorkState)
(documentation NewYorkCity "The largest city in the &%UnitedStates.  
A worldwide center of finance and culture, it is comprised of five boroughs.")

(=>
   (instance ?CITY AmericanCity)
   (lessThanOrEqualTo (CardinalityFn (ResidentFn ?CITY)) (CardinalityFn (ResidentFn NewYorkCity))))

(instance WashingtonDC AmericanCity)
(documentation WashingtonDC "The capital city of the &%UnitedStates.")

(instance Chicago AmericanCity)
(documentation Chicago "Often referred to as the second city, Chicago is 
the largest city in the midwestern United States.")

(instance Dallas AmericanCity)
(documentation Dallas "A large &%City in northeastern Texas.")

(instance KansasCityMissouri AmericanCity)
(documentation KansasCityMissouri "A large &%City at the western edge of Missouri.")

(instance Boston AmericanCity)
(documentation Boston "The largest &%City in Massachusetts.")

(instance LosAngeles AmericanCity)
(part LosAngeles California)
(documentation LosAngeles "The largest &%City in &%California.")

(=>
   (and
      (instance ?CITY AmericanCity)
      (part ?CITY California)
      (not (equal ?CITY LosAngeles)))
   (greaterThan (ResidentFn LosAngeles) (ResidentFn ?CITY)))

(instance SanFrancisco AmericanCity)
(part SanFrancisco California)
(documentation SanFrancisco "A large &%City in &%California, located on the 
San Francisco Bay.")

(instance ManchesterNewHampshire AmericanCity)
(documentation ManchesterNewHampshire "The largest &%City in New Hampshire.")

(instance PuertoRico Island)
(part PuertoRico UnitedStates)
(documentation PuertoRico "An autonomous part of the &%UnitedStates.")

(instance Europe Continent)
(documentation Europe "The second smallest &%Continent.")

(subclass EuropeanCity City)
(documentation EuropeanCity "The class of cities that are in &%Europe.")

(=>
   (instance ?CITY EuropeanCity)
   (part ?CITY Europe))

(instance Paris EuropeanCity)
(part Paris France)
(documentation Paris "The capital of &%France and the largest &%City of the country.")

(=>
   (and
      (instance ?CITY City)
      (part ?CITY France))
   (lessThanOrEqualTo (CardinalityFn (ResidentFn ?CITY)) (CardinalityFn (ResidentFn Paris))))

(instance France Nation)
(documentation France "A large, industrialized European &%Nation.")

(instance UnitedKingdomOfGreatBritainAndNorthernIreland Nation)
(documentation UnitedKingdomOfGreatBritainAndNorthernIreland "The &%Nation comprising 
England, Scotland, Wales, and Northern Ireland.")

(instance London City)
(part London UnitedKingdomOfGreatBritainAndNorthernIreland)
(documentation London "The capital city and the largest city of the
&%UnitedKingdomOfGreatBritainAndNorthernIreland.")

(instance Ireland Nation)
(documentation Ireland "An independent &%Nation that borders on the Irish Sea.")

(instance SovietUnion Nation)
(documentation SovietUnion "The former communist nation of the Soviet Union.")

(instance Russia Nation)
(documentation Russia "A &%Nation which is currently independent, but which 
was once part of the &%SovietUnion.")

(instance Greece Nation)
(part Greece Europe)
(documentation Greece "A small Balkan &%Nation that is known primarily for the 
literature, philosophy, and art produced there during the ancient period.")

(instance Germany Nation) 
(part Germany Europe)
(documentation Germany "A large European &%Nation.")

(instance Japan Nation)
(instance Japan Island)
(documentation Japan "A large industrialized Asian &%Nation.")

(instance UnitedStatesDepartmentOfState GovernmentOrganization)
(subOrganization UnitedStatesDepartmentOfState (GovernmentFn UnitedStates))
(documentation UnitedStatesDepartmentOfState "The &%subOrganization of the US 
government that sets and enforces foreign policy.")

(instance UnitedStatesDepartmentOfInterior GovernmentOrganization)
(subOrganization UnitedStatesDepartmentOfInterior (GovernmentFn UnitedStates))
(documentation UnitedStatesDepartmentOfInterior "Manages and preserves public lands 
and natural resources in the &%UnitedStates.")

(subclass GovernmentSecretary Position)
(documentation GovernmentSecretary "The class of &%Positions where the position holder 
is head of an adminstrative department of &%Government.")

(instance SecretaryOfTheInterior GovernmentSecretary)
(documentation SecretaryOfTheInterior "The head of the &%UnitedStatesDepartmentOfInterior.")

(=>
   (occupiesPosition ?PERSON SecretaryOfTheInterior UnitedStatesDepartmentOfInterior)
   (leader UnitedStatesDepartmentOfInterior ?PERSON))

(instance SecretaryOfTheTreasury GovernmentSecretary)
(documentation SecretaryOfTheTreasury "The head of the United States Treasury Department.")

(subclass PoliceOrganization GovernmentOrganization)
(documentation PoliceOrganization "Any &%GovernmentOrganization  
that is charged with domestic enforcement of the laws of the &%Government.")

(subclass StateGovernment Government)
(documentation StateGovernment "The class of &%Governments whose 
jurisdictions are &%StateOrProvinces.")

(=>
   (instance ?GOVERNMENT StateGovernment)
   (exists (?STATE)
      (and
         (instance ?STATE StateOrProvince)
         (equal (GovernmentFn ?STATE) ?GOVERNMENT))))

(instance UnitedStatesCongress LegislativeOrganization)
(subOrganization UnitedStatesCongress (GovernmentFn UnitedStates))
(documentation UnitedStatesCongress "The legislative branch of the government 
of the &%UnitedStates.")

(subclass MilitaryOrganization GovernmentOrganization)
(documentation MilitaryOrganization "Any heavily armed &%Organization 
that is part of a &%Government and that is charged with representing the 
&%Government in international conflicts.") 

(subclass MilitaryService MilitaryOrganization)
(documentation MilitaryService "A branch of the armed forces of a &%Nation.  
For example, there are five military services in the United States, the army, 
the navy, the air force, the marines, and the coast guard.")

(subclass Army MilitaryService)
(documentation Army "&%MilitaryServices that are land forces.")

(subclass MilitaryUnit MilitaryOrganization)
(documentation MilitaryUnit "Any &%MilitaryOrganization that can be dispatched 
to an area of operations.")

(subclass InfantryUnit MilitaryUnit)
(documentation InfantryUnit "A &%MilitaryUnit composed primarily of &%Soldiers 
who fight on foot, i.e. without the use of heavy artillery.")

(subclass MilitaryDivision MilitaryUnit)
(documentation MilitaryDivision "Any &%MilitaryUnit with the rank of 
division.")

(subclass MilitaryBrigade MilitaryUnit)
(documentation MilitaryBrigade "Any &%MilitaryUnit with the rank of 
brigade.")

(subclass MilitaryCompany MilitaryUnit)
(documentation MilitaryCompany "Any &%MilitaryUnit with the rank of 
company.")

(subclass MilitaryRegiment MilitaryUnit)
(documentation MilitaryRegiment "Any &%MilitaryUnit with the rank of 
regiment.")

(subclass Commission Organization)
(documentation Commission "A small, temporary &%Organization whose purpose 
is to investigate some issue.")

(=>
   (instance ?COMMISSION Commission)
   (hasPurpose ?COMMISSION (exists (?INVESTIGATE ?ISSUE)
                              (and
                                 (instance ?INVESTIGATE Investigating)
                                 (patient ?INVESTIGATE ?ISSUE)
                                 (agent ?INVESTIGATE ?COMMISSION)))))

(subclass ServiceOrganization Organization)
(documentation ServiceOrganization "An &%Organization that performs 
a public service and is regulated by the &%Government.")

(=>
   (instance ?ORG ServiceOrganization)
   (exists (?PROC ?GOV)
      (and
         (instance ?PROC RegulatoryProcess)
         (patient ?PROC ?ORG)
         (agent ?PROC ?GOV)
         (instance ?GOV Government)))) 

(subclass OrganizationalBoard Organization)
(documentation OrganizationalBoard "Part of an &%Organization that 
is responsible for managing the &%Organization.")

(=>
   (instance ?BOARD OrganizationalBoard)
   (exists (?ORG ?MANAGE)
      (and
         (subOrganization ?BOARD ?ORG)
         (instance ?MANAGE Managing)
         (agent ?MANAGE ?BOARD)
         (patient ?MANAGE ?ORG))))

(subclass SecurityUnit Organization)
(documentation SecurityUnit "The &%Organization that is charged with 
ensuring the security of members of the overall &%Organization and the 
property of the &%Organization.")

(=>
   (and
      (instance ?UNIT SecurityUnit)
      (subOrganization (OrganizationFn ?UNIT) ?ORG))
   (holdsObligation (exists (?MAINTAIN)
                       (and
                          (instance ?MAINTAIN Maintaining)
                          (agent ?MAINTAIN ?UNIT)
                          (patient ?MAINTAIN ?ORG)))))

(subclass UnionOrganization Organization)
(documentation UnionOrganization "An &%Organization comprised of workers from 
the same &%Corporation or &%Industry.  The purpose of the &%UnionOrganization 
is to strengthen its representation in bargaining with the &%Corporation or 
&%Industry.")

(=>
   (instance ?ORG UnionOrganization)
   (exists (?COLL)
      (=>
         (member ?MEMBER ?ORG)
         (or
            (and
               (instance ?COLL Corporation)
               (employs ?COLL ?MEMBER)) 
            (exists (?CORP)
               (and
                  (instance ?COLL Industry)
                  (member ?CORP ?COLL)
                  (employs ?CORP ?MEMBER)))))))

(subclass OrganicCompound CompoundSubstance)
(documentation OrganicCompound "Any &%CompoundSubstance that has a &%Carbon 
base.")

(=>
   (and
      (instance ?COMPOUND OrganicCompound)
      (instance ?COMPOUND Molecule))
   (exists (?CARBON)
      (and
         (instance ?CARBON Carbon)
         (part ?CARBON ?COMPOUND))))

(subclass Alcohol OrganicCompound)
(documentation Alcohol "&%OrganicCompounds that are produced from hydrocarbons 
by distillation.")

(subclass SodiumChloride CompoundSubstance)
(documentation SodiumChloride "The &%CompoundSubstance formed from &%Sodium 
and &%Chlorine.")

(=>
   (instance ?SALT SodiumChloride)
   (exists (?SYNTHESIS ?SODIUM ?CHLORINE)
      (and
         (instance ?SYNTHESIS ChemicalSynthesis)
         (resource ?SYNTHESIS ?SODIUM)
         (instance ?SODIUM Sodium)
         (resource ?SYNTHESIS ?CHLORINE)
         (instance ?CHLORINE Chlorine)
         (result ?SYNTHESIS ?SALT))))

(subclass SalineSolution Solution)
(documentation SalineSolution "A &%Solution consisting of &%SodiumChloride and 
&%Water.")

(=>
   (and
      (instance ?SOLUTION SalineSolution)
      (part ?PART ?SOLUTION))
   (or
      (instance ?PART SodiumChloride)
      (instance ?PART Water)))

(=>
   (instance ?WATER Water)
   (exists (?SYNTHESIS ?HYDROGEN ?OXYGEN)
      (and
         (instance ?SYNTHESIS ChemicalSynthesis)
         (resource ?SYNTHESIS ?HYDROGEN)
         (instance ?HYDROGEN Hydrogen)
         (resource ?SYNTHESIS ?OXYGEN)
         (instance ?OXYGEN Oxygen)
         (result ?SYNTHESIS ?WATER))))

(subclass Oil Solution)
(documentation Oil "A greasy, viscous &%Solution that cannot be mixed with &%Water.  
Note that this general class covers petroleum oil, vegetable oil, animal fat, etc.")

(=>
   (instance ?OIL Oil)
   (not (exists (?MIX ?WATER)
      (and
         (instance ?MIX Mixture)
         (part ?WATER ?MIX)
         (instance ?WATER Water)
         (part ?OIL ?MIX)))))

(subclass Detergent Mixture)
(documentation Detergent "Any &%Mixture whose purpose is to remove &%Soil 
and/or other undesirable substances from the surfaces of objects.")

(=>
   (instance ?DETERGENT Detergent)
   (hasPurpose ?DETERGENT (exists (?REMOVE ?SUBSTANCE ?SURFACE ?OBJECT)
                             (and
                                (instance ?REMOVE Removing)
                                (instance ?SUBSTANCE Substance)
                                (patient ?REMOVE ?SUBSTANCE)
                                (origin ?REMOVE ?SURFACE)
                                (surface ?SURFACE ?OBJECT)))))

(subclass Glue Mixture)
(documentation Glue "Any &%Mixture whose purpose is to be used as the &%instrument 
of &%Attaching one thing to another.")

(=>
   (instance ?GLUE Glue)
   (hasPurpose ?GLUE (exists (?ATTACH)
                            (and
                               (instance ?ATTACH Attaching)
                               (instrument ?ATTACH ?GLUE)))))

(subclass Glass Mixture)
(documentation Glass "A transparent or translucent &%Mixture of silicates.")

(subclass MetallicAlloy Mixture)
(documentation MetallicAlloy "A &%Mixture of two or more &%Metals, and possibly 
nonmetallic elements as well.  For example, steel is an alloy containing iron 
and manganese.")

(=>
   (instance ?ALLOY MetallicAlloy)
   (exists (?METAL1 ?METAL2)
      (and
         (instance ?METAL1 Metal)
         (instance ?METAL2 Metal)
         (not (equal ?METAL1 ?METAL2))
         (part ?METAL1 ?ALLOY)
         (part ?METAL2 ?ALLOY))))

(subclass Steel MetallicAlloy)
(documentation Steel "A &%MetallicAlloy made from &%Iron and other elements.")

(=>
   (instance ?STEEL Steel)
   (exists (?IRON)
      (and
         (instance ?IRON Iron)
         (part ?IRON ?STEEL))))

(subclass Brass MetallicAlloy)
(documentation Brass "A &%MetallicAlloy made from &%Copper and &%Zinc.")

(=>
   (instance ?BRASS Brass)
   (exists (?COPPER ?ZINC)
      (and
         (instance ?COPPER Copper)
         (instance ?ZINC Zinc)
         (part ?COPPER ?BRASS)
         (part ?ZINC ?BRASS))))

(subclass Powder Substance)
(documentation Powder "Any &%Solid &%Substance which consists of loose, 
identical, and very small particles.")

(=>
   (instance ?POWDER Powder)
   (attribute ?POWDER Solid))

(subclass Fallout Powder)
(documentation Fallout "Radioactive powder that is typically dispersed by 
the explosion of a nuclear weapon.")

(=>
   (instance ?POWDER Fallout)
   (capability RadiatingNuclear instrument ?POWDER))

(subclass GasMixture Mixture)
(documentation GasMixture "Any &%Mixture that satisfies two conditions, 
viz. it is made up predominantly of things which are a &%Gas and any 
component other than &%Gas in the &%Mixture is in the form of fine particles 
which are suspended in the &%Gas.") 

(subclass Smoke GasMixture)
(documentation Smoke "A mixture of fine particles suspended in a gas that is 
produced by &%Combustion.")

(=>
   (instance ?SMOKE Smoke)
   (exists (?BURNING)
      (and
         (instance ?BURNING Combustion)
         (result ?BURNING ?SMOKE))))

(subclass Cloud GasMixture)
(documentation Cloud "Any &%GasMixture that is visible, e.g. clouds of &%Smoke 
produced by a fire or clouds of water vapor in the sky.")

(=>
   (instance ?CLOUD Cloud)
   (capability Seeing patient ?CLOUD))

(subclass WaterCloud Cloud)
(documentation WaterCloud "Any &%Cloud that is composed primarily of water vapor.")

(=>
   (instance ?CLOUD WaterCloud)
   (exists (?WATER)
      (and
         (instance ?WATER Water)
         (part ?WATER ?CLOUD))))

(=>
   (instance ?CLOUD WaterCloud)
   (forall (?PART)
      (=>
         (and
            (part ?PART ?CLOUD)
            (not (instance ?PART Water)))
         (exists (?WATER)
            (and
               (instance ?WATER Water)
               (part ?WATER ?CLOUD)
               (measure ?WATER ?MEASURE1)
               (measure ?PART ?MEASURE2)
               (greaterThan ?WATER ?PART))))))

(subclass Fog WaterCloud)
(documentation "Any &%WaterCloud that is in contact with the ground.")

(=>
   (instance ?FOG Fog)
   (exists (?LAND)
      (and
         (instance ?LAND LandArea)
         (meetsSpatially ?FOG ?LAND))))

(subclass Ice Water)
(documentation Ice "&%Water that has the &%PhysicalState of &%Solid.")

(<=>
   (instance ?ICE Ice)
   (and
      (instance ?ICE Water)
      (attribute ?ICE Solid)))

(=>
   (and
      (instance ?ICE Ice)
      (measure ?ICE (MeasureFn ?NUMBER CelsiusDegree)))
   (lessThanOrEqualTo ?NUMBER 0))

(subclass ShoreArea LandArea)
(documentation ShoreArea "A &%ShoreArea is a &%LandArea approximately 
1-3 km wide bordering a body of water, such as an ocean, bay, river, 
or lake.  A &%ShoreArea may comprise a variety of &%LandForms, such as dunes, 
sloughs, and marshes.")

(=>
   (instance ?BANK ShoreArea)
   (exists (?WATER)
      (and
         (instance ?WATER WaterArea)
         (meetsSpatially ?BANK ?WATER))))

(subclass Field LandArea)
(documentation Field "A &%LandArea that has been cleared of &%BotanicalTrees.  
Note that a &%Field is not necessarily used for the cultivation of crops and 
that a &%Field may be very small, e.g. &%Lawn is a subclass of &%Field.")

(=>
   (instance ?FIELD Field)
   (not (exists (?TREE)
      (and
         (instance ?TREE BotanicalTree)
         (located ?TREE ?FIELD)))))

(subclass Lawn Field)
(documentation Lawn "A &%Field of cultivated and mowed &%Grass.")

(=>
   (instance ?LAWN Lawn)
   (exists (?GRASS)
      (and
         (instance ?GRASS Grass)
         (located ?GRASS ?LAWN))))

(subclass MilitaryFront GeographicArea)
(documentation MilitaryFront "A &%GeographicArea along which opposing military 
forces confront one another in a &%Battle.")

(=>
   (holdsDuring ?TIME (instance ?AREA MilitaryFront))
   (exists (?BATTLE)
      (and
         (instance ?BATTLE Battle)
         (located ?BATTLE ?AREA)
         (temporalPart ?TIME ?BATTLE))))

(partition Region GeographicArea SpaceRegion)

(subclass SpaceRegion Region)
(disjoint SpaceRegion GeographicArea)
(partition SpaceRegion AtmosphericRegion OuterSpaceRegion)
(documentation SpaceRegion "The class of all &%Regions which are not 
&%GeographicAreas.")

(subclass OuterSpaceRegion SpaceRegion)
(documentation OuterSpaceRegion "The class of all &%Regions which are 
neither &%GeographicAreas nor &%AtmosphericRegions.")

(subclass StormFront AtmosphericRegion)
(documentation StormFront "The &%Region where two or more unstable air 
masses meet.")

(=>
   (instance ?FRONT StormFront)
   (exists (?AIR1 ?AIR2)
      (and
         (instance ?AIR1 Air)
         (instance ?AIR2 Air)
         (between ?AIR1 ?FRONT ?AIR2))))

(instance Outside Region)
(documentation Outside "Any &%Region which is not enclosed by a &%Building 
or part of a &%Building.")

(=>
   (instance ?OUTSIDE Outside)
   (not (exists (?BUILDING ?THING)
      (and
         (instance ?BUILDING Building)
         (located ?THING ?BUILDING)
         (located ?THING ?OUTSIDE)))))

(subclass BiologicalSpecies Class)
(documentation BiologicalSpecies "The &%Class of all biological species, i.e. 
the class of all classes of &%Organism whose instances can interbreed.")

(=>
   (instance ?SPECIES BiologicalSpecies)
   (subclass ?SPECIES Organism))

(subclass Wood Tissue)
(subclass Wood PlantSubstance)
(documentation Wood "&%Tissue that comprises the inner trunk of &%Trees.  
It is often used in constructing &%Buildings and other &%Artifacts.") 

(subclass Opium BiologicallyActiveSubstance)
(subclass Opium PlantSubstance)
(documentation Opium "A substance harvested from the seed capsules of the 
opium poppy that contains various powerful alkaloids.")

(subclass Grass FloweringPlant)
(documentation Grass "&%FloweringPlants with green, narrow leaves that are 
used for lawns and &%Fields.")

(subclass Tumor AbnormalAnatomicalStructure)
(documentation Tumor "Any &%AbnormalAnatomicalStructure which consists of a 
mass of &%Tissue.  Note that this class covers both malignant (i.e. cancerous) 
and benign tumors.")

(=>
   (instance ?TUMOR Tumor)
   (forall (?PART)
      (=>
         (part ?PART ?TUMOR)
         (instance ?PART Tissue))))

(subclass AnimalSubstance BodySubstance)
(documentation AnimalSubstance "&%BodySubstances that are produced 
exclusively by &%Animals.")

(=>
   (and
      (instance ?SUBSTANCE AnimalSubstance)
      (instance ?ANIMAL Organism)
      (part ?SUBSTANCE ?ANIMAL))
   (instance ?ANIMAL Animal))

(subclass Sweat AnimalSubstance)
(documentation Sweat "An &%AnimalSubstance that contains &%SodiumChloride 
and is produced by the sweat glands.")

(=>
   (instance ?SWEAT Sweat)
   (exists (?PART)
      (and
         (instance ?PART SodiumChloride)
         (part ?PART ?SWEAT))))

(subclass PlantSubstance BodySubstance)
(documentation PlantSubstance "&%BodySubstances that are produced 
exclusively by &%Plants.")

(=>
   (and
      (instance ?SUBSTANCE PlantSubstance)
      (instance ?PLANT Organism)
      (part ?SUBSTANCE ?PLANT))
   (instance ?PLANT Plant))

(subclass PlantLeaf PlantAnatomicalStructure)
(subclass PlantLeaf Organ)
(documentation PlantLeaf "An &%Organ of &%Plants whose main purpose is 
photosynthesis.")

(subclass PlantBranch PlantAnatomicalStructure)
(subclass PlantBranch BodyPart)
(documentation PlantBranch "The stem of a &%Plant or any shoot arising from 
the stem of a &%Plant.")

(subclass PlantRoot PlantAnatomicalStructure)
(subclass PlantRoot Organ)
(documentation PlantRoot "An &%Organ of &%Plants whose main purpose is 
twofold, viz. to absorb nutrients from the ground and to anchor the &%Plant 
in place.")

(subclass Flower PlantAnatomicalStructure)
(subclass Flower Organ)
(documentation Flower "The reproductive organ of &%FloweringPlants.")

(=>
   (instance ?FLOWER Flower)
   (exists (?PLANT)
      (and
         (instance ?PLANT FloweringPlant)
         (part ?FLOWER ?PLANT))))

(subclass Antibody Protein)
(documentation Antibody "An immunoglobulin which is produced by the body 
and which has the ability to neutralize &%Antigens.")

(=>
   (instance ?BODY Antibody)
   (hasPurpose ?BODY (exists (?DEST)
                        (and
                           (instance ?DEST Destruction)
                           (agent ?DEST ?BODY)
                           (patient ?DEST ?ANTI)
                           (instance ?ANTI Antigen)))))

(subclass Antigen BiologicallyActiveSubstance)
(documentation Antigen "Any &%BiologicallyActiveSubstance that has the 
capacity to stimulate the production of &%Antibodies.")

(subclass LiquidBodySubstance BodySubstance)
(documentation LiquidBodySubstance "Any &%BodySubstance which is &%Liquid 
under normal circumstances.")

(=>
   (instance ?SUBSTANCE LiquidBodySubstance)
   (attribute ?SUBSTANCE Liquid))

(subclass Serum LiquidBodySubstance)
(disjoint Serum Blood)
(documentation Serum "Any &%LiquidBodySubstance other than &%Blood.")

(subclass Milk LiquidBodySubstance)
(subclass Milk Beverage)
(documentation Milk "A nutritious &%BodySubstance produced by &%Mammals.")

(=>
   (instance ?MILK Milk)
   (exists (?PROCESS ?MAMMAL)
      (and
         (instance ?MAMMAL Mammal)
         (instrument ?PROCESS ?MAMMAL)
         (result ?PROCESS ?MILK))))

(subclass CellNucleus OrganicObject)
(documentation CellNucleus "The part of the &%Cell that contains DNA and 
RNA.")

(=>
   (instance ?NUCLEUS CellNucleus)
   (exists (?CELL)
      (and
         (instance ?CELL Cell)
         (part ?NUCLEUS ?CELL))))

(subclass AlcoholicBeverage Beverage)
(documentation AlcoholicBeverage "Any &%Beverage that contains &%Alcohol.")

(=>
   (instance ?BEVERAGE AlcoholicBeverage)
   (exists (?ALCOHOL)
      (and
         (instance ?ALCOHOL Alcohol)
         (part ?ALCOHOL ?BEVERAGE))))

(subclass DistilledAlcoholicBeverage AlcoholicBeverage)
(documentation DistilledAlcoholicBeverage "An &%AlcoholicBeverage that has 
had some part of its &%Water content removed by distillation.  This class 
covers drinks of unmixed, hard liquor.")

(=>
   (instance ?BEVERAGE DistilledAlcoholicBeverage)
   (exists (?REMOVE ?WATER)
      (and
         (instance ?REMOVE Removing)
         (patient ?REMOVE ?WATER)
         (instance ?WATER Water)
         (origin ?REMOVE ?BEVERAGE))))

(subclass Whiskey DistilledAlcoholicBeverage)
(documentation Whiskey "A &%DistilledAlcoholicBeverage that is prepared by 
distilling fermented grain mash.")

(subclass Beer AlcoholicBeverage)
(documentation Beer "An &%AlcoholicBeverage that is prepared by fermenting 
malt and hops.")

(subclass Egg ReproductiveBody)
(subclass Egg AnimalAnatomicalStructure)
(documentation Egg "The fertilized or unfertilized female &%ReproductiveBody 
of an &%Animal.  This includes &%Bird and &%Reptile eggs, as well as mammalian 
ova.") 

(subclass Seed ReproductiveBody)
(subclass Seed PlantAnatomicalStructure)
(documentation Seed "The fertilized or unfertilized female &%ReproductiveBody 
of a &%FloweringPlant.")

(=>
   (instance ?SEED Seed)
   (exists (?PLANT ?TIME)
      (and
         (instance ?PLANT FloweringPlant)
         (holdsDuring ?TIME (part ?SEED ?PLANT))))) 

(subclass Pollen ReproductiveBody)
(subclass Pollen PlantAnatomicalStructure)
(documentation Pollen "A powder produced by &%FloweringPlants that contains male 
gametes and is capable of fertilizing the seeds of &%FloweringPlants of the same 
species.")

(subclass Spore ReproductiveBody)
(subclass Spore PlantAnatomicalStructure)
(documentation Spore "Any &%ReproductiveBody of a &%NonFloweringPlant.")

(=>
   (instance ?SPORE Spore)
   (exists (?PLANT ?TIME)
      (and
         (instance ?PLANT NonFloweringPlant)
         (holdsDuring ?TIME (part ?SPORE ?PLANT))))) 

(subclass SpinalColumn Organ) 
(subclass SpinalColumn AnimalAnatomicalStructure)
(documentation SpinalColumn "A flexible column made out of bones called 
vertebrae. The main function of the &%SpinalColumn is to protect the 
spinal cord.") 

(<=> 
   (instance ?VERT Vertebrate) 
   (exists (?SPINE) 
      (and 
         (instance ?VERT Animal)
         (component ?SPINE ?VERT) 
         (instance ?SPINE SpinalColumn)))) 

(subclass Skin BodyCovering)
(subclass Skin AnimalAnatomicalStructure)
(documentation Skin "A BodyCovering that comprises part of the surface 
of &%Animals.")

(=>
   (instance ?SKIN Skin)
   (exists (?SURFACE ?ANIMAL)
      (and
         (surface ?SURFACE ?ANIMAL)
         (part ?SKIN ?ANIMAL)
         (instance ?ANIMAL Animal)
         (overlapsSpatially ?SKIN ?SURFACE)))) 

(subclass BronchialDuct BodyVessel)
(subclass BronchialDuct AnimalAnatomicalStructure)
(documentation BronchialDuct "Any &%BodyVessel which is located in a 
&%Lung and which carries oxygen from the trachea to the alveoli.")

(=>
   (instance ?DUCT BronchialDuct)
   (exists (?LUNG)
      (and
         (instance ?LUNG Lung)
         (located ?DUCT ?LUNG))))

(subclass BloodVessel BodyVessel)
(subclass BloodVessel AnimalAnatomicalStructure)
(documentation BloodVessel "Any &%BodyVessel which is used to circulate 
&%Blood from one part of the body to another.")

(=>
   (instance ?VESSEL BloodVessel)
   (exists (?BLOOD ?TRANSFER)
      (and
         (instance ?BLOOD Blood)
         (instance ?TRANSFER Transfer)
         (patient ?TRANSFER ?BLOOD)
         (instrument ?TRANSFER ?VESSEL))))

(subclass Artery BloodVessel)
(documentation Artery "Any &%BloodVessel which transfers &%Blood from 
the &%Heart to the extremities of the body.")

(=>
   (and
      (instance ?ARTERY Artery)
      (instance ?TRANSFER Transfer)
      (patient ?TRANSFER ?BLOOD)
      (instrument ?TRANSFER ?ARTERY)
      (instance ?BLOOD Blood))
   (exists (?HEART)
      (and
         (instance ?HEART Heart)
         (origin ?TRANSFER ?HEART))))

(subclass PulmonaryArtery Artery)
(documentation PulmonaryArtery "An &%Artery that carries &%Blood from 
the &%Heart to a &%Lung.")

(=>
   (and
      (instance ?ARTERY PulmonaryArtery)
      (instance ?TRANSFER Transfer)
      (patient ?TRANSFER ?BLOOD)
      (instrument ?TRANSFER ?ARTERY)
      (instance ?BLOOD Blood))
   (exists (?LUNG)
      (and
         (instance ?LUNG Lung)
         (destination ?TRANSFER ?LUNG))))

(subclass Lung Organ)
(subclass Lung AnimalAnatomicalStructure)
(documentation Lung "A respiratory organ of &%Vertebrates.  Its function is 
to furnish the blood with oxygen and to remove carbon dioxide.")

(=> 
   (instance ?VERT Vertebrate) 
   (exists (?LUNG) 
      (and 
         (component ?LUNG ?VERT) 
         (instance ?LUNG Lung)))) 

(=>
   (capability Breathing experiencer ?ANIMAL)
   (exists (?LUNG)
      (and
         (component ?LUNG ?ANIMAL)
         (instance ?LUNG Lung))))

(subclass Heart Organ)
(subclass Heart AnimalAnatomicalStructure)
(documentation Heart "The &%Organ that pumps &%Blood throughout the body.")

(=>
   (instance ?HEART Heart)
   (exists (?TRANSFER ?BLOOD)
      (and
         (instance ?TRANSFER Transfer)
         (instance ?BLOOD Blood)
         (instrument ?TRANSFER ?HEART)
         (patient ?TRANSFER ?BLOOD)))) 

(subclass Liver Organ)
(subclass Liver AnimalAnatomicalStructure)
(documentation Liver "An &%Organ that secretes bile and serves metabolic 
functions.")

(subclass Mouth AnimalAnatomicalStructure)
(subclass Mouth BodyPart)
(documentation Mouth "Part of the &%Face, used for &%Ingesting &%Food 
and &%Vocalizing.")

(=>
   (instance ?MOUTH Mouth)
   (exists (?FACE)
      (and
         (instance ?FACE Face)
         (part ?FACE ?MOUTH))))

(subclass Tongue AnimalAnatomicalStructure)
(subclass Tongue BodyPart)
(documentation Tongue "Part of the &%Mouth, used for &%Tasting &%Food, 
&%Vocalizing, and the initial stage of &%Digesting.")

(=>
   (instance ?TONGUE Tongue)
   (exists (?MOUTH)
      (and
         (instance ?MOUTH Mouth)
         (part ?TONGUE ?MOUTH))))

(subclass Tooth Bone)
(documentation Tooth "Part of the &%Mouth, used for biting and chewing.")

(=>
   (instance ?TOOTH Tooth)
   (exists (?MOUTH)
      (and
         (instance ?MOUTH Mouth)
         (part ?TOOTH ?MOUTH))))

(subclass Chewing BodyMotion)
(documentation Chewing "Breaking up or mashing &%Food with one's teeth.")

(=>
   (and
      (instance ?CHEW Chewing)
      (resource ?CHEW ?FOOD))
   (instance ?FOOD Food))

(=>
   (and
      (instance ?CHEW Chewing)
      (instrument ?CHEW ?TOOTH))
   (instance ?TOOTH Tooth))

(=>
   (instance ?CHEW Chewing)
   (exists (?EAT)
      (and
         (instance ?EAT Eating)
         (subProcess ?CHEW ?EAT))))

(subclass Lip AnimalAnatomicalStructure)
(subclass Lip BodyPart)
(documentation Lip "Folds of &%Tissue surrounding the mouths of some 
&%Vertebrates.")

(=>
   (instance ?LIP Lip)
   (exists (?MOUTH)
      (and
         (instance ?MOUTH Mouth)
         (part ?LIP ?MOUTH))))

(subclass Kissing Touching)
(documentation Kissing "The class of &%Touching processes where the lips 
of two persons are brought into contact with each other.")

(=>
   (instance ?KISS Kissing)
   (exists (?PERSON1 ?PERSON2 ?LIP1 ?LIP2)
      (and
         (agent ?KISS ?PERSON1)
         (agent ?KISS ?PERSON2)
         (instance ?PERSON1 Human)
         (instance ?PERSON2 Human)
         (not (equal ?PERSON1 ?PERSON2))
         (instance ?LIP1 Lip)
         (instance ?LIP2 Lip)
         (part ?LIP1 ?PERSON1)
         (part ?LIP2 ?PERSON2)
         (holdsDuring (BeginFn (WhenFn ?KISS)) (not (meetsSpatially ?LIP1 ?LIP2)))
         (holdsDuring (EndFn (WhenFn ?KISS)) (meetsSpatially ?LIP1 ?LIP2)))))

(subclass Skeleton AnimalAnatomicalStructure)
(subclass Skeleton BodyPart)
(documentation Skeleton "The system of &%Bones that make up the supporting structure 
of &%Vertebrates.")

(=>
   (and
      (instance ?ANIMAL Animal)
      (instance ?SKELETON Skeleton)
      (part ?SKELETON ?ANIMAL))
   (instance ?ANIMAL Vertebrate))

(<=>
   (instance ?BONE Bone)
   (exists (?SKELETON)
      (and
         (instance ?SKELETON Skeleton)
         (part ?BONE ?SKELETON))))

(subclass Throat AnimalAnatomicalStructure)
(subclass Throat BodyVessel)
(documentation Throat "A &%BodyVessel which connects the &%Mouth to the 
lungs and stomach.")

(=>
   (instance ?THROAT Throat)
   (exists (?MOUTH)
      (and
         (instance ?MOUTH Mouth)
         (connected ?THROAT ?MOUTH))))

(subclass Hair AnimalAnatomicalStructure)
(documentation Hair "A filament that covers part of the body of many 
&%Mammals.")

(=>
   (instance ?HAIR Hair)
   (exists ( ?MAMMAL ?TIME)
      (and
         (instance ?MAMMAL Mammal)
         (holdsDuring ?TIME (part ?HAIR ?MAMMAL)))))

(subclass HairRemoval Removing)
(docmentation HairRemoval "&%Removing (some or all) the &%Hair from the 
body of an &%Animal.  Note that this covers shaving hair, cutting hair, 
pulling hair out by the roots, etc.")

(=>
   (and
      (instance ?REMOVE HairRemoval)
      (resource ?REMOVE ?HAIR))
   (instance ?HAIR Hair))
      
(subclass Brain Organ)
(subclass Brain AnimalAnatomicalStructure)
(documentation Brain "The seat of the central nervous system.")

(subclass Stomach Organ)
(subclass Stomach AnimalAnatomicalStructure)
(documentation Stomach "A muscular sac that is the principal organ of 
digestion.")

(=>
   (instance ?STOMACH Stomach)
   (capability Digesting instrument ?STOMACH))

(subclass Hypothalamus BodyPart)
(subclass Hypothalamus AnimalAnatomicalStructure)
(documentation Hypothalamus "The part of the &%Brain lying below the 
thalamus that serves to regulate &%AutonomicProcesses.")

(=>
   (instance ?HYPO Hypothalamus)
   (exists (?BRAIN)
      (and
         (instance ?BRAIN Brain)
         (part ?HYPO ?BRAIN))))

(subclass Eye Organ)
(subclass Eye AnimalAnatomicalStructure)
(documentation Eye "The &%Organ of sight.")

(=>
   (instance ?EYE Eye)
   (capability Seeing instrument ?EYE))

(=>
   (instance ?EYE Eye)
   (exists (?HEAD)
      (and
         (instance ?HEAD Head)
         (part ?EYE ?HEAD))))

(subclass Ear Organ)
(subclass Ear AnimalAnatomicalStructure)
(documentation Ear "The &%Organ of hearing.")

(=>
   (instance ?EAR Ear)
   (capability Hearing instrument ?EAR))

(=>
   (instance ?EAR Ear)
   (exists (?HEAD)
      (and
         (instance ?HEAD Head)
         (part ?EAR ?HEAD))))

(subclass Nose Organ)
(subclass Nose AnimalAnatomicalStructure)
(documentation Nose "The &%Organ of &%Smelling.")

(=>
   (instance ?NOSE Nose)
   (capability Smelling instrument ?NOSE))

(=>
   (instance ?NOSE Nose)
   (exists (?FACE)
      (and
         (instance ?FACE Face)
         (part ?NOSE ?FACE))))

(subclass ThyroidGland Gland)
(documentation ThyroidGland "A &%Gland in the neck that produces 
&%HormoneTSH, which regulates body weight, metabolic rate, etc.")

(subclass HormoneTSH Hormone)
(documentation HormoneTSH "A &%Hormone secreted by the &%ThyroidGland.")

(=>
   (instance ?HORMONE HormoneTSH)
   (exists (?PROC ?GLAND)
      (and
         (instance ?GLAND ThyroidGland)
         (instrument ?PROC ?GLAND)
         (result ?PROC ?HORMONE))))

(subclass Arm Limb)
(documentation Arm "The upper &%Limbs of a &%Primate.")

(=>
   (instance ?ARM Arm)
   (exists (?PRIMATE)
      (and
         (instance ?PRIMATE Primate)
         (part ?ARM ?PRIMATE))))

(subclass Hand AnimalAnatomicalStructure)
(subclass Hand BodyPart)
(documentation Hand "The grasping, fingered part of an upper limb of a 
&%Primate.")

(=>
   (instance ?HAND Hand)
   (exists (?ARM)
      (and
         (instance ?ARM Arm)
         (part ?HAND ?ARM))))

(subclass Finger AnimalAnatomicalStructure)
(subclass Finger BodyPart)
(documentation Finger "The five extremities of &%Hands.")

(=>
   (instance ?FINGER Finger)
   (exists (?HAND)
      (and
         (instance ?HAND Hand)
         (part ?FINGER ?HAND))))

(subclass Limb AnimalAnatomicalStructure)
(subclass Limb BodyPart)
(documentation Limb "Any of the limbs of a &%Vertebrate.")

(=>
   (instance ?LIMB Limb)
   (exists (?VERTEBRATE)
      (and
         (instance ?VERTEBRATE Vertebrate)
         (part ?LIMB ?VERTEBRATE))))

(subclass Snake Reptile)
(documentation Snake "A long and narrow &%Reptile which lacks &%Limbs.")

(=>
   (instance ?SNAKE Snake)
   (not (exists (?LIMB)
      (and
         (instance ?LIMB Limb)
         (part ?LIMB ?SNAKE)))))

(subclass ConstrictorSnake Snake)
(documentation ConstrictorSnake "A &%Snake that lacks venom and kills its 
prey by crushing it to death.")

(subclass Anaconda ConstrictorSnake)
(documentation Anaconda "A very large Boa that is found in South America.")

(subclass Bee Insect)
(documentation Bee "A hairy &%Insect, some species of which produce honey 
and/or sting.")

(subclass BumbleBee Bee)
(documentation BumbleBee "A large &%Bee which lacks a stinger.")

(subclass QueenInsect Insect)
(documentation QueenInsect "A &%Female &%Insect which is the sole member of 
her colony with the capability to reproduce.") 

(=>
   (instance ?INSECT QueenInsect)
      (and
         (attribute ?INSECT Female)
         (capability Replication agent ?INSECT)))

(=>
   (instance ?INSECT QueenInsect)
   (exists (?GROUP)
      (and
         (instance ?GROUP Group)
         (member ?INSECT ?GROUP)
         (not (exists (?MEMBER) 
                 (and
                    (member ?MEMBER ?GROUP)
                    (capability Replication agent ?MEMBER)
                    (not (equal ?MEMBER ?INSECT))))))))

(subclass Leg Limb)
(documentation Leg "The lower &%Limbs of &%Primates.")

(=>
   (instance ?LEG Leg)
   (exists (?PRIMATE)
      (and
         (instance ?PRIMATE Primate)
         (part ?LEG ?PRIMATE))))

(subclass Foot AnimalAnatomicalStructure)
(subclass Foot BodyPart)
(documentation Foot "The lower part of a &%Limb, the part which makes contact 
with the ground in locomotion of the &%Animal.")

(=>
   (instance ?FOOT Foot)
   (exists (?LIMB)
      (and
         (instance ?LIMB Leg)
         (part ?FOOT ?LIMB))))

(subclass Toe AnimalAnatomicalStructure)
(subclass Toe BodyPart)
(documentation Toe "The five extremities of a &%Foot.")

(=>
   (instance ?TOE Toe)
   (exists (?FOOT)
      (and
         (instance ?FOOT Foot)
         (part ?TOE ?FOOT))))

(subclass Knee AnimalAnatomicalStructure)
(subclass Knee BodyJunction)
(documentation Knee "The joint in the &%Leg connecting the tibia and fibula 
with the femur.")

(=>
   (instance ?KNEE Knee)
   (exists (?LEG)
      (and
         (instance ?LEG Leg)
         (part ?KNEE ?LEG))))

(subclass Shoulder AnimalAnatomicalStructure)
(subclass Shoulder BodyPart)
(documentation Shoulder "The part of a &%Primate between the &%Arm and 
the neck.")

(=>
   (instance ?SHOULDER Shoulder)
   (exists (?PRIMATE)
      (and
         (instance ?PRIMATE Primate)
         (part ?SHOULDER ?PRIMATE))))

(subclass Torso AnimalAnatomicalStructure)
(subclass Torso BodyPart)
(documentation Torso "The body of a &%Primate excluding its &%Limbs.")

(=>
   (and
      (instance ?TORSO Torso)
      (instance ?LIMB Limb))
   (not (overlapsSpatially ?TORSO ?LIMB)))

(subclass Head AnimalAnatomicalStructure)
(subclass Head BodyPart)
(documentation Head "The part of the body containing the sense organs and 
the brain.")

(subclass Neck AnimalAnatomicalStructure)
(subclass Neck BodyPart)
(documentation Neck "The part of the body that connects the &%Head to the 
rest of the body.")

(=>
   (instance ?NECK Neck)
   (exists (?HEAD)
      (and
         (instance ?HEAD Head)
         (connected ?NECK ?HEAD))))

(subclass Face AnimalAnatomicalStructure)
(subclass Face BodyPart)
(documentation Face "The part of the &%Head from forehead to chin and 
from ear to ear.")

(=>
   (instance ?FACE Face)
   (exists (?HEAD)
      (and
         (instance ?HEAD Head)
         (part ?FACE ?HEAD))))

(=>
   (instance ?FACE Face)
   (exists (?VERTEBRATE)
      (and
         (instance ?VERTEBRATE Vertebrate)
         (part ?FACE ?VERTEBRATE))))

(subclass Chin AnimalAnatomicalStructure)
(subclass Chin BodyPart)
(documentation Chin "A part of the &%Face which protrudes slightly and which 
is lower than all other parts of the &%Face.")

(=>
   (instance ?CHIN Chin)
   (exists (?FACE)
      (and
         (instance ?FACE Face)
         (part ?CHIN ?FACE))))

(=>
   (instance ?CHIN Chin)
   (forall (?PART)
      (=>
         (and
            (part ?PART ?FACE)
            (not (part ?PART ?CHIN)))
         (orientation ?PART ?CHIN Below))))
   

(partition Expressing Gesture ExpressingInLanguage)
(disjointDecomposition Expressing ExpressingApproval ExpressingDisapproval)

(subclass ExpressingApproval Expressing)
(documentation ExpressingApproval "&%Expressing favor about a physical thing 
or a state of affairs.")

(=>
   (and
      (instance ?EXPRESS ExpressingApproval)
      (agent ?EXPRESS ?AGENT)
      (patient ?EXPRESS ?THING))
   (or
      (wants ?AGENT ?THING)
      (desires ?AGENT ?THING)))

(subclass ExpressingDisapproval Expressing)
(documentation ExpressingDisapproval "&%Expressing disfavor about a physical 
thing or a state of affairs.")

(=>
   (and
      (instance ?EXPRESS ExpressingDisapproval)
      (agent ?EXPRESS ?AGENT)
      (patient ?EXPRESS ?THING))
   (or
      (dislikes ?AGENT ?THING)
      (disapproves ?AGENT ?THING)))

(subclass Gesture Expressing)
(subclass Gesture BodyMotion)
(documentation Gesture "Any &%BodyMotion, e.g. a hand wave, a nod of the 
head, a smile, which expresses a &%StateOfMind.")

(=>
   (and
      (instance ?GESTURE Gesture)
      (agent ?GESTURE ?AGENT))
   (exists (?STATE)
      (and
         (instance ?STATE StateOfMind)
         (attribute ?AGENT ?STATE)
         (represents ?GESTURE ?STATE))))

(subclass FacialExpression Gesture)
(documentation FacialExpression "Any &%Gesture whose &%instrument is the &%Face.")

(=>
   (and
      (instance ?EXPRESS FacialExpression)
      (agent ?EXPRESS ?AGENT))
   (exists (?FACE)
      (and
         (part ?FACE ?AGENT)
         (instance ?FACE Face)
         (instrument ?EXPRESS ?FACE))))

(subclass Smiling FacialExpression)
(documentation Smiling "Spreading the lips in such a way as to convey 
happiness.")

(=>
   (and
      (instance ?SMILE Smiling)
      (agent ?SMILE ?AGENT))
   (holdsDuring (WhenFn ?SMILE) (attribute ?AGENT Happiness)))

(subclass Frowning FacialExpression)
(documentation Frowning "Furrowing the forehead in such a way as to convey 
unhappiness.")

(=>
   (and
      (instance ?FROWN Frowning)
      (agent ?FROWN ?AGENT))
   (holdsDuring (WhenFn ?FROWN) (attribute ?AGENT Unhappiness)))

(subclass Laughing Vocalizing)
(subclass Laughing FacialExpression)
(documentation Laughing "Expressing happiness by &%Vocalizing in a 
certain way.")

(=>
   (instance ?LAUGH Laughing)
   (exists (?SMILE)
      (and
         (instance ?SMILE Smiling)
         (subProcess ?SMILE ?LAUGH))))

(subclass Weeping FacialExpression)
(documentation Weeping "&%Expressing unhappiness by shedding tears.")

(=>
   (and
      (instance ?WEEP Weeping)
      (agent ?WEEP ?AGENT))
   (holdsDuring (WhenFn ?WEEP) (attribute ?AGENT Unhappiness))) 

(subclass Nodding Gesture)
(documentation Nodding "Moving the &%Head up and down or side to side 
to indicate approval or disapproval.")

(=>
   (and
      (instance ?NOD Nodding)
      (patient ?NOD ?HEAD))
   (instance ?HEAD Head))

(subclass Waving Gesture)
(documentation Waving "Moving a &%Hand to indicate a greeting, farewell, 
recognition, goodwill, etc.")

(=>
   (and
      (instance ?WAVE Waving)
      (patient ?WAVE ?HAND))
   (instance ?HAND Hand))

(subclass Bowing Gesture)
(subclass Bowing MotionDownward)
(documentation Bowing "Any downward motion of the body that indicates respect 
for or submission to another &%Agent.")

(subclass Ducking IntentionalProcess)
(subclass Ducking BodyMotion)
(subclass Ducking MotionDownward)
(documentation Ducking "Purposely moving one's body downward in such a way as 
to avoid being hit by something.")

(=>
   (and
      (instance ?MOTION Ducking)
      (agent ?MOTION ?AGENT))
   (hasPurpose ?MOTION (not (exists (?IMPACT)
                          (and
                             (instance ?IMPACT Impacting)
                             (patient ?IMPACT ?AGENT))))))

(subclass ExpressingInLanguage Expressing)
(subclass ExpressingInLanguage LinguisticCommunication)
(documentation ExpressingInLanguage "Any instance of &%Expressing that is also an 
instance of &%LinguisticCommunication, e.g. thanking someone, expressing condolence, 
expressing disapproval with an utterance rather than a &%Gesture, etc.")

(subclass Thanking ExpressingInLanguage)
(documentation Thanking "Any &%ExpressingInLanguage of appreciation to a person 
for something that the person did in the past.")

(=>
   (and
      (instance ?THANK Thanking)
      (agent ?THANK ?AGENT)
      (patient ?THANK ?THING)
      (destination ?THANK ?PERSON))
   (and
      (instance ?PERSON Human)
      (or
         (holdsDuring (WhenFn ?THANK) (wants ?AGENT ?THING))
         (holdsDuring (WhenFn ?THANK) (desires ?AGENT ?THING)))))

(subclass Greeting Expressing)
(documentation Greeting "Any instance of &%Expressing an acknowledgment of a 
person's arrival.  Note that this class is not a subclass of &%ExpressingInLanguage, 
because it covers gestures of greeting, e.g. &%Waving and &%Nodding in certain 
circumstances.")

(subrelation half part)
(documentation half "(&%half ?HALF ?WHOLE) means that ?HALF is one half 
of ?WHOLE.")

(=>
   (half ?HALF ?WHOLE)
   (exists (?OTHER)
      (and
         (half ?OTHER ?WHOLE)
         (not (equal ?OTHER ?HALF))
         (equal ?WHOLE (MereologicalSumFn ?HALF ?OTHER)))))

(subrelation most part)
(documentation most "(&%most ?MOST ?WHOLE) means that ?MOST is a &%part 
of ?WHOLE that is greater than &%half of ?WHOLE.")

(=>
   (most ?MOST ?WHOLE)
   (exists (?HALF ?NUMBER1 ?NUMBER2 ?UNIT)
      (and
         (half ?HALF ?WHOLE)
         (measure ?HALF (MeasureFn ?NUMBER1 ?UNIT))
         (measure ?MOST (MeasureFn ?NUMBER2 ?UNIT))
         (greaterThan ?NUMBER2 ?NUMBER1))))

(subclass Blueprint Icon)
(documentation Blueprint "An &%Icon which is a scale model of an &%Artifact, 
whether the &%Artifact actually exists or not.")

(=>
   (instance ?PLAN Blueprint)
   (exists (?ARTIFACT)
      (and
         (instance ?ARTIFACT Artifact)
         (represents ?PLAN ?ARTIFACT))))

(subclass Graph Icon)
(documentation Graph "An &%Icon which depicts one or more quantities.")

(=>
   (instance ?GRAPH Graph)
   (exists (?QUANTITY)
      (and
         (instance ?QUANTITY PhysicalQuantity)
         (refers ?GRAPH ?QUANTITY))))

(subclass Flag Icon)
(documentation Flag "An &%Icon made of &%Fabric that refers to a particular 
&%GeopoliticalArea.")

(=>
   (instance ?FLAG Flag)
   (exists (?FABRIC)
      (and
         (instance ?FABRIC Fabric)
         (part ?FABRIC ?FLAG))))

(=>
   (instance ?FLAG Flag)
   (exists (?AREA)
      (and
         (instance ?AREA GeopoliticalArea)
         (refers ?FLAG ?AREA))))

(subclass ArrowIcon Icon)
(documentation ArrowIcon "An &%Icon which has the shape of an arrow and which 
is used to indicate direction or a relationship betwee two things.")

(subclass Photograph Icon)
(documentation Photograph "An &%Icon that is the result of a process of 
&%Photographing.")

(subclass Photographing ContentDevelopment)
(documentation Photographing "&%ContentDevelopment where the &%instrument 
is a camera and the &%result is a &%Photograph.")

(=>
   (instance ?SHOOT Photographing)
   (exists (?PHOTO)
      (and
         (instance ?PHOTO Photograph)
         (result ?SHOOT ?PHOTO)
         (instrument ?SHOOT ?CAMERA)
         (instance ?CAMERA Camera))))

(subclass Camera Device)
(documentation Camera "A &%Device which is capable of &%Photographing.")

(=>
   (instance ?CAMERA Camera)
   (capability Photographing instrument ?CAMERA))

(subclass Composing ContentDevelopment)
(documentation Composing "&%ContentDevelopment which results in a 
&%MusicalComposition.")

(=>
   (instance ?COMPOSE Composing)
   (exists (?MUSIC)
      (and
         (instance ?MUSIC MusicalComposition)
         (result ?COMPOSE ?MUSIC)))) 

(subclass TonMass MassMeasure)
(instance TonMass UnitOfMeasure)
(documentation TonMass "English mass unit that is equal to 2000 pounds.")

(=>
   (instance ?NUMBER RealNumber)
   (equal
        (MeasureFn ?NUMBER TonMass)
        (MeasureFn (MultiplicationFn ?NUMBER 2000) PoundMass)))

(subclass Page InformationMeasure)
(instance Page UnitOfMeasure)
(documentation Page "A single page of &%Text.")

(subclass LiquorShot VolumeMeasure)
(instance LiquorShot UnitOfMeasure)
(documentation LiquorShot "A &%UnitOfMeasure used in preparing &%AlcoholicBeverages.")

(subclass Acre AreaMeasure)
(instance Acre UnitOfMeasure)
(documentation Acre "A &%UnitOfMeasure equal to 4840 square yards.")

(subclass MusicalComposition Text)
(documentation MusicalComposition "A &%Text that expresses the notes, 
words, etc. of a song or other sort of &%Music.")

(=>
   (and
      (instance ?COMP MusicalComposition)
      (containsInformation ?COMP ?INFO)
      (realization ?MUSIC ?INFO))
   (instance ?MUSIC Music))

(subclass DeviceAttribute ObjectiveNorm)
(documentation DeviceAttribute "This class contains two &%Attributes to 
indicate whether a &%Device is or is not behaving as it is intended to 
behave, &%Functioning and &%Malfunctioning.")

(=>
   (and
      (attribute ?DEVICE ?ATTRIBUTE)
      (instance ?ATTRIBUTE DeviceAttribute))
   (instance ?DEVICE Device))

(instance Functioning DeviceAttribute)
(contraryAttribute Functioning Malfunctioning)
(documentation Functioning "Indicates that a &%Device is performing its 
intended function.")

(=>
   (and
      (attribute ?DEVICE Functioning)
      (hasPurpose ?DEVICE ?PROP))
   (true ?PROP True))

(instance Malfunctioning DeviceAttribute)
(documentation Malfunctioning "Indicates that a &%Device is not performing 
its intended function.")

(=>
   (and
      (attribute ?DEVICE Malfunctioning)
      (hasPurpose ?DEVICE ?PROP))
   (true ?PROP False))

(instance LegislativeBill DeonticAttribute)
(documentation LegislativeBill "The &%Attribute of being a proposed law, 
i.e. being under consideration by a legislative body of &%Government.")

(=>
   (holdsDuring ?TIME1 (modalAttribute ?TEXT Law))
   (exists (?TIME2)
      (and
         (holdsDuring ?TIME2 (attribute ?TEXT LegislativeBill))
         (earlier ?TIME2 ?TIME1))))

(subclass PassingABill PoliticalProcess)
(subclass PassingABill Declaring)
(documentation PassingABill "The &%Process of converting a &%LegislativeBill 
into &%Law by a duly authorized legislative body of &%Government.")

(=>
   (instance ?ORG LegislativeOrganization)
   (capability PassingABill agent ?ORG))

(=>
   (and
      (instance ?PASS PassingABill)
      (patient ?PASS ?TEXT))
   (and
      (holdsDuring (BeginFn (WhenFn ?PASS)) (attribute ?TEXT LegislativeBill))
      (holdsDuring (EndFn (WhenFn ?PASS)) (attribute ?TEXT Law))))

(subAttribute InternationalLaw Law)
(documentation InternationalLaw "An &%Attribute that applies to &%Propositions 
that express &%Laws concerning the relations between &%Nations.")

(subclass CriminalAction IntentionalProcess)
(documentation CriminalAction "Any &%IntentionalProcess that violates a &%Law.")

(=>
   (instance ?ACTION CriminalAction)
   (exists (?LAW ?CONTENT ?CRIME)
      (and
         (modalAttribute ?LAW Law)
         (containsInformation ?LAW ?CONTENT)
         (realization ?ACTION ?CRIME)
         (not (consistent ?CONTENT ?CRIME)))))

(disjointDecomposition Sentence Statement Supposition Question Request Order)

(subclass Statement Sentence)
(documentation Statement "A &%Sentence that is stated to be true.")

(=>
   (and
      (instance ?STATE Stating)
      (result ?STATE ?SENTENCE)
      (instance ?SENTENCE Sentence))
   (instance ?SENTENCE Statement))

(subclass Fact Statement)
(documentation "The class of &%Statements that are &%True.")

(=>
   (instance ?FACT Fact)
   (true ?FACT True))

(subclass Question Sentence)
(documentation Question "An interrogative &%Sentence, a &%Sentence that 
poses a question.")

(=>
   (and
      (instance ?QUESTION Questioning)
      (result ?QUESTION ?SENTENCE)
      (instance ?SENTENCE Sentence))
   (instance ?SENTENCE Question))

(subclass Supposition Sentence)
(documentation Supposition "A &%Sentence that is assumed to be true, possibly 
just for the sake of argument.")

(=>
   (and
      (instance ?SUPPOSE Supposing)
      (result ?SUPPOSE ?SENTENCE)
      (instance ?SENTENCE Sentence))
   (instance ?SENTENCE Supposition))

(subclass Request Sentence)
(documentation Request "A &%Sentence that expresses a request for something or 
that something be done.")

(=>
   (and
      (instance ?REQUEST Requesting)
      (result ?REQUEST ?SENTENCE)
      (instance ?SENTENCE Sentence))
   (instance ?SENTENCE Request))

(subclass Order Sentence)
(documentation Order "A &%Sentence that expresses an order for something or 
that something be done.")

(=>
   (and
      (instance ?ORDER Ordering)
      (result ?ORDER ?SENTENCE)
      (instance ?SENTENCE Sentence))
   (instance ?SENTENCE Order))

(subclass SoundRecording Text)
(documentation SoundRecording "Any &%Text which is a recording of 
&%RadiatingSound.")

(=>
   (instance ?RECORD SoundRecording)
   (exists (?INFO ?SOUND)
      (and
         (containsInformation ?RECORD ?INFO)
         (realization ?SOUND ?INFO)
         (instance ?SOUND RadiatingSound))))

(subclass RecordAlbum SoundRecording)
(documentation RecordAlbum "A &%SoundRecording that has the form of a 
plastic or glass disk with continuous grooves that are transformed into 
sound by a record player.")

(subclass Label Text)
(documentation Label "A very brief &%Text that is attached to an &%Object 
and that indicates very specific information about the &%Object, e.g. its 
name, its &%monetaryValue, etc.")

(=>
   (instance ?LABEL Label)
   (exists (?OBJ)
      (and
         (instance ?OBJ SelfConnectedObject)
         (connected ?LABEL ?OBJ)
         (refers ?LABEL ?OBJ))))

(subclass Form Text)
(documentation Form "A page or set of pages containing spaces where 
information is to be entered by an &%Agent.")

(subclass TaxReturn Form)
(documentation TaxReturn "A &%Form that is used for calculating the amount 
of income tax owed in a given year.")

(=>
   (instance ?RETURN TaxReturn)
   (hasPurpose ?RETURN (exists (?CALCULATE ?AMOUNT ?TAX)
                          (and
                             (instance ?CALULATE Calculating)
                             (instrument ?CALCULATE ?RETURN)
                             (result ?CALCULATE ?AMOUNT)
                             (transactionAmount ?TAX ?AMOUNT)
                             (instance ?TAX Tax)))))

(subclass Application Form)
(documentation Application "A &%Form whose purpose is to obtain admission 
to an &%Organization or to receive assistance from an &%Organization.")

(=>
   (instance ?APP Application)
   (hasPurpose ?APP (exists (?JOIN ?GIVE) 
                       (or 
                          (instance ?JOIN JoiningAnOrganization)
                          (instance ?GIVE UnilateralGiving)))))

(subclass MotionPictureShot MotionPicture)
(documentation MotionPictureShot "A unit of action in a &%MotionPicture, a 
&%MotionPictureShot is a sequence of images which are captured by a single 
camera without interruption.")

(subclass BroadcastProgram Series)
(documentation BroadcastProgram "A &%Series of episodes that are broadcast 
on television or radio.")

(=>
   (instance ?PROGRAM BroadcastProgram)
   (exists (?BROADCAST)
      (and
         (instance ?BROADCAST Broadcasting)
         (patient ?BROADCAST ?PROGRAM))))

(subclass NewsProgram BroadcastProgram)
(documentation NewsProgram "A &%BroadcastProgram that is devoted to 
reporting the latest events in a city, region, nation or the world at 
large.")

(=>
   (and
      (subclass ?PROGRAM NewsProgram)
      (equal ?EPISODE (SeriesVolumeFn ?PROGRAM ?NUMBER)))
   (exists (?DISSEMINATE)
      (and
         (instance ?DISSEMINATE Disseminating)
         (patient ?DISSEMINATE ?EPISODE))))

(subclass Chapter Article)
(documentation Chapter "A numbered and/or titled section of a &%Book, which is 
typically indicated in a table of contents for the &%Book.")

(=>
   (instance ?CHAPTER Chapter)
   (exists (?BOOK)
      (and
         (instance ?BOOK Book)
         (subsumesContentInstance ?BOOK ?CHAPTER))))

(subrelation titles names)
(domain titles 1 SymbolicString)
(domainSubclass 2 Text)
(documentation titles "A predicate used to indicate the title of a &%Text.  
Note that the second argument type restriction is a subclass, rather than 
an instance, of &%Text.  Thus, the title Murder_on_the_Orient_Express 
corresponds to a large class of &%Books, and not just to a single copy of 
the book.")

(subclass FactualText Text)
(disjoint FactualText FictionalText)
(documentation FactualText "The class of &%Texts that purport to 
reveal facts about the world.  Such texts are often known as information 
or as non-fiction.  Note that something can be an instance of 
&%FactualText, even if it is wholly inaccurate.  Whether something 
is a &%FactualText is determined by the beliefs of the agent creating 
the text.")

(=>
   (and
      (instance ?TEXT FactualText)
      (authors ?AGENT ?TEXT)
      (subsumesContentInstance ?TEXT ?CONTENT)
      (instance ?CONTENT Formula))
   (believes ?AGENT ?CONTENT))

(subclass Report FactualText)
(subclass Report Article)
(documentation Report "A relatively brief &%FactualText, often it 
describes the findings of a study or experiment, or a series of 
observations.")

(subclass Newspaper Periodical)
(documentation Newspaper "A &%Periodical that is published on a daily or 
weekly basis, that contains &%Reports, and whose issues are printed on 
newsprint paper.")

(=>
   (instance ?PAPER Newspaper)
   (exists (?REPORT)
      (and
         (instance ?REPORT Report)
         (subsumesContentInstance ?PAPER ?REPORT))))

(=>
   (and
      (subclass ?PAPER Newspaper)
      (instance ?WEEK Week))
   (exists (?PUBLICATION)
      (and
         (instance ?PUBLICATION Publication)
         (temporalPart (WhenFn ?PUBLICATION) ?WEEK)
         (result ?PUBLICATION ?ISSUE)
         (instance ?ISSUE ?PAPER))))

(subclass Magazine Periodical)
(documentation Magazine "A &%Periodical that is softbound and printed on 
glossy paper.")
   
(subclass Letter FactualText)
(documentation Letter "A brief message which is intended to be mailed 
to a person or &%Organization.")

(subclass HistoricalAccount FactualText)
(documentation HistoricalAccount "A &%FactualAccount that describes 
significant events that occurred in the past.")

(=>
   (instance ?ACCOUNT HistoricalAccount)
   (exists (?EVENT)
      (and
         (represents ?ACCOUNT ?EVENT)
         (earlier (WhenFn ?EVENT) (WhenFn ?ACCOUNT)))))

(subclass FinancialText Report)
(documentation FinancialText "A &%Report about monetary figures.  This 
class covers &%FinancialBills, balance sheets, account statements, etc.")

(subclass FinancialBill FinancialText)
(documentation FinancialBill "A brief statement that the stated amount 
of money is owed by the person to whom the bill is delivered.")

(subclass ReferenceBook Book)
(subclass ReferenceBook FactualText)
(documentation ReferenceBook "A &%Book which is not intended to be read 
from cover to cover, but which is meant to be consulted to answer specific 
factual questions, e.g. about the meaning of a word, the location of a 
country, etc.")

(subclass Dictionary ReferenceBook)
(documentation Dictionary "A &%ReferenceBook which specifies the meanings 
of the &%Words of a &%Language.")

(subclass NarrativeText Text)
(partition NarrativeText FictionalText HistoricalAccount)
(documentation NarrativeText "Any &%Text that tells a story, whether true 
or false.")

(subclass FictionalText Text)
(documentation FictionalText "The class of &%Texts that purport to 
be largely a product of the author's imagination, i.e. the author 
does not believe that most of the content conveyed by the text is 
an accurate depiction of the real world.  Note that something can 
be an instance of &%FictionalText, even if it is completely true.  
Whether something is a &%FictionalText is determined by the beliefs 
of the agent creating the text.")

(=>
   (and
      (instance ?TEXT FactualText)
      (authors ?AGENT ?TEXT))
   (exists (?CONTENT)
      (and
         (subsumesContentInstance ?TEXT ?CONTENT)
         (instance ?CONTENT Formula)
         (not (believes ?AGENT ?CONTENT)))))

(subclass ShortStory FictionalText)
(subclass ShortStory Article)
(documentation ShortStory "A brief work of fiction, often bound with other 
short stories in a &%Book or &%Periodical.")

(subclass Novel FictionalText)
(subclass Novel Book)
(documentation Novel "A &%FictionalText that is larger than a &%ShortStory 
and that is bound independently (i.e. it is a &%Book).")

(subclass DramaticPlay FictionalText)
(documentation DramaticPlay "A &%FictionalText that is intended to be realized 
as &%DramaticActing.")

(=>
   (instance ?PLAY DramaticPlay)
   (hasPurpose ?PLAY (exists (?ACT ?PROP)
                        (and
                           (instance ?ACT DramaticActing)
                           (containsInformation ?PLAY ?PROP)
                           (realization ?ACT ?PROP)))))

(subclass Opera DramaticPlay)
(documentation Opera "A &%DramaticPlay that is set to &%Music.")

(=>
   (and
      (instance ?OPERA Opera)
      (realization ?ACT ?OPERA))
   (instance ?ACT Music))

(instance EnglishLanguage NaturalLanguage)
(documentation EnglishLanguage "A Germanic language that incorporates many roots 
from the Romance languages.  It is the official language of the &%UnitedStates, 
the &%UnitedKingdomOfGreatBritainAndNorthernIreland, and many other countries.")

(subclass Industry Collection)
(documentation Industry "The class of &%Collections of &%Corporations 
which are in the same line of business.")

(=>
   (instance ?INDUSTRY Industry)
   (=>
      (and
         (member ?MEMB1 ?INDUSTRY)
         (member ?MEMB2 ?INDUSTRY))
      (exists (?CLASS)
         (and
            (subclass ?CLASS Corporation)
            (immediateInstance ?MEMB1 ?CLASS)
            (immediateInstance ?MEMB2 ?CLASS)))))

(subclass Steps StationaryArtifact)
(documentation Steps "A &%StationaryArtifact which allows one to climb, step 
by step, from one level to another.")

(=>
   (instance ?STEPS Steps)
   (and
      (capability MotionUpward instrument ?STEPS)
      (capability MotionDownward instrument ?STEPS)))

(=>
   (and
      (instance ?LEVEL1 BuildingLevel)
      (instance ?LEVEL2 BuildingLevel)
      (instance ?BUILDING Building)
      (part ?LEVEL1 ?BUILDING)
      (part ?LEVEL2 ?BUILDING))
   (exists (?STEPS)
      (and
         (instance ?STEPS Steps)
         (connects ?STEPS ?LEVEL1 ?LEVEL2))))
   
(subclass Door Artifact)
(documentation Door "An &%Artifact that restricts and permits access to a 
&%StationaryArtifact (e.g. &%Building or &%Room) depending on whether the 
&%Door is open or locked.  Note that the class &%Door also covers gates, 
because it is not possible to define objective criteria that reliably 
distinguish doors from gates.")

(=>
   (instance ?DOOR Door)
   (exists (?ARTIFACT)
      (and
         (part ?DOOR ?WAY)
         (instance ?WAY Doorway))))

(subclass Doorway StationaryArtifact)
(documentation Doorway "A &%StationaryArtifact consisting of a frame that 
holds a &%Door.")

(=>
   (instance ?WAY Doorway)
   (exists (?ARTIFACT)
      (and
         (part ?WAY ?ARTIFACT)
         (or
            (instance ?ARTIFACT Building)
            (instance ?ARTIFACT Room)))))

(subclass Window StationaryArtifact)
(documentation Window "A &%StationaryArtifact composed of transparent glass 
or plastic that admits light (and possibly air) into a &%Room or &%Building.")

(=>
   (instance ?DOOR Door)
   (exists (?ARTIFACT)
      (and
         (part ?DOOR ?ARTIFACT)
         (or
            (instance ?ARTIFACT Building)
            (instance ?ARTIFACT Room)))))

(subclass Wall StationaryArtifact)
(documentation Wall "A &%StationaryArtifact that supports a &%Building or 
partitions it into &%Rooms.")

(=>
   (instance ?WALL Wall)
   (exists (?ARTIFACT)
      (and
         (part ?WALL ?ARTIFACT)
         (or
            (instance ?ARTIFACT Building)
            (instance ?ARTIFACT Room)))))

(subclass Floor StationaryArtifact)
(documentation Floor "A &%StationaryArtifact that is the bottom surface 
of a &%Room.")

(=>
   (instance ?FLOOR Floor)
   (exists (?ARTIFACT)
      (and
         (part ?FLOOR ?ARTIFACT)
         (instance ?ARTIFACT Room))))

(subclass Roof StationaryArtifact)
(documentation Roof "The &%top of a &%Building.")

(=>
   (instance ?ROOF Roof)
   (exists (?BUILDING)
      (and
         (instance ?BUILDING Building)
         (top ?ROOF ?BUILDING))))

(subclass BuildingLevel StationaryArtifact)
(documentation BuildingLevel "The story or level of a building, e.g. the &%Basement, 
the &%Attic, the ground level, the fourteenth floor, etc.")

(=>
   (instance ?LEVEL BuildingLevel)
   (exists (?BUILDING)
      (and
         (instance ?BUILDING Building)
         (part ?LEVEL ?BUILDING))))

(subclass Basement BuildingLevel)
(documentation Basement "A &%BuildingLevel which satisfies two conditions, viz. it is 
lower than all of the other &%BuildingLevels in the same &%Building and it is below 
ground level.")

(=>
   (instance ?BASEMENT Basement)
   (not (exists (?LEVEL ?BUILDING)
      (and
         (instance ?LEVEL BuildingLevel)
         (instance ?BUILDING Building)
         (part ?LEVEL ?BUILDING)
         (part ?BASEMENT ?BUILDING)
         (not (equal ?LEVEL ?BASEMENT))
         (orientation ?LEVEL ?BASEMENT Below)))))

(subclass Garage StationaryArtifact)
(documentation Garage "A &%Building or part of a &%Building which is intended to house 
one or more &%Automobiles.")

(=>
   (instance ?GARAGE Garage)
   (hasPurpose (exists (?AUTO)
                  (and
                     (instance ?AUTO Automobile)
                     (contains ?GARAGE ?Automobile)))))

(=>
   (instance ?GARAGE Garage)
   (exists (?BUILDING)
      (and
         (instance ?BUILDING Building)
         (part ?GARAGE ?BUILDING))))

(subclass Kitchen Room)
(documentation Kitchen "A &%Room intended for &%Cooking.")

(=>
   (instance ?ROOM Kitchen)
   (hasPurpose ?ROOM (exists (?COOK)
                        (and
                           (instance ?COOK Cooking)
                           (located ?COOK ?ROOM)))))

(subclass Bedroom Room)
(documentation Bedroom "A &%Room intended primarily for sleeping.")

(=>
   (instance ?ROOM Bedroom)
   (exists (?BED)
      (and
         (instance ?BED Bed)
         (located ?BED ?ROOM))))

(subclass Porch StationaryArtifact)
(documentation Porch "A &%StationaryArtifact which is &%connected to a 
&%Building and which provides some shelter in entering or leaving the 
&%Building or in sitting outside.")

(=>
   (instance ?PORCH Porch)
   (exists (?BUILDING)
      (and
         (instance ?BUILDING Building)
         (connected ?PORCH ?BUILDING)))) 

(subclass Sidewalk StationaryArtifact)
(documentation Sidewalk "A prepared path for pedestrians alongside a &%Roadway.")

(=>
   (instance ?SIDE Sidewalk)
   (hasPurpose ?SIDE (exists (?WALK)
                        (and
                           (instance ?WALK Walking)
                           (path ?WALK ?SIDE)))))

(=>
   (instance ?SIDE Sidewalk)
   (exists (?ROAD)
      (and
         (instance ?ROAD Roadway)
         (orientation ?SIDE ?ROAD Near))))

(subclass Fence StationaryArtifact)
(documentation Fence "A &%StationaryArtifact that serves to demarcate or
to prevent access to or from the area that the &%Fence surrounds.")

(subclass SportsGround StationaryArtifact)
(documentation SportsGround "A specially designated and maintained area 
where &%Sports are played.")

(=>
   (instance ?GROUND SportsGround)
   (hasPurpose ?GROUND (exists (?SPORT) 
                          (and
                             (instance ?SPORT Sport)
                             (located ?SPORT ?GROUND)))))

(subclass IndustrialPlant StationaryArtifact)
(documentation IndustrialPlant "A &%Building or part of a &%Building or group 
of &%Buildings whose purpose is to &%Manufacture something.")

(=>
   (instance ?PLANT IndustrialPlant)
   (or
      (instance ?PLANT Building)
      (exists (?BUILDING)
         (and
            (instance ?BUILDING Building)
            (located ?BUILDING ?PLANT)))))

(=>
   (instance ?PLANT IndustrialPlant)
   (hasPurpose ?PLANT (exists (?MANUFACTURE)
                         (and
                            (instance ?MANUFACTURE Manufacture)
                            (located ?MANUFACTURE ?PLANT)))))

(subclass Laboratory StationaryArtifact)
(documentation Laboratory "A &%Building, &%Room or suite of &%Rooms where 
scientific research, i.e. &%Experimenting, is conducted.")

(=>
   (instance ?LAB Laboratory)
   (exists (?EXPERIMENT)
      (and
         (instance ?EXPERIMENT Experimenting)
         (located ?EXPERIMENT ?LAB))))

(subclass Farm StationaryArtifact)
(documentation Farm "A &%StationaryArtifact consisting of a cultivated 
&%LandArea and &%Buildings for maintaining the land and/or the &%Animals 
on the land.") 

(subclass Barn Building)
(disjoint Barn ResidentialBuilding)
(documentation Barn "A &%Building on a &%Farm that is used for keeping 
&%DomesticAnimals, &%Fodder or harvested crops.")

(=>
   (instance ?BARN Barn)
   (exists (?FARM)
      (and
         (instance ?FARM Farm)
         (located ?BARN ?FARM))))

(subclass PerformanceStage StationaryArtifact)
(documentation PerformanceStage "A large platform for theatrical plays, 
lectures, dances, music recitals, etc, which can be observed by an audience.")

(=>
   (instance ?STAGE PerformanceStage)
   (hasPurpose ?STAGE (exists (?PERF)
                         (and
                            (instance ?PERF Demonstrating)
                            (located ?PERF ?STAGE)))))

(=>
   (instance ?STAGE PerformanceStage)
   (exists (?AUDITORIUM)
      (and
         (instance ?AUDITORIUM Auditorium)
         (part ?STAGE ?AUDITORIUM))))

(subclass RadiatingNuclear Radiating)
(documentation RadiatingNuclear "Releasing atomic energy, i.e. energy from 
a nuclear reaction.")

(subclass Magnetism RadiatingElectromagnetic)
(documentation Magnetism "Any instance of &%RadiatingElectromagnetic which 
involves the attraction of &%Iron.")

(subclass RadioEmission RadiatingElectromagnetic)
(documentation RadioEmission "Any instance of &%RadiatingElectromagnetic 
where the waves have a wavelength between 5 milimeters and 30,000 meters.")

(subclass Broadcasting Disseminating)
(subclass Broadcasting RadioEmission)
(documentation Broadcasting "&%Disseminating information by using a 
&%CommunicationDevice that radiates &%RadioEmissions.")

(=>
   (instance ?BROADCAST Broadcasting)
   (exists (?DEVICE)
      (and
         (instance ?DEVICE CommunicationDevice)
         (instrument ?BROADCAST ?DEVICE))))

(subclass RadioBroadcasting Broadcasting)
(documentation RadioBraodcasting "Any instance of &%Broadcasting which is 
intended to be received by a &%Radio.")

(=>
	(instance ?RADIO Radio)
      (capability RadioBroadcasting patient ?RADIO))

(subclass TelevisionBroadcasting Broadcasting)
(documentation TelevisionBraodcasting "Any instance of &%Broadcasting which 
is intended to be received by a &%Television.")

(=>
	(instance ?TELEVISION Television)
      (capability TelevisionBroadcasting patient ?TELEVISION))

(subclass Antenna CommunicationDevice)
(documentation Antenna "A &%CommunicationDevice which enables or improves 
the reception of &%RadioEmissions by another &%CommunicationDevice (the 
radio or television receiver).")

(=>
   (instance ?ANTENNA Antenna)
   (capability RadioEmission instrument ?ANTENNA))

(subclass Explosion Radiating)
(documentation Explosion "Any sudden and massive release of energy that is 
the product of a chemical reaction.")

(=>
   (instance ?EXPLOSION Explosion)
   (exists (?PROC)
      (and
         (instance ?PROC ChemicalProcess)
         (causes ?PROC ?EXPLOSION))))

(=>
   (instance ?EXPLOSION Explosion)
   (capability Damaging instrument ?EXPLOSION))

(subclass Demonstrating Disseminating)
(documentation Demonstrating "Exhibiting something or a range of things 
before the public in a particular location.  This would cover software 
demos, theatrical plays, lectures, dance and music recitals, museum 
exhibitions, etc.")

(=>
   (instance ?DEMO Demonstrating)
   (exists (?PERSON)
      (attends ?DEMO ?PERSON)))

(subrelation attends experiencer)
(domain attends 1 Demonstrating)
(domain attends 2 Human)
(documentation attends "(&%attends ?DEMO ?PERSON) means that ?PERSON attends, 
i.e. is a member of the audience, of the performance event ?DEMO.")

(subclass Performance Demonstrating)
(documentation Performance "A &%Demonstrating which includes &%DramaticActing 
and/or &%Music and which is intended to entertain the audience.")

(=>
   (instance ?PERFORMANCE Performance)
   (exists (?SUB)
      (and
         (subProcess ?SUB ?PERFORMANCE)
         (or
            (instance ?SUB DramaticActing)
            (instance ?SUB Music)))))

(=>
   (instance ?PERFORMANCE Performance)
   (exists (?STAGE)
      (and
         (instance ?STAGE PerformanceStage)
         (located ?PERFORMANCE ?STAGE))))

(subclass Lecture Demonstrating)
(subclass Lecture Speaking)
(documentation Lecture "Any instance of &%Speaking which is done before an 
assembled audience.")

(subclass Sermon Lecture)
(documentation Sermon "A &%Lecture that is part of a &%ReligiousService.")

(=>
   (instance ?SERMON Sermon)
   (exists (?SERVICE)
      (and
         (instance ?SERVICE ReligiousService)
         (subProcess ?SERMON ?SERVICE))))

(subclass DramaticActing Pretending)
(documentation DramaticActing "Playing a character in a &%Performance, 
&%MotionPicture, etc.") 

(subclass DramaticCast GroupOfPeople)
(documentation DramaticCast "The &%GroupOfPeople who engage in &%DramaticActing 
as part of the realization of a single &%FictionalText.")

(=>
   (instance ?CAST DramaticCast)
   (exists (?TEXT ?PROP ?PROC)
      (and
         (instance ?TEXT FictionalText)
         (containsInformation ?TEXT ?PROP)
         (realization ?PROC ?PROP)
         (forall (?MEMBER)
            (=>
               (member ?MEMBER ?CAST)
               (exists (?SUB)
                  (and
                     (instance ?SUB DramaticActing)
                     (agent ?SUB ?MEMBER)
                     (subProcess ?SUB ?PROC))))))))

(subclass SocialParty Meeting)
(subclass SocialParty RecreationOrExercise)
(documentation SocialParty "Any &%Meeting where the intent is primarily 
to socialize and be entertained.")

(subclass FormalMeeting Meeting)
(disjoint FormalMeeting SocialParty)
(documentation FormalMeeting "Any &%Meeting which is the result of &%Planning 
and whose purpose is not socializing.")

(=>
   (instance ?MEETING FormalMeeting)
   (exists (?PLANNING)
      (and
         (instance ?PLANNING Planning)
         (result ?PLANNING ?MEETING)
         (earlier (WhenFn ?PLANNING) (WhenFn ?MEETING)))))

(subclass Resolution Deciding)
(documentation Resolution "Any instance of &%Deciding which is conducted at a 
&%FormalMeeting and where the &%agent is an &%Organization.")

(=>
   (instance ?RESOLUTION Resolution)
   (exists (?AGENT ?MEETING)
      (and
         (instance ?AGENT Organization)
         (agent ?RESOLUTION ?AGENT)
         (subProcess ?RESOLUTION ?MEETING)
         (instance ?MEETING FormalMeeting))))

(subclass Smoking RecreationOrExercise)
(documentation Smoking "Inhaling and exhaling &%Smoke produced by a 
&%CigarOrCigarette.")

(=>
   (instance ?SMOKING Smoking)
   (exists (?BURN ?CIGAR ?BREATHE)
      (and
         (subProcess ?BURN ?SMOKING)
         (instance ?BURN Combustion)
         (resource ?BURN ?CIGAR)
         (instance ?CIGAR CigarOrCigarette)
         (result ?BURN ?SMOKE)
         (patient ?BREATHE ?SMOKE)
         (instance ?BREATHE Breathing)
         (subProcess ?BREATHE ?SMOKING))))
   
(instance Jury GroupOfPeople)
(documentation Jury "A &%GroupOfPeople who are given the duty of rendering a 
verdict with respect to a &%LegalAction.")

(=>
   (instance ?JURY Jury)
   (holdsRight (exists (?DECISION)
                  (and
                     (instance ?DECISION LegalDecision)
                     (agent ?DECISION ?JURY))) ?JURY))

(subclass LegalCharge LegalAction)
(documentation LegalCharge "Any &%LegalAction of which a &%Government is 
the &%agent.")

(=>
   (instance ?CHARGE LegalCharge)
   (exists (?GOV)
      (and
         (instance ?GOV Government)
         (agent ?CHARGE ?GOV))))
   
(subclass JudicialProcess PoliticalProcess)
(documentation JudicialProcess "Any legal proceeding which is conducted 
by a &%JudicialOrganization.  Note that there is an important difference 
between the concepts &%LegalAction and &%JudicialProcess.  The former 
refers to legal claims that are brought by a plaintiff, e.g. law suits, 
while the second refers to trials and other sorts of judicial hearings 
where the merits of a &%LegalAction are decided.")

(=>
   (and
      (instance ?PROCESS JudicialProcess)
      (agent ?PROCESS ?ORG)
      (instance ?ORG Organization))
   (instance ?ORG JudicialOrganization))

(subclass Testifying Stating)
(documentation Testifying "Giving testimony as part of a &%JudicialProcess.")

(=>
   (instance ?TESTIFY Testifying)
   (exists (?PROC)
      (and
         (instance ?PROC JudicialProcess)
         (subProcess ?TESTIFY ?PROC))))

(subclass CourtRoom Room)
(documentation CourtRoom "Any &%Room whose purpose is to realize 
&%JudicialProcesses.")

(=>
   (instance ?PROCESS JudicialProcess)
   (exists (?ROOM)
      (and
         (instance ?ROOM CourtRoom)
         (located ?PROCESS ?ROOM))))

(subclass Deciding Selecting)
(documentation Deciding "The subclass of &%Selecting where the &%agent 
opts for one course of action out of a set of multiple possibilities.")

(=>
   (and
      (instance ?DECIDE Deciding)
      (agent ?DECIDE ?AGENT)
      (patient ?DECIDE ?PROCESS))
   (and
      (instance ?PROCESS IntentionalProcess)
      (agent ?PROCESS ?AGENT)))

(subclass LegalDecision Deciding)
(subclass LegalDecision Declaring)
(documentation LegalDecision "A decision issued by a court with respect to 
a &%LegalAction.")

(=>
   (instance ?DECISION LegalDecision)
   (exists (?ACTION)
      (and
         (instance ?ACTION LegalAction)
         (refers ?DECISION ?ACTION))))

(=>
   (instance ?DECISION LegalDecision)
   (exists (?PROCESS)
      (and
         (instance ?PROCESS JudicialProcess)
         (subProcess ?DECISION ?PROCESS))))

(subclass LegalOpinion Argument)
(documentation LegalOpinion "An &%Argument that explains the reasoning behind a 
&%LegalDecision.")

(=>
   (instance ?OPINION LegalOpinion)
   (exists (?DECISION ?TEXT ?PROPOSITION)
      (and
         (instance ?DECISION LegalDecision)
         (result ?DECISION ?TEXT)
         (containsInformation ?TEXT ?PROPOSITION)
         (conclusion ?PROPOSITION ?OPINION))))

(subclass LegalAward LegalDecision)
(documentation LegalAward "Any &%LegalDecision which gives to the plaintiff of 
the corresponding &%LegalAction some amount of monetary compensation.")

(=>
   (and
      (instance ?AWARD LegalAward)
      (refers ?AWARD ?ACTION)
      (instance ?ACTION LegalAction)
      (agent ?ACTION ?PLAINTIFF))
   (confersRight (exists (?GET ?OBJ ?VALUE)
                    (and
                       (instance ?GET Getting)
                       (experiencer ?GET ?PLAINTIFF)
                       (patient ?GET ?OBJ)
                       (monetaryValue ?OBJ ?VALUE))) ?AWARD ?PLAINTIFF))

(subclass LegalConviction LegalDecision)
(documentation LegalConviction "Any &%LegalDecision where the defendant is found 
guilty of the crime for which the corresponding trial was held.")

(subclass LegalAquittal LegalDecision)
(documentation LegalAquittal "Any &%LegalDecision where the defendant is found 
not to be guilty of the crime for which the corresponding trial was held.")

(subclass GameCall Deciding)
(subclass GameCall Declaring)
(documentation GameCall "A decision issued by an official referee in a 
&%Game.  Note that &%GameCall is a subclass of &%Declaring, because these 
decisions have binding, normative force.")

(=>
   (instance ?CALL GameCall)
   (exists (?GAME)
      (and
         (instance ?GAME Game)
         (refers ?CALL ?GAME))))

(subclass BeginningOperations OrganizationalProcess)
(disjoint BeginningOperations CeasingOperations)
(documentation BeginningOperations "The process of an &%Organization 
commencing operations.  In the case of a &%Corporation, this would be 
the process of going into business.")

(=>
   (and
      (instance ?OP BeginningOperations)
      (instance ?ORG Organization)
      (agent ?OP ?ORG))
   (starts ?OP (WhenFn ?ORG)))

(subclass CeasingOperations OrganizationalProcess)
(documentation CeasingOperations "The process of an &%Organization 
ceasing operations, i.e. its folding or going out of business in 
some other fashion.")

(=>
   (and
      (instance ?OP CeasingOperations)
      (instance ?ORG Organization)
      (agent ?OP ?ORG))
   (finishes ?OP (WhenFn ?ORG)))

(subclass FallingAsleep PsychologicalProcess)
(disjoint FallingAsleep WakingUp)
(documentation FallingAsleep "The process of transitioning from a state of 
being &%Awake to a state of being &%Asleep.")

(=>
   (and
      (instance ?FALL FallingAsleep)
      (experiencer ?FALL ?AGENT))
   (exists (?START ?FINISH)
      (and
         (starts ?START (WhenFn ?FALL))
         (finishes ?FINISH (WhenFn ?FALL))
         (holdsDuring ?START (attribute ?AGENT Awake))
         (holdsDuring ?FINISH (attribute ?AGENT Asleep))))) 

(subclass WakingUp PsychologicalProcess)
(documentation WakingUp "The process of transitioning from a state of being 
&%Asleep to a state of being &%Awake.")

(=>
   (and
      (instance ?WAKE WakingUp)
      (experiencer ?WAKE ?AGENT))
   (exists (?START ?FINISH)
      (and
         (starts ?START (WhenFn ?WAKE))
         (finishes ?FINISH (WhenFn ?WAKE))
         (holdsDuring ?START (attribute ?AGENT Asleep))
         (holdsDuring ?FINISH (attribute ?AGENT Awake))))) 

(subclass AcademicDegree Certificate)
(documentation AcademicDegree "A &%Certificate that demonstrates that the holder 
of the &%Certificate has successfully completed an &%EducationalProgram.")

(=>
   (and
      (instance ?DEGREE AcademicDegree)
      (possesses ?AGENT ?DEGREE))
   (exists (?PROGRAM ?STUDY)
      (and
         (instance ?PROGRAM EducationalProgram)
         (realization ?STUDY ?PROGRAM)
         (experiencer ?STUDY ?AGENT))))

(subclass EducationalProgram Plan)
(documentation EducationalProgram "A series of &%EducationalCourses that must 
be completed to receive an &%AcademicDegree or other &%Certificate.  Note that 
an &%EducationalProgram, unlike an &%EducationalCourse, may be realized at more 
than one &%EducationalOrganization.")

(=>
   (instance ?PROGRAM EducationalProgram)
   (exists (?COURSE1 ?COURSE2)
      (and
         (instance ?COURSE1 EducationalCourse)
         (instance ?COURSE2 EducationalCourse)
         (not (equal ?COURSE1 ?COURSE2))
         (subPlan ?COURSE1 ?PROGRAM)
         (subPlan ?COURSE2 ?PROGRAM))))

(subclass EducationalCourse EducationalProgram)
(documentation EducationalCourse "A schedule of class meetings offered by an 
&%EducationalOrganization.")

(=>
   (instance ?COURSE EducationalCourse)
   (exists (?CLASS)
      (and
         (realization ?CLASS ?COURSE)
         (instance ?CLASS EducationalProcess)
         (located ?CLASS ?ORG)
         (instance ?ORG EducationalOrganization))))  

(subclass School EducationalOrganization)
(documentation School "An &%EducationalOrganization with a curriculum, 
teachers, and students.  Most &%Schools are housed in a &%Building 
dedicated to the &%EducationalOrganization.")

(subclass HighSchool School)
(documentation HighSchool "A &%School which admits &%students who have 
graduated from a middle school and which normally covers the ninth through 
twelfth grades.  A &%HighSchool confers a high school diploma.")

(=>
   (and
      (instance ?ENTER Matriculation)
      (agent ?ENTER ?COLLEGE)
      (patient ?ENTER ?STUDENT)
      (instance ?COLLEGE College))
   (exists (?GRAD ?SCHOOL)
      (and
         (instance ?GRAD Graduation)
         (agent ?GRAD ?SCHOOL)
         (patient ?GRAD ?STUDENT)
         (instance ?SCHOOL HighSchool)
         (earlier (WhenFn ?GRAD) (WhenFn ?ENTER)))))

(subclass PostSecondarySchool School)
(partition PostSecondarySchool JuniorCollege College University)
(documentation PostSecondarySchool "The class of &%Schools that offer 
an associate's degree or a bachelor's degree.")

(subclass JuniorCollege PostSecondarySchool)
(documentation JuniorCollege "The class of &%PostSecondarySchools that 
offer an associate's degree and do not offer a bachelor's degree.")
   
(subclass College PostSecondarySchool)
(documentation College "A &%School which admits &%students who have 
graduated from high school and which confers a bachelor's degree, 
normally requiring four years of study.  Note that a &%College does 
not confer any graduate degrees.  For institutions that confer both 
bachelor's and graduate degrees, the concept &%University should be 
used.") 

(subclass University PostSecondarySchool)
(documentation University "A &%School which admits &%students that 
have graduated from high school (known as undergraduate students) and 
&%students who have received a bachelor's degree (known as graduate 
students).  A &%University confers both bachelor's and graduate 
degrees.")

(subrelation student member)
(domain student 1 EducationalOrganization)
(domain student 2 CognitiveAgent)
(documentation student "(&%student ?AGENT ?ORG) means that ?AGENT is enrolled 
in the &%EducationalOrganization ?ORG.")

(=>
   (student ?ORG ?AGENT)
   (exists (?PROCESS)
      (and
         (instance ?PROCESS EducationalProcess)
	   (located ?PROCESS ?ORG)
         (destination ?PROCESS ?AGENT))))

(subrelation teacher member)
(domain teacher 1 EducationalOrganization)
(domain teacher 2 CognitiveAgent)
(documentation teacher "(&%teacher ?AGENT ?ORG) means that ?AGENT is a 
teacher at the &%EducationalOrganization ?ORG.")

(=>
   (teacher ?ORG ?AGENT)
   (exists (?PROCESS)
      (and
         (instance ?PROCESS EducationalProcess)
	   (located ?PROCESS ?ORG)
         (agent ?PROCESS ?AGENT))))

(subclass InsurancePolicy Certificate)
(documentation InsurancePolicy "A &%Certificate that states the terms of an 
insurance contract.")

(subclass Telephoning Speaking)
(documentation Telephoning "Any instance of &%Speaking where the 
&%instrument of &%Communication is a &%Telephone.")

(=>
   (instance ?TEL Telephoning)
   (exists (?DEVICE)
      (and
         (instance ?DEVICE Telephone)
         (instrument ?TEL ?DEVICE))))

(subclass EconomicRelation BinaryRelation)
(documentation EconomicRelation "A class of &%Relations which are used 
to specify various economic measures, e.g. the GDP, the consumer price 
index, and the trade deficit.")

(=>
   (and
      (instance ?REL EconomicRelation)
      (domain ?REL 1 ?CLASS))
   (subclass ?CLASS GeopoliticalArea))

(subclass LaborStriking OrganizationalProcess)
(documentation LaborStriking "A &%Process in which some or all of the 
employees of an &%Organization refuse to work until their pay is 
increased or their working conditions are improved in some respect.")

(=>
   (and
      (instance ?STRIKE LaborStriking)
      (agent ?STRIKE ?PERSON)
      (instance ?PERSON Human)
      (patient ?STRIKE ?ORG)
      (instance ?ORG Organization))
   (employs ?ORG ?PERSON))

(subclass Retiring TerminatingEmployment)
(documentation Retiring "Voluntarily leaving employment at the end of one's 
career in order to take time off in the later years of one's life.")

(instance monetaryWage QuaternaryPredicate)
(domain monetaryWage 1 Organization)
(domain monetaryWage 2 Human)
(domain monetaryWage 3 TimeDuration)
(domain monetaryWage 4 CurrencyMeasure)
(documentation monetaryWage "(&%monetaryWage ?ORG ?PERSON ?TIME ?MONEY) means 
that the &%Organization employs ?PERSON and pays him/her the amount of money 
?MONEY per &%TimeDuration ?TIME.") 

(=>
   (monetaryWage ?ORG ?PERSON ?TIME ?MONEY)
   (employs ?ORG ?PERSON))

(subclass GameArtifact Artifact)
(disjointDecomposition GameArtifact GameBoard GamePiece)
(documentation GameArtifact "An &%Artifact that is designed to be used as an 
&%instrument in a &%Game.")

(=>
   (instance ?ARTIFACT GameArtifact)
   (exists (?GAME)
      (and
         (subclass ?GAME Game)
         (capability ?GAME instrument ?ARTIFACT))))

(subclass GameBoard GameArtifact)
(documentation GameBoard "A &%GameArtifact which is intended to be used as the 
game area for playing a particular game.")

(=>
   (instance ?BOARD GameBoard)
   (hasPurpose ?BOARD (exists (?GAME)
                         (and
                            (instance ?GAME Game)
                            (located ?GAME ?BOARD)))))

(subclass GamePiece GameArtifact)
(documentation GamePiece "A &%GameArtifact that is moved around in a game 
area.")

(subclass Ball GamePiece)
(documentation Ball "Any &%GamePiece which has the shape of a sphere.")

(subclass GameShot Impelling)
(subclass GameShot Maneuver)
(documentation GameShot "Impelling a &%GamePiece for the purpose of 
scoring a point or preventing the opposing player or team from scoring 
a point.  Note that this class does not cover shots which are disallowed 
by the rules of the game.")

(=>
   (instance ?SHOT GameShot)
   (exists (?PIECE)
      (and
         (instance ?PIECE GamePiece)
         (patient ?SHOT ?PIECE))))

(=>
   (instance ?SHOT GameShot)
   (exists (?GAME)
      (and
         (instance ?GAME Game)
         (subProcess ?SHOT ?GAME))))

(=>
   (instance ?SHOT GameShot)
   (hasPurpose ?SHOT (instance ?SHOT Score)))

(subclass Score GameShot)
(documentation Score "A successful attempt to score a point in a &%Game.")

(subclass GameGoal GameArtifact)
(documentation GameGoal "The location where a &%GameShot must end up if it 
is to constitute a &%Score.")

(=>
   (and
      (instance ?GOAL GameGoal)
      (instrument ?GAME ?GOAL)
      (instance ?GAME Game)
      (subProcess ?SCORE ?GAME)
      (instance ?SCORE Score))
   (exists (?PIECE ?TIME)
      (and
         (instance ?PIECE GamePiece)
         (patient ?SCORE ?PIECE)
         (temporalPart ?TIME (WhenFn ?SCORE))
         (holdsDuring ?TIME (located ?PIECE ?GOAL)))))

(subclass BaseballManeuver Maneuver)
(documentation BaseballManeuver "Any &%Maneuver in &%Baseball.")

(=>
   (instance ?MOVE BaseballManeuver)
   (exists (?BASEBALL)
      (and
         (instance ?BASEBALL Baseball)
         (subProcess ?MOVE ?BASEBALL))))  

(subclass BaseballWalk BaseballManeuver)
(documentation BaseballWalk "Taking first base after four balls have been 
called by the umpire.")

(subclass BaseballHit GameShot)
(subclass BaseballHit BaseballManeuver)
(documentation BaseballHit "Any base hit in &%Baseball.")

(subclass BaseballRun BaseballHit)
(subclass BaseballRun Score)
(documentation BaseballRun "A &%Score in &%Baseball.  It consists of hitting 
the ball with the bat and then touching all four bases of the diamond before 
being tagged with the ball by a member of the opposite team.")

(subclass HomeRun BaseballRun)
(documentation HomeRun "A &%BaseballRun where the batter touches home base 
during his turn at bat.")

(subclass Throwing Impelling)
(subclass Throwing BodyMotion)
(documentation Throwing "Any instance of &%Impelling where the &%instrument is 
an &%Arm.")

(=>
   (instance ?THROW Throwing)
   (exists (?ARM)
      (and
         (instance ?ARM Arm)
         (instrument ?THROW ?ARM))))

(subclass Pitching Throwing)
(subclass Pitching GameShot)
(documentation Pitching "&%Throwing a &%Ball to the batter in a game of 
&%Baseball or softball.")

(=>
   (and
      (instance ?PITCH Pitching)
      (patient ?PITCH ?BALL))
   (instance ?BALL Ball))

(subclass Catching Touching)
(subclass Catching Maneuver)
(documentation Catching "Any &%Maneuver in a &%Game which results in a 
situation where the &%agent &%grasps the &%Ball.")

(=>
   (and
      (instance ?CATCH Catching) 
      (patient ?CATCH ?BALL))
   (instance ?CATCH Ball))

(=>
   (and
      (instance ?CATCH Catching)
      (agent ?CATCH ?AGENT)
      (patient ?CATCH ?BALL))
   (holdsDuring (EndFn (WhenFn ?CATCH)) (grasps ?AGENT ?BALL)))
         
(subclass Stretching Motion)
(documentation Stretching "Moving two sides of an object in opposite 
directions so that the object becomes both longer and thinner.")

(subclass Accelerating Translocation)
(subclass Accelerating Increasing)
(documentation Accelerating "Increasing the speed with which someone 
or something is moving.")

(=>
   (and
      (instance ?ACCELERATE Accelerating)
      (agent ?ACCELERATE ?AGENT))
   (exists (?LENGTH1 ?LENGTH2 ?TIME1 ?TIME2)
      (and
         (holdsDuring (BeginFn (WhenFn ?ACCELERATE)) (measure ?AGENT (SpeedFn ?LENGTH1 ?TIME1)))
         (holdsDuring (EndFn (WhenFn ?ACCELERATE)) (measure ?AGENT (SpeedFn ?LENGTH2 ?TIME2)))
         (or
            (greaterThan ?LENGTH2 ?LENGTH1)
            (greaterThan ?TIME2 ?TIME1))))) 

(subclass Flying Translocation)
(documentation Flying "Any instance of &%Translocation which is through an 
&%AtmosphericRegion and which is powered by the wings of an &%Animal.")

(=>
   (instance ?FLY Flying)
   (exists (?REGION)
      (and
         (instance ?REGION AtmosphericRegion)
         (located ?FLY ?REGION))))

(subclass TakingOff Translocation)
(documentation TakingOff "Any instance of &%Translocation which starts on something other 
than an &%AtmosphericRegion and which has an instance of &%Flying as a &%subProcess.")

(=>
   (instance ?OFF TakingOff)
   (exists (?REGION ?FLYING)
      (and
         (not (instance ?REGION AtmosphericRegion))
         (holdsDuring (BeginFn (WhenFn ?OFF)) (located ?OFF ?REGION))
         (subProcess ?FLYING ?OFF)
         (instance ?FLYING Flying))))

(subclass Landing Translocation)
(documentation Landing "Any instance of &%Translocation which ends up on something other 
than an &%AtmosphericRegion and which has an instance of &%Flying as a &%subProcess.")

(=>
   (instance ?LAND Landing)
   (exists (?REGION ?FLYING)
      (and
         (not (instance ?REGION AtmosphericRegion))
         (holdsDuring (EndFn (WhenFn ?LAND)) (located ?LAND ?REGION))
         (subProcess ?FLYING ?OFF)
         (instance ?FLYING Flying))))

(subclass Returning Translocation)
(documentation Returning "Any instance of &%Translocation where the &%agent 
goes to a location where he/she had been before the &%Translocation took place.")

(=>
   (and
      (instance ?RETURN Returning)
      (experiencer ?RETURN ?AGENT)
      (destination ?RETURN ?DEST))
   (exists (?TIME)
      (and
         (earlier ?TIME (WhenFn ?RETURN))
         (holdsDuring ?TIME (located ?AGENT ?DEST)))))

(subclass Escaping Translocation)
(documentation Escaping "Any instance of &%Translocation where the &%agent brings 
it about that he/she is no longer confined without having the right to do 
so.")

(=>
   (and
      (instance ?ESCAPE Escaping)
      (agent ?ESCAPE ?AGENT))
   (exists (?CONFINE)
      (and
         (instance ?CONFINE Confining)
         (patient ?CONFINE ?AGENT)
         (meetsTemporally (WhenFn ?CONFINE) (WhenFn ?ESCAPE)))))

(=>
   (instance ?ESCAPE Escaping)
   (not (holdsRight (agent ?ESCAPE ?AGENT) ?AGENT)))
   
(subclass Leaving Motion)
(documentation Leaving "The initial part of any instance of &%Translocation.")

(=>
   (instance ?LEAVE Leaving)
   (exists (?GO)
      (and
         (instance ?GO Translocation)
         (subProcess ?LEAVE ?GO)
         (starts (WhenFn ?LEAVE) (WhenFn ?GO)))))

(subclass Arriving Motion)
(documentation Arriving "The final part of any instance of &%Translocation.")

(=>
   (instance ?ARRIVE Arriving)
   (exists (?GO)
      (and
         (instance ?GO Translocation)
         (subProcess ?ARRIVE ?GO)
         (finishes (WhenFn ?ARRIVE) (WhenFn ?GO)))))

(subclass Rotating Motion)
(documentation Rotating "&%Motion that begins and ends at the same point, 
because the trajectory of the &%Motion is circular.")

(=>
   (and
      (instance ?ROTATE Rotating)
      (experiencer ?ROTATE ?AGENT))
   (exists (?LOC)
      (and
         (holdsDuring (BeginFn (WhenFn ?ROTATE)) (located ?AGENT ?LOC))
         (holdsDuring (EndFn (WhenFn ?ROTATE)) (located ?AGENT ?LOC)))))

(subclass MotionUpward Motion)
(disjoint MotionUpward MotionDownward)
(documentation MotionUpward "&%Motion where an &%Object is moving away 
from the ground.")

(subclass MotionDownward Motion)
(documentation Down "&%Motion where an &%Object is moving toward the 
ground.")

(subclass Reversing Motion)
(documentation Reversing "Moving something in such a way that its &%top 
becomes its &%bottom and vice versa.")

(=>
   (and
      (instance ?REVERSE Reversing)
      (patient ?REVERSE ?OBJ)
      (holdsDuring (BeginFn (WhenFn ?REVERSE)) (and (top ?TOP ?OBJ) (bottom ?BOTTOM ?OBJ))))
   (holdsDuring (EndFn (WhenFn ?REVERSE)) (and (top ?BOTTOM ?OBJ) (bottom ?TOP ?OBJ))))

(subclass LiquidMotion Motion)
(documentation LiquidMotion "Any &%Motion where the &%patient is a 
&%Liquid.  This class would cover, in particular, the flow of 
&%Water.")

(=>
   (and
      (instance ?MOTION LiquidMotion)
      (patient ?MOTION ?OBJ))
   (attribute ?OBJ Liquid))

(subclass Dripping LiquidMotion)
(documentation Dripping "Any &%LiquidMotion where the &%Liquid is moved 
drop by drop.")

(subclass Pouring LiquidMotion)
(subclass Pouring Transfer)
(documentation Pouring "Any instance of &%Transfer from one &%Container to 
another, where the thing transferred is a &%Liquid.")

(=>
   (instance ?POUR Pouring)
   (exists (?LIQUID ?CONTAINER1 ?CONTAINER2)
      (and
         (origin ?POUR ?CONTAINER1)
         (destination ?POUR ?CONTAINER2)
         (instance ?CONTAINER1 Container)
         (instance ?CONTAINER2 Container))))

(subclass WaterMotion LiquidMotion)
(documentation "Any &%LiquidMotion where the &%Liquid is &%Water.")

(=>
   (instance ?MOTION WaterMotion)
   (exists (?WATER)
      (and
         (patient ?MOTION ?WATER)
         (instance ?WATER Water))))

(subclass WaterWave LiquidMotion)
(documentation WaterWave "A &%WaterWave is a raised ridge of water 
moving along the surface of a body of water.  The &%WaterWave moves 
in a direction approximately transverse to the crest line of the wave.  
The &%patient of the &%WaterWave is successive regions of water, which 
do not travel in the direction of the wave or with it.")

(=>
   (instance ?WAVE WaterWave)
   (exists (?AREA)
      (and
         (instance ?AREA WaterArea)
         (located ?WAVE ?AREA))))
 
(subclass GasMotion Motion)
(documentation GasMotion "Any &%Motion where the &%patient is a 
&%Gas.  This class would cover, in particular, the motion of 
&%Air, e.g. a breeze or wind.")

(=>
   (and
      (instance ?MOTION GasMotion)
      (patient ?MOTION ?OBJ))
   (attribute ?OBJ Gas))

(subclass Wind GasMotion)
(documentation Wind "Any &%Motion of &%Air.")

(=>
   (instance ?WIND Wind)
   (exists (?AIR)
      (and
         (patient ?WIND ?AIR)
         (instance ?AIR Air)))) 

(subclass Pulling Transportation)
(documentation Pulling "Any instance of &%Transportation, where a 
&%TransportationDevice is dragged by something else, whether the something 
else is an &%Animal or a self-powered &%TransportationDevice.")

(=>
   (and
      (instance ?PULL Pulling)
      (patient ?PULL ?DEVICE))
   (instance ?DEVICE TransportationDevice))

(subclass AirTransportation Transportation)
(documentation AirTransportation "Any instance of &%Transportation where the 
&%instrument is an &%Aircraft and which is through an &%AtmosphericRegion.")

(=>
   (instance ?TRANSPORT AirTransportation)
   (exists (?CRAFT ?REGION)
      (and
         (instance ?CRAFT Aircraft)
         (instance ?REGION AtmosphericRegion)
         (instrument ?TRANSPORT ?CRAFT)
         (located ?TRANSPORT ?REGION))))

(=>
   (instance ?CRAFT Aircraft)
   (capability AirTransportation instrument ?CRAFT))

(subclass Helicopter Aircraft)
(documentation Helicopter "Any &%Aircraft with rapidly rotating wings.")

(subclass LandTransportation Transportation)
(documentation LandTransportation "Any instance of &%Transportation where the 
&%instrument is a &%LandVehicle.")

(=>
   (instance ?LAND LandTransportation)
   (exists (?CRAFT ?AREA)
      (and
         (instance ?CRAFT LandCraft)
         (instance ?AREA LandArea)
         (instrument ?LAND ?CRAFT)
         (located ?CRAFT ?AREA))))

(=>
   (instance ?VEHICLE LandVehicle)
   (capability LandTransportation instrument ?VEHICLE))

(subclass StageCoach Wagon)
(documentation StageCoach "A &%Wagon that is pulled by &%Horses and whose purpose 
was to transport &%Humans and their luggage from one &%City to the next, especially 
in areas which did not have an established transportation system, e.g. the old west.")

(=>
   (and
      (instance ?STAGE StageCoach)
      (instance ?PULL Pulling)
      (patient ?PULL ?STAGE)
      (agent ?PULL ?HORSE))
   (instance ?HORSE Horse))
   
(subclass WaterTransportation Transportation)
(documentation WaterTransportation "Any instance of &%Transportation where 
the &%instrument is a &%Watercraft.")

(=>
   (instance ?TRANSPORT WaterTransportation)
   (exists (?CRAFT ?AREA)
      (and
         (instance ?CRAFT Watercraft)
         (instance ?AREA WaterArea)
         (instrument ?TRANSPORT ?CRAFT)
         (located ?TRANSPORT ?AREA))))

(=>
   (instance ?CRAFT Watercraft)
   (capability WaterTransportation instrument ?CRAFT))

(subclass SpaceTransportation Transportation)
(documentation SpaceTransportation "Any instance of &%Transportation where the 
&%instrument is a &%Spacecraft and which is through a &%SpaceRegion.")

(=>
   (instance ?TRANSPORT SpaceTransportation)
   (exists (?CRAFT ?REGION)
      (and
         (instance ?CRAFT Spacecraft)
         (instance ?REGION SpaceRegion)
         (instrument ?TRANSPORT ?CRAFT)
         (located ?TRANSPORT ?REGION))))

(subclass Spacecraft Vehicle)
(documentation Spacecraft "Any &%Vehicle which is capable of 
&%SpaceTransportation.")

(=>
   (instance ?CRAFT Spacecraft)
   (capability SpaceTransportation instrument ?CRAFT))

(subclass Missile Spacecraft)
(documentation Missile "A &%Spacecraft which is propelled by a rocket.")

(subclass Inserting Putting)
(documentation Inserting "&%Putting one thing inside of another thing.")

(=>
   (and
      (instance ?INSERT Inserting)
      (patient ?INSERT ?OBJ1)
      (destination ?INSERT ?OBJ2))
   (and
      (holdsDuring (BeginFn (WhenFn ?INSERT)) (not (contains ?OBJ2 ?OBJ1)))
      (holdsDuring (EndFn (WhenFn ?INSERT)) (contains ?OBJ2 ?OBJ1))))

(subclass Injecting Inserting)
(documentation Injecting "&%Inserting a &%BiologicallyActiveSubstance into an 
&%Animal or a &%Human with a syringe.")

(=>
   (instance ?INJECT Injecting)
   (exists (?SUBSTANCE ?ANIMAL)
      (and
         (patient ?INJECT ?SUBSTANCE)
         (instance ?SUBSTANCE BiologicallyActiveSubstance)
         (attribute ?SUBSTANCE Liquid)
         (destination ?INJECT ?ANIMAL)
         (instance ?ANIMAL Animal)))) 

(subclass Installing Putting)
(documentation Installing "&%Putting a &%Device in a location and configuring 
the &%Device so that it can be used as intended after the installation.")

(=>
   (and
      (instance ?INSTALL Installing)
      (patient ?INSTALL ?DEVICE))
   (instance ?DEVICE Device))

(=>
   (and
      (instance ?INSTALL Installing)
      (patient ?INSTALL ?DEVICE)
      (hasPurpose ?DEVICE ?PURPOSE))
   (holdsDuring (EndFn (WhenFn ?INSTALL)) (true ?PURPOSE True)))

(subclass MovingResidence Transfer)
(documentation MovingResidence "The process of changing one's residence, i.e. 
moving one's belongs to a new &%home.")

(=>
   (and
      (instance ?MOVE MovingResidence)
      (agent ?MOVE ?AGENT))
   (exists (?HOME1 ?HOME2)
      (and
         (holdsDuring (BeginFn (WhenFn ?MOVE)) (home ?AGENT ?HOME1))
         (holdsDuring (EndFn (WhenFn ?MOVE)) (home ?AGENT ?HOME2))
         (not (equal ?HOME1 ?HOME2)))))

(subclass Tilling IntentionalProcess)
(subclass Tilling SurfaceChange)
(documentation Tilling "Any &%Process of altering &%Soil in such a way as to 
facilitate &%Agriculture.")

(=>
   (and
      (instance ?TILL Tilling)
      (patient ?TILL ?SOIL))
   (instance ?SOIL Soil))

(=>
   (instance ?TILL Tilling)
   (exists (?CULTURE)
      (and
         (instance ?CULTURE Agriculture)
         (subProcess ?TILL ?CULTURE))))

(subclass Drilling IntentionalProcess)
(subclass Drilling SurfaceChange)
(documentation Drilling "Any &%Process of producing a &%hole in a 
&%SelfConnectedObject which involves rotating a long, thin bit.")

(=>
   (and
      (instance ?DRILL Drilling)
      (patient ?DRILL ?OBJ))
   (exists (?HOLE)
      (and
         (holdsDuring (BeginFn (WhenFn ?DRILL)) (not (hole ?HOLE ?OBJ)))
         (holdsDuring (EndFn (WhenFn ?DRILL)) (hole ?HOLE ?OBJ)))))

(subclass Imagining PsychologicalProcess)
(documentation Imagining "Forming a mental picture of something which 
is not present.")

(subclass Dreaming Imagining)
(disjoint Dreaming IntentionalProcess)
(documentation Dreaming "A &%Process of producing metal images which occurs 
while one is &%Asleep.")

(=>
   (and
      (instance ?DREAM Dreaming)
      (experiencer ?DREAM ?AGENT))
   (holdsDuring (WhenFn ?DREAM) (attribute ?AGENT Asleep)))

(subclass Frightening PsychologicalProcess)
(documentation Frightening "Any &%PsychologicalProcess where the &%patient 
comes to feel &%Anxiety.")

(=>
   (and
      (instance ?FRIGHTEN Frightening)
      (experiencer ?FRIGHTEN ?AGENT))
   (and
      (holdsDuring (BeginFn (WhenFn ?FRIGHTEN)) (not (attribute ?AGENT Anxiety)))
      (holdsDuring (EndFn (WhenFn ?FRIGHTEN)) (attribute ?AGENT Anxiety))))

(subclass Murder Killing)
(subclass Murder CriminalAction)
(documentation Murder "Impermissible &%Killing of a &%Human.")

(=>
   (instance ?MURDER Murder)
   (exists (?PERSON)
      (and
         (patient ?MURDER ?PERSON)
         (instance ?PERSON Human))))

(subclass Hanging Killing)
(documentation Hanging "&%Killing someone by suspending him/her from a 
rope wound around the neck until asphyxiation occurs.")

(subclass Looking Seeing)
(subclass Looking IntentionalProcess)
(documentation Looking "Any instance of &%Seeing which is intentional.")

(subclass Listening Hearing)
(subclass Listening IntentionalProcess)
(documentation Listening "Any instance of &%Hearing which is intentional.")

(subclass OrchestralConducting Guiding)
(documentation OrchestralConducting "The &%Process of directing an orchestra.")

(=>
   (instance ?CONDUCT OrchestralConducting)
   (exists (?MUSIC)
      (and
         (instance ?MUSIC Music)
         (result ?CONDUCT ?MUSIC))))

(=>
   (and
      (instance ?CONDUCT OrchestralConducting)
      (patient ?CONDUCT ?ORCHESTRA))
   (instance ?ORCHESTRA Orchestra))

(subclass Orchestra GroupOfPeople)
(documentation Orchestra "A &%GroupOfPeople that create &%InstrumentalMusic 
together.")

(=>
   (instance ?ORCHESTRA Orchestra)
   (hasPurpose ?ORCHESTRA (exists (?MUSIC)
                             (and
                                (instance ?MUSIC InstrumentalMusic)
                                (agent ?MUSIC ?ORCHESTRA)))))

(subclass DramaticDirecting Guiding)
(documentation DramaticDirecting "The process of directing a &%DramaticActing 
in a &%MotionPicture or the &%Performance of a &%DramaticPlay.")

(=>
   (and
      (instance ?DIRECT DramaticDirecting)
      (patient ?DIRECT ?ACT))
   (instance ?ACT DramaticActing))

(subclass Discovering IntentionalPsychologicalProcess)
(documentation Discovering "Finding something that was sought.  Note that 
this class is restricted to cases of discovering something &%Physical.  
For cases involving the acquisition of knowledge, the class &%Learning 
should be used.")

(=>
   (and
      (instance ?DISCOVER Discovering)
      (patient ?DISCOVER ?OBJ))
   (exists (?PURSUE)
      (and
         (instance ?PURSUE Pursuing)
         (meetsTemporally (WhenFn ?PURSUE) (WhenFn ?DISCOVER)))))

(=>
   (and
      (instance ?DISCOVER Discovering)
      (patient ?DISCOVER ?OBJ)
      (holdsDuring (WhenFn ?DISCOVER) (located ?OBJ ?PLACE)))
   (exists (?LEARN)
      (and
         (instance ?LEARN Learning)
         (subProcess ?LEARN ?DISCOVER)
         (patient ?LEARN (located ?OBJ ?PLACE)))))

(subclass Experimenting Investigating)
(documentation Experimenting "&%Investigating the truth of a &%Proposition 
by constructing and observing a trial.  Note that the trial may be either 
controlled or uncontrolled, blind or not blind.")

(subclass Funding Giving)
(documentation Funding "Any instance of &%Giving where the &%patient is an 
instance of &%Currency.  Note that this class covers both 
&%FinancialTransactions, e.g. where a firm funds a software company with 
venture capital with the agreement that a certain percentage of the profits 
on the investment will be returned to the firm, and instances of 
&%UnilateralGiving, e.g. a stipend provided to a student as part of 
scholarship or fellowship.")

(=>
   (instance ?FUND Funding)
   (exists (?MONEY)
      (and
         (instance ?MONEY Currency)
         (patient ?FUND ?MONEY))))

(subclass GivingBack Giving)
(documentation GivingBack "Any instance of &%Giving where the &%agent gives 
something to the &%destination which was previously given to the &%agent by 
the &%destination, e.g. returing a book that was borrowed from someone.") 

(=>
   (and
      (instance ?RETURN GivingBack)
      (agent ?RETURN ?AGENT)
      (destination ?RETURN ?DEST))
   (exists (?GIVE)
      (and
         (instance ?GIVE Giving)
         (agent ?GIVE ?DEST)
         (destination ?GIVE ?AGENT)
         (earlier (WhenFn ?GIVE) (WhenFn ?RETURN)))))

(subclass Sharing ChangeOfPossession)
(documentation Sharing "The subclass of &%ChangeOfPossession where a 
&%properPart of the &%patient is given by the &%agent or the &%destination.")

(=>
   (and
      (instance ?SHARE Sharing)
      (agent ?SHARE ?AGENT1)
      (destination ?SHARE ?AGENT2)
      (patient ?SHARE ?OBJ))
   (exists (?GIVE ?PART)
      (and
         (instance ?GIVE Giving)
         (subProcess ?GIVE ?SHARE)
         (patient ?GIVE ?PART)
         (properPart ?PART ?OBJ)
         (agent ?GIVE ?AGENT1)
         (destination ?GIVE ?AGENT2))))

(subclass Stealing UnilateralGetting)
(subclass Stealing CriminalAction)
(documentation Stealing "Any &%UnilateralGetting which is not permitted by the 
&%origin of the &%UnilateralGetting.  These cases of &%UnilateralGetting are 
distinguished from ones where the &%destination is the subject of charity or 
other forms of benefaction.")

(=>
   (and
      (instance ?STEAL Stealing)
      (destination ?STEAL ?AGENT)
      (origin ?STEAL ?VICTIM)
      (instance ?VICTIM CognitiveAgent))
   (not (confersRight (destination ?STEAL ?AGENT) ?VICTIM ?AGENT)))

(subclass Inheriting UnilateralGetting)
(documentation Inheriting "Any &%UnilateralGetting where the &%agent 
receives some part of the property of a person upon the death of the 
person.")

(=>
   (and
      (instance ?INHERIT Inheriting)
      (agent ?INHERIT ?HEIR)
      (origin ?INHERIT ?PERSON)
      (patient ?INHERIT ?PROPERTY))
   (exists (?DEATH)
      (and
         (instance ?DEATH Death)
         (experiencer ?DEATH ?PERSON)
         (earlier (WhenFn ?DEATH) (WhenFn ?INHERIT))
         (holdsDuring (ImmediatePastFn (WhenFn ?DEATH)) (possesses ?PERSON ?PROPERTY))
         (confersRight (possesses ?HEIR ?PROPERTY) ?PERSON ?HEIR))))

(partition Position FullTimePosition PartTimePosition)

(subclass FullTimePosition Position)
(documentation FullTimePosition "Any &%Position where the employee is either 
salaried or paid for at least 40 hour of work per week.")

(subclass PartTimePosition Position)
(documentation PartTimePosition "Any &%Position where the employee is not 
salaried and is paid for less than 40 hours of work per week.")

(subclass ClericalSecretary Position)
(documentation ClericalSecretary "The class of &%Positions where the position 
holder is responsible for clerical duties, e.g. typing documents, answering 
phones, keeping schedules, etc.")

(subclass Soldier Position)
(documentation "The class of &%Positions which involve serving in 
the armed forces of a &%Nation.")

(subclass RedcoatSoldier Soldier)
(documentation RedcoatSoldier "Any &%Soldier that served on the British side during 
the American revolutionary war.")

(subclass ConfederateSoldier Soldier)
(documentation ConfederateSoldier "Any &%Soldier that served on the confederate side 
during the American Civil War.")

(subclass MilitaryPrivate Soldier)
(documentation MilitaryPrivate "An enlisted &%Soldier of the lowest rank.")

(subclass MilitaryOfficer Soldier)
(documentation "The class of &%Soldiers who have authority or command.")

(=>
   (instance ?OFFICER MilitaryOfficer)
   (exists (?MANAGE ?PATIENT)
      (and
         (instance ?MANAGE Managing)
         (agent ?MANAGE ?OFFICER)
         (patient ?MANAGE ?PATIENT)
         (or
            (instance ?PATIENT MilitaryOrganization)
            (instance ?PATIENT Soldier)))))

(subclass Lieutenant MilitaryOfficer)
(documentation Lieutenant "A commissioned &%MilitaryOfficer.")

(subclass CaptainOfficer MilitaryOfficer)
(documentation CaptainOfficer "A commissioned &%MilitaryOfficer who ranks 
above a &%Lieutenant but below a &%MajorOfficer.")

(subclass Colonel MilitaryOfficer)
(documentation Colonel "A commissioned &%MilitaryOfficer who ranks above 
a lieutenant colonel and below a brigadier general.")

(subclass Century TimeDuration)
(documentation "The &%TimeDuration of 100 years.")

(=>
   (instance ?CENTURY Century)
   (duration ?CENTURY (MeasureFn 100 YearDuration)))

(subclass Decade TimeDuration)
(documentation Decade "The &%TimeDuration of 10 years.")

(=>
   (instance ?DECADE Decade)
   (duration ?DECADE (MeasureFn 10 YearDuration)))

(subclass YardLength LengthMeasure)
(instance YardLength UnitOfMeasure)
(documentation YardLength "English unit of length, equal to 3 &%FeetLength.")

(=>
   (instance ?NUMBER RealNumber)
   (equal
        (MeasureFn ?NUMBER YardLength)
        (MeasureFn (MultiplicationFn 3 ?NUMBER) FootLength)))

(subclass NightTime TimeInterval)
(documentation NightTime "The class of &%TimeIntervals that begin at &%Sunset
and end at &%Sunrise.")

(=>
   (instance ?NIGHT NightTime)
   (exists (?DAY1 ?DAY2)
      (and
         (instance ?DAY1 DayTime)
         (instance ?DAY2 DayTime)
         (meetsTemporally ?NIGHT ?DAY1)
         (meetsTemporally ?DAY2 ?NIGHT))))

(=>
   (instance ?NIGHT NightTime)
   (exists (?RISE ?SET)
      (and
         (instance ?RISE Sunrise)
         (instance ?SET Sunset)
         (starts ?SET ?NIGHT)
         (finishes ?RISE ?NIGHT))))

(subclass DayTime TimeInterval)
(documentation DayTime "The class of &%TimeIntervals that begin at &%Sunrise 
and end at &%Sunset.")

(=>
   (instance ?DAY DayTime)
   (exists (?NIGHT1 ?NIGHT2)
      (and
         (instance ?NIGHT1 NightTime)
         (instance ?NIGHT2 NightTime)
         (meetsTemporally ?DAY ?NIGHT1)
         (meetsTemporally ?NIGHT2 ?DAY))))

(=>
   (instance ?DAY DayTime)
   (exists (?RISE ?SET)
      (and
         (instance ?RISE Sunrise)
         (instance ?SET Sunset)
         (starts ?RISE ?DAY)
         (finishes ?SET ?DAY))))

(subclass Morning DayTime)
(documentation Morning "The class of &%TimeIntervals that begin at &%Sunrise 
and end at noon.")

(=>
   (instance ?MORNING Morning)
   (exists (?HOUR)
      (and
         (instance ?HOUR (HourFn 12 ?DAY))
         (finishes ?HOUR ?MORNING))))

(subclass Afternoon DayTime)
(documentation Afternoon "The class of &%TimeIntervals that begin at noon and 
end at &%Sunset.")

(=>
   (instance ?AFTERNOON Afternoon)
   (exists (?HOUR)
      (and
         (instance ?HOUR (HourFn 12 ?DAY))
         (starts ?HOUR ?AFTERNOON))))

(subclass Sunrise TimeInterval)
(documentation Sunrise "The &%TimeInterval of each &%Day when the sun is rising 
and is partially overlapped by the horizon line.")

(subclass Sunset TimeInterval)
(documentation Sunset "The &%TimeInterval of each &%Day when the sun is setting 
and is partially overlapped by the horizon line.") 

(subclass Weekend TimeInterval)
(documentation Weekend "Any &%Saturday and &%Sunday which are contiguous.")

(=>
   (instance ?WEEKEND Weekend)
   (exists (?SATURDAY ?SUNDAY)
      (and
         (instance ?SATURDAY Saturday)
         (instance ?SUNDAY Sunday)
         (starts ?SATURDAY ?WEEKEND)
         (finishes ?SUNDAY ?WEEKEND)
         (meetsTemporally ?SATURDAY ?SUNDAY))))

(subclass SeasonOfYear TimeInterval)
(partition Season WinterSeason SpringSeason SummerSeason FallSeason)
(documentation SeasonOfYear "&%SeasonOfYear is the class of four 
seasons correlated with the calendar &%Year and associated with 
changes in the length of daylight and with overall temperature 
changes. Depending upon the &%GeographicArea, a &%SeasonOfYear 
may also be associated with weather patterns (e.g., rainy, dry, 
windy). The characteristics of seasons (cold vs. hot temperatures, 
long vs. short days) are reversed from the &%NorthernHemisphere 
to the &%SouthernHemisphere.")

(subclass WinterSeason SeasonOfYear)
(documentation WinterSeason "The &%SeasonOfYear that begins at the winter 
solstice and ends at the spring equinox.")

(=>
   (instance ?WINTER WinterSeason)
   (exists (?SPRING)
      (and
         (instance ?SPRING SpringSeason)
         (meetsTemporally ?WINTER ?SPRING))))

(=>
   (instance ?WINTER WinterSeason)
   (exists (?AUTUMN)
      (and
         (instance ?AUTUMN FallSeason)
         (meetsTemporally ?AUTUMN ?WINTER))))

(subclass SpringSeason SeasonOfYear)
(documentation SpringSeason "The &%SeasonOfYear that begins at the spring 
equinox and ends at the summer solstice.")

(=>
   (instance ?SPRING SpringSeason)
   (exists (?SUMMER)
      (and
         (instance ?SUMMER SummerSeason)
         (meetsTemporally ?SPRING ?SUMMER))))

(=>
   (instance ?Spring SpringSeason)
   (exists (?WINTER)
      (and
         (instance ?WINTER WinterSeason)
         (meetsTemporally ?WINTER ?SPRING))))

(subclass SummerSeason SeasonOfYear)
(documentation SummerSeason "The &%SeasonOfYear that begins at the summer 
solstice and ends at the autumnal equinox.")

(=>
   (instance ?SUMMER SummerSeason)
   (exists (?SPRING)
      (and
         (instance ?SPRING SpringSeason)
         (meetsTemporally ?SPRING ?SUMMER))))

(=>
   (instance ?SUMMER SummerSeason)
   (exists (?AUTUMN)
      (and
         (instance ?AUTUMN FallSeason)
         (meetsTemporally ?SUMMER ?AUTUMN))))

(subclass FallSeason SeasonOfYear)
(documentation FallSeason "The &%SeasonOfYear that begins at the autumnal 
equinox and ends at the winter solstice.")

(=>
   (instance ?AUTUMN FallSeason)
   (exists (?SUMMER)
      (and
         (instance ?SUMMER SummerSeason)
         (meetsTemporally ?SUMMER ?AUTUMN))))

(=>
   (instance ?AUTUMN FallSeason)
   (exists (?WINTER)
      (and
         (instance ?WINTER WinterSeason)
         (meetsTemporally ?AUTUMN ?WINTER))))

(instance Upstairs PositionalAttribute)
(documentation Upstairs "A &%PositionalAttribute to indicate that one thing is 
one or more floors above a second thing in the same building.")

(=>
   (orientation ?OBJ1 ?OBJ2 Upstairs)
   (exists (?LEVEL1 ?LEVEL2 ?BUILDING)
      (and
         (instance ?LEVEL1 BuildingLevel)
         (instance ?LEVEL2 BuildingLevel)
         (instance ?BUILDING Building)
         (part ?LEVEL1 ?BUILDING)
         (part ?LEVEL2 ?BUILDING)
         (located ?OBJ1 ?LEVEL1)
         (located ?OBJ2 ?LEVEL2)
         (orientation ?LEVEL1 ?LEVEL2 Above))))

(instance Downstairs PositionalAttribute)
(documentation Downstairs "A &%PositionalAttribute to indicate that one thing is 
one or more floors below a second thing in the same building.")

(=>
   (orientation ?OBJ1 ?OBJ2 Downstairs)
   (exists (?LEVEL1 ?LEVEL2 ?BUILDING)
      (and
         (instance ?LEVEL1 BuildingLevel)
         (instance ?LEVEL2 BuildingLevel)
         (instance ?BUILDING Building)
         (part ?LEVEL1 ?BUILDING)
         (part ?LEVEL2 ?BUILDING)
         (located ?OBJ1 ?LEVEL1)
         (located ?OBJ2 ?LEVEL2)
         (orientation ?LEVEL1 ?LEVEL2 Below))))

(instance Happiness EmotionalState)
(documentation Happiness "The state of being happy, experiencing pleasure, 
joy or contentment.  Note that this &%Attribute covers both active enjoyment, 
as well as the emotional state of simply being free from anxiety or fear.")

(=>
   (attribute ?PERSON Happiness)
   (not (exists (?PROP)
      (fears ?PERSON ?PROP))))

(subAttribute Tranquility Happiness)
(contraryAttribute Tranquility Anxiety)
(documentation Tranquility "The state of being free from &%Anxiety.")

(instance Unhappiness EmotionalState) 
(contraryAttribute Unhappiness Happiness)
(documentation Unhappiness "The state of being unhappy, experiencing pain, 
sorrow or unease.")

(subAttribute Anxiety Unhappiness)
(documentation Anxiety "The state of being worried, troubled or uneasy.")

(=>
   (attribute ?PERSON Anxiety)
   (exists (?PROP)
      (fears ?PERSON ?PROP)))

(subAttribute Anger Unhappiness)
(documentation Anger "The state of being wrathful, irate or indignant.")

(=>
   (attribute ?PERSON Anger)
   (exists (?PROP)
      (disapproves ?PERSON ?PROP)))

(subAttribute Pain Unhappiness)
(documentation Pain "A physical sensation of discomfort which can vary widely 
in intensity.")

(instance Surprise EmotionalState)
(documentation Surprise "The &%EmotionalState that one experiences when something 
unexpected and of significance occurs.")

(=>
   (holdsDuring ?TIME (attribute ?AGENT Surprise))
   (exists (?PART ?PROP)
      (and
         (temporalPart ?PART (PastFn ?TIME))
         (holdsDuring ?PART (expects ?AGENT ?PROP))
         (holdsDuring ?TIME (true ?PROP False)))))
   

(subclass SecondaryColor ColorAttribute)
(documentation SecondaryColor "A color that is the product of mixing together 
two or more &%PrimaryColors.")

(=>
   (and
      (instance ?COLOR SecondaryColor)
      (attribute ?OBJ ?COLOR))
   (exists (?PROCESS ?RESOURCE1 ?RESOURCE2)
      (and
         (result ?PROCESS ?OBJ)
         (resource ?PROCESS ?RESOURCE1)
         (resource ?PROCESS ?RESOURCE2)
         (attribute ?RESOURCE1 ?PRIMARY1)
         (attribute ?RESOURCE2 ?PRIMARY2)
         (instance ?PRIMARY1 PrimaryColor)
         (instance ?PRIMARY2 PrimaryColor)
         (not (equal ?PRIMARY1 ?PRIMARY2)))))

(instance Gray SecondaryColor)
(documentation Gray "A &%SecondaryColor that results from mixing &%Black and 
&%White.")

(instance Pink SecondaryColor)
(documentation Pink "A &%SecondaryColor that results from mixing &%Red and 
&%White.")

(instance Brown SecondaryColor)
(documentation Brown "A &%SecondaryColor that resembles the color of wood or 
of soil.")

(instance Green SecondaryColor)
(documentation Green "A &%SecondaryColor that resembles the color of fresh 
grass.")

(instance LineFormation ShapeAttribute)
(documentation LineFormation "A &%ShapeAttribute that applies to 
&%Collections and indicates that all of the &%members of the &%Collection 
are arrayed in a line, i.e. each &%member (except possibly the first) is 
behind or to the side of exactly one other &%member.")

(=>
   (attribute ?COLLECTION LineFormation)
   (instance ?COLLECTION Collection))

(instance Stressed SoundAttribute)
(documentation Stressed "A &%SoundAttribute of &%Syllables.  It denotes 
the quality of being emphasized over the other &%Syllables in the same 
&%Word.")

(=>
   (attribute ?SYLLABLE Stressed)
   (instance ?SYLLABLE Syllable))

(=>
   (and
      (attribute ?SYLLABLE Stressed)
      (instance ?WORD Word)
      (part ?SYLLABLE ?WORD))
   (not (exists (?SYLLABLE2)
      (and
         (instance ?SYLLABLE2 Syllable)
         (part ?SYLLABLE2 ?WORD)
         (not (equal ?SYLLABLE2 ?SYLLABLE))))))

(subclass Syllable SymbolicString)
(documentation Syllable "A sequence of &%Characters from the same &%Word 
that denote a single sound.")

(=>
   (instance ?WORD Word)
   (exists (?SYLLABLE)
      (and
         (instance ?SYLLABLE Syllable)
         (part ?SYLLABLE ?WORD))))

(subclass DigitCharacter Character)
(documentation DigitCharacter "Any &%Character that is comprised of a single digit, 
i.e. one of the numerals 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.")

(instance Lost ContestAttribute)
(contraryAttribute Lost Won)
(documentation Lost "The &%ContestAttribute that applies to a &%Contest 
participant who has lost the &%Contest.")

(instance Won ContestAttribute)
(documentation Won "The &%ContestAttribute that applies to a &%Contest 
participant who has won the &%Contest.")

(subclass GameAttribute ContestAttribute)
(documentation GameAttribute "Any &%ContestAttribute that is specific 
to a &%Game.")

(=>
   (and
      (property ?THING ?ATTR)
      (instance ?ATTR GameAttribute))
   (exists (?GAME)
      (and
         (instance ?GAME Game)
         (or
            (agent ?GAME ?THING)
            (patient ?GAME ?THING)
            (subProcess ?THING ?GAME)))))

(subclass SportAttribute GameAttribute)
(documentation SportAttribute "Any &%GameAttribute that is specific to 
a &%Sport.")

(=>
   (and
      (property ?THING ?ATTR)
      (instance ?ATTR SportAttribute))
   (exists (?SPORT)
      (and
         (instance ?SPORT Game)
         (or
            (agent ?SPORT ?THING)
            (patient ?SPORT ?THING)
            (subProcess ?THING ?SPORT)))))

(instance BaseballStrike SportAttribute)
(documentation BaseballStrike "A baseball pitch that is in the strike zone 
and that is not hit by the batter.")

(subclass PoliticoEconomicAttribute RelationalAttribute)
(partition PoliticoEconomicAttribute FormOfGovernment EconomicAttribute)
(documentation PoliticoEconomicAttribute "Any &%Attribute of a &%Government 
which specifies some aspect of the political or economic system of the 
&%Government.")

(=>
   (and
      (instance ?ATTRIBUTE PoliticoEconomicAttribute)
      (attribute ?GOVERNMENT ?ATTRIBUTE))
   (instance ?GOVERNMENT Government))

(subclass Oxidation ChemicalProcess)
(documentation Oxidation "Any &%ChemicalProcess where &%Electrons are removed 
from the substance undergoing the &%ChemicalProcess.")

(=>
   (and
      (instance ?OXIDATE Oxidation)
      (patient ?OXIDATE ?SUBSTANCE)
      (holdsDuring (BeginFn (WhenFn ?OXIDATE)) (electronNumber ?SUBSTANCE ?GREATER)))
   (exists (?LOWER)
      (and
         (lessThan ?LOWER ?GREATER)
         (holdsDuring (EndFn (WhenFn ?OXIDATE)) (electronNumber ?SUBSTANCE ?LOWER)))))

(subclass Dialysis Separating)
(documentation Dialysis "Any process of &%Separating a &%Solution into two or more 
constituent &%PureSubstances by means of their unequal diffusion through membranes 
that are partially permeable.")

(=>
   (instance ?DIALYSIS Dialysis)
   (exists (?SOLUTION ?SUBSTANCE1 ?SUBSTANCE2)
      (and
         (resource ?DIALYSIS ?SOLUTION)
         (instance ?SOLUTION Solution)
         (result ?DIALYSIS ?SUBSTANCE1)
         (instance ?SUBSTANCE1 PureSubstance)
         (result ?DIALYSIS ?SUBSTANCE2)
         (instance ?SUBSTANCE2 PureSubstance)
         (not (equal ?SUBSTANCE1 ?SUBSTANCE2)))))
      
(instance ChemicalEquilibrium InternalAttribute)
(documentation ChemicalEquilibrium "The &%Attribute of being in a chemically 
stable state, i.e. the relative proportions of &%resources and &%results will 
not longer change.")

(=>
   (property ?PROCESS ChemicalEquilibrium)
   (instance ?PROCESS ChemicalProcess))

(=>
   (property ?PROCESS ChemicalEquilibrium)
   (exists (?RATIO)
      (=>
         (and
            (holdsDuring ?TIME (resource ?PROCESS ?RESOURCE))
            (holdsDuring ?TIME (result ?PROCESS ?RESULT)))
         (equal ?RATIO (DivisionFn ?RESOURCE ?RESULT)))))

(subclass GeometricFigure ShapeAttribute)
(partition GeometricFigure GeometricPoint OneDimensionalFigure TwoDimensionalFigure ThreeDimensionalFigure)
(documentation GeometricFigure "The class of all geometric figures, i.e. the 
class of all abstract, spatial representations.  The instances of this class 
are &%GeometricPoints, &%TwoDimensionalFigures or &%ThreeDimensionalFigures.")

(subclass GeometricPoint GeometricFigure)
(documentation GeometricPoint "The class of zero-dimensional 
&%GeometricFigures, i.e. the class of &%GeometricFigures that have position 
but lack extension in any dimension.")

(subclass OneDimensionalFigure GeometricFigure)
(documentation OneDimensionalFigure "The class of &%GeometricFigures that 
have position and an extension along a single dimension, viz. straight lines.")

(subclass TwoDimensionalFigure GeometricFigure)
(partition TwoDimensionalFigure OpenTwoDimensionalFigure ClosedTwoDimensionalFigure)
(documentation TwoDimensionalFigure "The class of &%GeometricFigures that 
have position and an extension along two dimensions, viz. plane figures 
like circles and polygons.")

(subclass OpenTwoDimensionalFigure TwoDimensionalFigure)
(documentation OpenTwoDimensionalFigure "The class of &%TwoDimensionalFigures that 
are not &%ClosedTwoDimensionalFigures.")

(subclass TwoDimensionalAngle OpenTwoDimensionalFigure)
(documentation TwoDimensionalAngle "Any two &%OneDimensionalFigures (i.e. 
straight lines) meeting at a single &%GeometricPoint.")

(subclass RightAngle TwoDimensionalAngle)
(documentation RightAngle "Any &%TwoDimensionalAngle that has the 
&%angularMeasure of 90 &%AngularDegrees.")

(=>
   (instance ?ANGLE RightAngle)
   (angularMeasure ?ANGLE (MeasureFn 90 AngularDegree)))

(subclass ClosedTwoDimensionalFigure TwoDimensionalFigure)
(documentation ClosedTwoDimensionalFigure "Any &%TwoDimensionalFigure which 
has a well defined interior and exterior.")

(subclass Polygon ClosedTwoDimensionalFigure)
(documentation Polygon "A &%ClosedTwoDimensionalFigure that is composed 
exclusively of straight lines, i.e. &%OneDimensionalFigures.")

(=>
   (instance ?POLYGON Polygon)
   (=>
      (geometricPart ?PART ?POLYGON)
      (or
         (sideOfFigure ?PART ?POLYGON)
         (exists (?SIDE)
            (and
               (sideOfFigure ?SIDE ?POLYGON)
               (geometricPart ?PART ?SIDE))))))

(subclass Triangle Polygon)
(documentation Triangle "Any three-sided &%Polygon.")

(=>
   (instance ?TRIANGLE Triangle)
   (equal (CardinalityFn (KappaFn ?SIDE (sideOfFigure ?SIDE ?TRIANGLE))) 3))

(subclass Quadrilateral Polygon)
(documentation Quadrilateral "Any four-sided &%Polygon.")

(=>
   (instance ?QUAD Quadrilateral)
   (equal (CardinalityFn (KappaFn ?SIDE (sideOfFigure ?SIDE ?QUAD))) 4))

(subclass Rectangle Quadrilateral)
(documentation Rectangle "Any &%Quadrilateral whose angles are all 
&%RightAngles.")

(=>
   (instance ?RECTANGLE Rectangle)
   (=>
      (angleOfFigure ?ANGLE ?RECTANGLE)
      (instance ?ANGLE RightAngle)))

(subclass Square Rectangle)
(documentation Square "Any &%Rectangle whose sides are all equal.")

(=>
   (instance ?SQUARE Square)
   (exists (?LENGTH)
      (forall (?SIDE)
         (=>
            (sideOfFigure ?SIDE ?SQUARE)
            (lineMeasure ?SIDE ?LENGTH)))))

(subclass Circle ClosedTwoDimensionalFigure)
(documentation Circle "The class of &%ClosedTwoDimensionalFigures such that 
all &%GeometricPoints that make up the &%Circle are equidistant from a 
single &%GeometricPoint, known as the center of the &%Circle.")

(=>
   (instance ?CIRCLE Circle)
   (exists (?RADIUS)
      (radius ?CIRCLE ?RADIUS)))

(subclass ThreeDimensionalFigure GeometricFigure)
(documentation ThreeDimensionalFigure "The class of &%GeometricFigures that 
have position and an extension along three dimensions, viz. geometric solids 
like polyhedrons and cylinders.")

(instance geometricPart BinaryPredicate)
(instance geometricPart PartialOrderingRelation)
(domain geometricPart 1 GeometricFigure)
(domain geometricPart 2 GeometricFigure)
(documentation geometricPart "(&%geometricPart ?PART ?WHOLE) means that the 
&%GeometricFigure ?PART is part of the &%GeometricFigure ?WHOLE.")

(subrelation pointOfFigure geometricPart)
(domain pointOfFigure 1 GeometricPoint)
(domain pointOfFigure 2 GeometricFigure)
(documentation pointOfFigure "(&%pointOfFigure ?POINT ?FIGURE) means that 
the &%GeometricPoint ?POINT is part of the &%GeometricFigure ?FIGURE.")

(subrelation sideOfFigure geometricPart)
(domain sideOfFigure 1 OneDimensionalFigure)
(domain sideOfFigure 2 GeometricFigure)
(documentation sideOfFigure "(&%sideOfFigure ?SIDE ?FIGURE) means that the 
&%OneDimensionalFigure ?POINT is a side of the &%GeometricFigure ?FIGURE.")

(subrelation angleOfFigure geometricPart)
(domain angleOfFigure 1 TwoDimensionalAngle)
(domain angleOfFigure 2 GeometricFigure)
(documentation angleOfFigure "(&%angleOfFigure ?ANGLE ?FIGURE) means that 
the &%TwoDimensionalAngle ?ANGLE is part of the &%GeometricFigure ?FIGURE.")

(instance pointOfIntersection TernaryPredicate)
(domain pointOfIntersection 1 OneDimensionalFigure)
(domain pointOfIntersection 2 OneDimensionalFigure)
(domain pointOfIntersection 3 GeometricPoint)
(documentation pointOfIntersection "(&%pointOfIntersection ?FIGURE1 ?FIGURE2 
?POINT) means that the two straight lines ?FIGURE1 and ?FIGURE2 meet at the 
point ?POINT.")

(=>
   (pointOfIntersection ?FIGURE1 ?FIGURE2 ?POINT)
   (and
      (pointOfFigure ?POINT ?FIGURE1)
      (pointOfFigure ?POINT ?FIGURE2)))

(instance parallel BinaryPredicate)
(domain parallel 1 OneDimensionalFigure)
(domain parallel 2 OneDimensionalFigure)
(documentation parallel "(&%parallel ?LINE1 ?LINE2) means that the 
&%OneDimensionalFigures ?LINE1 and ?LINE2 are parallel to one another, 
i.e. they are equidistant from one another at every point.")

(=>
   (parallel ?LINE1 ?LINE2)
   (not (exists (?POINT)
      (pointOfIntersection ?LINE1 ?LINE2 ?POINT))))

(instance angularMeasure BinaryPredicate)
(instance angularMeasure TotalValuedRelation)
(domain angularMeasure 1 TwoDimensionalAngle)
(domain angularMeasure 2 PlaneAngleMeasure)
(documentation angularMeasure "(&%angularMeasure ?ANGLE ?MEASURE) means that 
the two-dimensional geometric angle ?ANGLE has the &%PlaneAngleMeasure of 
?MEASURE.")

(instance lineMeasure BinaryPredicate)
(instance lineMeasure TotalValuedRelation)
(domain lineMeasure 1 OneDimensionalFigure)
(domain lineMeasure 2 LengthMeasure)
(documentation lineMeasure "(&%lineMeasure ?LINE ?MEASURE) means that the 
straight line ?LINE has the &%LengthMeasure of ?MEASURE.")

(instance geometricDistance TernaryPredicate)
(instance geometricDistance SingleValuedRelation)
(instance geometricDistance TotalValuedRelation)
(domain geometricDistance 1 GeometricPoint)
(domain geometricDistance 2 GeometricPoint)
(domain geometricDistance 3 LengthMeasure)
(documentation geometricDistance "(&%geometricDistance ?POINT1 ?POINT2 
?LENGTH) means that ?LENGTH is the distance between the two 
&%GeometricPoints ?POINT1 and ?POINT2.")

(=>
   (geometricDistance ?POINT1 ?POINT2 ?LENGTH)
   (geometricDistance ?POINT2 ?POINT1 ?LENGTH))

(instance radius BinaryPredicate)
(instance radius SingleValuedRelation)
(instance radius TotalValuedRelation)
(domain radius 1 Circle)
(domain radius 2 LengthMeasure)
(documentation radius "(&%radius ?CIRCLE ?LENGTH) means that the radius of 
the &%Circle ?CIRCLE has a length of ?LENGTH.")

(=>
   (radius ?CIRCLE ?RADIUS)
   (exists (?POINT)
      (forall (?PART)
         (=>
            (pointOfFigure ?PART ?CIRCLE)
            (geometricDistance ?PART ?POINT ?RADIUS)))))

(instance diameter BinaryPredicate)
(instance diameter SingleValuedRelation)
(instance diameter TotalValuedRelation)
(domain diameter 1 Circle)
(domain diameter 2 LengthMeasure) 
(documentation diameter "(&%diameter ?CIRCLE ?LENGTH) means that the diameter 
of the &%Circle ?CIRCLE has a length of ?LENGTH.")

(=>
   (diameter ?CIRCLE ?LENGTH)
   (exists (?HALF)
      (and
         (radius ?CIRCLE ?HALF)
         (equal (MultiplicationFn ?HALF 2) ?LENGTH))))

(instance tangent BinaryPredicate)
(domain tangent 1 OneDimensionalFigure)
(domain tangent 2 Circle)
(documentation tangent "(&%tangent ?LINE ?CIRCLE) means that the straight line 
?LINE is tangent to the &%Circle ?CIRCLE, i.e. ?LINE touches ?CIRCLE without 
intersecting it.")

(=>
   (tangent ?LINE ?CIRCLE)
   (exists (?POINT1)
      (and
         (pointOfFigure ?POINT1 ?LINE)
         (pointOfFigure ?POINT1 ?CIRCLE)
         (forall (?POINT2)
            (=>
               (and
                  (pointOfFigure ?POINT2 ?LINE)
                  (pointOfFigure ?POINT2 ?CIRCLE))
               (equal ?POINT1 ?POINT2))))))

(subrelation contestParticipant agent)
(instance contestParticipant TotalValuedRelation)
(domain contestParticipant 1 Contest)
(domain contestParticipant 2 Agent)
(documentation contestParticipant "(&%contestParticipant ?CONTEST ?AGENT) 
means that ?AGENT is one of the sides in the &%Contest ?CONTEST.  For 
example, if the ?CONTEST is a football game, then ?AGENT would be one of 
the opposing teams.  For another example, if ?CONTEST is a &%Battle, then 
?AGENT would be one of the sides fighting each other.")

(subclass CivilWar War)
(documentation CivilWar "A &%War in which the fighting &%GeopoliticalAreas 
are both part of the same &%Nation.")

(=>
   (instance ?WAR CivilWar)
   (exists (?NATION)
      (and
         (instance ?NATION Nation)
         (forall (?AGENT)
            (=>
               (contestParticipant ?WAR ?AGENT)
               (geopoliticalSubdivision ?AGENT ?NATION))))))

(subclass Debating Contest)
(subclass Debating LinguisticCommunication)
(documentation Debating "A &%Contest where each participant holds a different 
view regarding some issue, and each participant attempts to prove, by 
rhetoric or evidence, that his/her own views about a particular matter are 
correct and/or that the views of the other participants are incorrect.")

(subclass Negotiating Contest)
(subclass Negotiating LinguisticCommunication)
(documentation Negotiating "A &%Contest where each participant attempts to 
maximize his self-interest in a &%Promise that marks the end of the &%Contest.")

(=>
   (instance ?NEGOTIATE Negotiating)
   (hasPurpose ?NEGOTIATE (exists (?COMMIT)
                             (and
                                (instance ?COMMIT Committing)
                                (subProcess ?COMMIT ?NEGOTIATE)
                                (finishes (WhenFn ?COMMIT) (WhenFn ?NEGOTIATE))))))

(subclass BusinessCompetition Contest)
(documentation BusinessCompetition "Any &%Contest where the &%contestParticipants 
are &%Corporations and the aim is to win as many customers as possible.")

(=>
   (and
      (instance ?CONTEST BusinessCompetition)
      (contestParticipant ?CONTEST ?AGENT))
   (instance ?AGENT Corporation))

(subclass Attack Maneuver)
(documentation Attack "A &%Maneuver in a &%ViolentContest where the 
&%agent attempts to inflict damage on the &%patient.")

(=>
   (instance ?ATTACK Attack)
   (exists (?CONTEST)
      (and
         (instance ?CONTEST ViolentContest)
         (subProcess ?ATTACK ?CONTEST))))

(=>
   (and
      (instance ?ATTACK Attack)
      (agent ?ATTACK ?AGENT)
      (patient ?ATTACK ?OBJ))
   (hasPurposeForAgent ?ATTACK (exists (?DAMAGE)
                                  (and
                                     (instance ?DAMAGE Damaging)
                                     (patient ?DAMAGE ?OBJ))) ?AGENT))

(subclass DefensiveManeuver Maneuver)
(documentation DefensiveManeuver "A &%Maneuver in a &%ViolentContest 
where the &%agent attempts to avoid being damaged.")

(=>
   (instance ?DEFENSE DefensiveManeuver)
   (exists (?CONTEST)
      (and
         (instance ?CONTEST ViolentContest)
         (subProcess ?DEFENSE ?CONTEST))))

(=>
   (and
      (instance ?DEFENSE DefensiveManeuver)
      (agent ?DEFENSE ?AGENT))
   (hasPurposeForAgent ?DEFENSE (not (exists (?DAMAGE)
                                        (and
                                           (instance ?DAMAGE Damaging)
                                           (patient ?DAMAGE ?AGENT)))) ?AGENT))

(=>
   (and
      (instance ?MANEUVER Maneuver)
      (instance ?CONTEST ViolentContest)
      (subProcess ?MANEUVER ?CONTEST))
   (or
      (instance ?MANEUVER Attack)
      (instance ?MANEUVER DefensiveManeuver)))

(subclass Boxing ViolentContest)
(subclass Boxing Sport)
(documentation Boxing "A sport which involves two participants who try to 
knock each other out in a limited number of rounds.  Note that each instance 
of &%Boxing is a boxing match.")

(subclass Gymnastics Sport)
(documentation Gymnastics "A sport which involves exercises of agility on a 
range of gymnastic equipment.")

(subclass Baseball Sport)
(documentation Baseball "A sport which involves two teams of 9 players each 
that take turns at bat and attempt to score runs.  Note that each instance 
of &%Baseball is a baseball game.") 

(subclass BaseballTeam SportsTeam)
(documentation BaseballTeam "The class of &%SportsTeams that play &%Baseball.")

(=>
   (instance ?TEAM BaseballTeam)
   (capability Baseball agent ?TEAM))

(subclass BaseballInning Maneuver)
(documentation BaseballInning "A division of a &%Baseball game.  A normal game 
consists of 9 innings, and each inning involves a turn a bat for both teams.")

(=>
   (instance ?INNING BaseballInning)
   (exists (?GAME)
      (and
         (instance ?GAME Baseball)
         (subProcess ?INNING ?GAME))))

(instance legalRelation BinaryPredicate)
(instance legalRelation SymmetricRelation)
(domain legalRelation 1 CognitiveAgent)
(domain legalRelation 2 CognitiveAgent)
(documentation legalRelation "(&%legalRelation ?AGENT1 ?AGENT2) means 
there is a relationship involving legal obligations between ?AGENT1 and 
?AGENT2.  Some examples include marriage, adoption, etc.")

(=>
   (legalRelation ?AGENT1 ?AGENT2)
   (exists (?DECLARE ?OBLIGATION)
      (and
         (instance ?DECLARE Declaring)
         (confersObligation ?OBLIGATION ?DECLARE ?AGENT1)
         (confersObligation ?OBLIGATION ?DECLARE ?AGENT2))))
          
(subrelation spouse legalRelation)
(instance spouse IrreflexiveRelation)
(instance spouse SymmetricRelation)
(domain spouse 1 Human)
(domain spouse 2 Human)
(documentation spouse "The relationship of marriage between two &%Humans.")

(subrelation husband spouse)
(instance husband AsymmetricRelation)
(instance husband IrreflexiveRelation)
(domain husband 1 Man)
(domain husband 2 Woman)
(inverse husband wife)
(documentation husband "(&%husband ?MAN ?WOMAN) means that ?MAN is the 
husband of ?WOMAN.")

(subrelation wife spouse)
(instance wife AsymmetricRelation)
(instance wife IrreflexiveRelation)
(domain wife 1 Woman)
(domain wife 2 Man)
(documentation wife "(&%wife ?WOMAN ?MAN) means that ?WOMAN is the wife of 
?MAN.")

(instance Blind BiologicalAttribute)
(documentation Blind "The &%Attribute that applies to &%Animals and &%Humans 
that are unable to see.")

(=>
   (attribute ?AGENT Blind)
   (not (capability Seeing agent ?AGENT)))

(subclass BodyPosition BiologicalAttribute)
(documentation BodyPosition "The class of &%Attributes expressing 
configurations of bodies or parts of bodies of animals or humans, 
e.g. standing, sitting, kneeling, lying down, etc.")

(=>
   (instance ?ANIMAL Animal)
   (or
      (exists (?MOTION)
         (and
            (instance ?MOTION BodyMotion)
            (agent ?MOTION ?ANIMAL)))
      (exists (?ATTR)
         (and
            (instance ?ATTR BodyPosition)
            (attribute ?ANIMAL ?ATTR)))))

(instance Standing BodyPosition)
(documentation Standing "The &%BodyPosition of being upright, i.e. being 
fully extended and supported by nothing other than one's own feet.")

(instance Sitting BodyPosition)
(documentation Sitting "The &%BodyPosition of being recumbent, i.e. 
knees bent and back side supported.")

(instance Prostrate BodyPosition)
(documentation Prostrate "The &%BodyPosition of lying down, being in a 
horizontal position.")

(instance Fist BodyPosition) 
(documentation Fist "The &%BodyPosition of having the fingers drawn into 
the palm so that the hand can be used for striking something.")

(=>
   (attribute ?HAND Fist)
   (instance ?HAND Hand))

(subclass LyingDown BodyMotion)
(documentation LyingDown "The &%BodyMotion of moving from a &%Sitting 
to a &%Prostrate position.")

(=>
   (and
      (instance ?LIE LyingDown)
      (agent ?LIE ?AGENT))
   (and
      (holdsDuring (BeginFn (WhenFn ?LIE)) (attribute ?AGENT Sitting))
      (holdsDuring (EndFn (WhenFn ?LIE)) (attribute ?AGENT Prostrate))))

(subclass SittingDown BodyMotion)
(documentation SittingDown "The &%BodyMotion of moving from a &%Standing 
to a &%Sitting position.")

(=>
   (and
      (instance ?SIT SittingDown)
      (agent ?SIT ?AGENT))
   (and
      (holdsDuring (BeginFn (WhenFn ?SIT)) (attribute ?AGENT Standing))
      (holdsDuring (EndFn (WhenFn ?SIT)) (attribute ?AGENT Sitting))))
   
(subclass StandingUp BodyMotion)
(documentation StandingUp "The &%BodyMotion of moving from a &%Sitting 
to a &%Standing position.")

(=>
   (and
      (instance ?STAND StandingUp)
      (agent ?STAND ?AGENT))
   (and
      (holdsDuring (BeginFn (WhenFn ?STAND)) (attribute ?AGENT Sitting))
      (holdsDuring (EndFn (WhenFn ?STAND)) (attribute ?AGENT Standing))))

(subclass OpeningEyes BodyMotion)
(disjoint OpeningEyes ClosingEyes)
(documentation OpeningEyes "The &%BodyMotion of relaxing the eye lids so that 
the corneas are exposed to light.")

(subclass ClosingEyes BodyMotion)
(documentation ClosingEyes "The &%BodyMotion of tensing the eye lids so that 
the corneas are not exposed to light.")

(subclass Winking ClosingEyes)
(subclass Winking Gesture)
(documentation Winking "Any instance of &%ClosingEyes which is intended to 
express something to someone else.")

(subclass Shrugging BodyMotion)
(subclass Shrugging Gesture)
(documentation Shrugging "Moving the &%Shoulders in such a way that the motion 
is intended to express something to someone else.")

(=>
   (and
      (instance ?SHRUG Shrugging)
      (patient ?SHRUG ?SHOULDER))
   (instance ?SHOULDER Shoulder))

(subclass Trembling BodyMotion)
(subclass Trembling (ComplementFn IntentionalProcess))
(documentation Trembling "Any &%BodyMotion which is involuntary and which is 
repeated many times over a short time frame, e.g. a tremor in the hands.") 

(subclass DomesticAnimal Animal)
(disjoint DomesticAnimal Human)
(documentation DomesticAnimal "Any &%Animal that is kept by a &%Human, as 
a pet, as livestock, for exhibition, etc.")

(=>
   (instance ?ANIMAL DomesticAnimal)
   (exists (?KEEP ?PERSON)
      (and
         (instance ?KEEP Keeping)
         (agent ?KEEP ?PERSON)
         (instance ?PERSON Human)
         (patient ?KEEP ?ANIMAL))))

(=>
   (instance ?FEED Fodder)
   (hasPurpose ?FEED (exists (?ANIMAL ?EAT)
                        (and
                           (instance ?ANIMAL DomesticAnimal)
                           (instance ?EAT Eating)
                           (agent ?EAT ?ANIMAL)
                           (patient ?EAT ?FEED)))))

(subclass Horse HoofedMammal)
(subclass Horse DomesticAnimal)
(documentation Horse "A domesticated &%HoofedMammal that is used for 
transportation and work.")

(subclass Donkey HoofedMammal)
(subclass Donkey DomesticAnimal)
(documentation Donkey "A domesticated &%HoofedMammal that is used for 
work.")

(subclass Mule HoofedMammal)
(subclass Mule DomesticAnimal)
(documentation Mule "The product of a &%Male &%Donkey and a &%Female 
&%Horse.  &%Mules are always sterile.")

(=>
   (instance ?MULE Mule)
   (exists (?DONKEY ?HORSE)
      (and
         (father ?MULE ?DONKEY)
         (instance ?DONKEY Donkey)
         (mother ?MULE ?HORSE)
         (instance ?HORSE Horse))))

(=>
   (instance ?MULE Mule)
   (not (capability SexualReproduction agent ?MULE)))

(subclass Sheep HoofedMammal)
(subclass Sheep DomesticAnimal)
(documentation Sheep "A domesticated &%HoofedMammal that is bred for its 
wool and for its meat (known as mutton).")

(subclass Cow HoofedMammal)
(subclass Cow DomesticAnimal)
(documentation Cow "A domesticated &%HoofedMammal that is raised for milk 
and beef, and is also used for work.")

(subclass FemaleCow Cow)
(documentation FemaleCow "A &%Cow that is &%Female.")

(<=>
   (instance ?COW FemaleCow)
   (and
      (instance ?COW Cow)
      (attribute ?COW Female)))

(subclass Chicken Bird)
(subclass Chicken DomesticAnimal)
(documentation Chicken "A subclass of &%Bird that is raised for its meat 
and for its eggs.")

(subclass Hen Chicken)
(documentation Hen "A &%Female &%Chicken.")

(<=>
   (instance ?HEN Hen)
   (and
      (instance ?HEN Chicken)
      (attribute ?HEN Female)))

(subclass ChickenMeat Meat)
(documentation ChickenMeat "&%Meat that was originally part of a &%Chicken.")

(<=>
   (instance ?MEAT ChickenMeat)
   (exists (?CHICKEN)
      (and
         (instance ?MEAT Meat)
         (instance ?CHICKEN Chicken)
         (part ?MEAT ?CHICKEN))))

(subclass Mouse Rodent)
(documentation Mouse "A &%Rodent that has a hairless tail like a rat but that 
is smaller than a rat.")

(subclass Hay Fodder)
(documentation Hay "&%Grass that has been cut and cured for use as &%Fodder.")

(=>
   (instance ?HAY Hay)
   (exists (?MAKE)
      (and
         (instance ?MAKE Making)
         (resource ?MAKE ?GRASS)
         (instance ?GRASS Grass)
         (result ?MAKE ?HAY))))

(subclass Copying Making)
(documentation Copying "&%Making a &%copy of something.")

(=>
   (and
      (instance ?COPY Copying)
      (resource ?COPY ?THING1)
      (result ?COPY ?THING2))
   (copy ?THING1 ?THING2))

(subclass Vacationing RecreationOrExercise)
(documentation Vacationing "Taking time off from &%Working.")

(=>
   (and
      (instance ?VACATION Vacationing)
      (instance ?WORK Working)
      (agent ?VACATION ?PERSON)
      (agent ?WORK ?PERSON)
      (instance ?PERSON Human))
   (not (overlapsTemporally (WhenFn ?VACATION) (WhenFn ?WORK))))

(subclass Working FinancialTransaction)
(documentation Working "Any &%FinancialTransaction where someone exchanges 
his/her labor for an instance of &%CurrencyMeasure.")

(subclass Farming Working)
(documentation Farming "Operating a farm, e.g. planting and harvesting crops, 
tending livestock, etc.")

(=>
   (and
      (instance ?FARMING Farming)
      (agent ?FARMING ?FARMER))
   (exists (?FARM)
      (and
         (instance ?FARM Farm)
         (holdsDuring (WhenFn ?FARMING) (located ?FARMER ?FARM)))))

(subclass Serving Working)
(documentation Serving "Working as a waiter or servant, either for an 
&%Organization (e.g. a restaurant) or for a person or family.")

(subclass Sales Working)
(documentation Sales "Any instance of &%Working that involves &%Selling or 
trying to sell items.")

(subAttribute Retired Unemployed)
(documentation Retired "Voluntary unemployment toward the end of one's life.")

(subclass SkilledOccupation Position)
(documentation SkilledOccupation "Any &%Position which requires 
learning a set of skills.")

(=>
   (and
      (instance ?OCCUPATION SkilledOccupation)
      (attribute ?PERSON ?OCCUPATION))
   (exists (?TRAINING)
      (and
         (instance ?TRAINING EducationalProcess)
         (destination ?TRAINING ?PERSON)))) 

(subclass ManualLabor Position)
(documentation ManualLabor "Any &%Position which involves manual 
work.")

(subclass UnskilledOccupation ManualLabor)
(disjoint UnskilledOccupation SkilledOccupation)
(documentation UnskilledOccupation "Any &%Position which does not 
require learning a set of skills.") 

(instance Maid UnskilledOccupation)
(documentation Maid "A &%Position which involves &%Serving a person 
or family.  Note that this &%Position is filled only by a &%Woman.")

(=>
   (attribute ?MAID Maid)
   (instance ?MAID Woman))

(=>
   (attribute ?MAID Maid)
   (exists (?SERVE)
      (and
         (instance ?SERVE Serving)
         (agent ?SERVE ?MAID))))       

(instance TheaterProfession SkilledOccupation)
(documentation TheaterProfession "Often know as the stage, the 
&%Position of performing live plays.")

(subclass Coach SkilledOccupation)
(documentation Coach "Any occupation that involves training an athlete or a 
sports team.")

(subclass OccupationalTrade SkilledOccupation)
(subclass OccupationalTrade ManualLabor)
(documentation OccupationalTrade "Any &%Position that involves skilled 
manual work.")

(subclass Profession SkilledOccupation)
(disjoint Profession OccupationalTrade)
(documentation Profession "Any occupation that requires at least a bachelor's
degree.")

(=>
   (and
      (or
         (instance ?ROLE SkilledTrade)
         (instance ?ROLE Profession))
      (attribute ?HUMAN ?ROLE))
   (exists (?FIELD)
      (and
         (instance ?FIELD FieldOfStudy)
         (knows ?HUMAN ?FIELD))))

(subclass Cleric Profession)
(documentation Cleric "The &%Profession of being in charge of or ministering 
to a &%ReligousOrganization.")

(<=>
   (occupiesPosition ?PERSON Cleric ?ORG)
   (and
      (leader ?ORG ?PERSON)
      (instance ?ORG ReligiousOrganization)))

(subclass PoliceOfficer Profession)
(documentation PoliceOfficer "The &%Profession of being a police officer, i.e. 
working for a law enforcement agency that is part of a &%Government.")

(subclass PoliceDetective PoliceOfficer)
(documentation PoliceDetective "The &%Profession of being a police 
detective, i.e. being a &%PoliceOfficer whose duties include the 
investigation of crimes.") 

(subclass PrivateDetective Profession)
(disjoint PrivateDetective PoliceDetective)
(documentation PrivateDetective "The &%Profession of being a private detective, 
i.e. a detective who can be hired for a fee to investigate something.")

(subclass Professor Profession)
(documentation Professor "The &%Profession of being a &%teacher at a 
&%PostSecondarySchool.")

(=>
   (and
      (instance ?PROF Professor)
      (occupiesPosition ?PERSON ?PROF ?ORG))
   (and
      (teacher ?ORG ?PROF)
      (instance ?ORG PostSecondarySchool))) 

(subclass MedicalDoctor Profession)
(documentation MedicalDoctor "The &%Profession of being a medical doctor, 
i.e. having attended medical school and being licensed to practice medicine.")

(=>
   (attribute ?DOCTOR MedicalDoctor)
   (exists (?PROCESS1 ?PROCESS2)
      (and
         (subclass ?PROCESS1 DiagnosticProcess)
         (subclass ?PROCESS2 TherapeuticProcess)
         (capability ?PROCESS1 agent ?DOCTOR)
         (capability ?PROCESS2 agent ?DOCTOR))))

(subclass NewsReporter Profession)
(documentation NewsReporter "The &%Profession of being a news reporter, i.e. 
investigating and reporting, in a publication or broadcast program, current 
events.")

(instance Mathematics FieldOfStudy)
(documentation Mathematics "The &%FieldOfStudy dealing with quantities and their 
relations to one another.")

(subclass Science FieldOfStudy)
(documentation Science "Any &%FieldOfStudy which tests theories on the basis of 
careful observations and/or experiments and which has a cumulative body of results.") 

(subclass SocialScience Science)
(documentation SocialScience "Any &%Science which studies human behavior, either in 
the aggregate, as do, for example, &%Economics and &%Linguistics, or with respect to 
the individual, as does &%Psychology.")

(instance Economics SocialScience)
(documentation Economics "The field of economics.")

(instance Linguistics SocialScience)
(documentation Linguistics "The field of linguistics.")

(instance Psychology SocialScience)
(documentation Psychology "The field of psychology.")

(instance Biology Science)
(documentation Biology "The study of the classification, development, and 
functioning of &%Organisms.")

(subField Physiology Biology)
(documentation Physiology "The part of &%Biology dealing with the functioning of 
&%Organisms.")

(subField MedicalScience Biology)
(documentation MedicalScience "The field of medicine.")

(instance Chemistry Science)
(documentation Chemistry "The study of the compositions, properties, and 
reactions of &%Substances.")

(instance Physics Science)
(documentation Physics "The study of matter and energy and their relations.")

(instance Engineering Science)
(documentation Engineering "The application of instances of &%Science to the solution 
of practical problems, i.e. the creation of various forms of technology.")

(subField Electronics Physics)
(subField Electronics Engineering)
(documentation Electronics "The branch of &%Physics that deals with the theory 
and applications of electron emissions.")

(instance Theology FieldOfStudy)
(documentation Theology "The systematic study of religious practice and religious truth.")

(instance MilitaryScience FieldOfStudy)
(documentation MilitaryScience "The study of the principles of war.")

(instance History FieldOfStudy)
(documentation History "The recording and interpretation of past events involving 
&%Humans, including political events and cultural practices.")

(instance Philosophy FieldOfStudy)
(documentation Philosophy "The study of first principles, including epistemology, 
metaphysics, and ethics.")

(instance FieldOfLaw FieldOfStudy)
(documentation FieldOfLaw "The study of legal principles and the framework of national 
and/or international laws.")

(subrelation subField subProposition)
(instance subField TransitiveRelation)
(instance subField IrreflexiveRelation)
(domain subField 1 FieldOfStudy)
(domain subField 2 FieldOfStudy)
(documentation subField "(&%subField ?FIELD1 ?FIELD2) means that ?FIELD1 is a proper 
part of the &%FieldOfStudy ?FIELD2.  For example, &%Physiology is a &%subField of 
&%Biology.")

(instance hasExpertise BinaryPredicate)
(domain hasExpertise 1 Human)
(domain hasExpertise 2 FieldOfStudy)
(documentation hasExpertise "(&%hasExpertise ?PERSON ?FIELD) means that ?PERSON has 
studied the &%FieldOfStudy ?FIELD and is regarded as an expert.")

(=>
   (hasExpertise ?PERSON ?FIELD)
   (exists (?LEARN)
      (and
         (instance ?LEARN Learning)
         (agent ?LEARN ?PERSON)
         (realization ?LEARN ?FIELD))))

(instance hasOccupation BinaryPredicate)
(domain hasOccupation 1 Human)
(domainSubclass hasOccupation 2 IntentionalProcess)
(documentation hasOccupation "(&%hasOccupation ?PERSON ?WORK) means that ?PERSON 
engages in activities of the class ?WORK as a means of earning a living.")

(=>
   (hasOccupation ?PERSON ?WORK)
   (exists (?INST)
      (and
         (instance ?INST ?WORK)
         (instance ?INST Working)
         (agent ?INST ?PERSON))))

(subclass AutonomicProcess BiologicalProcess)
(disjoint AutonomicProcess IntentionalProcess)
(documentation AutonomicProcess "The class of &%BiologicalProcesses of 
which there is not conscious awareness and control.")

(=>
   (and
      (instance ?PROCESS AutonomicProcess)
      (agent ?PROCESS ?AGENT))
   (instance ?AGENT Hypothalamus))

(subclass Bleeding AutonomicProcess)
(documentation Bleeding "The release of &%Blood from an &%Animal in response 
to an &%Injuring of some sort.")

(=>
   (instance ?BLEED Bleeding)
   (exists (?INJURY)
      (and
         (instance ?INJURY Injuring)
         (causes ?INJURY ?BLEED))))

(=>
   (and
      (instance ?BLEED Bleeding)
      (experiencer ?BLEED ?ANIMAL))
   (instance ?ANIMAL Animal))

(=>
   (and
      (instance ?BLEED Bleeding)
      (experiencer ?BLEED ?ANIMAL))
   (exists (?BLOOD)
      (and
         (instance ?BLOOD Blood)
         (holdsDuring (BeginFn (WhenFn ?BLEED)) (part ?BLOOD ?ANIMAL))
         (holdsDuring (EndFn (WhenFn ?BLEED)) (not (part ?BLOOD ?ANIMAL))))))
   
(subclass ClosingContract Committing)
(documentation ClosingContract "Completing a &%Contract of some sort, 
e.g. the purchase of a house, closing a business deal, etc.")

(=>
   (and
      (instance ?CLOSE ClosingContract)
      (agent ?CLOSE ?AGENT)
      (destination ?CLOSE ?CONTRACT)
      (instance ?CONTRACT Contract))
   (agreementMember ?CONTRACT ?AGENT))

(subclass Opening Motion) 
(relatedInternalConcept Opening Closing) 
(documentation Opening "The &%Class of &%Processes where an aperture is 
created in an &%Object.  Note that the aperture may be created intentionally, 
as when one opens a door, or unintentionally, as when the ground ruptures 
in a seismic event.") 

(subclass Closing Motion) 
(documentation Closing "The &%Class of &%Processes where an aperture is 
closed in an &%Object.")

(subclass PreparedFood Food)
(documentation PreparedFood "&%Food that is the result of &%Cooking.")

(=>
   (instance ?FOOD PreparedFood)
   (exists (?COOK)
      (and
         (instance ?COOK Cooking)
         (result ?COOK ?FOOD))))

(subclass RawFood Food)
(documentation RawFood "&%Food that is not the result of &%Cooking.")

(=>
   (instance ?FOOD RawFood)
   (not (exists (?COOK)
      (and
         (instance ?COOK Cooking)
         (result ?COOK ?FOOD)))))

(subclass SoupStock PreparedFood)
(documentation SoupStock "&%Food which is prepared by reducing &%Meat 
and/or &%FruitOrVegetables to a translucent broth which can be used as 
a base for soups or sauces.") 

(subclass Coffee Beverage)
(subclass Coffee PreparedFood)
(documentation Coffee "A &%Beverage which is prepared by infusing ground, 
roasted coffee beans into hot water.")

(subclass DateFruit FruitOrVegetable)
(documentation DateFruit "A &%FruitOrVegetable that is produced by the date 
palm.")

(subclass Avocado FruitOrVegetable)
(documentation Avocado "A &%FruitOrVegetable that is shaped like a pear and 
has a dark green skin and a rich meat.")

(instance protonNumber BinaryPredicate)
(instance protonNumber SingleValuedRelation)
(instance protonNumber TotalValuedRelation)
(domain protonNumber 1 PureSubstance)
(domain protonNumber 2 PositiveInteger)
(documentation protonNumber "(&%protonNumber ?SUBSTANCE ?NUMBER) means that 
the &%PureSubstance ?SUBSTANCE has the number of &%Protons ?NUMBER.")

(=> 
   (protonNumber ?SUBSTANCE ?NUMBER) 
   (=> 
      (and 
         (part ?ATOM ?SUBSTANCE)
         (or 
            (instance ?ATOM Atom)
            (instance ?ATOM Molecule))) 
      (equal ?NUMBER (CardinalityFn (KappaFn ?PROTON 
                                       (and 
                                          (part ?PROTON ?ATOM) 
                                          (instance ?PROTON Proton))))))) 

(instance electronNumber BinaryPredicate)
(instance electronNumber SingleValuedRelation)
(instance electronNumber TotalValuedRelation)
(domain electronNumber 1 PureSubstance)
(domain electronNumber 2 PositiveInteger)
(documentation electronNumber "(&%electronNumber ?SUBSTANCE ?NUMBER) means that 
the &%PureSubstance ?SUBSTANCE has the number of &%Electrons ?NUMBER.")

(=> 
   (electronNumber ?TYPE ?NUMBER) 
   (=> 
      (and 
         (part ?ATOM ?SUBSTANCE)
         (or 
            (instance ?ATOM Atom)
            (instance ?ATOM Molecule))) 
      (equal ?NUMBER (CardinalityFn (KappaFn ?ELECTRON 
                                       (and 
                                          (part ?ELECTRON ?ATOM) 
                                          (instance ?ELECTRON Electron))))))) 


;; =================
;; Elements Ontology
;; =================

;; The following content is borrowed from the Elements Ontology.

(subrelation atomicNumber protonNumber) 
(domainSubclass atomicNumber 1 ElementalSubstance) 
(domain atomicNumber 2 PositiveInteger) 
(documentation atomicNumber "(&%atomicNumber ?ELEMENT ?NUMBER) means that the 
&%ElementalSubstance ?ELEMENT has the atomic number ?NUMBER. The atomic number 
is the number of &%Protons in the nucleus of an &%Atom.") 

(subclass Oxygen ElementalSubstance) 
(atomicNumber Oxygen 8) 
(documentation Oxygen "A colourless, odourless gaseous element belonging to 
group 16 of the periodic table. It is the most abundant element present in 
the earth's crust. It also makes up 20.8 percent of the Earth's atmosphere.  
For industrial purposes, it is separated from liquid air by fractional 
distillation. It is used in high temperature welding, and in breathing. It 
commonly comes in the form of Oxygen, but is found as Ozone in the upper 
atmosphere. It was discovered by Priestley in 1774.") 

(=> 
   (and 
      (instance ?ATOM Oxygen) 
      (instance ?ATOM Atom)) 
   (measure ?ATOM (MeasureFn 15.9994 Amu))) 

(subclass Chlorine ElementalSubstance)
(atomicNumber Chlorine 17)
(documentation Chlorine "Halogen element.  Poisonous greenish-yellow gas.  
Occurs widely in nature as sodium chloride in seawater.  Reacts directly 
with many elements and compounds, strong oxidizing agent.  Discovered by 
Karl Scheele in 1774.  Humphrey David confirmed it as an element in 
1810.") 

(=>
  (and
    (instance ?ATOM Chlorine)
    (instance ?ATOM Atom))
  (measure ?ATOM (MeasureFn 35.453 Amu)))

(subclass Sodium ElementalSubstance)
(atomicNumber Sodium 11)
(documentation Sodium "Soft silvery reactive element belonging to group 1 
of the periodic table (alkali metals).  It is highly reactive, oxidizing 
in air and reacting violently with water, forcing it to be kept under oil.  
It was first isolated by Humphrey Davy in 1807.") 

(=>
  (and
    (instance ?ATOM Sodium)
    (instance ?ATOM Atom))
  (measure ?ATOM (MeasureFn 22.9898 Amu)))

(subclass Hydrogen ElementalSubstance)
(atomicNumber Hydrogen 1)
(documentation Hydrogen "Colourless, odourless gaseous chemical element.  
Lightest and most abundant element in the universe.  Present in water and 
in all organic compounds.  Chemically reacts with most elements.  
Discovered by Henry Cavendish in 1776.") 

(=>
  (and
    (instance ?ATOM Hydrogen)
    (instance ?ATOM Atom))
  (measure ?ATOM (MeasureFn 1.0079 Amu)))

(subclass Carbon ElementalSubstance)
(atomicNumber Carbon 6)
(documentation Carbon "Carbon is a member of group 14 of the periodic 
table.  It has three allotropic forms of it, diamonds, graphite and 
fullerite.  Carbon-14 is commonly used in radioactive dating.  Carbon 
occurs in all organic life and is the basis of organic chemistry.  Carbon 
has the interesting chemical property of being able to bond with itself, 
and a wide variety of other elements.") 

(=>
  (and
    (instance ?ATOM Carbon)
    (instance ?ATOM Atom))
  (measure ?ATOM (MeasureFn 12.01115 Amu)))

(subclass Iodine ElementalSubstance)
(atomicNumber Iodine 53)
(documentation Iodine "Dark violet nonmetallic element, belongs to group 
17 of the periodic table.  Insoluble in water.  Required as a trace 
element for living organisms.  One stable isotope, I-127 exists, in 
addition to fourteen radioactive isotopes.  Chemically the least reactive 
of the halogens, and the most electropositive metallic halogen.  
Discovered in 1812 by Courtois.") 

(=>
  (and
    (instance ?ATOM Iodine)
    (instance ?ATOM Atom))
  (measure ?ATOM (MeasureFn 126.904 Amu)))

(subclass Iron ElementalSubstance)
(atomicNumber Iron 26)
(documentation Iron "Silvery malleable and ductile metallic transition 
element.  Has nine isotopes and is the fourth most abundant element in the 
earth's crust.  Required by living organisms as a trace element (used in 
hemoglobin in humans.) Quite reactive, oxidizes in moist air, displaces 
hydrogen from dilute acids and combines with nonmetallic elements.") 

(=>
  (and
    (instance ?ATOM Iron)
    (instance ?ATOM Atom))
  (measure ?ATOM (MeasureFn 55.847 Amu)))

(subclass Helium ElementalSubstance)
(atomicNumber Helium 2)
(documentation Helium "Colourless, odourless gaseous nonmetallic element.  
Belongs to group 18 of the periodic table.  Lowest boiling point of all 
elements and can only be solidified under pressure.  Chemically inert, no 
known compounds.  Discovered in the solar spectrum in 1868 by Lockyer.") 

(=>
  (and
    (instance ?ATOM Helium)
    (instance ?ATOM Atom))
  (measure ?ATOM (MeasureFn 4.0026 Amu)))

(subclass Nitrogen ElementalSubstance)
(atomicNumber Nitrogen 7)
(documentation Nitrogen "Colourless, gaseous element which belongs to 
group 15 of the periodic table.  Constitutes ~78 percent of the atmosphere 
and is an essential part of the ecosystem.  Nitrogen for industrial 
purposes is acquired by the fractional distillation of liquid air.  
Chemically inactive, reactive generally only at high temperatures or in 
electrical discharges.  It was discovered in 1772 by D.  Rutherford.") 

(=>
  (and
    (instance ?ATOM Nitrogen)
    (instance ?ATOM Atom))
  (measure ?ATOM (MeasureFn 14.0067 Amu)))

(subclass Copper ElementalSubstance)
(atomicNumber Copper 29)
(documentation Copper "Red-brown transition element.  Known by the Romans 
as 'cuprum.' Extracted and used for thousands of years.  Malleable, 
ductile and an excellent conductor of heat and electricity.  When in moist 
conditions, a greenish layer forms on the outside.") 

(=>
  (and
    (instance ?ATOM Copper)
    (instance ?ATOM Atom))
  (measure ?ATOM (MeasureFn 63.54 Amu)))

(subclass Zinc ElementalSubstance)
(atomicNumber Zinc 30)
(documentation Zinc "Blue-white metallic element.  Occurs in multiple 
compounds naturally.  Five stable isotopes are six radioactive isotopes 
have been found.  Chemically a reactive metal, combines with oxygen and 
other non-metals, reacts with dilute acids to release hydrogen.") 

(=>
  (and
    (instance ?ATOM Zinc)
    (instance ?ATOM Atom))
  (measure ?ATOM (MeasureFn 65.38 Amu)))


;; ==================
;; Financial Ontology
;; ==================

;; The following content is borrowed from the Financial Ontology.

(subclass FinancialInstrument Certificate)
(documentation FinancialInstrument "A document having monetary value 
or recording a monetary transaction") 

(subclass Currency FinancialInstrument)
(partition Currency CurrencyBill CurrencyCoin)
(documentation Currency "Any element of the official currrency of some 
&%Nation.  This covers both &%CurrencyBills and &%CurrencyCoins.")

(=>
   (instance ?CURRENCY Currency)
   (exists (?MEASURE)
      (monetaryValue ?CURRENCY ?MEASURE)))

(subclass CurrencyBill Currency)
(documentation CurrencyBill "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 "Any instance of &%Currency that is made 
of &%Metal.")

(=>
   (instance ?COIN CurrencyCoin)
   (exists (?METAL)
      (and
         (subclass ?METAL Metal)
         (material ?METAL ?COIN)))) 

(subclass Stock FinancialInstrument)
(documentation Stock "An instrument that signifies an ownership position, 
or equity, in a &%Corporation, and represents a claim on its proportionate 
share in the corporation's assets and profits.") 

(subclass Share CurrencyMeasure)
(instance Share UnitOfMeasure)
(documentation Share "A &%UnitOfMeasure representing one unit of ownership 
in a corporation, &%MutualFund, or limited partnership.")

(subrelation stockOf BinaryPredicate)
(domain stockOf 1 Stock)
(domain stockOf 2 Corporation)
(documentation stockOf "(&%stockOf ?Stock ?Corporation) means that ?Stock 
is issued by the &%Corporation ?Corporation.")

(instance stockHolder BinaryPredicate)
(domain stockHolder 1 Stock)
(domain stockHolder 2 CognitiveAgent)
(documentation stockHolder "(&%stockHolder ?Stock ?Agent) means that 
?Agent possesses the &%Stock ?Stock.")

(subclass FinancialOrganization Corporation)
(documentation FinancialOrganization "The class &%FinancialOrganization 
includes, as subclasses, &%BankOrganization, &%CreditUnion and 
&%SavingsAndLoan.")

(subclass BankOrganization FinancialOrganization)
(documentation BankOrganization "An organization, chartered by a state 
or federal government, which does most or all of the following: receives 
&%Deposits, honors &%FinancialInstruments drawn on them, and pays 
interest on them; discounts &%Notes, makes &%Loans, and invests in 
&%SecuredLoans; collects &%Checks, &%Drafts and &%Notes, certifies 
depositor's checks; and issues drafts and Cashier's checks.")

(subclass CreditUnion FinancialOrganization)
(documentation CreditUnion "Credit unions are non-profit, member-owned, 
financial cooperatives. They are operated entirely by and for their 
members. When money is deposited in a credit union, the depositor 
becomes a member of the union because the deposit is considered partial 
ownership in the credit union. Many large organizations have established 
credit unions for their employees.") 

(subclass SavingsAndLoan FinancialOrganization)
(documentation SavingsAndLoan "A federally or state chartered 
&%FinancialOrganization that takes &%Deposits from individuals, funds 
&%Mortgages, and pays &%Dividends.")

(subclass FinancialAccount Contract)
(documentation FinancialAccount "A formal banking, brokerage, or business 
relationship established to provide for regular services, dealings, and 
other financial transactions.")   

(instance agreementMember BinaryPredicate)
(instance agreementMember TotalValuedRelation)
(domain agreementMember 1 Contract)
(domain agreementMember 2 CognitiveAgent)
(documentation agreementMember "(&%agreementMember ?Agreement ?Agent) 
means that ?Agent is one of the participants of the &%Contract 
?Agreement.")

(subrelation financialAccount agreementMember)
(domain financialAccount 1 FinancialAccount)
(domain financialAccount 2 FinancialOrganization)
(documentation financialAccount "A formal banking, brokerage, or business 
relationship established to provide for regular services, dealings, and 
other financial transactions.  (&%accountAt ?ACCOUNT ?ORG) means that 
?ACCOUNT is a financial account opened at the &%FinancialOrganization 
?ORG.") 

(instance price TernaryPredicate)
(domain price 1 Object)
(domain price 2 CurrencyMeasure)
(domain price 3 Agent)
(documentation price "(&%price ?Obj ?Money ?Agent) means that ?Agent 
pays the amount of money ?Money for ?Obj.")

(=>
   (price ?Obj ?Money ?Agent)
   (exists (?Buying)
      (and
         (instance ?Buying Buying)
         (agent ?Buying ?Agent)
         (patient ?Buying ?Obj)
         (transactionAmount ?Buying ?Money))))

(instance transactionAmount BinaryPredicate) 
(instance transactionAmount SingleValuedRelation) 
(instance transactionAmount TotalValuedRelation) 
(domain transactionAmount 1 FinancialTransaction)
(domain transactionAmount 2 CurrencyMeasure) 
(documentation transactionAmount "(&%transactionAmount ?Transaction 
?Amount) means that ?Amount is an instance of &%CurrencyMeasure being 
exhanged in a &%FinancialTransaction ?Transaction.") 

(=>
   (transactionAmount ?Transaction ?Amount)
   (exists (?Obj)
      (and
         (patient ?Transaction ?Obj)
         (monetaryValue ?Obj ?Amount))))

(instance profit AsymmetricRelation)
(domain profit 1 FinancialTransaction)
(domain profit 2 CurrencyMeasure)
(documentation profit "The positive gain from an investment or business 
operation after subtracting for all expenses.") 

(instance loss AsymmetricRelation)
(domain loss 1 FinancialTransaction)
(domain loss 2 CurrencyMeasure)
(documentation loss "The amount by which the cost of an investment or 
business operation exceeds its return, i.e. the negative quantity left 
after subtracting for all expenses.") 

(subrelation financialAsset possesses)
(domain financialAsset 1 Agent)
(domain financialAsset 2 Object)
(documentation financialAsset "A predicate that relates an &%Agent to any 
item of economic value owned by the &%Agent.  Examples of financial assets 
are cash, securities, accounts receivable, inventory, office equipment, a 
house, a car, and other property.") 

(=>
	(financialAsset ?Agent ?Asset)
	(exists (?Value)
		(monetaryValue ?Asset ?Value)))

(subclass FillingAnOrder FinancialTransaction)
(documentation FillingAnOrder "Execute an order or buy or sell a &%Security.")

(=>
   (instance ?FILL FillingAnOrder)
   (exists (?OBJ)
      (and
         (patient ?TRANS ?OBJ)
         (instance ?OBJ Security))))

(subclass Security FinancialInstrument)
(documentation Security "An investment instrument, other than an insurance 
policy or a fixed annuity issued by a corporation, government, or other 
organization which offers evidence of debt or equity.")

(instance currentAccountBalance TernaryPredicate)
(domain currentAccountBalance 1 FinancialAccount)
(domain currentAccountBalance 2 Day)
(domain currentAccountBalance 3 CurrencyMeasure)
(documentation currentAccountBalance "(&%currentAccountBalance ?Account 
?Date ?Amount) means that ?Amount is the balance of the &%FinancialAccount 
?Account as of the date ?Date.")

(instance interestEarned TernaryPredicate)
(domain interestEarned 1 FinancialAccount)
(domain interestEarned 2 CurrencyMeasure)
(domain interestEarned 3 TimeInterval)
(documentation interestEarned "(&%interestEarned ?Account ?Interest ?Period) 
means that ?Interest is the amount earned on the &%FinancialAccount ?Account, 
for the &%TimeInterval ?Period.")

(=>
   (and
      (interestEarned ?Account ?Interest ?Time)
      (currentAccountBalance ?Account (BeginFn ?Time) ?Balance))
   (currentAccountBalance ?Account (EndFn ?Time) (AdditionFn ?Balance ?Interest))) 

(subclass CommercialService FinancialTransaction)
(documentation CommercialService "Any &%FinancialTransaction by a 
&%Corporation where the aim is to produce a &%profit.")

(=>
   (instance ?BUSINESS CommercialService)
   (hasPurpose ?BUSINESS
      (exists (?PROFIT)
         (profit ?BUSINESS ?PROFIT))))

(=>
   (instance ?BUSINESS CommercialService)
   (exists (?AGENT)
      (and
         (instance ?AGENT Corporation)
         (agent ?BUSINESS ?AGENT))))

(=>
	(instance ?Service CommercialService)
	(exists (?Org ?Agent)
            (and
			(instance ?Org Corporation)
                  (employs ?Org ?Agent)
			(agent ?Service ?Agent))))

(subclass FinancialService CommercialService)
(documentation FinancialService "Services performed by 
&%FinancialOrganizations.")

(=>
	(instance ?Service FinancialService)
	(exists (?Org)
		(and
			(instance ?Org FinancialOrganization)
			(agent ?Service ?Org))))

(instance customer IrreflexiveRelation)
(instance customer AsymmetricRelation)
(instance customer BinaryPredicate)
(domain customer 1 Agent)
(domain customer 2 Corporation)
(documentation customer "A very general relation that exists whenever there
is a &%CommercialService between an &%Agent and an &%Organization.  
(&%customer ?AGENT ?ORG) means that ?AGENT is a customer of the &%Corporation 
?ORG.") 

(<=>
	(customer ?Agent ?Org)
	(exists (?Service)
		(and
			(instance ?Service CommercialService)
			(agent ?Service ?Org)
			(destination ?Service ?Agent))))

(=>
	(and
		(accountHolder ?Account ?Agent)
		(financialAccount ?Account ?Bank))
	(customer ?Agent ?Bank))

(subrelation accountHolder agreementMember)
(domain accountHolder 1 FinancialAccount)
(domain accountHolder 2 CognitiveAgent)
(documentation accountHolder "(&%accountHolder ?Account ?Agent) means that 
?Agent is the account holder of the &%FinancialAccount ?Account.")

(instance income TernaryPredicate)
(domain income 1 Human)
(domain income 2 CurrencyMeasure)
(domain income 3 TimeInterval)
(documentation income "(&%income ?Agent ?Money ?Period) means that 
?Money is the amount of money or its equivalent received during a period 
of time in exchange for labor or services, from the sale of goods or 
property, or as profit from financial investments")

(instance incomeEarned TernaryPredicate)
(domain incomeEarned 1 Human)
(domain incomeEarned 2 CurrencyMeasure)
(domain incomeEarned 3 IntentionalProcess)
(documentation incomeEarned "(&%incomeEarned ?Agent ?Money ?Action) means 
that ?Agent earned the amount of money ?Money from performing ?Action.  Note 
that &%incomeEarned denotes that amount of money made before taxes are 
deducted.")

(=>
	(incomeEarned ?Agent ?Money ?Activity)
	(agent ?Activity ?Agent))

(subclass ChargingAFee FinancialTransaction)
(documentation ChargingAFee "An activity of a fee being charged")

(subclass Tax ChargingAFee)
(documentation Tax "A fee charged by a government on a product, income 
or activity.")

(=>
	(instance ?Tax Tax)
	(exists (?Org)
		(and
			(instance ?Org Government)
			(agent ?Tax ?Org))))

(subclass DutyTax Tax)
(documentation DutyTax "A &%Tax that is levied on imports and/or exports.")

(=>
   (and
      (instance ?TAX DutyTax)
      (patient ?TAX ?OBJ))
   (exists (?TRANSFER ?NATION1 ?NATION2)
      (and
         (instance ?TRANSFER Transfer)
         (patient ?TRANSFER ?OBJ)
         (origin ?TRANSFER ?NATION1)
         (destination ?TRANSFER ?NATION2)
         (instance ?NATION1 Nation)
         (instance ?NATION2 Nation)
         (not (equal ?NATION1 ?NATION2))
         (earlier (WhenFn ?TRANSFER) (WhenFn ?TAX))
         (causes ?TRANSFER ?TAX))))

;; definition of Payment

(subclass Payment FinancialTransaction)
(documentation Payment "The partial or complete discharge of an obligation by 
its settlement in the form of the transfer of funds, assets, or services equal 
to the monetary value of part or all of the debtor's obligation.")

(=>
	(and
		(instance ?Payment Payment)
		(origin ?Payment ?Account)
		(instance ?Account FinancialAccount)
		(transactionAmount ?Payment ?Amount)
		(currentAccountBalance ?Account (ImmediatePastFn (WhenFn ?Payment)) ?Balance1)
		(equal ?Balance2 (SubtractionFn ?Balance1 ?Amount)))
	(currentAccountBalance ?Account (ImmediateFutureFn (WhenFn ?Payment)) ?Balance2))

;; definition of Check

(subclass Check FinancialInstrument)  
(documentation Check "A &%FinancialInstrument drawn against deposited funds, 
to pay a specified amount of money to a specific person upon demand.")

(=>
	(instance ?Check Check)
	(exists (?Value)
		(monetaryValue ?Check ?Value)))

(=>
	(instance ?Check Check)
	(exists (?Account)
		(checkAccount ?Check ?Account)))

(=>
	(and
		(monetaryValue ?Check ?Amount)
		(checkAccount ?Check ?Account)
		(instance ?Processing ProcessingACheck)
		(patient ?Processing ?Check))
	(exists (?Withdrawal)
		(and
			(instance ?Withdrawal Withdrawal)
			(instrument ?Withdrawal ?Check)
			(meetsTemporally (WhenFn ?Processing) (WhenFn ?Withdrawal))
			(transactionAmount ?Withdrawal ?Amount)
			(origin ?Withdrawal ?Account))))

(=>
	(and
		(monetaryValue ?Check ?Amount)
		(instance ?Processing ProcessingACheck)
		(patient ?Processing ?Check)
		(destination ?Processing ?Account)
		(instance ?Account FinancialAccount))
	(exists (?Deposit)
		(and
			(instance ?Deposit Deposit)
			(instrument ?Deposit ?Check)
			(meetsTemporally (WhenFn ?Processing) (WhenFn ?Deposit))
			(transactionAmount ?Deposit ?Amount)
			(destination ?Deposit ?Account))))

(=>
	(and
		(instance ?Check Check)
		(instance ?Processing ProcessingACheck)
		(patient ?Processing ?Check))
	(exists (?Depositing)
		(and
			(instance ?Depositing DepositingACheck)
			(patient ?Depositing ?Check)
			(time ?Depositing (ImmediatePastFn (WhenFn ?Processing))))))

(=>
	(and
		(instance ?Depositing DepositingACheck)
		(instance ?Check Check)
		(agent ?Depositing ?Agent))
	(signedBy ?Check ?Agent))

(=>
	(and
		(instance ?Drawing DrawingACheck)
		(patient ?Drawing ?Check)
		(instance ?Processing ProcessingACheck)
		(patient ?Processing ?Check)
		(meetsTemporally (WhenFn ?Drawing) ?Time)
		(meetsTemporally ?Time (WhenFn ?Processing))
            (duration ?Time ?Duration))
	(lessThan ?Duration (MeasureFn 6 MonthDuration)))

;; Definition of PayCheck.

(subclass PayCheck Check)
(documentation PayCheck "A check issued to an employee in payment of salary or wages.")

(=>
	(and
	    (instance ?Check Paycheck)
	    (issuedBy ?Check ?Organization)
          (instance ?Give Giving)
          (destination ?Give ?Agent))
	(employs ?Organization ?Agent))

;; definition of checkAccount

(instance checkAccount BinaryPredicate)
(domain checkAccount 1 Check)
(domain checkAccount 2 FinancialAccount)
(documentation checkAccount "(&%checkAccount ?Check ?Account) means that ?Account 
is the &%FinancialAccount from which the amount specifed on the check is paid.")

;; definition of DrawingACheck

(subclass DrawingACheck UsingAnAccount)
(documentation DrawingACheck "An activity of paying by a check.")

(=>
	(and
		(instance ?Drawing DrawingACheck)
		(patient ?Drawing ?Check)
		(agent ?Drawing ?Agent)
		(checkAccount ?Check ?Account))
	(accountHolder ?Account ?Agent))

;; definition of DepositingACheck

(subclass DepositingACheck UsingAnAccount)
(documentation DepositingACheck "An activity of depositing a check into a 
&%FinancialOrganization.")

(=>
	(instance ?Depositing DepositingACheck)
	(exists (?Check)
		(and
			(instance ?Check Check)
			(patient ?Depositing ?Check))))

(=>
	(and
		(instance ?Depositing DepositingACheck)
		(patient ?Depositing ?Check)
		(instance ?Check Check)
		(checkAccount ?Check ?Account)
		(monetaryValue ?Check ?Amount))
	(exists (?Deposit)
		(and
			(instance ?Deposit Deposit)
			(destination ?Deposit ?Account)
			(transactionAmount ?Deposit ?Amount))))

;; definition of ProcessingACheck

(subclass ProcessingACheck AuthorizationOfTransaction)
(documentation ProcessingACheck "An activity of paying the amount specified on the 
check from funds on deposit.")

(=>
	(instance ?Processing ProcessingACheck)
	(exists (?Check)
		(and
			(instance ?Check Check)
			(patient ?Processing ?Check))))

(=>
	(instance ?Processing ProcessingACheck)
	(exists (?Authorization)
		(and
			(instance ?Authorization AuthorizationOfTransaction)
			(subProcess ?Authorization ?Processing))))

;; definition of DepositAccount

(subclass DepositAccount FinancialAccount)
(documentation DepositAccount "An account where money is deposited for checking, savings or 
brokerage use.")

;; Definition of CheckingAccount

(subclass CheckingAccount DepositAccount)
(documentation CheckingAccount "A bank account against which the depositor can draw checks") 

(=>
	(and
		(instance ?Account CheckingAccount)
		(instance ?Transaction FinancialTransaction)
		(origin ?Transaction ?Account))  
	(exists (?Check)
		(and
			(instance ?Check Check)
			(instrument ?Transaction ?Check))))

;; definition of AuthorizationOfTransaction

(subclass AuthorizationOfTransaction FinancialService)
(subclass AuthorizationOfTransaction RegulatoryProcess)
(documentation AuthorizationOfTransaction "An activity which approves or 
disapproves a transaction.")

(=>
	(and
		(instance ?Authorization AuthorizationOfTransaction)
		(patient ?Authorization ?Account)
		(financialAccount ?Account ?Bank))
	(agent ?Authorization ?Bank))

(=>
	(and
		(financialAccount ?Account ?Organization)
		(instance ?Transaction FinancialTransaction)
		(origin ?Transaction ?Account))  
	(exists (?Authorization)
		(and
			(instance ?Authorization AuthorizationOfTransaction)
			(subProcess ?Authorization ?Transaction))))

;; definition of Deposit

(subclass Deposit FinancialTransaction)
(disjoint Deposit Withdrawal)
(documentation Deposit "An Activity of money being transferred into a customer's 
account at a financial institution.")

(=>
	(instance ?Deposit Deposit)
	(exists (?Account)
            (and
                  (instance ?Account FinancialAccount)
		      (destination ?Deposit ?Account))))

(=>
	(and
		(instance ?Deposit Deposit)
		(time ?Deposit ?TimeOfDeposit)
		(instance ?Account FinancialAccount)
		(destination ?Deposit ?Account)
		(transactionAmount ?Deposit ?Amount)
		(currentAccountBalance ?Account (ImmediatePastFn (WhenFn ?Deposit)) ?Balance1)
		(equal ?Balance2 (AdditionFn ?Balance1 ?Amount)))
	(currentAccountBalance ?Account (ImmediateFutureFn (FutureFn ?Deposit)) ?Balance2))

;; definition of Withdrawal

(subclass Withdrawal FinancialTransaction)
(documentation Withdrawal "An activity of money being transferred from a customer's 
account at a financial institution.")

(=>
	(instance ?Withdrawal Withdrawal)
	(exists (?Account)
		(and
			(instance ?Account FinancialAccount)
			(origin ?Withdrawal ?Account))))

(=>
	(and
		(instance ?Withdrawal Withdrawal)
		(time ?Withdrawal ?TimeOfWithdrawal)
		(instance ?Account FinancialAccount)
		(origin ?Withdrawal ?Account)
		(transactionAmount ?Withdrawal ?Amount)
		(currentAccountBalance ?Account (ImmediatePastFn (WhenFn ?Withdrawal)) ?Balance1)
		(equal ?Balance2 (SubtractionFn ?Balance1 ?Amount)))
	(currentAccountBalance ?Account (ImmediateFutureFn (FutureFn ?Withdrawal)) ?Balance2))

;; definition of issuedBy

(instance issuedBy BinaryPredicate)
(domain issuedBy 1 FinancialInstrument)
(domain issuedBy 2 CognitiveAgent)
(documentation issuedBy "(&%issuedBy ?Instrument ?Agent) means that a 
&%FinancialInstrument ?Instrument is produced and offered by ?Agent.")

;; definition of signedBy

(instance signedBy BinaryPredicate)
(domain signedBy 1 FinancialInstrument)
(domain signedBy 2 CognitiveAgent)
(documentation signedBy "(&%signedBy ?Instrument ?Agent) means that ?Instrument 
has been signed by ?Agent.")

(<=>
   (signedBy ?INSTRUMENT ?AGENT)
   (exists (?SIGN)
      (and
         (instance ?SIGN SigningADocument)
         (agent ?SIGN ?AGENT)
         (resource ?SIGN ?INSTRUMENT))))

;; definition of Investing

(subclass Investing FinancialTransaction)
(documentation Investing "An activity of commiting money or capital in order to 
gain a financial return.")

(=>
	(and
		(agent ?Purchase ?Buyer)
		(origin ?Purchase ?Seller)
		(patient ?Purchase ?Object)
		(monetaryValue ?Object ?Money))
	(exists (?Payment)
		(and
			(subProcess ?Payment ?Purchase)
			(instance ?Payment Payment)
			(transactionAmount ?Payment ?Money)
			(destination ?Payment ?Seller))))

;; Definition of Bond.

(subclass Bond FinancialInstrument)
(documentation Bond "A debt instrument issued for a period of more than one year with 
the purpose of raising capital by borrowing. The Federal government, states, cities, 
corporations, and many other types of institutions sell bonds. A bond is generally a 
promise to repay the principal along with interest on a specified &%maturityDate.") 

(=>
	(instance ?Bond Bond)
	(exists (?Date)
		(maturityDate ?Bond ?Date)))


(=>	
	(and
		(instance ?Bond Bond)
		(couponInterest ?Bond ?Interest)
		(possesses ?BondHolder ?Bond))
	(exists (?Period)
		(and
			(periodicPayment (AccountFn ?Bond) ?Interest ?Period)
			(destination ?Interest ?BondHolder))))

;; Definition of couponInterest.

(instance couponInterest BinaryPredicate)
(domain couponInterest 1 Bond)
(domain couponInterest 2 CurrencyMeasure)
(documentation couponInterest "(&%couponInterest ?BOND ?INTEREST) means that ?INTEREST is 
the periodic interest payment made to bondholders during the life of the ?BOND.")

;; Definition of maturityDate.

(instance maturityDate BinaryPredicate)
(domain maturityDate 1 FinancialAccount)
(domain  maturityDate  2 Day)
(documentation maturityDate "The date on which the principal amount of the account 
becomes due and payable.")

(=>	
	(and
		(maturityDate ?Account ?Date)
		(principalAmount ?Account ?Principal))
	(amountDue ?Account ?Principal ?Date))

(<=>
      (exists (?Period)
	   (and
		(agreementPeriod ?Account ?Period)
		(finishes ?End ?Period)))
	(maturityDate ?Account ?End))

;; Definition of principalAmount.

(instance principalAmount BinaryPredicate)
(domain principalAmount 1 FinancialAccount)
(domain principalAmount 2 CurrencyMeasure)
(documentation principalAmount "(&%principalAmount ?ACCOUNT ?BALANCE) means 
that ?BALANCE is the amount originally borrowed (excluding interest).") 

;; Definition of periodicPayment.

(instance periodicPayment TernaryPredicate)
(domain periodicPayment 1 FinancialAccount)
(domain periodicPayment 2 CurrencyMeasure)
(domain periodicPayment 3 TimeDuration)
(documentation periodicPayment "(&%periodicPayment ?Account ?Amount ?Period) holds if
?Amount is the amount that must be made from the &%FinancialAccount ?Account after every 
period of duration ?Period.")  

(=>
	(periodicPayment ?Account ?Amount ?Period)
	(exists (?Payment ?Type)
		(and
			(instance ?Payment ?Type)
                  (subclass ?Type Payment)
			(origin ?Payment ?Account)
			(transactionAmount ?Payment ?Amount)
			(frequency ?Type ?Period))))

;; Definition of amountDue.

(instance amountDue TernaryPredicate)
(domain amountDue  1 FinancialAccount)
(domain amountDue 2 CurrencyMeasure)
(domain amountDue 3 TimePosition)
(documentation amountDue "(&%amountDue ?ACCOUNT ?AMOUNT ?DATE) means ?DATE is the 
date on which the amount of Money ?AMOUNT of a particular ?ACCOUNT is due and payable")

(=>	
	(and
		(amountDue ?Account ?Amount ?DueDate)
		(accountHolder ?Account ?Agent))
	(holdsObligation (exists (?Payment ?Date)
				  (and
					(instance ?Payment Payment)
					(transactionAmount ?Payment ?Amount)
                              (agent ?Payment ?Agent)
					(origin ?Payment ?Account)
					(date ?Payment ?Date)
					(beforeOrEqual (EndFn ?Date) (EndFn ?DueDate)))) ?Agent))

;; definition of securedBy

(instance securedBy BinaryPredicate)
(domain securedBy 1 FinancialAccount)
(domain securedBy 2 Collateral) 
(documentation securedBy "Assets pledged by a borrower to secure a loan or other credit, and subject to seizure in the event of &%FinancialDefault.") 


;; ==================
;; Geography Ontology
;; ==================

;; The following content is borrowed from the Geography Ontology.

(subclass Fishing Hunting)
(documentation Fishing "&%Fishing is the class of &%Processes in which 
&%Fish are hunted.")

(=>
	(and
		(instance ?FISHING Fishing)
		(patient ?FISHING ?TARGET)
		(instance ?TARGET Animal))
	(instance ?TARGET Fish))

(subclass Hunting Pursuing)
(documentation Hunting "&%Hunting is the class of &%Processes in which 
an animal or animals are pursued and sometimes captured and/or killed.")

(=>
	(instance ?HUNT Hunting)
	(exists (?TARGET)
		(and
			(instance ?TARGET Animal)
			(patient ?HUNT ?TARGET))))

(=>
     (and
        (instance ?HUNT Hunting)
        (patient ?HUNT ?PREY))
     (hasPurpose ?HUNT (exists (?PROC)
                          (and
                             (patient ?PROC ?PREY)
                             (or
                                (instance ?PROC Confining)
                                (instance ?PROC Killing))))))

(instance geographicSubregion BinaryPredicate)
(instance geographicSubregion TransitiveRelation)
(instance geographicSubregion AsymmetricRelation)
(subrelation geographicSubregion properPart)
(subrelation geographicSubregion located)
(domain geographicSubregion 1 GeographicArea)
(domain geographicSubregion 2 GeographicArea)
(documentation geographicSubregion "(&%geographicSubregion ?PART ?WHOLE) 
means that the &%GeographicArea ?PART is part of the &%GeographicArea 
?WHOLE.")

(instance SquareMeter UnitOfMeasure)
(subclass SquareMeter AreaMeasure)
(documentation SquareMeter "&%SquareMeter represents a &%UnitOfMeasure 
equal to one square &%Meter.")

(equal (MeasureFn 1 SquareMeter) 
	 (PerFn (MeasureFn 1 Meter)(MeasureFn 1 Meter)))

(subclass GeologicalProcess (ComplementFn IntentionalProcess))
(subclass GeologicalProcess Motion)
(documentation GeologicalProcess "The class of activities that 
are caused by geological forces and affect geological features, 
and which may affect the biosphere as well.")

(subclass Earthquake GeologicalProcess)
(documentation Earthquake "&%Earthquake is the class of events in 
which the earth shakes while its layers readjust due to tensional 
stresses in the surface of the earth.  A single earthquake may consist 
of one or more &%EarthTremors.")

(=>
	(instance ?QUAKE Earthquake)
	(exists (?TREMOR)
		(and
			(instance ?TREMOR EarthTremor)
			(subProcess ?TREMOR ?QUAKE))))

(subclass EarthTremor GeologicalProcess)
(documentation EarthTremor "An &%EarthTremor is an individual seismic 
event in which the earth shakes due to release of seismic pressures.")

(subclass Planting Putting)
(documentation Planting "&%Planting is the class of processes in 
which &%Plants are planted or transplanted, whether as seeds, seedlings, 
or mature plants.")

(=>
   (and
      (instance ?PLANT Planting)
      (patient ?PLANT ?OBJ))
   (or
      (instance ?OBJ Plant)
      (instance ?OBJ Seed)
      (instance ?OBJ Spore)))

(instance DocumentFn UnaryFunction)
(domain DocumentFn 1 Proposition)
(rangeSubclass DocumentFn Text)
(documentation DocumentFn "(&%DocumentFn ?PROP) denotes the class 
of &%ContentBearingObjects that contain the information ?PROP.")

(=>
	(instance ?TEXT (DocumentFn ?PROP))
	(containsInformation ?TEXT ?PROP))

(subclass SigningADocument Committing)
(documentation SigningADocument "&%SigningADocument is the class of 
actions in which an agent affixes a signature, stamp, or other evidence 
of authorization or attestation to a document.  The document and signature 
may be electronic.  Signings count as &%SocialInteractions even if done in 
private, because their significance derives from a social context.")

(=>
   (and
	(instance ?SIGN SigningADocument)
      (agent ?SIGN ?AGENT)
      (result ?SIGN ?SIGNATURE)
      (resource ?SIGN ?TEXT))
   (exists (?NAME)
      (and
         (names ?NAME ?AGENT)
         (refers ?SIGNATURE ?NAME)
         (instance ?TEXT Text))))

(subclass Star AstronomicalBody)
(documentation Star "&%Star is the class of hot gaseous astronomical bodies.")

(instance Sol Star)
(documentation Sol "&%Sol is the nearest &%Star to &%PlanetEarth and 
the focus of its &%SolarSystem.")

(subclass SolarSystem Collection)
(documentation SolarSystem "&%SolarSystem is the class of systems that 
consist of a star or stars and any encircling astronomical bodies.")

(subclass Meteoroid AstronomicalBody)
(documentation Meteoroid "Any &%AstronomicalBody that breaks through the 
atmosphere of &%Earth.")

(subclass Meteorite Meteoroid)
(documentation Meteorite "Any &%Meteoroid that leaves traces on the surface 
of &%Earth.")

(subclass Satellite (UnionFn AstronomicalBody Artifact))
(documentation Satellite "&%Satellite is the collection of bodies that 
revolve around some  astronomical body, e.g., planets around a star.")

(instance orbits BinaryPredicate)
(instance orbits AsymmetricRelation)
(domain orbits 1 Object)
(domain orbits 2 AstronomicalBody)
(documentation orbits "(&%orbits ?SATELLITE ?FOCUS) means that the &%Object 
?SATELLITE revolves around the &%AstronomicalBody ?FOCUS.")

(=>
	(instance ?SAT Satellite)
	(exists (?BODY)
		(and
			(instance ?BODY AstronomicalBody)
			(orbits ?SAT ?FOCUS))))

(subclass NaturalSatellite Satellite)
(subclass NaturalSatellite AstronomicalBody)
(disjoint NaturalSatellite Artifact)
(documentation NaturalSatellite "&%NaturalSatellite is the class of 
large, naturally occurring astronomical bodies orbiting some other 
&%AstronomicalBody.")

(subclass Moon NaturalSatellite)
(documentation Moon "&%Moon is the class of &%NaturalSatellites that 
orbit planets or large asteroids.")

(instance EarthsMoon Moon)
(orbits EarthsMoon PlanetEarth)

(subclass Planet NaturalSatellite)
(documentation Planet "&%Planet is the class of large &%NaturalSatellites 
that revolve around a star.")

(instance PlanetEarth Planet)
(orbits PlanetEarth Sol)
(instance PlanetMercury Planet)
(orbits PlanetEarth Sol)
(instance PlanetVenus Planet)
(orbits PlanetVenus Sol)
(instance PlanetMars Planet)
(orbits PlanetMars Sol)
(instance PlanetJupiter Planet)
(orbits PlanetJupiter Sol)
(instance PlanetSaturn Planet)
(orbits PlanetSaturn Sol)
(instance PlanetNeptune Planet)
(orbits PlanetNeptune Sol)
(instance PlanetUranus Planet)
(orbits PlanetUranus Sol)
(instance PlanetPluto Planet)
(orbits PlanetPluto Sol)

(=>
	(instance ?AREA GeographicArea)
	(geographicSubregion ?AREA PlanetEarth))

(subclass WeatherProcess InternalChange)
(documentation WeatherProcess "&%WeatherProcess is the broadest class of 
processes that involve weather, including weather seasons (not to be confused 
with instances of &%SeasonOfYear), weather systems, and short-term weather 
events.")

(subclass WeatherFront WeatherProcess)
(documentation WeatherFront "&%WeatherFront is the class of weather 
processes that are involve relationships between two air masses, such 
as a high pressure weather system or a low pressure system.")

(=>
   (instance ?WEATHER WeatherFront)
   (exists (?FRONT)
      (and
         (instance ?FRONT StormFront)
         (located ?WEATHER ?FRONT))))

(instance barometricPressure BinaryPredicate)
(instance barometricPressure AsymmetricRelation)
(subrelation barometricPressure measure)
(domain barometricPressure 1 Object)
(domain barometricPressure 2 PressureMeasure)
(documentation barometricPressure "(&%barometricPressure ?AREA ?PRESSURE) 
means that the atmospheric pressure measured at ?AREA is ?PRESSURE.  
Barometric pressure is typically expressed in units of &%InchMercury or 
&%MmMercury.  For example, standard sea level pressure is 29.92 inches 
(760 mm) of mercury: (&%barometricPressure &%SeaLevel (&%MeasureFn 29.92 
&%InchMercury)).")

(subclass PressureMeasure ConstantQuantity)
(documentation PressureMeasure "&%PressureMeasure is the class 
of &%UnitsOfMeasure used to measure pressure (&%barometricPressure), 
e.g., &%InchMercury.")

(subclass InchMercury PressureMeasure)
(instance InchMercury UnitOfMeasure)
(documentation InchMercury "&%InchMercury is a &%UnitOfMeasure 
for &%barometricPressure.  It is used to express the number of 
inches of mercury supported in a mercurial barometer by the 
surrounding air pressure.")

(subclass MmMercury PressureMeasure)
(instance MmMercury UnitOfMeasure)
(documentation MmMercury "&%MmMercury is a &%UnitOfMeasure 
for &%barometricPressure.  It is used to express the number 
of millimeters of mercury supported in a mercurial barometer
 by the surrounding air pressure.")

(subclass Atmosphere Region)
(subclass Atmosphere (ExtensionFn Gas))
(documentation Atmosphere "&%Atmosphere is a mixture of gases 
surrounding any celestial object that has a gravitational field 
strong enough to prevent the gases from escaping.") 

(=>
	(instance ?AIR Atmosphere)
	(exists (?BODY)
		(and
			(instance ?BODY AstronomicalBody)
			(meetsSpatially ?AIR ?BODY))))

(instance EarthsAtmosphere Atmosphere)

(subclass AtmosphericRegion GeographicArea)
(documentation AtmosphericRegion "&%AtmosphericRegion is the class of 
all subregions of &%EarthsAtmosphere.")

(=>
	(instance ?AIRSPACE AtmosphericRegion)
	(part ?AIRSPACE EarthsAtmosphere))

(subclass Air Mixture)
(subclass Air (ExtensionFn Gas))
(documentation Air "&%Air is the gaseous stuff that makes up the 
atmosphere surrounding Earth.")

(=>
	(instance ?AIR Air)
	(piece ?AIR EarthsAtmosphere))

(=>
	(instance ?AIRSPACE AtmosphericRegion)
	(exists (?AIR)
		(and
			(instance ?AIR Air)
			(part ?AIR ?AIRSPACE))))

(=>
	(instance ?AIR Air)
	(exists (?PART)
		(and 
		     (instance ?PART Oxygen)
		     (part ?PART ?AIR))))

(=>
	(instance ?AIR Air)
	(exists (?PART)
		(and 
		     (instance ?PART Nitrogen)
		     (part ?PART ?AIR))))


(subclass FlowRegion SelfConnectedObject)
(subclass FlowRegion (ExtensionFn Fluid))
(documentation FlowRegion "&%FlowRegion is a class of things whose 
boundaries are relatively stable but whose constitutive &%material is 
continuously moving through the region itself and being replaced by 
other, similar material.  Each &%FlowRegion is constituted by a stream 
of matter moving as a whole.  A &%FlowRegion may be liquid or gaseous.  
A wind may be considered as a &%Process or as a &%FlowRegion, similarly 
an ocean current or a &%WaterWave.  Note that certain 
properties belong to the &%FlowRegion itself (e.g., mass, length, volume, 
temperature, and speed or velocity of the region moving as a whole), 
while other properties of interest belong to the &%Motion of its 
constitutive stuff (e.g., velocity, direction).  The motion of 
a &%FlowRegion as a whole (e.g. the jet stream moves within the atmosphere) 
is distinguished from the motion of the &%pieces of stuff constituting the 
&%FlowRegion.")

(=>
	(instance ?FLUID FlowRegion)
	(attribute ?FLUID Fluid))

(subclass AirStream FlowRegion)	
(subclass AirStream Air)
(documentation AirStream "&%AirStream is the class of &%FlowRegions that 
consist of air.")

(subclass Wind AirStream)
(documentation Wind "&%Wind is the class of variable &%AirStreams 
that occur in &%EarthsAtmosphere.")

(=>
	(instance ?BLOW Wind)
	(located ?BLOW EarthsAtmosphere))

(subclass Falling Translocation)
(subclass Falling MotionDownward)
(documentation Falling "&%Falling is the class of events in 
which something moves from a higher location to a lower location 
under the force of gravity.")

(=>
	(and
		(instance ?DROP Falling)
		(origin ?DROP ?START)
		(destination ?DROP ?FINISH))
	(orientation ?FINISH ?START Below))

(subclass Precipitation WeatherProcess)
(subclass Precipitation WaterMotion)
(subclass Precipitation Falling)
(documentation Precipitation "&%Precipitation is the process of 
water molecules falling from the air to the ground, in either a 
liquid or frozen state.")

(=>
	(instance ?PROCESS Precipitation)
	(exists (?STUFF)
		(and
			(instance ?STUFF Water)
			(patient ?PROCESS ?STUFF))))

(subclass Raining Precipitation)
(documentation Raining "&%Raining is a precipitation process 
in which water falls in a &%Liquid state.")

(=>
	(instance ?PROCESS Raining)
	(attribute ?PROCESS Liquid))

(subclass Snowing Precipitation)
(documentation Raining "&%Snowing is a precipitation process 
in which water falls in a &%Solid state.")

(=>
	(instance ?PROCESS Snowing)
	(attribute ?PROCESS Solid))

(subclass BotanicalTree FloweringPlant)
(documentation BotanicalTree "&%BotanicalTree is an imprecise term 
for a perennial woody plant that is larger than a bush or shrub, 
generally understood to describe a large growth having one main trunk 
with few or no branches projecting from its base, a well-developed crown 
of foliage, and a height at maturity of at least 12 feet.")

(=>
   (instance ?TREE BotanicalTree)
   (exists (?WOOD)
      (and
         (instance ?WOOD Wood)
         (part ?WOOD ?TREE))))

(subclass Shrub FloweringPlant)
(documentation Shrub "&%Shrub is the class of low, perennial, 
typically multi-stemmed woody plants, called shrubs or bushes.")

(=>
	(and
		(instance ?TREE BotanicalTree)
		(instance ?BUSH Shrub)
		(height ?TREE ?TALL)
		(height ?BUSH ?SHORT))
	(greaterThan ?TALL ?SHORT))

(subclass Forest LandArea)
(disjoint Forest Field)
(documentation Forest "&%Forest is the class of large &%LandAreas that 
are covered by trees and associated undergrowth, either growing wild or 
managed for the purpose of timber production.")  

(=>
   (instance ?WOODS Forest)
   (exists (?TREE)
      (and
         (instance ?TREE BotanicalTree)
         (located ?TREE ?WOODS))))

(subclass Agriculture Maintaining)
(documentation Agriculture "&%Agriculture is a class of &%Processes 
in which land, plants, or animals are cultivated in order to produce 
food or other organic products.")

(=>
	(instance ?AGRO Agriculture)
	(exists (?GROWTH)
		(and
			(instance ?GROWTH Growth)
			(subProcess ?GROWTH ?AGRO))))

(subclass Inlet BodyOfWater)
(documentation Inlet "&%Inlet is the class of bays or other recesses 
into the shore of a lake, sea, or river; includes narrow inlets, which 
are passages leading from open water through some barrier to a bay or 
lagoon.")

(=>
	(instance ?INLET Inlet)
	(exists (?LAND)
		(and
			(instance ?LAND LandArea)
			(penetrates ?INLET ?LAND))))
(=>
	(instance ?INLET Inlet)
	(exists (?WATER)
		(and
			(instance ?WATER WaterArea)
			(connected ?INLET ?WATER))))
(=>
	(and
		(instance ?INLET Inlet)
		(meetsSpatially ?INLET ?WATER)
		(instance ?WATER SaltWaterArea))
	(instance ?INLET SaltWaterArea))
(=>
	(and
		(instance ?INLET Inlet)
		(meetsSpatially ?INLET ?WATER)
		(instance ?WATER FreshWaterArea))
	(instance ?INLET FreshWaterArea))

(subclass BodyOfWater WaterArea)
(subclass BodyOfWater SelfConnectedObject)
(documentation BodyOfWater "A &%BodyOfWater is a connected body of 
water with established boundaries marked by either geographical features 
or conventional borders.")

(subclass River BodyOfWater)
(subclass River StreamWaterArea)
(subclass River FreshWaterArea)
(documentation River "&%River is the class of large streams of fresh 
water flowing through land into a lake, ocean, or other body of water.")

(instance WorldOcean SaltWaterArea)
(instance WorldOcean BodyOfWater)
(documentation WorldOcean "The &%WorldOcean is the collective mass of 
sea water that covers 70% of the surface of &%PlanetEarth, surrounding 
all of its dry land areas.  Earth's individual &%Oceans are parts of 
the &%WorldOcean.")

(=>
	(instance ?AREA Continent)
	(meetsSpatially ?AREA WorldOcean))

(subclass Ocean SaltWaterArea)
(subclass Ocean BodyOfWater)
(documentation Ocean "&%Ocean is the class containing the oceans 
that are the major subdivisions of the &%WorldOcean.  According to 
the International Hydrographic Association, there are five oceans: 
the &%AtlanticOcean, &%PacificOcean, &%IndianOcean, &%SouthernOcean, 
and &%ArcticOcean.  Note: The largest oceans, the Atlantic and Pacific, 
are subdivided into Northern and Southern regions, but those regions 
are not separate &%Oceans.")

(=>
	(and
		(instance ?WATER BodyOfWater)
		(not (instance ?WATER Ocean))
		(instance ?OCEAN Ocean))
	(larger ?OCEAN ?water)) 

(=>
	(instance ?OCEAN Ocean)
	(properPart ?OCEAN WorldOcean))

(instance AtlanticOcean Ocean)
(documentation AtlanticOcean "&%AtlanticOcean represents the Atlantic 
Ocean.")

(instance PacificOcean Ocean)
(documentation PacificOcean "&%PacificOcean represents the Pacific  
Ocean.")

(subclass LandForm LandArea)
(documentation LandForm "A &%LandForm is the class of geographically and/or 
geologically distinct areas that occur on Earth's surface, including mountains, 
hills, plains, valleys, deltas, and features of submerged land areas such as 
the ocean floor.")

(subclass SlopedArea LandForm)
(documentation SlopedArea "A &%SlopedArea is a land surface which lies at an 
angle to the horizontal so that some points on it are higher than others; a 
slope.")

(=>
	(instance ?incline SlopedArea)
	(exists (?top ?bottom ?height1 ?height2)
		(and
			(top ?top ?incline)
			(bottom ?bottom ?incline)
			(altitude ?top ?height1)
			(altitude ?bottom ?height2)
			(successorAttributeClosure ?height2 ?height1) ; needed?
			(greaterThan ?height1 ?height2))))
	
(subclass Soil Mixture)
(documentation Soil "&%Soil is a substance composed of fine rock material 
disintegrated by geological processes, mixed with humus, the organic remains 
of decomposed vegetation.")

(=>
	(instance ?Soil Soil)
	(exists (?Humus ?Mineral)
		(and
			(instance ?Humus Humus)
			(instance ?Mineral Mineral)
			(part ?Humus ?Soil)
			(part ?Mineral ?Soil))))

(subclass Humus Mixture)
(documentation Humus "&%Humus is decaying organic matter found in &%Soil and derived 
from dead animal and plant material.")

(=>
	(instance ?Humus Humus)
	(exists (?Soil)
		(and
			(instance ?Soil Soil)
			(part ?Humus ?Soil))))

(subclass Clay Soil)
(documentation Clay "Fine-grained soil consisting of mineral particles, not 
necessarily clay minerals, that are less than 0.002 mm in their maximum dimension.") 

(=>
	(and
		(part ?Particle ?Soil)
		(instance ?Soil Clay)
		(diameter ?Particle (MeasureFn ?Size Centimeter)))
	(greaterThan 0.0002 ?Size))

(subclass Sand Soil)
(documentation Sand "&%Sand is loose fragments of minerals or rocks. Smaller than 
gravel and larger than silt and clay, sand particles range from 8/10,000 to 8/100 
inch (0.02 to 2 millimeters) in diameter. &%Sand is formed by the &%Erosion of rocks 
through the action of water, ice, or air.")

(<=>
   (instance ?CONTINENT Continent)
   (or
      (equal Africa ?CONTINENT)
      (equal NorthAmerica ?CONTINENT)
      (equal SouthAmerica ?CONTINENT)
      (equal Antarctica ?CONTINENT)
      (equal Europe ?CONTINENT)
      (equal Asia ?CONTINENT)
      (equal Oceania ?CONTINENT)))

(instance Africa Continent)
(instance NorthAmerica Continent)
(instance SouthAmerica Continent)
(instance Antarctica Continent)
(instance Europe Continent)
(instance Asia Continent)
(instance Oceania Continent)

(instance ArcticRegion GeographicArea)
(documentation ArcticRegion "The &%ArcticRegion is the region of 
&%PlanetEarth that lies north of the Arctic Circle (approximately 
66 and one half degrees &%North latitude) or beyond the northern 
treeline: 'The Arctic'. See also &%ArcticArea.")


;; ===================
;; Government Ontology
;; ===================

;; The following content is borrowed from the Government Ontology.

(instance dependentGeopoliticalArea AsymmetricRelation) 
(instance dependentGeopoliticalArea TransitiveRelation) 
(domain dependentGeopoliticalArea 1 GeopoliticalArea) 
(domain dependentGeopoliticalArea 2 GeopoliticalArea) 
(relatedInternalConcept dependentGeopoliticalArea primaryGeopoliticalSubdivision)
(documentation dependentGeopoliticalArea "(&%dependentGeopoliticalArea 
?AREA1 ?AREA2) means that ?AREA1 is a geopolitical possession of the 
&%GeopoliticalArea ?AREA2 and is not a &%geopoliticalSubdivision of 
?AREA2.  For example, (&%dependentGeopoliticalArea &%Guam &%UnitedStates), 
because Guam is a territory of the &%UnitedStates, not one of the fifty 
U.S. states.  Contrast &%primaryGeopoliticalSubdivision.") 

(=>
	(dependentGeopoliticalArea ?AREA ?COUNTRY)
	(possesses ?COUNTRY ?AREA))

(=> 
  	(dependentGeopoliticalArea ?AREA ?COUNTRY) 
  	(not 
    		(geopoliticalSubdivision ?AREA ?COUNTRY)))

(subclass NationalGovernment Government)
(documentation NationalGovernment "&%NationalGovernment is the class of 
national-level governments of &%Nations.") 

(instance GovernmentFn UnaryFunction)
(domain GovernmentFn 1 GeopoliticalArea)
(range GovernmentFn Government)
(documentation GovernmentFn "(&%GovernmentFn ?AREA) denotes the 
&%Government of the &%GeopoliticalArea ?AREA.  For example, 
(&%GovernmentFn &%UnitedStates) denotes the Federal-level government of 
the United States; (&%GovernmentFn &%PuertoRico) denotes the government of 
the Commonwealth of Puerto Rico.") 

(<=>
	(instance ?COUNTRY Nation)
	(instance (GovernmentFn ?COUNTRY) NationalGovernment))

(instance governmentType BinaryPredicate)
(domain governmentType 1 Agent)	
(domain governmentType 2 FormOfGovernment)
(subrelation governmentType attribute)
(documentation governmentType "(&%governmentType ?BODY ?FORM) means that 
the &%GeopoliticalArea or &%Organization ?BODY has a government with 
characteristic(s) of the type ?FORM.") 

(=>
	(governmentType ?AGENT ?TYPE)
	(or
		(instance ?AGENT Organization)
		(instance ?AGENT GeopoliticalArea)))

(=>
	(and
		(instance ?AREA GeopoliticalArea)
		(governmentType ?AREA ?TYPE))
	(attribute (GovernmentFn ?AREA) ?TYPE))

(=>
	(and
		(attribute (GovernmentFn ?AREA) ?TYPE)
		(instance ?TYPE FormOfGovernment))
	(governmentType ?AREA ?TYPE))

(subclass FormOfGovernment PoliticoEconomicAttribute)
(documentation FormOfGovernment "&%FormOfGovernment is a class of 
&%Attributes used to describe the characteristics of a government, 
especially a &%NationalGovernment.  The concept &%FormOfGovernment is 
interpreted broadly enough to include &%Anarchy and &%Factionalism.") 

(instance Monarchy FormOfGovernment)
(instance HereditaryMonarchy FormOfGovernment)
(instance Chiefdom FormOfGovernment)
(instance ConstitutionalMonarchy FormOfGovernment)
(instance Coprincipality FormOfGovernment)
(instance Republic FormOfGovernment)
(instance FederalRepublic FormOfGovernment)
(instance FederalDemocraticRepublic FormOfGovernment)
(instance ParliamentaryGovernment FormOfGovernment)
(instance ParliamentaryRepublic FormOfGovernment)
(instance ParliamentaryDemocracy FormOfGovernment)
(instance ParliamentaryDemocraticRepublic FormOfGovernment)
(instance FederalParliamentaryDemocracy FormOfGovernment)
(instance PresidentialGovernment FormOfGovernment)
(instance ConstitutionalGovernment FormOfGovernment)
(instance ConstitutionalRepublic FormOfGovernment)
(instance ConstitutionalParliamentaryDemocracy FormOfGovernment)
(instance ConstitutionalDemocraticRepublic FormOfGovernment)
(instance FederalGovernment FormOfGovernment)
(instance Federation FormOfGovernment)
(instance Commonwealth FormOfGovernment)
(instance Democracy FormOfGovernment)
(instance MultipartyDemocracy FormOfGovernment)
(instance TransitionalGovernment FormOfGovernment)
(instance EmergingDemocracy FormOfGovernment)
(instance Factionalism FormOfGovernment)
(instance Anarchy FormOfGovernment)
(instance AuthoritarianRegime FormOfGovernment)
(instance MilitaryDictatorship FormOfGovernment)
(instance Dictatorship FormOfGovernment)
(instance CommunistState FormOfGovernment)
(instance AuthoritarianSocialist FormOfGovernment)
(instance TheocraticGovernment FormOfGovernment)
(instance TheocraticRepublic FormOfGovernment)
(instance EcclesiasticalGovernment FormOfGovernment)
(instance IslamicGovernment FormOfGovernment)
(instance CompactOfFreeAssociationWithUnitedStates FormOfGovernment)
(instance CompactOfFreeAssociationWithNewZealand FormOfGovernment)
(instance UnitaryRule FormOfGovernment)

(documentation Monarchy "&%Monarchy is the attribute of a government 
that is ruled by a monarch, which is usually a hereditary role.")

(=>
	(and
		(governmentType ?PLACE ?TYPE)
		(subAttribute ?TYPE Monarchy))
	(exists (?PERSON ?ROLE)
		(and
			(instance ?PERSON Human)
			(chiefOfState ?PLACE ?ROLE ?PERSON)
			(subAttribute ?ROLE Monarch))))

(subAttribute HereditaryMonarchy Monarchy)
(subAttribute Chiefdom Monarchy)
(subAttribute ConstitutionalMonarchy Monarchy)
(subAttribute AbsoluteMonarchy Monarchy)

(=>
	(and
		(governmentType ?PLACE AbsoluteMonarchy)
		(instance ?PLACE GeopoliticalArea))
	(leaderPosition ?PLACE Monarch))	
	
(contraryAttribute Monarchy Republic)
(contraryAttribute Monarchy Federation)

(documentation ParliamentaryGovernment "&%ParliamentaryGovernment is the 
attribute of a government whose chief &%LegislativeOrganization is a 
&%Parliament.  A parliamentary government is compatible with various 
other government types, including &%Monarchy.")

(=>
	(and
		(governmentType ?PLACE ?TYPE)
		(instance ?PLACE GeopoliticalArea)
		(subAttribute ?TYPE ParliamentaryGovernment))
	(exists (?ORG)
		(and
			(instance ?ORG Parliament)
			(subOrganizations ?ORG (GovernmentFn ?PLACE)))))

(subAttribute ParliamentaryRepublic ParliamentaryGovernment)
(subAttribute ParliamentaryDemocracy ParliamentaryGovernment)
(subAttribute FederalParliamentaryDemocracy ParliamentaryGovernment)
(subAttribute ConstitutionalParliamentaryDemocracy ParliamentaryGovernment)

(documentation FederalGovernment "&%FederalGovernment is the attribute of 
a government that is formed by agreement between a collection of political 
units that agree to give up some of their power to the central government, 
while reserving some powers to themselves.  The government of the 
&%UnitedStates is a federal government, in which power is shared between 
the states and the central goverment, as set out in the U.S. 
Constitution.")

(subAttribute FederalRepublic FederalGovernment)
(subAttribute FederalDemocraticRepublic FederalGovernment)
(subAttribute FederalParliamentaryDemocracy FederalGovernment)
(subAttribute Federation FederalGovernment)

(contraryAttribute FederalGovernment UnitaryRule)
(contraryAttribute FederalGovernment AuthoritarianRegime)

(documentation Republic "&%Republic is the attribute of a government 
whose power and authority are vested in its members, who elect 
representatives to exercise that power.")

(subAttribute ConstitutionalRepublic Republic)
(subAttribute ConstitutionalDemocraticRepublic Republic)
(subAttribute FederalRepublic Republic)
(subAttribute ParliamentaryRepublic Republic)
(subAttribute ParliamentaryDemocraticRepublic Republic)
(subAttribute FederalDemocraticRepublic Republic)

(documentation Democracy "&%Democracy is the attribute of a government 
whose authority and rule are based in the will of the people governed.  
The will of the people is usually expressed through &%Elections, direct or 
indirect.")

(subAttribute FederalDemocraticRepublic Democracy)
(subAttribute ParliamentaryDemocracy Democracy)
(subAttribute ParliamentaryDemocraticRepublic Democracy)
(subAttribute FederalParliamentaryDemocracy Democracy)
(subAttribute ConstitutionalParliamentaryDemocracy Democracy)
(subAttribute ConstitutionalDemocraticRepublic Democracy)
(subAttribute MultipartyDemocracy Democracy)
(subAttribute EmergingDemocracy Democracy)

(documentation ConstitutionalGovernment "&%ConstitutionalGovernment is 
the attribute of a government whose authority and rule are guided by  
principles expressed in a written &%Constitution.")

(subAttribute ConstitutionalDemocracy ConstitutionalGovernment)
(subAttribute ConstitutionalMonarchy ConstitutionalGovernment)
(subAttribute ConstitutionalParliamentaryDemocracy ConstitutionalDemocracy)
(subAttribute ConstitutionalRepublic ConstitutionalGovernment)

(documentation AuthoritarianRegime "&%AuthoritarianRegime is the 
attribute of a government that rules autocratically, not allowing 
opposition.")

(subAttribute Dictatorship AuthoritarianRegime)
(subAttribute MilitaryDictatorship Dictatorship)
(subAttribute AbsoluteMonarchy AuthoritarianRegime)
(subAttribute CommunistState AuthoritarianRegime)
(subAttribute AuthoritarianSocialist AuthoritarianRegime)
(subAttribute TheocraticGovernment AuthoritarianRegime)

(=>
	(governmentType ?PLACE MilitaryDictatorship)
	(leaderPosition ?PLACE MilitaryCommander))

(contraryAttribute AuthoritarianRegime MultipartyDemocracy)

(documentation TheocraticGovernment "&%TheocraticGovernment is the 
attribute of a government that bases its authority on &%Religion.")

(subAttribute TheocraticRepublic TheocraticGovernment)
(subAttribute EcclesiasticalGovernment TheocraticGovernment)
(subAttribute IslamicGovernment TheocraticGovernment)

(=>
	(and
		(governmentType ?AGENT ?TYPE)
		(subAttribute ?TYPE TheocraticGovernment)
		(instance ?AGENT Organization))
	(instance ?AGENT ReligiousOrganization))
			
(=>
	(and
		(governmentType ?AGENT ?TYPE)
		(subAttribute ?TYPE TheocraticGovernment)
		(instance ?AGENT GeopoliticalArea))
	(instance (GovernmentFn ?AGENT) ReligiousOrganization))

(documentation UnitaryRule "&%UnitaryRule is a &%FormOfGovernment in which 
the central government controls affairs at all levels, including the local 
level.") 

(documentation TransitionalGovernment "&%TransitionalGovernment is the 
attribute of a government that is changing from one form of government 
to another.  This may be accompanied by social unrest or instability.")

(subAttribute EmergingDemocracy TransitionalGovernment)
(subAttribute Factionalism TransitionalGovernment)

(instance capitalCity BinaryPredicate)
(domain capitalCity 1 City)
(domain capitalCity 2 GeopoliticalArea)
(subrelation capitalCity administrativeCenter)
(documentation capitalCity "(&%capitalCity ?CITY ?REGION) means that the 
&%City ?CITY is the capital of the &%GeopoliticalArea ?REGION.") 

(instance administrativeCenter BinaryPredicate)
(domain administrativeCenter 1 GeopoliticalArea)
(domain administrativeCenter 2 GeopoliticalArea)
(subrelation administrativeCenter geopoliticalSubdivision)
(documentation administrativeCenter "(&%administrativeCenter ?CENTER 
?REGION) means that ?CENTER is the &%City (or other area) from which 
the larger &%GeopoliticalArea ?REGION is administered.") 

(instance geopoliticalSubdivision AsymmetricRelation) 
(instance geopoliticalSubdivision TransitiveRelation) 
(subrelation geopoliticalSubdivision geographicSubregion) 
(domain geopoliticalSubdivision 1 GeopoliticalArea) 
(domain geopoliticalSubdivision 2 GeopoliticalArea) 
(documentation geopoliticalSubdivision "(&%geopoliticalSubdivision 
?AREA1 ?AREA2) means that ?AREA1 is any geopolitical part of ?AREA2; 
that is, ?AREA1 is an integral &%geographicSubregion of ?AREA2 (not a 
&%DependencyOrSpecialSovereigntyArea), having its own associated 
&%GovernmentOrganization which is subordinated to or constrained by 
the government of ?AREA2.  Cf. &%dependentGeopoliticalArea.") 

(=>
	(geopoliticalSubdivision ?SUB ?AREA)
	(not (instance ?SUB Nation)))

(instance primaryGeopoliticalSubdivision BinaryPredicate)
(instance primaryGeopoliticalSubdivision AsymmetricRelation)
(domain primaryGeopoliticalSubdivision 1 GeopoliticalArea)
(domain primaryGeopoliticalSubdivision 2 GeopoliticalArea) 
(subrelation primaryGeopoliticalSubdivision geopoliticalSubdivision)
(documentation primaryGeopoliticalSubdivision 
"(&%primaryGeopoliticalSubdivision ?AREA ?COUNTRY) means that the 
&%GeopoliticalArea ?AREA is one of the first-order administrative 
divisions of the &%Nation ?COUNTRY.  For example, in the United States, 
any of the fifty states.  This does not include subordinate regions that 
have a lesser status, such as British Crown colonies, U.S. territories, 
or protectorates.  See &%geopoliticalSubdivision.") 

(subclass Holiday TimeInterval)
(documentation Holiday "&%Holiday is the class of time periods that are 
observed as holidays in a country, culture, or religion.  Holidays may 
recur annually on the same date, or they may be moveable, for example, 
Thanksgiving Day falls on the last &%Thursday of each &%November.") 

(subclass FixedHoliday Holiday)
(documentation FixedHoliday "&%FixedHoliday is the class of &%Holidays 
whose observance is fixed to recurrences of the calendar day that the 
holiday commemorates.") 

(subclass MoveableHoliday Holiday)
(documentation MoveableHoliday "&%MoveableHoliday is the class of 
&%Holidays whose observance is not fixed to recurrences of any particular 
calendar day.  For example, Memorial Day is observed on the last &%Monday 
of &%May.") 

(instance ExecutiveBranchFn UnaryFunction)
(domain ExecutiveBranchFn 1 Agent)
(range ExecutiveBranchFn Organization)
(documentation ExecutiveBranchFn "(&%ExecutiveBranchFn ?ORG) denotes the 
executive branch of ?ORG, with all its officials and agencies, considered 
as a whole.") 

(instance leader BinaryPredicate)
(instance leader AsymmetricRelation)
(instance leader SingleValuedRelation)
(domain leader 2 Agent)
(domain leader 1 CognitiveAgent)
(documentation leader "(&%leader ?ORGANIZATION ?PERSON)
means that the leader of ?ORGANIZATION is ?PERSON.")

(=>
   (and
      (instance ?AREA GeopoliticalArea)
	(leader (GovernmentFn ?AREA) ?PERSON))
   (leader ?AREA ?PERSON))

(=>
   (and
      (instance ?AREA GeopoliticalArea)
	(leader ?AREA ?PERSON))
(leader (GovernmentFn ?AREA) ?PERSON))

(instance leaderPosition BinaryPredicate)
(instance leaderPosition AsymmetricRelation)
(domain leaderPosition 1 Agent)
(domain leaderPosition 2 Position)
(documentation leaderPosition "(&%leaderPosition ?ORG ?ROLE)
means that in the organization ?ORG, the leader is the person 
who holds the &%Position ?ROLE in the organization.")

(instance representativeAgentToAgent TernaryPredicate)
(domain representativeAgentToAgent 1 Agent)
(domain representativeAgentToAgent 2 Agent)
(domain representativeAgentToAgent 3 Agent)
(documentation representativeAgentToAgent "(&%representativeAgentToAgent 
?SENDER ?REP ?RECEIVER) means that the &%Agent ?SENDER has the &%Agent 
?REP as its representative to the &%Agent ?RECEIVER.  ?REP works for ?SENDER 
and is not assumed to be an impartial mediator.")

(=>
	(and
		(representativeAgentToAgent ?SENDER ?REP ?RECEIVER)
		(instance ?SENDER Organization)
		(instance ?REP CognitiveAgent))
	(employs ?SENDER ?REP))

(=>
	(and
		(representativeAgentToAgent ?SENDER ?REP ?RECEIVER)
		(instance ?SENDER Nation)
		(instance ?REP CognitiveAgent))
	(employs (GovernmentFn ?SENDER) ?REP))

(instance President Position)
(instance PrimeMinister Position)
(instance VicePresident Position)
(instance GovernmentDeputy Position)
(instance Chairman Position)
(instance ViceChairman Position)
(instance MilitaryCommander Position)
(instance Monarch Position)
(subAttribute Queen Monarch)
(subAttribute King Monarch)

(instance chiefOfState TernaryPredicate)
(domain chiefOfState 1 GeopoliticalArea)
(domain chiefOfState 2 Position)
(domain chiefOfState 3 Human)
(documentation chiefOfState "(&%chiefOfState ?POLITY ?ROLE ?PERSON) means 
that ?PERSON is the titular leader of the government of the 
&%GeopoliticalArea ?POLITY and represents it at official functions.  The 
office held by this chief of state is ?ROLE (e.g., President, Queen, 
Chairman).  Note: this term is defined as in the CIA World Fact Book.") 

(=>
	(chiefOfState ?AREA ?POSITION ?PERSON)
	(occupiesPosition ?PERSON ?POSITION (GovernmentFn ?AREA)))

(=>
	(and
		(chiefOfState ?AREA ?POSITION ?PERSON)
		(instance ?AREA Nation))
	(citizen ?PERSON ?AREA))

(instance headOfGovernment TernaryPredicate)
(domain headOfGovernment 1 GeopoliticalArea)
(domain headOfGovernment 2 Position)
(domain headOfGovernment 3 Human)
(documentation headOfGovernment "(&%headOfGovernment ?POLITY ?ROLE 
?PERSON) means that ?PERSON is the top administrative leader of the 
&%Government of the &%GeopoliticalArea ?POLITY, with authority for 
managing its day-to-day functions.  The office held by this person 
is the &%Position ?ROLE (e.g., President, Prime Minister, Governor). 
Note: this term is defined as in the CIA World Fact Book.") 

(=>
	(and
		(headOfGovernment ?AREA ?POSITION ?PERSON)
		(instance ?AREA Nation))
	(citizen ?PERSON ?AREA))

(=>
	(headOfGovernment ?AREA ?POSITION ?PERSON)
	(occupiesPosition ?PERSON ?POSITION (GovernmentFn ?AREA)))

(subclass Election OrganizationalProcess)
(documentation Election "&%Election is the class of events conducted by an 
organization, in which qualified participants vote for officers, adopt 
resolutions, or settle other issues in that &%Organization.") 

(=>
	(and
		(instance ?EVENT Election)
		(agent ?EVENT ?AGENT)
		(instance ?AGENT GeopoliticalArea))
	(instance ?EVENT PoliticalProcess))

(=>
	(and
		(instance ?EVENT Election)
		(agent ?EVENT ?AGENT)
		(instance ?AREA GeopoliticalArea)
		(instance ?AGENT (GovernmentFn ?AREA)))
	(instance ?EVENT PoliticalProcess))

(subclass Voting Selecting)
(documentation Voting "&%Voting is the activity of voting in an 
&%Election.  Voting is typically done by individuals, while &%Elections 
are conducted by &%Organizations.  The voting process by an individual 
voter is part of an &%Election process.") 

(=>
	(instance ?VOTE Voting)
	(exists (?ELECT)
		(and
			(instance ?ELECT Election)
			(subProcess ?VOTE ?ELECT))))

(instance electionForPosition BinaryPredicate)
(domain electionForPosition 1 Election)
(domain electionForPosition 2 SocialRole)
(documentation electionForPosition "(&%electionForPosition ?ELECTION 
?POSITION) means that in the &%Election ?ELECTION, candidates run for 
election to the role(s) ?POSITION.") 

(=>
	(electionForPosition ?ELECTION ?ROLE)
	(exists (?CANDIDATE)
		(and
			(instance ?CANDIDATE Human)
			(candidateForPosition ?ELECTION ?ROLE ?CANDIDATE))))

(instance candidateForPosition TernaryPredicate)
(domain candidateForPosition 1 Election)
(domain candidateForPosition 2 SocialRole)
(domain candidateForPosition 3 Agent)
(documentation candidateForPosition "(&%candidateForPosition ?ELECTION 
?POSITION ?CONTENDER) means that in the &%Election ?ELECTION for 
?POSITION, the &%Agent ?CONTENDER was one of the candidates.") 

(=>
	(candidateForPosition ?ELECTION ?POSITION ?CONTENDER)
	(electionForPosition ?ELECTION ?POSITION))

(=>
	(and
		(candidateForPosition ?ELECTION ?POSITION ?CONTENDER)
		(agent ?ELECTION ?AGENT))
	(desires ?CONTENDER (occupiesPosition ?CONTENDER ?POSITION ?AGENT)))

(instance voteFractionReceived QuaternaryPredicate)
(domain voteFractionReceived 1 Election)
(domain voteFractionReceived 2 SocialRole)
(domain voteFractionReceived 3 Agent)
(domain voteFractionReceived 4 RealNumber)
(documentation voteFractionReceived "(&%voteFractionReceived ?ELECTION 
?POSITION ?CONTENDER ?FRACTION) means that in the &%Election ?ELECTION for 
?POSITION, the &%Agent ?CONTENDER received ?FRACTION of the votes cast.  
Contenders may be either persons or political parties.") 

(=>
	(voteFractionReceived ?ELECTION ?POSITION ?CONTENDER ?FRACTION)
	(candidateForPosition ?ELECTION ?POSITION ?CONTENDER))

(instance electionWinner TernaryPredicate)
(domain electionWinner 1 Election)
(domain electionWinner 2 SocialRole)
(domain electionWinner 3 Agent)
(subrelation electionWinner candidateForPosition)
(documentation electionWinner "(&%electionWinner ?ELECTION ?POSITION 
?CONTENDER) means that in the &%Election ?ELECTION, ?POSITION was won by 
the &%Agent ?CONTENDER.  Contenders may be either persons or political 
parties.") 

(=>
	(and
		(instance ?ELECTION PopularElection)
		(electionWinner ?ELECTION ?POSITION ?PERSON1)
		(voteFractionReceived ?ELECTION ?POSITION ?PERSON1 ?NUMBER1))
	(not
		(exists (?PERSON2 ?NUMBER2)
			(and
				(voteFractionReceived ?ELECTION ?POSITION ?PERSON2 ?NUMBER2)
				(not (equal ?PERSON1 ?PERSON2))
				(greaterThanOrEqualTo ?NUMBER2 ?NUMBER1)))))
(=>
	(and
		(instance ?ELECTION PopularElection)
		(electionWinner ?ELECTION ?POSITION ?PERSON1)
		(voteFractionReceived ?ELECTION ?POSITION ?PERSON1 ?NUMBER1)
		(voteFractionReceived ?ELECTION ?POSITION ?PERSON2 ?NUMBER2)
		(not (equal ?PERSON1 ?PERSON2)))
	(greaterThan ?NUMBER1 ?NUMBER2))

(subclass LegislativeOrganization Organization)
(documentation LegislativeOrganization "&%LegislativeOrganization is the 
class of &%Organizations that have as their main purpose the passing of 
laws or regulations.") 

(=>
	(and
		(instance ?ORG LegislativeOrganization)
		(subOrganization ?ORG ?GOV)
		(instance ?GOV GovernmentOrganization))
	(instance ?ORG GovernmentOrganization))

(subclass Parliament LegislativeOrganization)
(documentation Parliament "&%Parliament is the subclass of 
&%LegislativeOrganizations similar to that of the United Kingdom.")

(instance LegislatureFn UnaryFunction)
(domain LegislatureFn 1 GeopoliticalArea)
(range LegislatureFn LegislativeOrganization)
(documentation LegislatureFn "(&%LegislatureFn ?AREA) denotes the 
legislative branch of the &%GeopoliticalArea ?AREA.") 

(subclass JudicialOrganization Organization)
(documentation JudicialOrganization "&%JudicialOrganization is the class 
of &%Organizations whose primary purpose is to render judgments according 
to the statutes or regulations of a government or other organization.  
Judicial bodies are not necessarily government organizations, for example, 
those associated with sporting associations.") 

(=>
	(and
		(instance ?ORG JudicialOrganization)
		(subOrganization ?ORG ?GOV)
		(instance ?GOV GovernmentOrganization))
	(instance ?ORG GovernmentOrganization))

(instance JudiciaryFn UnaryFunction)
(domain JudiciaryFn 1 GeopoliticalArea)
(range JudiciaryFn GovernmentOrganization)
(range JudiciaryFn JudicialOrganization)
(documentation JudiciaryFn "(&%JudiciaryFn ?AREA) denotes the judicial 
branch of the &%GeopoliticalArea ?AREA, that is, the 
&%JudicialOrganization(s) associated with the government of ?AREA, 
considered as a whole.") 

(subclass PoliticalParty PoliticalOrganization)
(documentation PoliticalParty "&%PoliticalParty is the class of 
&%PoliticalOrganizations that may sponsor candidates for &%Elections.") 

(=>
   (instance ?PARTY PoliticalParty)
   (hasPurpose ?PARTY (exists (?MEMBER ?GOVERNMENT) 
                         (and 
                            (instance ?GOVERNMENT Government)
                            (member ?MEMBER ?GOVERNMENT)
                            (member ?MEMBER ?PARTY)))))

(=>
	(and
		(occupiesPosition ?PERSON ?POSITION ?ORGANIZATION)
		(instance ?ORGANIZATION PoliticalParty))
	(member ?PERSON ?ORGANIZATION))

(instance MilitaryGeneral MilitaryOfficer)
(documentation MilitaryGeneral "&%MilitaryGeneral is a generic &%Position 
that indicates holding (or having held) the rank of General in some 
military force.  An indicator that someone uses the title, without 
committing to his or her exact rank or military affiliation.")

;; =======================
;; Transportation Ontology
;; =======================

;; The following content is borrowed from the Transportation Ontology.

(subclass Transitway Region)
(subclass Transitway SelfConnectedObject)
(documentation Transitway "&%Transitway is the broadest class 
of regions which may be passed through as a &%path in instances 
of &%Translocation.  &%Transitway includes land, air, and sea 
regions, and it includes both natural and artificial transitways.")

(subclass Airport TransitTerminal)
(subclass Airport LandTransitway)
(documentation Airport "&%Airport is the subclass of &%TransitTerminals 
for &%Airplanes (fixed-wing &%Aircraft).")

(=>
   (instance ?PORT Airport)
   (exists (?RUNWAY)
      (and
         (instance ?RUNWAY Runway)
         (part ?RUNWAY ?PORT))))

(subclass Runway LandTransitway)  
(documentation Runway "&%Runway is the class of &%Transitways that are 
used for the takeoff and landing of &%Airplanes.  &%Runways are 
&%Transitways for an intermodal transit, which begins with a land transit 
and ends with air transit, or vice versa.")

(subclass Pipeline Transitway)
(documentation Pipeline "&%Pipeline is the class of pipelines used 
to transport various kinds of fluids.")

(=>
	(and 
		(instance ?PIPE Pipeline)
		(instance ?MOTION Motion)
		(instrument ?MOTION ?PIPE)
		(patient ?MOTION ?STUFF))
	(instance ?STUFF (ExtensionFn Fluid)))

(subclass Waterway Transitway)
(subclass Waterway WaterArea)
(documentation Waterway "&%Waterway is the class of navigable waters, 
including oceans, seaLanes, rivers, canals, lakes, and inland bodies 
of water.")

(subclass Canal Waterway)
(subclass Canal StationaryArtifact)
(documentation Canal "&%Canal is the subclass of &%Waterways that are 
&%Artifacts constructed for the passage of &%Ships.")

(subclass LandTransitway Transitway)
(subclass LandTransitway LandArea)
(documentation LandTransitway "&%LandTransitway is the subclass of 
&%Transitway that represents areas intended for motion over the ground.")

(=>
   (instance ?WAY LandTransitway)
   (hasPurpose (exists (?TRANSPORT) 
                  (and 
                     (instance ?TRANSPORT Transportation)
                     (path ?TRANSPORT ?WAY)))))

(subclass Roadway LandTransitway)
(subclass Roadway LandArea)
(documentation Roadway "&%Roadway is the subclass of &%LandTransitways 
that are areas intended for surface travel by self-powered, wheeled 
vehicles, excluding those that travel on tracks.  &%Roadways have been 
at least minimally improved to enable the passage of vehicles.  
&%Roadways include dirt and gravelled roads, paved streets, and 
expressways.")

(subclass SurfacedRoadway Roadway)
(disjoint SurfacedRoadway UnsurfacedRoadway)
(documentation SurfacedRoadway "&%SurfacedRoadway is the subclass of 
&%Roadways that have been improved by covering them with a substance 
to increase the hardness and smoothness of the surface.  Covering 
materials include pavement, concrete, asphalt, macadam, and gravel.")

(subclass Expressway SurfacedRoadway)
(documentation Expressway "&%Expressway is the subclass of 
&%SurfacedRoadways that are multiple-lane, limited-access highways 
designed for rapid travel by &%MotorVehicles.")

(subclass UnsurfacedRoadway Roadway)
(documentation UnsurfacedRoadway "&%UnsurfacedRoadway is the subclass 
of &%Roadways that have natural, unimproved surfaces of dirt or sand.")

(subclass Railway LandTransitway) 
(subclass Railway StationaryArtifact)
(documentation Railway "&%Railway is the subclass of 
&%LandTransitways that have rails along which &%Trains may travel.  
A railway consists of the rail bed, sleepers, tracks, electric 
rails, switches, sensors, lights, crossing grades, and any other 
integral machinery or parts of a section of railway.")

(subclass Bridge LandTransitway) 
(subclass Bridge StationaryArtifact) 
(documentation Bridge "&%Bridge is the subclass of &%LandTransitways 
that are artifacts used for crossing water or air-filled gaps that 
could not be transited over a natural surface.")

(subclass Tunnel LandTransitway)
(subclass Tunnel StationaryArtifact)
(documentation Tunnel "&%Tunnel is a subclass of &%Transitways that 
consist of a lengthwise enclosed &%Hole that allows for transit 
underground, as through mountains, below a body of water, or beneath a 
city.")

(subclass RailroadTrack StationaryArtifact)
(documentation RailroadTrack "&%RailroadTrack is the class of 
&%StationaryArtifacts consisting of rails laid on supports to form 
a track for railway vehicles.")

(subclass Vehicle TransportationDevice)
(documentation Vehicle "&%Vehicle is the subclass of 
&%TransportationDevices that transport passengers or goods 
from one place to another by moving from one place to the other 
with them, e.g., cars, trucks, ferries, and airplanes.  Contrast 
with devices such as &%Pipelines, escalators, or supermarket 
checkout belts, which carry items from one place to another by means 
of a moving part, without the device removing from the origin to 
the destination.")

(=>
	(and
		(instance ?TRANSPORT Vehicle)
		(instance ?MOVE Translocation)
		(instrument ?MOVE ?TRANSPORT)
		(origin ?MOVE ?FROM))
	(holdsDuring (BeginFn (WhenFn ?MOVE)) (located ?TRANSPORT ?FROM)))

(=>
	(and
		(instance ?TRANSPORT Vehicle)
		(instance ?MOVE Translocation)
		(instrument ?MOVE ?TRANSPORT)
		(destination ?MOVE ?TO))
	(holdsDuring (BeginFn (WhenFn ?MOVE)) (located ?TRANSPORT ?TO)))

(subclass LandVehicle Vehicle)
(documentation LandVehicle "&%LandVehicle is the class of &%Vehicles that 
travel on land.  The two main types of &%LandVehicle are &%RoadVehicle and 
&%RailVehicle.")

(subclass RoadVehicle LandVehicle)

(subclass Automobile RoadVehicle)
(documentation Automobile "A &%RoadVehicle with an internal combustion engine.")

(subclass Truck RoadVehicle)
(documentation Truck "An &%RoadVehicle whose primary purpose is the &%Transportation 
of entities other than &%Humans.")

(subclass Trailer RoadVehicle)	

(subclass UserPoweredDevice Device)

(subclass Cycle LandVehicle)
(subclass Cycle UserPoweredDevice)

(subclass Bicycle Cycle)

(subclass Motorcycle RoadVehicle)	

(subclass RailVehicle LandVehicle)
(documentation RailVehicle "A &%LandVehicle that runs along fixed rails.")

(subclass Wagon LandVehicle)
(documentation Wagon "A &%Landcraft that is not self-propelled, but must be 
pulled by either an &%Animal or a self-propelled &%Vehicle to move along the 
ground.")

(=>
   (and
      (instance ?WAGON Wagon)
      (instance ?TRANSPORT Transportation)
      (instrument ?TRANSPORT ?WAGON))
   (exists (?POWER)
      (and
         (instance ?TRANSPORT Pulling)
         (agent ?PULL ?POWER)
         (patient ?PULL ?WAGON)
         (or
            (instance ?POWER DomesticAnimal)
            (instance ?POWER Vehicle)))))

(subclass Train RailVehicle)
(documentation Train "&%Train is the subclass of &%Vehicle whose instances 
are linked sequences of &%Wagons.")

(=>
   (instance ?TRAIN Train)
   (exists (?WAGON)
      (and
         (instance ?WAGON Wagon)
         (part ?WAGON ?TRAIN))))

(subclass Watercraft Vehicle)
(documentation Watercraft "&%Watercraft is the class of all &%Vehicles 
used to travel on or in water.")

(=>
	(and
		(instance ?CRAFT Watercraft)
		(instance ?EVENT Transportation)
		(instrument ?EVENT ?CRAFT))
	(exists (?WATER)
		(and
			(instance ?WATER WaterArea)
			(located ?EVENT ?WATER))))

(=>
	(and
		(subclass ?TYPE Watercraft)
		(instance ?EVENT WaterTransportation)
		(located ?EVENT ?PLACE))
	(instance ?PLACE WaterArea))

(instance CubicFoot UnitOfMeasure)
(subclass CubicFoot VolumeMeasure)
(documentation CubicFoot "&%CubicFoot is a unit for measuring volume, 
equal to a volume of one foot length in each dimension of length, width, 
and height.")

(equal (MeasureFn 1 CubitFoot) 
	 (MultiplicationFn (MeasureFn 1 Foot) 
				 (MultiplicationFn (MeasureFn 1 Foot) (MeasureFn 1 Foot))))

(subclass Aircraft Vehicle)
(partition Aircraft FixedWingAircraft Helicopter)
(documentation Aircraft "Any &%Vehicle which is capable of 
&%AirTransportation.  Note that this class covers both fixed-wing aircraft
and helicopters.")

(subclass Airplane Aircraft)
(documentation Airplane "&%Airplane is the subclass of &%Aircraft that 
are fixed-wing aircraft which carry their own power sources.  &%Airplane 
includes jet airplanes and propeller planes, but not gliders.")

(subclass TransitTerminal StationaryArtifact)
(documentation TransitTerminal "A &%TransitTerminal is a place where 
travellers or transportation devices begin or end their journeys, or 
where passengers and/or goods may be transferred.  At a terminal, 
&%Vehicles may be received, assigned, sent out, or 
stored.")

(subclass TrainStation TransitTerminal)

(subclass TerminalBuilding Building) 
(documentation TerminalBuilding "A &%TerminalBuilding is a &%Building 
located at a &%TransitTerminal and used in connection with its 
functions.")

(subclass CommonCarrier TransportationCompany)
(disjoint CommonCarrier ContractCarrier)
(documentation CommonCarrier "&%CommonCarrier is the subclass of 
&%TransportationCompany whose instances must offer services to all 
customers.  Contrast with &%ContractCarrier.")

(subclass ContractCarrier TransportationCompany)
(documentation ContractCarrier "&%ContractCarrier is the subclass of 
&%TransportationCompany whose instances offer services to only one  
customer, under contract.  Contrast with &%CommonCarrier.")


;; =======================
;; Communications Ontology
;; =======================

;; The following content is borrowed from the Communications Ontology.

(subclass CommunicationDevice EngineeringComponent)
(relatedInternalConcept Communication CommunicationDevice)
(documentation CommunicationDevice "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.")

(=>
	(instance ?DEVICE CommunicationDevice)
	(capability Communication instrument ?DEVICE))

(=>
   (instance ?DEVICE CommunicationDevice)
   (hasPurpose ?DEVICE (exists (?COMMUNICATION) 
                           (and 
                               (instance ?COMMUNICATION Communication) 
                               (instrument ?COMMUNICATION ?DEVICE)))))

(subclass ArtificialSatellite Satellite)
(subclass ArtificialSatellite Device)
(documentation ArtificialSatellite "An &%ArtificialSatellite is a &%Device
that orbits the earth in space and performs various functions such as
aiding in communication, photographing the earth's surface, and others.")

(instance BroadcastingStation StationaryArtifact)
(partition BroadcastingStation RadioStation TelevisonStation)
(documentation BroadcastingStation "A &%BroadcastingStation is
a &%TelevisionStation or a &%RadioStation.")

(subclass RadioStation BroadcastingStation)
(documentation RadioStation "A &%RadioStation is a &%BroadcastingStation 
that broadcasts programs that are intended to be received by &%Radios.")

(subclass Radio CommunicationDevice)
(subclass Radio ElectricDevice)
(documentation Radio "A &%Radio is a &%Device for receiving radio
broadcast signals from a &%RadioStation.")

(subclass TelevisionStation BroadcastingStation)
(documentation TelevisionStation "A &%TelevisionStation is a 
&%BroadcastingStation that broadcasts programs that are intended to be 
received by &%Television.") 

(subclass Television CommunicationDevice)
(subclass Television ElectricDevice)
(documentation Television "A &%Television is a &%Device for receiving 
television broadcast signals from a &%TelevisionStation.")


;; ================
;; Economy Ontology
;; ================

;; The following content is borrowed from the Economy Ontology.


(instance economyType BinaryPredicate)
(domain economyType 1 Agent)	
(domain economyType 2 EconomicAttribute)
(subrelation economyType attribute)
(documentation economyType "(&%economyType ?POLITY ?TYPE) means that the 
&%GeopoliticalArea ?POLITY has an economic system of &%TYPE.")

(=>
	(economyType ?AGENT ?ATTRIBUTE)
	(or
		(instance ?AGENT GeopoliticalArea)
		(instance ?AGENT Organization)))

(subclass EconomicAttribute PoliticoEconomicAttribute)
(documentation EconomicAttribute "&%EconomicAttribute is the class 
of terms including all &%Attributes used to characterize the 
economic systems or development levels of &%Nations or dependent 
&%GeopoliticalAreas.")

(subclass EconomicSystemAttribute EconomicAttribute)
(documentation EconomicSystemAttribute "&%EconomicSystemAttribute 
is the class of &%Attributes that describe the type of economic 
system that a country or area has.  For example, &%CapitalistEconomy 
or &%SocialistEconomy.")

(instance CapitalistEconomy EconomicSystemAttribute)
(subAttribute CapitalistEconomy PrivateEnterpriseEconomy)
(documentation CapitalistEconomy "&%CapitalistEconomy is the 
&%Attribute used to characterize a country whose economy is based 
on private ownership of the means of production and distribution, 
and on private accumulation of capital.")

(instance PureCapitalistEconomy EconomicSystemAttribute)
(subAttribute PureCapitalistEconomy CapitalistEconomy)
(contraryAttribute PureCapitalistEconomy MixedEconomy)
(documentation PureCapitalistEconomy "&%PureCapitalistEconomy is an 
&%Attribute representing a capitalist economy that has no admixture of 
socialism.")

(instance PrivateEnterpriseEconomy EconomicSystemAttribute)
(subAttribute PrivateEnterpriseEconomy CapitalistEconomy)
(documentation PrivateEnterpriseEconomy "&%PrivateEnterpriseEconomy is 
the &%Attribute used to characterize a country in which private 
enterprise is the main source of economic wealth.")

(instance MarketEconomy EconomicSystemAttribute)
(documentation MarketEconomy "&%MarketEconomy is an &%Attribute that 
describes an economy in which market forces, specifically supply and 
demand, provide input for privately managed decisions about pricing 
and production of goods.")

(instance SocialistEconomy EconomicSystemAttribute)
(documentation SocialistEconomy "&%SocialistEconomy is the &%Attribute 
used to characterize a country in which there is government ownership 
or direction of the means of production and distribution.")

(instance PureSocialistEconomy EconomicSystemAttribute)
(subAttribute PureSocialistEconomy SocialistEconomy)
(contraryAttribute PureSocialistEconomy MixedEconomy)
(contraryAttribute PureSocialistEconomy PureCapitalistEconomy)
(documentation PureSocialistEconomy "&%PureSocialistEconomy is an 
&%Attribute representing a socialist economy that has no admixture of 
capitalism.")

(instance DemocraticSocialism EconomicSystemAttribute)
(subAttribute DemocraticSocialism SocialistEconomy)
(documentation DemocraticSocialism "&%DemocraticSocialism is an  
&%Attribute that describes a country in which socialism is promoted 
by a political party or parties within a democratic government. 
Under &%DemocraticSocialism, the government participates in central 
planning of the economy and may also manage nationalized industries.")

(=>
	(attribute ?AREA DemocraticSocialism)
	(governmentType ?AREA Democracy))

(instance MarketSocialism EconomicSystemAttribute)
(subAttribute MarketSocialism PartialMarketEconomy)

(instance CommunalLandOwnershipEconomy EconomicSystemAttribute)
(subAttribute CommunalLandOwnershipEconomy SocialistEconomy)

(instance MixedEconomy EconomicSystemAttribute)	
(documentation MixedEconomy "&%MixedEconomy is the &%Attribute 
of a country whose economy has elements of more than one pure 
economic system, e.g., a market economy with government welfare 
for unemployed workers.  A mixed-economy country may be a 
country in transition, as from a prior communist economy to 
capitalism, but a mixed economy may also be a stable combination 
of different economic approaches in different areas of a national 
economy, e.g., nationally managed health care and education systems 
in an otherwise private-enterprise economy.")

(instance PartialMarketEconomy EconomicSystemAttribute)
(subAttribute PartialMarketEconomy MixedEconomy)

(instance GovernmentRegulatedEconomy EconomicSystemAttribute)
(documentation GovernmentRegulatedEconomy "&%GovernmentRegulatedEconomy 
is an &%Attribute that describes the economy of a country in which the 
government determines prices, production, wages, allocation of resources, 
or other economic factors.  An economy that is wholly government planned 
is a &%CentrallyPlannedEconomy.")

(instance CentrallyPlannedEconomy EconomicSystemAttribute) 
(subAttribute CentrallyPlannedEconomy GovernmentRegulatedEconomy)
(documentation CentrallyPlannedEconomy "&%CentrallyPlannedEconomy 
is a term used mainly to describe communist or formerly communist 
states, many of which are now evolving away from command economies 
towards market-oriented systems.  Also known as a 'command economy'.")

(=>
	(and
		(attribute ?AREA CommunistState)
		(instance ?AREA Nation))
	(economyType ?AREA CentrallyPlannedEconomy))

(instance PrivatizingEconomy EconomicSystemAttribute)
(subAttribute PrivatizingEconomy MixedEconomy)
(documentation PrivatizingEconomy "&%PrivatizingEconomy is an 
&%Attribute that describes a country in which formerly government-
owned industries are being transferred into private holdings.")

(instance NationalizedIndustryEconomy EconomicSystemAttribute)
(subAttribute NationalizedIndustryEconomy GovernmentRegulatedEconomy)
(documentation NationalizedIndustryEconomy "&%NationalizedIndustryEconomy 
is an &%Attribute describing an economy in which the major industries,  
such as energy and transportation, are owned by the national government.")

(instance GovernmentSubsidizedEconomy EconomicSystemAttribute)
(documentation GovernmentSubsidizedEconomy "&%GovernmentSubsidizedEconomy 
is an &%Attribute describing an economy in which the government provides 
subsidies to various industries, workers, or other groups as part of its 
economic policy.")

(instance WelfareCapitalism EconomicSystemAttribute)
(subAttribute WelfareCapitalism MixedEconomy)
(subAttribute WelfareCapitalism GovernmentSubsidizedEconomy)
(documentation WelfareCapitalism "&%WelfareCapitalism is an &%Attribute 
describing an economy in which the government provides economic subsidies 
to unemployed or disabled individuals.")

(instance industryOfArea BinaryPredicate)
(domain industryOfArea 1 GeopoliticalArea)
(domain industryOfArea 2 IndustryAttribute)
(documentation industryOfArea "(&%industryOfArea ?AREA ?SECTOR) 
means that the &%GeopoliticalArea ?AREA produces goods or services 
in the economic area ?SECTOR.")

(instance industryProductType BinaryPredicate)
(domain industryProductType 1 IndustryAttribute)
(domainSubclass industryProductType 2 Object)
(documentation industryProductType 
"(&%industryProductType ?INDUSTRY ?TYPE) means that organizations with 
the &%IndustryAttribute ?INDUSTRY produce products of the kind ?TYPE.")

(=>
	(and
		(instance ?ORG Organization)
		(attribute ?ORG ?INDUSTRY)
		(industryProductType ?INDUSTRY ?TYPE))
	(exists (?EVENT ?ITEM)
		(and
			(instance ?EVENT Making)
			(instance ?ITEM ?TYPE)
			(agent ?EVENT ?ORG)
			(result ?EVENT ?ITEM))))

(instance KilowattHour UnitOfMeasure)
(subclass KilowattHour FunctionQuantity)
(documentation KilowattHour "&%KilowattHour is a &%UnitOfMeasure for 
energy that represents 1000 &%Watts (1 kW) of power expended over one 
hour (1 h) of time.  This is the unit commonly used in commercial 
power contexts.  It is equivalent to 3,600,000 &%Joules.")

(<=>
	(equal ?AMOUNT (MeasureFn ?NUMBER KilowattHour))
	(equal ?AMOUNT (MeasureFn (MultiplicationFn 3600000 ?NUMBER) Joule)))

(<=>
	(equal ?AMOUNT (MeasureFn ?NUMBER Joule))
	(equal ?AMOUNT (MeasureFn (MultiplicationFn 0.0000002778 ?NUMBER) Kilowatt))) 

(subclass Exporting FinancialTransaction) 
(documentation Exporting "&%Exporting is the class of actions in 
which there is a &%ChangeOfPossession of goods shipped from a 
provider in one &%Nation to a destination in another &%Nation. 
Typically, there are &%Selling and &%Buying events associated 
with an &%Exporting.  Either the seller or the exporting country 
may be considered the &%origin of &%Exporting.")

(=>
	(instance ?EXPORT Exporting)
	(exists (?ITEM)
		(and
			(instance ?ITEM Object)
			(patient ?EXPORT ?ITEM))))

(=>
	(and
		(instance ?EXPORT Exporting)
		(patient ?EXPORT ?ITEM)
		(instance ?AREA GeopoliticalArea)
		(origin ?EXPORT ?AREA))
	(holdsDuring (BeginFn (WhenFn ?EXPORT))
		(located ?ITEM ?AREA)))

(=>
	(and
		(instance ?EXPORT Exporting)
		(patient ?EXPORT ?ITEM)
		(instance ?AREA GeopoliticalArea)
		(holdsDuring (BeginFn (WhenFn ?EXPORT))
			(located ?ITEM ?AREA)))
	(holdsDuring (EndFn (WhenFn ?EXPORT))
			(not
				(located ?ITEM ?AREA))))

(=>
	(and
		(instance ?EXPORT Exporting)
		(patient ?EXPORT ?ITEM)
		(instance ?AREA GeopoliticalArea)
		(holdsDuring (BeginFn (WhenFn ?EXPORT))
			(located ?ITEM ?AREA)))
	(exists (?AREA2)
		(and
			(instance ?AREA2 GeopoliticalArea)
			(not (geopoliticalSubdivision ?AREA1 ?AREA2))
			(not (geopoliticalSubdivision ?AREA2 ?AREA1))
			(holdsDuring (EndFn (WhenFn ?EXPORT))
				(located ?ITEM ?AREA2)))))

(=>
	(and
		(instance ?EXPORT Exporting)
		(patient ?EXPORT ?ITEM)
		(instance ?AREA GeopoliticalArea)
		(destination ?EXPORT ?AREA))
	(holdsDuring (EndFn (WhenFn ?EXPORT))
		(located ?ITEM ?AREA)))

(=>
	(and
		(instance ?EXPORT Exporting)
		(patient ?EXPORT ?ITEM)
		(instance ?AREA1 GeopoliticalArea)
		(instance ?AREA2 GeopoliticalArea)
		(holdsDuring (BeginFn (WhenFn ?EXPORT))
			(located ?ITEM ?AREA1))
		(holdsDuring (EndFn (WhenFn ?EXPORT))
			(located ?ITEM ?AREA2)))
	(not (located ?AREA2 ?AREA1)))

(=>
	(and
		(instance ?EXPORT Exporting)
		(patient ?EXPORT ?ITEM)
		(instance ?AREA1 GeopoliticalArea)
		(origin ?EXPORT ?AREA1)
		(instance ?AREA2 GeopoliticalArea)
		(destination ?EXPORT ?AREA2))
	(not (equal ?AREA1 ?AREA2)))

(=>
	(and
		(instance ?EXPORT Exporting)
		(patient ?EXPORT ?ITEM)
		(instance ?AREA1 GeopoliticalArea)
		(origin ?EXPORT ?AREA1)
		(instance ?AREA2 GeopoliticalArea)
		(destination ?EXPORT ?AREA2))
	(not (located ?AREA2 ?AREA1)))

(instance currencyType BinaryPredicate)
(domain currencyType 1 GeopoliticalArea)
(domain currencyType 2 UnitOfMeasure)
(domainSubclass currencyType 2 CurrencyMeasure)
(documentation currencyType "(&%currencyType ?AREA ?UNIT) means 
that the official currency used in the &%GeopoliticalArea ?AREA 
is the &%UnitOfMeasure ?UNIT.")

(instance fiscalYearPeriod BinaryPredicate)
(domain fiscalYearPeriod 1 Agent)
(domainSubclass fiscalYearPeriod 2 TimeInterval)
(documentation fiscalYearPeriod "The predicate &%fiscalYearPeriod 
indicates the period that an &%Agent or &%Organization uses as its 
12-month accounting period.  (&%fiscalYearPeriod ?AGENT &%Year) means 
that ?AGENT observes its 12-month accounting period during the 
regular calendar year (CY), from &%January to &%December.  For 
fiscal years with other beginning and ending months (FYs), use 
(&%fiscalYearPeriod ?AGENT (&%RecurrentTimeIntervalFn ?STARTMONTH ?ENDMONTH)).  
For example, (&%fiscalYearPeriod (&%GovernmentFn &%UnitedStates) 
(&%RecurrentTimeIntervalFn &%October &%September)).  For FYs that begin 
or end mid-month, days may be specified within &%RecurrentTimeIntervalFn.")

(subclass Narcotic ControlledSubstance)
(documentation Narcotic "&%Narcotic is a subclass of addictive 
&%BiologicallyActiveSubstances that have damping effects on the 
nervous system and may be fatal in large doses.")

(subclass ControlledSubstance BiologicallyActiveSubstance)
(documentation ControlledSubstance "&%ControlledSubstance is 
the subclass of &%BiologicallyActiveSubstances whose distribution 
and use is controlled by government regulation.")

(subclass Fodder Food)
(documentation Fodder "&%Fodder is the subclass of &%Food that is intended 
for instances of &%DomesticAnimal.")

(subclass Cement Mixture)
(documentation Cement "&%Cement is a subclass of &%Mixture 
whose instances may contain various minerals or ores, prepared by 
heating and pulverizing, and used in binding &%Concrete or in laying 
brick or stone.")

(subclass Concrete Mixture)
(documentation Concrete "&%Concrete is a subclass of &%Mixture 
used as building materials.  Concrete is made up of &%Mineral pieces 
(sand or gravel) and a &%Cement material used to bind them together.") 

(=>
	(instance ?CONCRETE Concrete)
	(exists (?PART)
		(and
			(instance ?PART Mineral)
			(component ?PART ?CONCRETE))))

(=>
	(instance ?CONCRETE Concrete)
	(exists (?PART)
		(and
			(instance ?PART Cement)
			(component ?PART ?CONCRETE))))

(=>
   (instance ?CONCRETE Concrete)
   (hasPurpose ?CONCRETE (exists (?CONSTRUCT)
                            (and
                               (instance ?CONSTRUCT Constructing)
                               (instrument ?CONSTRUCT ?CONCRETE)))))


;; ===============
;; People Ontology
;; ===============

;; The following content is borrowed from the People Ontology.

(instance PopulationFn UnaryFunction)
(domain PopulationFn GeopoliticalArea)
(range PopulationFn Integer)
(documentation PopulationFn "(&%PopulationFn ?AREA) denotes the &%Integer 
that represents the count of the number of people inhabiting the 
&%GeopoliticalArea ?AREA.  The total population presents one overall 
measure of the potential impact of the country on the world and within its 
region.")

(equal (PopulationFn ?AREA)
	 (CardinalityFn
		(KappaFn ?PERSON
			(and
				(instance ?PERSON Human)
				(inhabits ?PERSON ?AREA)))))

(instance average BinaryPredicate)
(instance average PartialValuedRelation)
(instance average SingleValuedRelation)
(domain average 1 List)
(domain average 2 RealNumber)
(documentation average "A partial function that relates a &%List to a 
&%RealNumber, provided that the &%List only has list elements that are 
&%RealNumbers. The &%RealNumber associated with the &%List is equal to the 
mathematical average of the &%RealNumbers in the &%List divided by the total
number of list elements.")

;; The &%List in the domain 1 of &%average may only have list elements that
;; are &%RealNumbers.
(=>
	(average ?LIST ?AVERAGE)
        (forall (?LISTITEM)
		(=>
			(inList ?LISTITEM ?LIST)
			(instance ?LISTITEM RealNumber))))

;; Calculation of the average of the elements of the list involves the 
;; stipulation of a second list described as a running total of the elements 
;; in the original list. The average of the first list is equal to the final 
;; element in the running total divided by the number of list elements.
(<=>
	(average ?LIST1 ?AVERAGE)
	(exists (?LIST2)
		(and
			(equal (ListLengthFn ?LIST2) (ListLengthFn ?LIST1))
			(equal (ListOrderFn ?LIST2 1) (ListOrderFn ?LIST1 1))
			(forall (?ITEMFROM2)
				(=>
					(inList ?ITEMFROM2 ?LIST2)
					(exists (?POSITION ?POSITIONMINUSONE ?ITEMFROM1 ?PRIORFROM2)
						(and
							(greaterThan ?POSITION 1)
							(lessThanOrEqualTo ?POSITION (ListLengthFn ?LIST2))
							(equal (ListOrderFn ?LIST2 ?ITEMFROM2) ?POSITION)
							(inList ?ITEMFROM1 ?LIST1)
							(equal ?POSITION (ListOrderFn ?LIST1 ?ITEMFROM1))
							(inList ?PRIORFROM2 ?LIST2)
							(equal ?POSITIONMINUSONE (SubtractionFn ?POSITION 1))
							(equal ?POSITIONMINUSONE (ListOrderFn ?LIST2 ?PRIORFROM2))
							(equal ?ITEMFROM2 (AdditionFn ?ITEMFROM1 ?PRIORFROM2))))))
			(equal ?LASTPLACE (ListLengthFn ?LIST2))
			(equal ?AVERAGE (DivisionFn (ListOrderFn ?LIST2 ?LASTPLACE) ?LASTPLACE)))))

(subclass RacialEthnicGroup EthnicGroup)
(documentation RacialEthnicGroup "A &%RacialEthnicGroup is an 
&%EthnicGroup based on common racial background.")

(instance BlackEthnicity RacialEthnicGroup)
(documentation BlackEthnicity "A broad racial division encompassing
various African, African-American, and Caribbean peoples.")

(instance WhiteEthnicity EthnicGroup)
(documentation WhiteEthnicity "A broad ethnic division encompassing 
various European, Hispanic, and Middle Eastern peoples. Also known as 
Caucasian.")

(instance AmerindianEthnicity EthnicGroup)
(documentation AmerindianEthnicity "A broad ethnic group encompassing any
of the North, Central, or South American tribal peoples.")

(instance Judaism BeliefGroup)
(documentation Judaism "The religion developed among the ancient Hebrews and
characterized by belief in one transcendent God who has revealed Himself to
Abraham, Moses, and the Hebrew prophets and by a religious life in accordance
with Scriptures and rabbinic traditions.")

(instance Christianity BeliefGroup)
(documentation Christianity "The religion derived from Jesus Christ, based on 
the Bible as sacred scripture, and professed by Eastern, Catholic, and 
Protestant bodies, among other subdivisions.")

(subCollection Protestantism Christianity)
(documentation Protestantism "&%Protestantism is one of the three major 
divisions of &%Christianity.")

(subCollection RomanCatholicism Christianity)
(documentation RomanCatholicism "&%RomanCathoicism is one of the three major 
divisions of &%Christianity.")

(instance RomanCatholicChurch ReligiousOrganization)
(documentation RomanCatholicChurch "The &%RomanCatholicChurch is the
&%ReligiousOrganization that promulgates &%RomanCatholicism.")

(subclass DeafSignLanguage ManualHumanLanguage)
(documentation DeafSignLanguage "A &%DeafSignLanguage is a
&%ManualHumanLanguage primarily intended for communication between a
deaf individual and a hearing individual or between deaf individuals.")

(subclass CreoleLanguage SpokenHumanLanguage)
(documentation CreoleLanguage "A &%CreoleLanguage is a &%PidginLanguage that 
has developed and become the mother tongue for a community of people. This 
process is called 'creolization' and results in an expanded vocabulary and 
grammar structure that allow for communication as rich and complex as that of 
non-creole languages. While pidgins are regarded as reduced languages, creoles
are considered expanded languages. That is, while pidgins develop to enable 
communication in relatively isolated domains, creoles allow for a full range 
of expressive possibilities on a par with more 'recognized' languages.")

(subclass PidginLanguage SpokenHumanLanguage)
(documentation PidginLanguage "A &%PidginLanguage is not the native language 
of anyone but is used as an auxiliary or supplemental language between two 
mutually unintelligible speech communities. Pidgins are reduced languages, 
characterized by having a limited vocabulary and a simple grammar which serve 
to satisfy basic communication needs. Historically these languages have 
primarily arisen in trade centers and plantations (with slaves from different 
language backgrounds), areas where large groups of people lacking a common 
language need to communicate. By definition, a pidgin has no native speakers; 
it is always a person's second (or more) language.")

(subclass MixedLanguage SpokenHumanLanguage)
(documentation MixedLanguage "A &%MixedLanguage is a &%SpokenHumanLanguage 
that combines grammar and lexical items from two or more languages to create 
a new language that is essentially a linguistic mixture.")

(subclass LiteracyAttribute TraitAttribute)
(documentation LiteracyAttribute "If an ?INDIVIDUAL has the &%attribute 
&%LiteracyAttribute, that ?INDIVIDUAL is able to read and write.")
(<=>
	(attribute ?INDIVIDUAL LiteracyAttribute)
	(and
		(hasSkill Reading ?INDIVIDUAL)
		(hasSkill Writing ?INDIVIDUAL)))