;;; The Taciturn Demo ;;; CSE 740: Seminar: Contextual Vocabulary Acquisition ;;; Ananthakrishnan Ugrasenan Santha ;;; Passage: ;;;"My manner was reticent towards George. This caused George ;;; to act withdrawn and taciturn". ;;; Reset Network (resetnet t) ;;; Define relations: ;;; lex,object,proper-name,class,member,rel ;;; possessor,direction,property,cause,effect, (define lex object proper-name class member rel possessor direction property cause effect) ;;*********************************************;; ;;***** Background Knowledge *****;; ;;*********************************************;; ;;; There is an object with propername George. (describe (assert object #George proper-name (build lex "George"))) ;;; George and I are persons. (describe (assert member (#I *George) class (build lex "person"))) ;;; The words 'reticent' and 'withdrawn' are ;;; synonyms of 'untalkative' (describe (assert object ("reticent" "withdrawn") rel (build lex "synonym") object "untalkative")) ;;; The concepts denoted by 'reticent' and 'withdrawn' ;;; are manners. (describe (assert member ((build lex "reticent") (build lex "withdrawn")) class (build lex "manner"))) ;;*********************************************;; ;;***** Background Rules *****;; ;;*********************************************;; ;;; If word1 and word2 are synonyms ;;; and something has the property denoted by word1 ;;; then it has the property denoted by word2 (describe (assert forall ($thing $word1 $word2) &ant (build object *word1 rel (build lex "synonym") object *word2) &ant (build object *thing property (build lex *word1)) cq (build object *thing property (build lex *word2)))) ;;; If word1 and word2 are synonyms ;;; then the concept denoted by word1 ;;; is similar to the concept denoted by word2 (describe (assert forall ($word1$word2 $syn) ant (build object *word1 rel (build lex "synonym") object *word2) cq (build object (build lex *word1) rel (build lex "similar") object (build lex word2)))) ;;; If word1 and word2 have a common synonym syn ;;; then the concept denoted by word1 ;;; is similar to the concept denoted by word2 (describe (assert forall ($word1 $word2 $syn) &ant (build object *word1 rel (build lex "synonym") object *syn) &ant (build object *word2 rel (build lex "synonym") object *syn) cq (build object (build lex *word1) rel (build lex "similar") object (build lex *word2)))) ;;; If the concept denoted by word1 ;;; is similar to the concept denoted by word2 ;;; then word1 is a possible synonym of word2 (describe (assert forall ($word1 $word2) ant (build object(build lex *word1) rel (build lex "similar") object (build lex *word2)) cq (build object *word1 rel (build lex "possible_synonym") object *word2))) ;;; If word1 is a synonym of word2, ;;; then word1 is a possible_synonym of word2 (describe (assert forall ($word1 $word2) ant (build object *word1 rel (build lex "synonym") object *word2) cq (build object *word1 rel (build lex "possible_synonym") object *word2))) ;;; If obj1 is similar to obj2, ;;; and obj1 is a member of the class cl ;;; then obj2 is a member of the class cl (describe (assert forall ($obj1 $obj2 $cl) &ant (build object *obj1 rel (build lex "similar") object *obj2) &ant (build member *obj1 class *cl) cq (build member *obj2 class *cl))) ;;; If some person prsnA's manner mnnrA, which has property propA ;;; caused some person prsnB to have ;;; properties propB1 and propB2 ;;; and if propA and propB1 are similar, ;;; then propB2 is similar to propB1 and propA (describe (assert forall ($prsnA $prsnB $mnnrA $propA $propB1 $propB2) &ant (build member *prsnA class (build lex "person")) &ant (build possessor *prsnA rel (build lex "manner") object *mnnrA) &ant (build object *mnnrA property *propA) &ant (build member *prsnB class (build lex "person")) &ant (build cause *mnnrA effect (build object *prsnB property (*propB1 *propB2))) &ant (build object *propA rel (build lex "similar") object *propB1) cq (build object *propB2 rel (build lex "similar") object (*propB1 *propA)))) ;;*********************************************;; ;;***** Passage *****;; ;;*********************************************;; ;; "My manner was reticent towards George." ;; Split into: 1. My manner was reticent. ;; and: 2. This reticence was directed at George. ;1. "My manner was reticent." ;;; possessor: I ;;; rel: (Node with lex "manner") ;;; object: (BaseNode with property "reticent") (describe (assert possessor *I rel (build lex "manner") object #mymanner)) (describe (assert object *mymanner property (build lex "reticent"))) ;2. "This manner (reticence) was directed at George." ;;; object: (my reticence) ;;; direction: George (describe (assert object *mymanner direction *George)) ;;; "This (reticent manner) caused George to act withdrawn and taciturn." (describe (assert cause *mymanner effect (assert object *George property ((build lex "withdrawn") (build lex taciturn))))) ;;*********************************************;; ;;***** Deductions *****;; ;;*********************************************;; ;;; Is taciturn a possible synonym of untalkative? (describe (deduce object "taciturn" rel (find lex "possible_synonym") object "untalkative")) ;;; Is taciturn a possible synonym of withdrawn? (describe (deduce object "taciturn" rel (find lex "possible_synonym") object "withdrawn")) ;;; Is taciturn a possible synonym of reticent? (describe (deduce object "taciturn" rel (find lex "possible_synonym") object "reticent")) ;;; Is taciturn a manner? (deduce member (find lex "taciturn") class (find lex "manner")) ;;*********************************************;; ;;***** Definition *****;; ;;*********************************************;; ^(define_adjective "taciturn");