User Interaction Models for Disambiguation in Programming by Example

Programming by Examples (PBE) has the potential to revolutionize end-user programming by enabling end users, most of whom are non-programmers, to create small scripts for automating repetitive tasks. However, examples, though often easy to provide, are an ambiguous specification of the user's intent. Because of that, a key impedance in adoption of PBE systems is the lack of user confidence in the correctness of the program that was synthesized by the system. We present two novel user interaction models that communicate actionable information to the user to help resolve ambiguity in the examples. One of these models allows the user to effectively navigate between the huge set of programs that are consistent with the examples provided by the user. The other model uses active learning to ask directed example-based questions to the user on the test input data over which the user intends to run the synthesized program. Our user studies show that each of these models significantly reduces the number of errors in the performed task without any difference in completion time. Moreover, both models are perceived as useful, and the proactive active-learning based model has a slightly higher preference regarding the users' confidence in the result.

[1]  Tom M. Mitchell,et al.  Generalization as Search , 2002 .

[2]  Robert P. Nix,et al.  Editing by example , 1984 .

[3]  William Buxton,et al.  Creating highly-interactive and graphical user interfaces by demonstration , 1986, SIGGRAPH.

[4]  Allen Cypher,et al.  EAGER: programming repetitive tasks by example , 1991, CHI.

[5]  Brad A. Myers,et al.  Marquise: creating complete user interfaces by demonstration , 1993, CHI '93.

[6]  Henry Lieberman,et al.  Watch what I do: programming by demonstration , 1993 .

[7]  Brad A. Myers Tourmaline: text formatting by demonstration , 1993 .

[8]  Ian H. Witten,et al.  TELS: learning text editing tasks from examples , 1993 .

[9]  Masahito Hirakawa,et al.  Visual AWK: a model for text processing by demonstration , 1995, Proceedings of Symposium on Visual Languages.

[10]  Yuzo Fujishima,et al.  Demonstrational automation of text editing tasks involving multiple focus points and conversions , 1998, IUI '98.

[11]  Brad A. Myers,et al.  Getting more out of programming-by-demonstration , 1999, CHI '99.

[12]  Pedro M. Domingos,et al.  Version Space Algebra and its Application to Programming by Demonstration , 2000, ICML.

[13]  Pedro M. Domingos,et al.  Learning Repetitive Text-Editing Procedures with SMARTedit , 2001, Your Wish is My Command.

[14]  H. Lieberman Your Wish is My Command: Programming By Example , 2001 .

[15]  Rob Miller,et al.  Outlier finding: focusing user attention on possible errors , 2001, UIST '01.

[16]  Rob Miller,et al.  Multiple selections in smart text editing , 2002, IUI '02.

[17]  Rob Miller,et al.  LAPIS: smart editing with text structure , 2002, CHI Extended Abstracts.

[18]  Pedro M. Domingos,et al.  Programming by Demonstration Using Version Space Algebra , 2003, Machine Learning.

[19]  Ian H. Witten,et al.  Applying machine learning to programming by demonstration , 2004, J. Exp. Theor. Artif. Intell..

[20]  Mary Shaw,et al.  Topes , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[21]  Tessa A. Lau,et al.  The Case Studies: Three Systems Why Programming by Demonstration Systems Fail: Lessons Learned for Usable Ai , 2022 .

[22]  Desney S. Tan,et al.  Overview based example selection in end user interactive concept learning , 2009, UIST '09.

[23]  Sumit Gulwani,et al.  Oracle-guided component-based program synthesis , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[24]  Desney S. Tan,et al.  Effective End-User Interaction with Machine Learning , 2011, AAAI.

[25]  Jeffrey Heer,et al.  Wrangler: interactive visual specification of data transformation scripts , 2011, CHI.

[26]  Sumit Gulwani,et al.  Automating string processing in spreadsheets using input-output examples , 2011, POPL '11.

[27]  Saleema Amershi,et al.  Designing for effective end-user interaction with machine learning , 2011, UIST '11 Adjunct.

[28]  Sumit Gulwani,et al.  Spreadsheet data manipulation using examples , 2012, CACM.

[29]  Viktor Kuncak,et al.  Game programming by demonstration , 2013, Onward!.

[30]  Butler W. Lampson,et al.  A Machine Learning Framework for Programming by Example , 2013, ICML.

[31]  Butler W. Lampson,et al.  A colorful approach to text processing by example , 2013, UIST.

[32]  Rajeev Alur,et al.  Syntax-guided synthesis , 2013, FMCAD 2013.

[33]  Surajit Chaudhuri,et al.  Discovering queries based on example tuples , 2014, SIGMOD Conference.

[34]  Sumit Gulwani,et al.  Programming by Example Using Least General Generalizations , 2014, AAAI.

[35]  Sumit Gulwani,et al.  FlashExtract: a framework for data extraction by examples , 2014, PLDI.

[36]  Sumit Gulwani,et al.  NLyze: interactive programming by natural language for spreadsheet data analysis and manipulation , 2014, SIGMOD Conference.

[37]  Xavier Leroy,et al.  A Formally-Verified C Static Analyzer , 2015, POPL.

[38]  Sumit Gulwani,et al.  FlashRelate: extracting relational data from semi-structured spreadsheets using examples , 2015, PLDI.

[39]  Sumit Gulwani,et al.  Inductive programming meets the real world , 2015, Commun. ACM.

[40]  Sorin Lerner,et al.  Interactive parser synthesis by example , 2015, PLDI.

[41]  Sumit Gulwani,et al.  FlashMeta: a framework for inductive program synthesis , 2015, OOPSLA.

[42]  Isil Dillig,et al.  Synthesizing data structure transformations from input-output examples , 2015, PLDI.

[43]  Sumit Gulwani,et al.  Predicting a Correct Program in Programming by Example , 2015, CAV.