Old there-exists
;-------------------------------------------------------------------------------
;
; function: there_exists
; input: a noun to be defined
; output: a list of individuals of type <noun> together with any
; possessions, functions, actions, relations, or other
; properties attributed to those individuals. If individuals
; exist, and have such properties, but aren't named, list
; the properties anyway.
; modified: mkb 2002
;-------------------------------------------------------------------------------
(defun there_exists (noun)
(setq agent-act (ag-act-fn noun))
(setq str (struct noun nil))
(setq ac (acts noun))
(setq fun (func noun))
(cond ((setq thex1 #3! ((find (compose lex- proper-name- ! object object1- ! object2 lex)
~noun)))
(if (and (null str) (null fun))
(if (and (null ac) agent-act)
(list 'a noun 'is 'something 'a (car agent-act)
'can (cadr agent-act)
'a noun 'is 'something
thex1
'is.
'structure= 'nil
'function= 'nil
'actions= 'nil
'ownership= (indiv_rand_rels noun)
'possible 'properties= (indiv_rand_props noun))
(list 'a noun 'is 'something
thex1
'is.
'structure= 'nil
'function= 'nil
'actions= ac
'ownership= (indiv_rand_rels noun)
'possible 'properties= (indiv_rand_props noun)))
(list 'a noun 'is 'something
thex1
'is.
'structure= str
'function= fun
'actions= ac
'ownership= (indiv_rand_rels noun))))
((setq thex2 #3! ((find (compose lex- proper-name- ! object member- ! class lex)
~noun)))
(if (and (null str) (null fun))
(if (and (null ac) agent-act)
(list 'a noun 'is 'something 'a (car agent-act)
'can (cadr agent-act)
'a noun 'is 'something
thex2
'is.
'structure= 'nil
'function= 'nil
'actions= 'nil
'ownership= (indiv_rand_rels noun)
'possible 'properties= (indiv_rand_props noun))
(list 'a noun 'is 'something
thex2
'is.
'structure= 'nil
'function= 'nil
'actions= ac
'ownership= (indiv_rand_rels noun)
'possible 'properties= (indiv_rand_props noun)))
(list 'a noun 'is 'something
thex2
'is.
'structure= str
'function= fun
'actions= ac
'ownership= (indiv_rand_rels noun))))
(#3! ((find (compose object1- ! object2 lex) ~noun))
(if (and (null str) (null fun) agent-act)
(list 'a noun 'is 'something 'a (car agent-act)
'can (cadr agent-act)
'structure= 'nil
'function= 'nil
'actions= ac
'ownership= (indiv_rand_rels noun)
'possible 'properties= (indiv_rand_props noun))
(list 'structure= str
'function= fun
'actions= ac
'ownership= (indiv_rand_rels noun)
'possible 'properties= (indiv_rand_props noun))))
(#3! ((find (compose member- ! class lex) ~noun))
(if (and (null str) (null fun) agent-act)
(list 'a noun 'is 'something 'a (car agent-act)
'can (cadr agent-act)
'structure= 'nil
'function= 'nil
'actions= ac
'ownership= (indiv_rand_rels noun)
'possible 'properties= (indiv_rand_props noun))
(list 'structure= str
'function= fun
'actions= ac
'ownership= (indiv_rand_rels noun)
'possible 'properties= (indiv_rand_props noun)))) ))
New there-exists
;------------------------------------------------------------------------------- ; function: find_individuals ; input: a noun to be defined ; output: a list of individuals of type <noun> ; created: stn 2002 ;------------------------------------------------------------------------------- (defun find_individuals (noun) "Returns a list of things that are a <noun>." ; are the lex arcs needed in a object,proper-name case frame??? (append #3! ((find (compose lex- proper-name- ! object object1- ! object2 lex) ~noun (compose lex- proper-name- ! object object1- ! rel) "ISA")) #3! ((find (compose lex- proper-name- ! object member- ! class lex) ~noun)) #3! ((find (compose lex- object1- ! object2 lex) ~noun (compose lex- object1- ! rel) "ISA")) #3! ((find (compose lex- member- ! class lex) ~noun)) )) ;------------------------------------------------------------------------------- ; ; function: there_exists ; input: a noun to be defined ; output: a list of individuals of type <noun> together with any ; possessions, functions, actions, relations, or other ; properties attributed to those individuals. If individuals ; exist, and have such properties, but aren't named, list ; the properties anyway. ; modified: mkb 2002 ; modified: stn 2002 ;------------------------------------------------------------------------------- (defun there_exists (noun) (setq agent-act (ag-act-fn noun)) (setq str (struct noun nil)) (setq ac (acts noun)) (setq fun (func noun)) (cond ((setq thex1 (find_individuals noun)) (if (and (null ac) agent-act) (list agent-act 'a noun 'is 'something thex1 'is. 'structure= str 'function= fun 'actions= 'nil 'ownership= (indiv_rand_rels noun) 'possible 'properties= (indiv_rand_props noun)) (list 'a noun 'is 'something thex1 'is. 'structure= str 'function= fun 'actions= ac 'ownership= (indiv_rand_rels noun) 'possible 'properties= (indiv_rand_props noun))) ) ;; if there is some object1 but we don't know its name (#3! ((find (compose object1- ! object2 lex) ~noun)) (if (and (null str) (null fun) agent-act) (list agent-act 'structure= 'nil 'function= 'nil 'actions= ac 'ownership= (indiv_rand_rels noun) 'possible 'properties= (indiv_rand_props noun)) (list 'structure= str 'function= fun 'actions= ac 'ownership= (indiv_rand_rels noun) 'possible 'properties= (indiv_rand_props noun)))) ;; if there is some member of the class but we don't know its name (#3! ((find (compose member- ! class lex) ~noun)) (if (and (null str) (null fun) agent-act) (list agent-act 'structure= 'nil 'function= 'nil 'actions= ac 'ownership= (indiv_rand_rels noun) 'possible 'properties= (indiv_rand_props noun)) (list 'structure= str 'function= fun 'actions= ac 'ownership= (indiv_rand_rels noun) 'possible 'properties= (indiv_rand_props noun)))) ))