The Staging Transformation Approach to Mixing Initiative

Post on 13-Jan-2016

36 views 0 download

description

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. - PowerPoint PPT Presentation

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/