;;; -*- Mode: Lisp;; Syntax: vlisp;; -*- File: eliza.vlisp ; ; eliza d'après Weizenbaum (include eliza1.vlisp) (de read-line-no-punct () (cdr (interneStr (gsub ".,;:'?#\"-()\\" " " (readline))))) (de eliza () (princ "elisa : ") (do ((sentence (repond (analyse (read-line-no-punct))) (repond (analyse (read-line-no-punct))))) ((equal '(bye) sentence) "good bye") (terpri)(princ "eliza : "))) (de repond (reponse) (if (null reponse)() (mapcar reponse 'prin1))) ;;; ============================== (setq *eliza-rules* '( ((?- hello ?y) `(How do you do. Please state your problem.)) ((?- computer ?y) `(Do computers worry "you?") `(What do you think about "machines?") `(Why do you mention "computers?") `(What do you think machines have to do with your "problem?")) ((?- name ?y) `(I am not interested in names)) ((?- sorry ?y) `(Please don't apologize) `(Apologies are not necessary) `(What feelings do you have when you apologize)) ((?- I remember ?y) `(Do you often think of ,@y) `(Does thinking of ,@y bring anything else to "mind?") `(What else do you remember) `(Why do you recall ,@y right "now?") `(What in the present situation reminds you of ,@y) `(What is the connection between me and ,@y)) ((?- do you remember ?y) `(Did you think I would forget ,@y "?") `(Why do you think I should recall ,@y now) `(What about ,@y) `(You mentioned ,@y)) ((?- if ?y) `(Do you really think its likely that ,@y) `(Do you wish that ,@y) `(What do you think about ,@y) `(Really-- if ,@y)) ((?- I dreamt ?y) `(Really-- ,@y) `(Have you ever fantasized ,@y while you were "awake?") `(Have you dreamt ,@y "before?")) ((?- dream about ?y) `(How do you feel about ,@y in "reality?")) ((?- dream ?y) `(What does this dream suggest to "you?") `(Do you dream "often?") `(What persons appear in your "dreams?") `(Don't you believe that dream has to do with your "problem?")) ((?- my mother ?y) `(Who else in your family ,@y) `(Tell me more about your family)) ((?- my father ?y) `(Your father) `(Does he influence you "strongly?") `(What else comes to mind when you think of your "father?")) ((?- I want ?y) `(What would it mean if you got ,@y) `(Why do you want ,@y) `(Suppose you got ,@y soon)) ((?- I am glad "?y") `(How have I helped you to be ,@y) `(What makes you happy just now) `(Can you explain why you are suddenly ,@y)) ((?- I am sad ?y) `(I am sorry to hear you are depressed) `(I'm sure its not pleasant to be sad)) ((?x are like ?y) `(What resemblance do you see between ,@x and ,@y)) ((?x is like ?y) `(In what way is it that ,@x is like ,@y) `(What resemblance do you "see?") `(Could there really be some "connection?") `("How?")) ((?- alike ?y) `(In what "way?") `(What similarities are "there?")) ((?- same ?y) `(What other connections do you "see?")) ((?- I was ?y) `(Were you "really?") `(Perhaps I already knew you were ,@y) `(Why do you tell me you were ,@y "now?")) ((?- was I ?y) `(What if you were ,@y "?") `(Do you thin you were ,@y) `(What would it mean if you were ,@y)) ((?- I am ?y) `(In what way are you ,@y) `(Do you want to be ,@y "?")) ((?- am I ?y) `(Do you believe you are ,@y) `(Would you want to be ,@y) `(You wish I would tell you you are ,@y) `(What would it mean if you were ,@y)) ((?- am ?y) `(Why do you say "AM?") `(I don't understand that)) ((?- are you ?y) `(Why are you interested in whether I am ,@y or "not?") `(Would you prefer if I weren't ,@y) `(Perhaps I am ,@y in your fantasies)) ((?- you are ?y) `(What makes you think I am ,@y "?")) ((?- because ?y) `(Is that the real "reason?") `(What other reasons might there "be?") `(Does that reason seem to explain anything "else?")) ((?- were you ?y) `(Perhaps I was ,@y) `(What do you "think?") `(What if I had been ,@y)) ((?- I can't ?y) `(Maybe you could ,@y now) `(What if you could ,@y "?")) ((?- I feel ?y) `(Do you often feel ,@y "?")) ((?- I felt ?y) `(What other feelings do you "have?")) ((?- I ?y you ?z) `(Perhaps in your fantasy we ,@y each other)) ((?- why don't you ?y) `(Should you ,@y "yourself?") `(Do you believe I don't ,@y) `(Perhaps I will ,@y in good time)) ((?- yes ?y) `(You seem quite positive) `(You are sure) `(I understand)) ((?- no ?y) `(Why "not?") `(You are being a bit negative) `(Are you saying "NO" just to be "negative?")) ((?- someone ?y) `(Can you be more "specific?")) ((?- everyone ?y) `(surely not everyone) `(Can you think of anyone in "particular?") `(Who for "example?") `(You are thinking of a special person)) ((?- always ?y) `(Can you think of a specific example) `("When?") `(What incident are you thinking "of?") `(Really-- always)) ((?- what ?y) `(Why do you "ask?") `(Does that question interest "you?") `(What is it you really want to "know?") `(What do you "think?") `(What comes to your mind when you ask "that?")) ((?- perhaps ?y) `(You do not seem quite certain)) ((?- are ?y) `(Did you think they might not be ,@y) `(Possibly they are ,@y)) ((?- bye) `(bye)) ((?-) `(Very interesting) `(I am not sure I understand you fully) `(What does that suggest to "you?") `(Please continue) `(Go on) `(Do you feel strongly about discussing such "things?")) )) ;;; ==============================