You can add a new type to Daydreamer by placing a definition such as the following in the dd_rep.cl source code file:
(ty$create 'ART-CRITIC '(PERSON) '(prop (first-name last-name) ()))The general form of a Daydreamer type definition is:
(ty$create 'name '(parent1 parent2 ...) format)where format is:
'([PROP | NIL] (slotname1 slotname2 ...) (optional-slotname1 optional-slotname2 ...))PROP specifies that an instance of the type should be formatted as a proposition such as:
(INTENDS linked-from (SUCCEEDED-GOAL obj (BELIEVE actor AUDIENCE-MEMBER
obj (ACTIVE-GOAL obj (LOVERS actor AUDIENCE-MEMBER COMEDIAN1))))
linked-to (SUCCEEDED-GOAL obj (BELIEVE actor AUDIENCE-MEMBER
obj (POS-ATTITUDE obj COMEDIAN1)))
seq? 'T)
while NIL specifies that an instance of the type should
be formatted as a token such as:
COMEDIAN1
You can add a rule to Daydreamer by placing a definition such as the following in the dd_rep.cl source code file:
(define-rule Lovers-Plan (all)
(RULE subgoal (RSEQ (ACQUAINTED ?Self ?Other)
(ROMANTIC-INTEREST ?Other)
(BELIEVE ?Other (ACTIVE-GOAL (LOVERS ?Self ?Other)))
(M-DATE ?Self ?Other)
(M-AGREE actor ?Self actor ?Other
obj (LOVERS ?Self ?Other)))
goal (LOVERS ?Self ?Other)
is 'plan-only
plausibility 0.95))
The general form of a Daydreamer rule definition is:
(define-rule name (subset1 subset2 ...)
(RULE subgoal subgoal-pattern
goal goal-pattern
plan-no-gen plan-no-gen
delete delete-pattern1 delete-pattern2 ...
emotion emotion1 emotion2 ...
is 'INFERENCE-ONLY | 'PLAN-ONLY | 'ACTION-PLAN | 'GLOBAL-INFERENCE
plausibility number))
The delete, emotion, is,
and plausibility slots are optional.
plan-no-gen is advice to the English generator.
By default, a rule may be employed both as a planning rule and as an inference rule. However, if the is slot of the rule is 'Inference-only, the rule may be employed only as an inference. If the is slot of the rule is 'Plan-only, the rule may be employed only as a plan.
Specifically, if subgoal-pattern is of the form:
(RSEQ obj subgoal-pattern1 subgoal-pattern2 ...)then subgoal-pattern1, subgoal-pattern2, and so on, suitably instantiated, are the subgoals.
Otherwise, subgoal-pattern, suitably instantiated, is the subgoal.
If subgoal-pattern is of the form:
(RAND obj subgoal-pattern1 subgoal-pattern2 ...)or
(RSEQ obj subgoal-pattern1 subgoal-pattern2 ...)then all of subgoal-pattern1, subgoal-pattern2, and so on, must be shown to be true in the given context.
If subgoal-pattern is of the form:
(ROR obj subgoal-pattern1 subgoal-pattern2 ...)then one of subgoal-pattern1, subgoal-pattern2, and so on, must be shown to be true in the given context.
Finally, if subgoal-pattern is of the form:
(RNOT obj subgoal-pattern1)then subgoal-pattern1 must not be shown to be true in the given context.
RAND, ROR, and RNOT are to be distinguished from their counterparts UAND, UOR, and UNOT in GATE. A RAND, for example, is shown to be true if each of its elements matches some, possibly different, fact in the context; a UAND in the same position would require each of its elements to match the same fact in the context.
Here is a sample inference rule employed in Daydreamer:
(define-rule Neg-attitude-inf (all)
(RULE subgoal (RAND obj (RICH actor ?Other)
(AT actor ?Other
obj ?Location)
(AT actor ?Self
obj ?Location)
(MTRANS actor ?Self
from ?Self
to ?Other
obj ?Anything:NOTYPE)
(RNOT obj (WELL-DRESSED actor ?Self)))
goal (BELIEVE actor ?Other
obj (NEG-ATTITUDE obj ?Self))
is 'INFERENCE-ONLY
plausibility 0.9))
(define-rule At-plan (all)
(RULE subgoal (PTRANS actor ?Person
from ?Location1
to ?Location2
obj ?Person)
goal (AT actor ?Person
obj ?Location2)
delete (AT actor ?Person
obj ?Location1)
initial (AT actor ?Person
obj ?Location1)
plausibility 1.0))
This rule specifies that when a person performs a
PTRANS, it is necessary to retract the old location
(AT) of the person and assert the new one.
The above rule may also function in reverse as a planning rule: When an AT goal is present, a PTRANS subgoal may be asserted. Such action subgoals are treated similarly to other subgoals-the preconditions of the action become further subgoals to be achieved.
For example, Daydreamer employs the following rule for PTRANS:
(define-rule Ptrans-plan (all)
(RULE subgoal (KNOW actor ?Person
obj ?Location2)
goal (PTRANS actor ?Person
from ?Location1
to ?Location2
obj ?Free-obj)
is 'ACTION-PLAN
plausibility 1.0))
Once the KNOW subgoal succeeds-that is, once the
person knows the location being PTRANSed to-the
action is performed (asserted as an action into
the appropriate context). Since it is an undesirable
behavior for an action to be performed whenever its
preconditions happen to be satisfied, rules whose goal
is an action are not run as forward inferences.
Some rule must correspond to each possible action goal. If there are no preconditions for a given action goal, the corresponding subgoal should be:
(RTRUE)Only one rule should apply to each action goal and each rule should contain all the necessary preconditions for any action goal to which that rule applies.
(define-rule name (subset1 subset2 ...)
(RULE subgoal activation-condition
goal (ACTIVE-GOAL obj goal-objective)
emotion (POS-EMOTION strength emotion-strength)
...
is 'INFERENCE-ONLY))
When activation-condition is shown in the context,
a new concern is initiated whose top-level goal is specified
by the goal slot. The emotion
slot specifies motivating emotions to be instantiated
and associated with the new concern.
Here is a sample rule employed in Daydreamer for initiating an EMPLOYMENT personal goal concern:
(define-rule Employment-theme (all)
(RULE subgoal (RNOT obj (EMPLOYMENT actor ?Self))
goal (ACTIVE-GOAL obj (EMPLOYMENT actor ?Self ?Other
organization ?Organization))
emotion (POS-EMOTION strength 0.85)
is 'INFERENCE-ONLY
plausibility 1.0))
Here is a sample rule employed in Daydreamer for initiating a
RATIONALIZATION daydreaming goal concern:
(define-rule Rationalization-theme (all)
(RULE subgoal (DEPENDENCY linked-from ?Failed-goal
linked-to (UAND obj ?Neg-emotion
(UPROC proc tt'>THRESH?)))
goal (ACTIVE-GOAL obj (RATIONALIZATION obj ?Failed-goal))
emotion ?Neg-emotion
(NEG-EMOTION strength 0.05)
is 'INFERENCE-ONLY
plausibility 1.0))
You can add new generation templates to Daydreamer by placing definitions such as the following in the dd_gen.cl source code file:
(define-gen RICH nil (gen-regular con stream switches context bp 'be " rich")) (define-gen M-LOGIN nil (gen-regular-plus con stream switches context bp 'log " into" (ob$get con 'obj)))The generation functions are:
(gen concept stream switches context belief-path) (gen-regular concept stream switches context belief-path verb str) (gen-regular-plus concept stream switches context belief-path verb str plus)
You can add new initial facts to Daydreamer by placing definitions such as the following in the dd_rep.cl source code file:
; An alumni book from my college is in my mailbox.
(define-initial-fact (all always)
(AT (MAIL contents (ALUMNI-DIR obj UCLA obname Alumni-Dir1) obname Mail1)
(LOCATION name "outside" obname Outside)))
The general form of a Daydreamer initial fact definition is:
(define-initial-fact (subset1 subset2 ...) fact)
You can add new input phrases to Daydreamer by placing definitions such as the following in the dd_rep.cl source code file:
(define-phrase "robert redford is at ucla shooting a film."
(AT Movie-Star2 (LOCATION name "UCLA" obname UCLA-Location)))
(define-phrase "Sylvester calls you on the phone and asks you out."
(M-PHONE Sylvester Me)
(MTRANS Sylvester Sylvester Me
(BELIEVE Sylvester (ACTIVE-GOAL (LOVERS Sylvester Me)))))
You can add an episode to Daydreamer by placing a definition such as the following in the dd_rep.cl source code file:
(define-episode (all) nil nil nil
((KNOW Me (TELNO (MALE-PERSON first-name "Rich" obname Rich1)))
Know-Plan2 take-from-rule
((MTRANS (MALE-PERSON first-name "Alex" obname Alex)
(INFO-OBJ name "the TRW credit database"
obname Trw-Credit-File)
Me (TELNO Rich1))
induce-rule (t nil)
((KNOW Trw-Credit-File (TELNO Rich1)))
((ACCESS Alex Trw-Credit-File)
induce-rule nil
((M-LOGIN Alex Trw-Credit-File))))))
The general form of a Daydreamer episode definition is:
(define-episode (subset1 subset2 ...) indices plan-thresh reminding-thresh subgoal)where subgoal is:
(subgoal rulename plan-no-gen subgoal subgoal ...)
Mueller, Erik T. (1987). GATE user's manual (2nd edition, Technical Report UCLA-AI-87-6). Artificial Intelligence Laboratory, Computer Science Department, University of California, Los Angeles. [revised text]
Mueller, Erik T. (1990). Daydreaming in humans and machines. Norwood, NJ: Ablex. [abstract]