TIDY: A PBE-based framework supporting smart transformations for entity consistency in PowerPoint

Abstract Context: Programming by Example (PBE) is increasingly assisting human users by recognizing and executing repetitive tasks, such as text editing and spreadsheet manipulation. Yet, existing work falls short on dealing with rich-formatted documents like PowerPoint (PPT) files, when examples are few and collecting them is intrusive. Objective: This article presents TIDY , a PBE-based framework, to assist automated entity transformations for their layout and style consistency in rich-formatted documents like PowerPoint, in a way adaptive to entity contexts and flexible with user selections. Methods: TIDY achieves this by examining entities’ operation histories, and proposes a two-stage framework to first identify user intentions behind histories and then make wise next-operation recommendations for users, in order to maintain the entity consistency for rich-formatted documents. Results: We implemented TIDY as a prototype tool and integrated it into PowerPoint as a plug-in module. We experimentally evaluated TIDY with real-world user operation data. The evaluation reports that TIDY achieved promising effectiveness with a hit rate of 77.3% on average, which was stably holding for a variety of editing tasks. Besides, TIDY took only marginal time overhead, costing several to several tens of milliseconds, to complete each recommendation. Conclusion: TIDY assists users to complete repetitive tasks in rich-formatted documents by non-intrusive user intention recognition and smart next-operation recommendations, which is effective and practically useful.

[1]  Sumit Gulwani,et al.  Programming by Examples - and its applications in Data Wrangling , 2016, Dependable Software Systems Engineering.

[2]  Miryung Kim,et al.  Lase: Locating and applying systematic edits by learning from examples , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[3]  GulwaniSumit,et al.  FlashRelate: extracting relational data from semi-structured spreadsheets using examples , 2015 .

[4]  Ruven E. Brooks,et al.  "Watch What I Do: Programming by Demonstration, " edited by Allen Cypher (Book Review) , 1993, Int. J. Man Mach. Stud..

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

[6]  Justin Schwartz Engineering , 1929, Nature.

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

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

[9]  Sumit Gulwani,et al.  Learning Semantic String Transformations from Examples , 2012, Proc. VLDB Endow..

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

[11]  LASE: an example-based program transformation tool for locating and applying systematic edits , 2013, ICSE 2013.

[12]  Michelangelo Ceci,et al.  Hierarchical Classification of HTML Documents with WebClassII , 2003, ECIR.

[13]  Sumit Gulwani,et al.  Wrex: A Unified Programming-by-Example Interaction for Synthesizing Readable Code for Data Scientists , 2020, CHI.

[14]  Isil Dillig,et al.  Synthesizing transformations on hierarchically structured data , 2016, PLDI.

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

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

[17]  Sumit Gulwani,et al.  On the fly synthesis of edit suggestions , 2019, Proc. ACM Program. Lang..

[18]  Chenglong Wang,et al.  Synthesizing highly expressive SQL queries from input-output examples , 2017, PLDI.

[19]  Satoshi Sekiguchi,et al.  LANGUAGE DESIGN AND IMPLEMENTATION OF , 1995 .

[20]  Sumit Gulwani,et al.  Learning Syntactic Program Transformations from Examples , 2016, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[21]  Sumit Gulwani,et al.  Programming by Examples: PL Meets ML , 2017, APLAS.

[22]  R. Bhatia Matrix Analysis , 1996 .

[23]  Sumit Gulwani,et al.  A practical framework for constructing structured drawings , 2014, IUI.

[24]  Sai Zhang,et al.  Automatically synthesizing SQL queries from input-output examples , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[25]  Miryung Kim,et al.  LASE: An example-based program transformation tool for locating and applying systematic edits , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[26]  Stephen Tweedie,et al.  Planned Extensions to the Linux Ext2/Ext3 Filesystem , 2002, USENIX Annual Technical Conference, FREENIX Track.

[27]  Abraham Silberschatz,et al.  Learning and verifying quantified boolean queries by example , 2013, PODS '13.

[28]  Sumit Gulwani,et al.  Feedback-driven semi-supervised synthesis of program transformations , 2020, Proc. ACM Program. Lang..

[29]  Julia L. Lawall,et al.  Generic Patch Inference , 2008, ASE.

[30]  Sumit Gulwani,et al.  From program verification to program synthesis , 2010, POPL '10.

[31]  Sumit Gulwani,et al.  Program Synthesis , 2017, Software Systems Safety.

[32]  A Guermazi,et al.  The hook-wire technique for localization of pulmonary nodules during thoracoscopic resection. , 1994, Chest.

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

[34]  Jian Lu,et al.  Synthesizing relation-aware entity transformation by examples , 2018, ICSE.

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

[36]  Alvin Cheung,et al.  Synthesizing highly expressive SQL queries from input-output examples , 2017, PLDI.

[37]  Neil Immerman,et al.  A simple inductive synthesis methodology and its applications , 2010, OOPSLA.

[38]  Shing-Chi Cheung,et al.  Poster: Synthesizing Relation-Aware Entity Transformation by Examples , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[39]  Sumit Gulwani,et al.  Transforming spreadsheet data types using examples , 2016, POPL.

[40]  Sumit Gulwani,et al.  Synthesis of loop-free programs , 2011, PLDI '11.

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

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