The Staging Transformation Approach to Mixing Initiative
description
Transcript of The Staging Transformation Approach to Mixing Initiative
The Staging Transformation Approach to Mixing Initiative
Robert Capra, Michael Narayan, Saverio Perugini,
Naren Ramakrishnan, and Manuel A. Pérez-Quiñones
Department of Computer Science
Virginia Tech
Blacksburg, VA, USA
Staging Transformation
• Use of Program Transformation techniques to handle control of MII– Partial Evaluation– Currying
• Representation of Control– Who can say what when– Traditional: rely on state and anticipation– Staging Transformation
• Traditional: dialog as program scripts• New: scripts capture structure, dialog control through program
transformations• Control as the process of transforming one dialog script into another
Program Transformation
Partial Evaluation example
int pow (int base, int exponent) {
int prod = 1;
for (int i=0; i<exponent; i++) {
prod = prod * base;
}
return (prod);
}
Program Transformation
Partial Evaluation example
int pow (int base, int exponent) {
int prod = 1;
for (int i=0; i<exponent; i++) {
prod = prod * base;
}
return (prod);
}
Program Transformation
Partial Evaluation example
int pow (int base) {
int prod = 1;
for (int i=0; i<exponent; i++) {
prod = prod * base;
}
return (prod);
}
Program Transformation
Partial Evaluation example
int pow (int base) {
int prod = 1;
for (int i=0; i<exponent; i++) {
prod = prod * base;
}
return (prod);
}
Program Transformation
Partial Evaluation example
int pow2 (int base) {
int prod = 1;
for (int i=0; i<exponent; i++) {
prod = prod * base;
}
return (prod);
}
Program Transformation
Partial Evaluation example
int pow2 (int base) {
int prod = 1;
for (int i=0; i<exponent; i++) {
prod = prod * base;
}
return (prod);
}
Program Transformation
Partial Evaluation example
int pow2 (int base) {
return (prod);
}
Program Transformation
Partial Evaluation example
int pow2 (int base) {
return (prod);
}
Program Transformation
Partial Evaluation example
int pow2 (int base) {
return (base * base);
}
Program Transformation
Partial Evaluation example
int pow2 (int base) {
return (base * base);
}
Program Transformation
int pow (int base, int exponent) {
int prod = 1;
for (int i=0; i<exponent; i++) {
prod = prod * base;
}
return (prod);
}
int pow2 (int base) {
return (base * base);
}
PE
exponent = 2
MII Dialog – Simple Example
1. U: <calls Joe’s pizza parlor>2. S: Thanks for calling Joe’s.3. S: What size pizza?4. U: Onion5. S: Okay, onion6. S: What size pizza:7. U: Medium8. S: What type of crust?9. U: Thin10. S: So that is a medium onion pizza on thin crust….
SizeToppingCrust
“Unsolicited reporting”
Staging DialogUsing Partial Evaluation
pizzaorder (size, topping, crust) {
if (unfilled(size)) {
/* prompt for size */
}
if (unfilled(topping)) {
/* prompt for topping */
}
if (unfilled (crust)) {
/* prompt for crust */
}
}
Staging DialogUsing Partial Evaluation
pizzaorder (size, topping, crust) {
if (unfilled(size)) {
/* prompt for size */
}
if (unfilled(topping)) {
/* prompt for topping */
}
if (unfilled (crust)) {
/* prompt for crust */
}
}
“onions”
PE w.r.t. topping
Staging DialogUsing Partial Evaluation
pizzaorder (size, crust) {
if (unfilled(size)) {
/* prompt for size */
}
if (unfilled (crust)) {
/* prompt for crust */
}
}
“onions”
Staging DialogUsing Partial Evaluation
pizzaorder (size, crust) {
if (unfilled(size)) {
/* prompt for size */
}
if (unfilled (crust)) {
/* prompt for crust */
}
}
“onions”
“medium”
PE w.r.t. size
Staging DialogUsing Partial Evaluation
pizzaorder (crust) {
if (unfilled (crust)) {
/* prompt for crust */
}
}
“onions”
“medium”
Staging DialogUsing Partial Evaluation
pizzaorder (crust) {
if (unfilled (crust)) {
/* prompt for crust */
}
}
“onions”
“medium”
“thin”
PE w.r.t. crust
Staging DialogUsing Partial Evaluation
pizzaorder () {
}
“onions”
“medium”
“thin”
Dialog ManagerDialog scriptUser input
Interpreter Stop
UserInput?
Slotfilling
Out-of-turnprocessing
DialogManager
to process
responsive unsolicited
nothing
Dialog scriptUser input
Interpreter Stop
UserInput?
Out-of-turnprocessing
DialogManager
to process
yes
nothing
Traditional
Staging Transformation1. Examine script and play prompt2. Collect user input3. Apply program transformation
Benefits1. No distinction between responsive and
out-of-turn, use PE for both2. Script and Control separate
Application
• Functional stagers (Scheme)– Representation and Rules
PE / s t c
• MII in Web Site Interaction– Out-of-turn inputs for personalization
• VoiceXML Form Interpretation Algorithm– Select, collect, process– For form-level grammars, FIA does PE
• Multimodal MII– SALT’s lack of built-in control for MI
Reasoning about Dialogs
• Our approach supports meta-dialog reasoning– Forward-slicing
• “What options if I select pepperoni?”
– Backward-slicing• “Will this get me to a phone number at the end?”
– Dynamic restructuring of the dialog• User negotiation, “ask in this order”
– User interaction sequences/scenarios• Improve future interactions
Links/References
• Ramakrishnan, N., Capra, R., and Pérez-Quiñones, M. Mixed-Initiative Interaction = Mixed Computation. ACM SIGPLAN 2002 Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'02), Portland, Oregon, USA, January 14-15, 2002.
• VoiceXML Forum. Voice eXtensible Markup Lanugage, version 1.00. March 2000. Accessible at: http://www.voicexml.org/