Upload
parley
View
33
Download
0
Embed Size (px)
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
Citation preview
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/