Spreadsheet Table Transformations from Examples William HarrisSumit Gulwani.

Slides:



Advertisements
Similar presentations
Functional Programming Lecture 10 - type checking.
Advertisements

מבוא מורחב למדעי המחשב בשפת Scheme תרגול 5. 2 List Utilities Scheme built-in procedures –(list x y z...) –(list-ref lst index) –(length lst) –(append.
Little Used, but Powerful Features with GP Cathy Fregelette, CPA, PMP Practice Manager BroadPoint Technologies September 20, 2012.
WARM UP  Using the following table and y = mx + b;  1) What is the y?  2) What is the b? xy
A spreadsheet is like a big table. It contains rows and columns which work together. Left-click to go to the next slide.
Introduction to Spreadsheets. Learning Target I can input data and do simple calculations in a spreadsheet.
UNLOCKING THE SECRETS HIDDEN IN YOUR DATA Part 3 Data Analysis.
Discrete Math for Computer Science. Mathematical Model Real-world Problem Computerized Solution Abstract Model Transformed Model picture of the real worldpicture.
Templates and Styles Excel Advanced. Templates are pre- designed and formatted spreadsheets –They provide consistency of layout/structure –They.
FlashExtract : A General Framework for Data Extraction by Examples
Learning Semantic String Transformations from Examples Rishabh Singh and Sumit Gulwani.
1 Introduction to Computability Theory Lecture12: Reductions Prof. Amos Israeli.
Program Design and Development
Data auditing finding errors when data have been entered already …. Wim Buysse – ICRAF-ILRI Research Methods Group August 2004 Research Methods Group.
Introduction to Simulation. What is simulation? A simulation is the imitation of the operation of a real-world system over time. It involves the generation.
1 Module 25 Decision problems about regular languages –Basic problems are solvable halting, accepting, and emptiness problems –Solvability of other problems.
A High-Level Model For Software Development
T T20-00 Range Chart Control Limit Calculations Purpose Allows the analyst to calculate the "Range Chart" 3- sigma control limits based on table.
Programming by Example using Least General Generalizations Mohammad Raza, Sumit Gulwani & Natasa Milic-Frayling Microsoft Research.
Software Apps. Word, PowerPoint, Excel, Access Mr. Miller.
The Project – Spreadsheet Design. The following is the high mark band for the spreadsheet design: The candidate has Analysed a given data set and designed.
Funded by: European Commission – 6th Framework Project Reference: IST WP 2: Learning Web-service Domain Ontologies Miha Grčar Jožef Stefan.
Programming by Examples Marktoberdorf Lectures August 2015 Sumit Gulwani.
Automatically Synthesizing SQL Queries from Input-Output Examples Sai Zhang University of Washington Joint work with: Yuyin Sun.
Year 9 Business & Enterprise Competition. Lesson Aims: Collate and process data from your questionnaire Present information in a suitable format Draw.
Definitions. Cell: Cell: Space in the intersection of a column (vertical division) and a row (horizontal division). Row: Row: A row runs horizontally.
Dimensions in Synthesis Part 3: Ambiguity (Synthesis from Examples & Keywords) Sumit Gulwani Microsoft Research, Redmond May 2012.
Supporting High- Performance Data Processing on Flat-Files Xuan Zhang Gagan Agrawal Ohio State University.
ENCLOUT Bring API to People. API Ecosystem Gap  Business Analysts  Good with spreadsheets  Limiting scripting or SQL skills  API Developers  Knowledge.
February 18, 2015CS21 Lecture 181 CS21 Decidability and Tractability Lecture 18 February 18, 2015.
B. Fernández, D. Darvas, E. Blanco Formal methods appliedto PLC code verification Automation seminar CERN – IFAC (CEA) 02/06/2014.
Chapter 25 Formal Methods Formal methods Specify program using math Develop program using math Prove program matches specification using.
Office Management Tools II Ms Saima Gul. Office Management Tools II Ms Saima Gul.
1. Outline Introduction Related work on packet classification Grouper Performance Analysis Empirical Evaluation Conclusions 2/42.
Semantic Web Programming in Python an Introduction Biju B Jaganath G.
Microsoft ® Office Excel 2003 Training Using XML in Excel SynAppSys Educational Services presents:
A Practical Framework for Constructing Structured Drawings Salman Cheema Sarah BuchananSumit Gulwani Joseph J. LaViola Jr. References [ 1] Cheema, S.,
Spreadsheet Techniques 1. Advantages Of The Spreadsheet Easy to follow layout ( Rows and Columns) Hide and Filter tools readily available Changes can.
BOĞAZİÇİ UNIVERSITY DEPARTMENT OF MANAGEMENT INFORMATION SYSTEMS MATLAB AS A DATA MINING ENVIRONMENT.
Automating String Processing in Spreadsheets using Input-Output Examples Sumit Gulwani Microsoft Research, Redmond.
Compositional Program Synthesis from Natural Language and Examples Mohammad Raza, Sumit Gulwani & Natasa Milic-Frayling Microsoft.
 Structure charts (last lesson)  Screen and page layout diagrams provide  A sketch of each page (screen) of the program  A list of the content, including.
