Implementing speech-act theory in a STRIPS-style planner;
two over-simplified examples
Request (sp, hr, act)
Preconditions:
Believe (sp, Cando (hr, act))
Want (sp, Request (sp, hr, act))
Channel (sp, hr)
Effect:
Believe (hr, Want (sp, act))
Inform (sp, hr, prop)
Preconditions:
Believe (sp, prop)
Want (sp, Inform (sp, hr, prop)
Channel (sp, hr)
Effect:
Believe (hr, Believe (sp, prop))
In order to use these operators in planning, we need two additional
operators, which could be assumed to hold in a cooperative, trusting
sort of world.
Cause-to-want (agt1, agt2, act)
Preconditions:
Believe (agt2, Want (agt1, act))
Believe (agt2, Cando (agt2, act))
Effect:
Want (agt2, act)
Convince (agt1, agt2, prop)
Precondition:
Believe (agt2, Believe (agt1, prop))
Effect:
Believe (agt2, prop)
Example of planning a simple speech act
Initial state:
Inside (Frank, Room3)
Believe (Frank, Cando (Frank, Go-Out (Frank, Room3)))
Believe (Self, Cando (Frank, Go-Out (Frank, Room3)))
Channel (Self, Frank)
Final state:
Outside (Frank, Room3)
Selecting Go-Out operator, with bindings
agt = Frank, src = Room3
Satisfies
Outside (Frank, Room3)
Has preconditions
Inside (Frank, Room3) [satisfied]
Want (Frank, Go-Out (Frank, Room3))
Selecting Cause-to-Want operator, with bindings
agt1 = Self, agt2 = Frank,
act = Go-Out (Frank, Room3)
Satisfies
Want (Frank, Go-Out (Frank, Room 3))
Has preconditions
Believe (Frank, Want (Self, Go-Out (Frank, Room3)))
Believe (Frank, Cando (Frank, Go-Out (Frank, Room3)))
[satisfied]
Selecting Request operator, with bindings
sp = Self, hr = Frank,
act = Go-Out (Frank, Room3)
Satisfies
Believe (Frank, Want (Self, Go-Out (Frank, Room3)))
Has preconditions
Believe (Self, Cando (Frank, Go-Out (Frank, Room3)))
[satisfied]
Channel (Self, Frank) [satisfied]
Want (Self, Request (Self, Frank, Go-Out (Frank, Room3)))
Assuming the speaker (Self) has control over her own wants,
she can simply create the new goal
Want (Self, Request (Self, Frank, Go-Out (Frank, Room3))),
thus satisfying all of the preconditions