250 likes | 434 Views
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.
E N D
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); } exponent = 2 PE int pow2 (int base) { return (base * base); }
MII Dialog – Simple Example • U: <calls Joe’s pizza parlor> • S: Thanks for calling Joe’s. • S: What size pizza? • U: Onion • S: Okay, onion • S: What size pizza: • U: Medium • S: What type of crust? • U: Thin • S: So that is a medium onion pizza on thin crust…. Size Topping Crust “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 */ } } “medium” “onions” PE w.r.t. size
Staging DialogUsing Partial Evaluation pizzaorder (crust) { if (unfilled (crust)) { /* prompt for crust */ } } “medium” “onions”
Staging DialogUsing Partial Evaluation pizzaorder (crust) { if (unfilled (crust)) { /* prompt for crust */ } } “medium” “onions” “thin” PE w.r.t. crust
Staging DialogUsing Partial Evaluation pizzaorder () { } “medium” “onions” “thin”
User input Dialog script Dialog Manager Interpreter nothing Stop to process User Input? Slot filling Out-of-turn processing responsive unsolicited Dialog script User input Interpreter nothing Stop to process User Input? Out-of-turn processing Dialog Manager yes Traditional Dialog Manager • Benefits • No distinction between responsive and out-of-turn, use PE for both • Script and Control separate • Staging Transformation • Examine script and play prompt • Collect user input • Apply program transformation
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/