Automated Formal Verification of PLC (Programmable Logic Controller) Programs
Outline ● Introduction – What is the problem ● Generate stochastic textures ● Improve realism ● High level approach - Don't just jump into details – Why.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
Evaluating Translation Memory Software Francie Gow MA Translation, University of Ottawa Translator, Translation Bureau, Government of Canada
Example 3.1a Sensitivity Analysis and Solver Table Add-in.
Essential Skills Wales ICT Level 3. ESW ICT Level 3 - Essentials Builds on lower levels Efficient and independent use of software Final outcomes *level.
Table Lens Paper – The Table Lens: Merging Graphical and Symbolic Representations in an Interactive Focus + Context Visualization for Tabular Information.
Sumit Gulwani Spreadsheet Programming using Examples Keynote at SEMS July 2016.
Sumit Gulwani Programming by Examples Applications, Algorithms & Ambiguity Resolution Keynote at IJCAR June 2016.
Multi-Axis Tabular Loads in ANSYS Workbench
Information Systems and Databases
Social networking tools (powerpoint extract)
WEBSITE DESIGN TOOLS.
Sit-In Lab 1 Ob-CHESS-ion
Digital Filter Design Tools
Affiliation of presenter
Lecture 12: Data Wrangling
Pseudocode algorithms using sequence, selection and repetition
PowerPoint Create charts and tables
Chapter 11 Review.
2-Dimensional Pattern Matching
Smart Integration Express
Templates of slides for P4 Experiments with your synthesizer
Class 4: Repetition Pretest Posttest Counting Flowchart these!
Tic Tac Toe application
Social Practice of the language: Describe and share information
presented by Thomas L. Packer
OCAPI versus SYSTEMC a case study comparing two class libraries for object oriented hardware design Made by Benny Thörnberg Mid Sweden University
Presentation transcript:

Spreadsheet Table Transformations from Examples William HarrisSumit Gulwani

General Problem End-users have large-scale, repetitive tasks, and don’t have the right tools to do them automatically. Transform strings [POPL ‘11] Transform layout of tables

A Running Example: “Quals” 3 Example input table Example output table

4

Expressiveness Ease of Use Solution Space GUI tools programs from examples traditional programming

A Running Example: “Quals” 6 Input table Output table

Demo on Quals 7

Methodology 1.Study a large corpus of practical transformations 2.Identify common patterns in transformations 3.Design a language: (a)expressive enough for most transformations (b)amenable to inference

Outline 1.Give a language of transformations 2.Give an inference algorithm for the language 3.Demonstrate inference algorithm 4.Usage and Experiments

Layout Program = 10 (Filter Programs, Associative Programs)

Transformation Step 1: Filtering 1.Filter cells from input table to output column

12 Filtering Cells to Quals Column not in row 1 not in column 1 not empty

Filter Program: Quals Column 3 while (in_cell = get_next_row_major_cell()) { if (row(in_cell) != 1 && col(in_cell) != 1 && text(in_cell) != “”) { map_next_row(in_cell, ); } } 13 if (guard(in_cell)) { OutColumn Filter Programs: General Form Col3

Transformation Step 2: Association 1.Filter cells from input table to output column 2.Map spatially associated output cells from spatially associated input cells

Associative Program for Col 1 Col. 3 Col. 1 Lookup input Carl Carl

Associative Program: Quals Column 1 outNbor := ( ); pre := preImage(, outNbor); inCell := (pre); map(inCell, X); Associative Programs: General Form col3Filterfilter EqRowCol3AssocFuncOut EqRowCol1AssocFuncIn X

Outline 1.A language of transformations 2.An inference algorithm for the language 3.Demonstration of inference algorithm 4.Usage and Experiments

Inferring Layout Programs Inferring Filter Programs Inferring Associative Programs

while (in_cell = get_next_row_major_cell()) { if (guard(in_cell)){ map_next_row(in_cell, OutColumn); } 19 Filter Programs: General Form

Filter Predicates Cell Features row column text Constants 1, …, COL_MAX “” Predicates FEATURE(cell) = CONST FEATURE(cell) != CONST

21 Filtering Cells to Quals Column cell.row != COL_1 && cell.col != ROW_1 && cell.text != “”

Inference Algorithm Inferring Filter Programs Inferring Associative Programs

outNbor := AssocFuncOut(X); pre := preImage(filter, outNbor); inCell := AssocFuncIn(pre); map(inCell, X); Associative Programs: General Form

Associative Functions RowEqCol1 RowEqCol2 … RowEqColN Row1ColEq

Inferring an Associative Program for Col 1 Col. 3 Col. 1 Lookup input Carl Carl Col. 2

Outline 1.A language of transformations 2.An inference algorithm for the language 3.Demonstration of inference algorithm 4.Usage and Experiments

Experiments Examples from 50+ real-world help threads 1.From example, inferred program 2.Checked program against informal description 3.If program was good: done else: extend example, repeat

Conclusion Motivated the problem of inferring table- layout transformations Sketched a language that describes practical transformations over table layouts Sketched an algorithm that infers programs in the language

Layout Program = (Filter Programs, Associative Programs) 31 Questions?

Extra Slides

Spreadsheet Table Transformations from Examples William HarrisSumit Gulwani

Our Approach PP Input Output 34