;;; This is the set of assertions which build the base network which ;;; ;;; corresponds to Karen Ehrlich's vocabulary acquisition project. ;;; ;;; Commented and made accessible by Alan Hunt and Geoffrey Koplas, '97 ;;; ;;; Case Frames ;;; The case frames used are in comments, with the actual required defines ;;; proceeding the (conceptual) framework, so that you can see the logical ;;; caseframes, but don't have to deal with sneps whining about redefined ;;; relations. ;;; Hierarchy Case Frames ;; (subclass superclass) ;; (member class) ;; (subset superset) (define member class subclass superclass subset superset) ;;; Object Case Frames ;; (object possessor) ;; (object proper-name) ;; (object1 rel object2) ;; (object mode) ;; (object property) ;; (object place time) ;; (object location) (define rel possessor proper-name object1 object2 mode property place time location) ;;; Composition Case Frames ;; (part whole) (define part whole) ;;; Agent Case Frames ;; (agent act) ;; (agent act object) ;; (agent act object indobj) ;; (agent act to) ;; (agent act onto) ;; (agent act time) ;; (agent act from) ;; (agent act objects) ;; (agent place time) ;; (agent act against) (define agent act object indobj to onto from objects against) ;;; Word Relation Case Frames ;; (antonym antonym) ;; (synonym synonym) ;; (equiv equiv) (define antonym synonym equiv) ;;; Rule Case Frames ;; (forall ant cq) ;; (forall &ant cq) ;; (min max arg) ;;; Skolem Function Case Frames ;; (skf a1) ;; (skf a2) ;; (skf a3) ;; (skf a4) (define skf a1 a2 a3 a4) ;;; Case Frames without a good category ;; (lex) ;; (kn_cat) ;; (before after) ;; (action purpose) (define lex kn_cat before after action purpose) ;;; The following is the information that needs to get fed into the network ;;; for the Narrative Acquisition demos; namely the background knowledge ;;; on the words _other_ than the one being acquired. ;"The class hart is a subclass of the class deer" (describe (assert subclass (build lex "hart") superclass (build lex "deer") kn_cat "life")) ;"The class hall is a subclass of the class building" (describe (assert subclass (build lex "hall") superclass (build lex "building") kn_cat "life")) ;"The class hound is a subclass of the class dog" (describe (assert subclass (build lex "hound") superclass (build lex "dog") kn_cat "life")) ;"The class dog is a subclass of the class mammal" (describe (assert subclass (build lex "dog") superclass (build lex "mammal") kn_cat "life")) ;"The class dog is a subclass of the class quadruped" (describe (assert subclass (build lex "dog") superclass (build lex "quadruped") kn_cat "life")) ;"The class dog is a subclass of the class carnivore" (describe (assert subclass (build lex "dog") superclass (build lex "carnivore") kn_cat "life")) ;"The class dog is a subclass of the class predator" (describe (assert subclass (build lex "dog") superclass (build lex "predator") kn_cat "life")) ;"The class dog is a subclass of the class animal" (describe (assert subclass (build lex "dog") superclass (build lex "animal") kn_cat "life")) ;"Rex is a member of the class dog" (describe (assert member #rex class (build lex "dog"))) ;"Rex is possesed by Rexboss" (describe (assert object *rex rel (build lex "dog") possessor #rexboss)) ;"Rexboss is a person" (describe (assert member *rexboss class (build lex "person"))) ; (describe (assert subclass (build lex "deer") superclass (build lex "mammal") kn_cat "life")) ; (describe (assert subclass (build lex "deer") superclass (build lex "quadruped") kn_cat "life")) ; (describe (assert subclass (build lex "deer") superclass (build lex "herbivore") kn_cat "life")) ; (describe (assert subclass (build lex "carnivore") superclass (build lex "animal") kn_cat "life")) ; (describe (assert subclass (build lex "herbivore") superclass (build lex "animal") kn_cat "life")) ; (describe (assert subclass (build lex "predator") superclass (build lex "carnivore") kn_cat "life")) ; (describe (assert antonym (build lex "herbivore") antonym (build lex "carnivore"))) ; (describe (assert antonym (build lex "herbivore") antonym (build lex "predator"))) ; (describe (assert subclass (build lex "mammal") superclass (build lex "animal") kn_cat "life")) ; (describe (assert subclass (build lex "mammal") superclass (build lex "vertebrate") kn_cat "life")) ; (describe (assert subclass (build lex "quadrupeds") superclass (build lex "vertebrate") kn_cat "life")) ; (describe (assert subclass (build lex "animal") superclass (build lex "phys obj") kn_cat "life")) ; (describe (assert member (build lex "Round Table") class (build lex "table") kn_cat "life")) ; (describe (assert object #KA proper-name (build lex "King Arthur") kn_cat "life")) ; (describe (assert object1 *KA rel "ISA" object2 (build lex "king") kn_cat "life")) ; (describe (assert possessor *KA object (build lex "Round Table") rel (build lex "table") kn_cat "life")) ; (describe (assert object #Excalibur proper-name (build lex "Excalibur") kn_cat "life")) ; (describe (assert member *Excalibur class (build lex "sword") kn_cat "life")) ; (describe (assert object *Excalibur rel (build lex "sword") possessor *KA kn_cat "life")) ; (describe (assert object #Mer proper-name (build lex "Merlin") kn_cat "life")) ; (describe (assert object1 *Mer rel "ISA" object2 (build lex "wizard") kn_cat "life")) ; (describe (assert subclass (build lex "wizard") superclass (build lex "person") kn_cat "life")) ; (describe (assert object #Galahad proper-name (build lex "Sir Galahad") kn_cat "life")) ; (describe (assert object #Tris proper-name (build lex "Sir Tristram") kn_cat "life")) ; (describe (assert object #SG proper-name (build lex "Sir Gawain") kn_cat "life")) ; (describe (assert object #Ban proper-name (build lex "King Ban") kn_cat "life")) ; (describe (assert object1 *Ban rel "ISA" object2 (build lex "king") kn_cat "life")) ; (describe (assert object #Bors proper-name (build lex "King Bors") kn_cat "life")) ; (describe (assert object1 *Bors rel "ISA" object2 (build lex "king") kn_cat "life")) ; (describe (assert object #Lot proper-name (build lex "King Lot") kn_cat "life")) ; (describe (assert object1 *Lot rel "ISA" object2 (build lex "king") kn_cat "life")) ; (describe (assert object1 *Galahad rel "ISA" object2 (build lex "knight") kn_cat "life")) ; (describe (assert object1 *Tris rel "ISA" object2 (build lex "knight") kn_cat "life")) ; (describe (assert object1 *SG rel "ISA" object2 (build lex "knight") kn_cat "life")) ; (describe (assert subclass (build lex "sideboard") superclass (build lex "furniture") kn_cat "life")) ; (describe (assert subclass (build lex "table") superclass (build lex "furniture") kn_cat "life")) ; (describe (assert subclass (build lex "chair") superclass (build lex "furniture") kn_cat "life")) ; (describe (assert subclass (build lex "horse") superclass (build lex "quadruped") kn_cat "life")) ; (describe (assert subclass (build lex "horse") superclass (build lex "herbivore") kn_cat "life")) ; (describe (assert subclass (build lex "ungulate") superclass (build lex "herbivore") kn_cat "life")) ; (describe (assert subclass (build lex "horse") superclass (build lex "animal") kn_cat "life")) ; (describe (assert subclass (build lex "knight") superclass (build lex "person") kn_cat "life")) ; (describe (assert object1 (build lex "person") rel "ISA" object2 (build lex "basic ctgy") kn_cat "life")) ; (describe (assert object1 (build lex "dog") rel "ISA" object2 (build lex "basic ctgy") kn_cat "life")) ; (describe (assert object1 (build lex "horse") rel "ISA" object2 (build lex "basic ctgy") kn_cat "life")) ; (describe (assert object1 (build lex "deer") rel "ISA" object2 (build lex "basic ctgy") kn_cat "life")) ; (describe (assert object1 (build lex "chair") rel "ISA" object2 (build lex "basic ctgy") kn_cat "life")) ; (describe (assert object1 (build lex "table") rel "ISA" object2 (build lex "basic ctgy") kn_cat "life")) ; (describe (assert member (build lex "white") class (build lex "colour") kn_cat "life")) ; (describe (assert member (build lex "black") class (build lex "colour") kn_cat "life")) ; (describe (assert member (build lex "small") class (build lex "size") kn_cat "life")) ; (describe (assert synonym (build lex "small") synonym (build lex "little") kn_cat "life")) ; (describe (assert member (build lex "large") class (build lex "size") kn_cat "life")) ; (describe (assert synonym (build lex "large") synonym (build lex "big") kn_cat "life")) ; (describe (assert member (build lex "good") class (build lex "value") kn_cat "life")) ; (describe (assert member (build lex "bad") class (build lex "value") kn_cat "life")) ; (describe ; presumably, all hounds hunt (assert forall $hound1 ant (build object1 *hound1 rel "ISA" object2 (build lex "hound")) cq (build mode (build lex "presumably") object (build agent *hound1 act (build lex "hunt"))) kn_cat "life-rule.1")) ;"Horses are ridden by people" (describe (assert forall $horse1 ant (build member *horse1 class (build lex "horse")) cq ((build mode (build lex "presumably") object (build member (build skf "rider-of" a2 *horse1) = thisrider class (build lex "person"))) (build mode (build lex "presumably") object (build agent *thisrider act (build lex "ride") object *horse1))) kn_cat "life-rule.1")) ;"All animals who bay are hounds" (describe (assert forall (*hound1 $categ) &ant ((build agent *hound1 act (build lex "bay")) (build object1 *hound1 rel "ISA" object2 *categ) (build subclass *categ superclass (build lex "animal"))) cq ((build object1 *hound1 rel "ISA" object2 (build lex "hound")) (build subclass *categ superclass (build lex "hound"))) kn_cat "life_rule.1")) ; (describe ;if it bites, it's an animal (assert forall $animal1 ant (build agent *animal1 act (build lex "bite")) cq (build member *animal1 class (build lex "animal")) kn_cat "life-rule.1")) ; (describe ;if it sleeps, it's an animal (assert forall *animal1 ant (build agent *animal1 act (build lex "sleep")) cq (build member *animal1 class (build lex "animal")) kn_cat "life-rule.1")) ; (describe ;if it ambles, its an animal (assert forall *animal1 ant (build object *animal1 property (build lex "ambling")) cq (build member *animal1 class (build lex "animal")) kn_cat "life-rule.1")) ; (describe ;if something is an animal and a member of another basic ctgy, ;conclude that ctgy is a subclass of animal (assert forall (*animal1 $class2) &ant ((build member *animal1 class (build lex "animal")) (build member *animal1 class *class2)) cq (build subclass *class2 superclass (build lex "animal")) kn_cat "life-rule.1")) ; (describe ;if something is an animal and part of another class, ;conclude that ctgy is a subclass of animal (assert forall (*animal1 *class2) &ant ((build member *animal1 class (build lex "animal")) (build object1 *animal1 rel "ISA" object2 *class2)) cq (build subclass *class2 superclass (build lex "animal")) kn_cat "life-rule.1")) ; (describe ;if something is presumed an animal and a member of another basic ctgy, ;presume that ctgy is a subclass of animal (assert forall (*animal1 *class2) &ant ((build mode (build lex "presumably") object (build member *animal1 class (build lex "animal"))) (build member *animal1 class *class2)) cq (build mode (build lex "presumably") object (build subclass *class2 superclass (build lex "animal"))) kn_cat "life-rule.1")) ; (describe ;if something is presumed an animal and a part of another class, ;presume that ctgy is a subclass of animal (assert forall (*animal1 *class2) &ant ((build mode (build lex "presumably") object (build member *animal1 class (build lex "animal"))) (build object1 *animal1 rel "ISA" object2 *class2)) cq (build mode (build lex "presumably") object (build subclass *class2 superclass (build lex "animal"))) kn_cat "life-rule.1")) ; (describe ;if something is a mammal and a member of basic ctgy, ;conclude that ctgy is a subclass of mammal (assert forall (*animal1 *class2) &ant ((build object1 *animal1 rel "ISA" object2 (build lex "mammal")) (build member *animal1 class *class2)) cq ((build subclass *class2 superclass (build lex "mammal")) (build subclass *class2 superclass (build lex "animal"))) kn_cat "life-rule.1")) ; (describe ;if something is an mammal and part of another class, ;conclude that ctgy is a subclass of mammal (assert forall (*animal1 *class2) &ant ((build object1 *animal1 rel "ISA" object2 (build lex "mammal")) (build object1 *animal1 rel "ISA" object2 *class2)) cq ((build subclass *class2 superclass (build lex "mammal")) (build subclass *class2 superclass (build lex "animal"))) kn_cat "life-rule.1")) ;"All horses, dogs, ponies, and deer are animals" (describe (assert forall $x1 ant ((build member *x1 class (build lex "horse")) (build member *x1 class (build lex "dog")) (build object1 *x1 rel "ISA" object2 (build lex "pony")) (build member *x1 class (build lex "deer"))) cq (build member *x1 class (build lex "animal")) kn_cat "life-rule.1")) ; (describe ;if someone belongs to a ctgy which is a subclass of person, that ;someone is a person (assert forall ($x $person) &ant ((build member *person class *x) (build subclass *x superclass (build lex "person"))) cq (build member *person class (build lex "person")) kn_cat "intrinsic")) ; (describe ;if someone belongs to a ctgy which is a subclass of person, that ;someone is a person (assert forall (*x *person) &ant ((build object1 *person rel "ISA" object2 *x) (build subclass *x superclass (build lex "person"))) cq (build member *person class (build lex "person")) kn_cat "intrinsic")) ;"if x is a y, and y is a subclass of z, and z is a basic category, x is a ; member of class z" (describe (assert forall ($mem $subc1 $supc2) &ant ((build object1 *mem rel "ISA" object2 *subc1) (build subclass *subc1 superclass *supc2) (build object1 *supc2 rel "ISA" object2 (build lex "basic ctgy"))) cq (build member *mem class *supc2) kn_cat "intrinsic")) ; (describe ;anything a person can carry is small (assert forall ($thingy *person) &ant ((build member *person class (build lex "person")) (build agent *person act (build action (build lex "carry") object *thingy))) cq (build object *thingy property (build lex "small")) kn_cat "life-rule.2")) ; (describe ;anything a person wants is valuable (assert forall (*thingy *person) ant (build agent *person act (build action (build lex "want") object *thingy)) cq (build object *thingy property (build lex "valuable")) kn_cat "life-rule.2")) ; (describe ;if someone says they want something, they do (assert forall (*thingy *person) ant (build agent *person act (build action (build lex "say that") object (build agent *person act (build action (build lex "want") object *thingy)))) cq (build agent *person act (build action (build lex "want") object *thingy)) kn_cat "life-rule.2")) ; (describe ;if it has colour, it's a physical object (assert forall ($thing $prop $foo) &ant ((build member *foo class *thing) (build object *foo property *prop) (build member *prop class (build lex "colour"))) cq (build subclass *thing superclass (build lex "phys obj")) kn_cat "intrinsic")) ; (describe ;if it has colour, it's a physical object (assert forall (*thing *prop $foo) &ant ((build object1 *foo rel "ISA" object2 *thing) (build object *foo property *prop) (build member *prop class (build lex "colour"))) cq (build subclass *thing superclass (build lex "phys obj")) kn_cat "intrinsic")) ; (describe ;if it has size, it's a physical object (assert forall (*thing *prop *foo) &ant ((build member *foo class *thing) (build object *foo property *prop) (build member *prop class (build lex "size"))) cq (build subclass *thing superclass (build lex "phys obj")) kn_cat "intrinsic")) ; (describe ;if it has size, it's a physical object (assert forall (*thing *prop *foo) &ant ((build object1 *foo rel "ISA" object2 *thing) (build object *foo property *prop) (build member *prop class (build lex "size"))) cq (build subclass *thing superclass (build lex "phys obj")) kn_cat "intrinsic")) ; (describe ;if an animate agent acts, the act performed is an action (assert forall ($act $agent) &ant ((build member *agent class (build lex "animal")) (build agent *agent act *act)) cq (build member *act class (build lex "action")) kn_cat "intrinsic")) ; (describe ;if a person acts, the act performed is an action (assert forall ($act $agent) &ant ((build member *agent class (build lex "person")) (build agent *agent act *act)) cq (build member *act class (build lex "action")) kn_cat "intrinsic")) ; (describe (assert subclass (build lex "spear") superclass (build lex "weapon") kn_cat "life")) ;"A weapon damages (describe (assert forall $weapon1 ant (build object1 *weapon1 rel "ISA" object2 (build lex "weapon")) cq (build agent *weapon1 act (build lex "damage")) kn_cat "life-rule.1")) ;"Kings are people" (describe (assert subclass (build lex "king") superclass (build lex "person") kn_cat "life")) ;"Squires are people" (describe (assert subclass (build lex "squire") superclass (build lex "person") kn_cat "life")) ;"yeoman are people" (describe (assert subclass (build lex "yeoman") superclass (build lex "person") kn_cat "life")) ;"Carnivores eat meat" (describe (assert forall *animal1 ant (build object1 *animal1 rel "ISA" object2 (build lex "carnivore")) cq (build agent *animal1 act (build action (build lex "eat") object (build lex "meat"))) kn_cat "life-rule.1")) ;"herbavores eat plants, and don't eat meat" (describe (assert forall *animal1 ant (build object1 *animal1 rel "ISA" object2 (build lex "herbivore")) cq ((build agent *animal1 act (build action (build lex "eat") object (build lex "plant"))) (build min 0 max 0 arg (build agent *animal1 act (build action (build lex "eat") object (build lex "meat"))))) kn_cat "life-rule.1")) ;"mammals presumably bear" - Bear what? AH (describe (assert forall *animal1 ant (build object1 *animal1 rel "ISA" object2 (build lex "mammal")) cq (build mode (build lex "presumably") object (build agent *animal1 act (build lex "bear"))) kn_cat "life-rule.1")) ;"if something bears something else, it is an animal" (describe (assert forall (*animal1 $animal2) ant (build agent *animal1 act (build lex "bear") object *animal2) cq (build object1 *animal1 rel "ISA" object2 (build lex "mammal")) kn_cat "life-rule.1")) ;"predators hunt" (describe (assert forall *animal1 ant (build object1 *animal1 rel "ISA" object2 (build lex "predator")) cq (build mode (build lex "presumably") object (build agent *animal1 act (build lex "hunt"))) kn_cat "life-rule.1")) ;"if someone leaps onto something, they will be on it afterwards" (describe (assert forall ($leaper $goal $start) ant (build agent *leaper act (build lex "leap") onto *goal time *start) cq ((build time (build skf "time-at" a3 *goal) = endtime object1 *leaper rel (build lex "on") object2 *goal) (build before *start after *endtime)) kn_cat "life-rule.1")) ;"if someone leaps to something, they will be at it afterwards" (describe (assert forall (*leaper *goal *start) ant (build agent *leaper act (build lex "leap") to *goal time *start) cq ((build time (build skf "time-at" a3 *goal) = endtime object1 *leaper rel (build lex "at") object2 *goal) (build before *start after *endtime)) kn_cat "life-rule.1")) ;"if someone leaps from something, they were on it before they leaped" (describe (assert forall (*leaper *goal $src $end) ant (build agent *leaper act (build lex "leap") from *src time *end) cq ((build time (build skf "time-at" a4 *src) = starttime object1 *leaper rel (build lex "on") object2 *src) (build before *starttime after *end)) kn_cat "life-rule.1")) ;"if an agent and object are in the same place at the same time, then the ; agent is at the object." AGAIN, IS THIS RIGHT? AT A CHAIR? (describe (assert forall ($item $pl $ti) ant ((build agent *item place *pl time *ti) (build object *item place *pl time *ti)) cq (build object1 *item rel (build lex "at") object2 *pl time *ti) kn_cat "life-rule.1")) ; (describe ;if something is part of a class and performs an action attributed to another ;class, presume the first is a subclass of the second (assert forall (*animal1 *class2 $class3 $action1) &ant ((build object1 *animal1 rel "ISA" object2 *class2) (build agent *animal1 act *action1) (build forall *animal1 ant (build agent *animal1 act *action1) cq (build object1 *animal1 rel "ISA" object2 *class3))) cq (build mode (build lex "presumably") object (build subclass *class2 superclass *class3)) kn_cat "life-rule.2")) ; (describe (assert synonym (build lex "kill") synonym (build lex "slay") kn_cat "life")) ;"an elder is a person" (describe (assert forall $eld1 ant (build object1 *eld1 rel "ISA" object2 (build lex "elder")) cq ((build object *eld1 property (build lex "old")) (build mode (build lex "presumably") object (build member *eld1 class (build lex "person")))) kn_cat "life-rule.1")) ;"if something chases something else, they run behind it" (describe (assert forall ($chaser $chasee) ant (build agent *chaser act (build action (build lex "chase") object *chasee)) cq ((build agent *chaser act (build lex "run")) (build object1 *chaser rel (build lex "behind") object2 *chasee)) kn_cat "life-rule.1")) ;"dwarves are people" (describe (assert subclass (build lex "dwarf") superclass (build lex "person") kn_cat "life")) ;"pavillions are tents" (describe (assert subclass (build lex "pavilion") superclass (build lex "tent") kn_cat "life"))