Spreadsheet Program Synthesizer for Automated Data Retrieval

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Users face inefficiencies in spreadsheet data management due to manual data entry, excessive resource usage, and duplication, especially when changes need to be propagated across multiple cells, and non-programmers struggle with using spreadsheet programming languages to automate data retrieval.

Innovation Solution

The system automatically synthesizes programs in a spreadsheet programming language that match user-provided examples, ranking them based on criteria such as function frequency, complexity, and data type compatibility, to efficiently generate output and conserve system resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If users manually enter data into spreadsheet cells, then data can be populated in cells, but user time and computational resources are excessively consumed

Engineering Contradiction:
Improvedata entry efficiencyVSAvoidtime for manual data entry
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system enables self-service by automatically synthesizing spreadsheet programs without user intervention. The program synthesizer analyzes user examples and autonomously generates optimized programs that retrieve data from sources, eliminating the need for users to manually craft formulas or enter data repeatedly.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary action by pre-synthesizing candidate programs and ranking them before execution. The program synthesizer generates multiple candidate programs, ranks them based on efficiency metrics, and selects the optimal program in advance, so users don't need to spend time on trial-and-error formula creation.

Inventive Principle:
Principle #10Preliminary action

2Extent of automation

If users manually craft programs to retrieve data, then data can be obtained programmatically, but the process takes extended time and increases device resource usage

Engineering Contradiction:
Improveprogrammatic data retrievalVSAvoidtime to craft programs
Core Design Contradiction:
Extent of automationVSLoss of time

Solution Approach 1:

The program synthesizer performs self-service by automatically generating spreadsheet programs without user intervention. Users provide example inputs and outputs, and the system autonomously synthesizes, ranks, and selects optimal programs, eliminating the time users would spend learning and crafting formulas manually.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary synthesis and ranking of candidate programs before user execution. Multiple candidate programs are generated and evaluated in advance based on efficiency criteria, so the optimal program is ready for immediate use without requiring users to spend time on program development.

Inventive Principle:
Principle #10Preliminary action

3Extent of automation

If users write their own programs using spreadsheet functions, then data can be retrieved, but the programs may be inefficient and consume excess processing and memory resources

Engineering Contradiction:
Improvedata retrieval automationVSAvoidcomputational resource usage
Core Design Contradiction:
Extent of automationVSUse of energy by moving object

Solution Approach 1:

The system uses feedback by ranking candidate programs based on efficiency metrics and selecting the optimal program. The program synthesizer evaluates multiple candidate programs against efficiency criteria and user examples, providing feedback that guides selection of the most resource-efficient program for execution.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system applies parameter changes by optimizing program parameters during synthesis. The program synthesizer adjusts program structure, function selection, and data source parameters to generate programs that are both correct and computationally efficient, reducing processing and memory resource usage compared to manually written programs.

Inventive Principle:
Principle #35Parameter changes

4Adaptability or versatility

If multiple functions are combined to form programs, then complex data retrieval can be achieved, but program complexity increases making users unaware of or uncomfortable with using functions

Engineering Contradiction:
Improvedata retrieval capabilityVSAvoiduser comfort with programming
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The program synthesizer performs self-service by automatically combining multiple functions into optimized programs without requiring user understanding of programming concepts. Users simply provide example inputs and outputs, and the system autonomously synthesizes complex multi-function programs, making advanced data retrieval capabilities accessible to non-programmers.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20240361991A1Synthesizing programs in a spreadsheet programming language
Publication Date: 2024.10.31 GOOGLE LLC
  • US20240361991A1 patent drawing
  • US20240361991A1 patent drawing
  • US20240361991A1 patent drawing

AI summary

Techniques are described herein for automatically synthesizing programs that include one or more functions in a spreadsheet programming language. A method includes: receiving a first example including input provided in a first cell in a spreadsheet; automatically synthesizing a plurality of candidate programs including a first set of candidate programs consistent with the first example, wherein each candidate program in the first set of candidate programs comprises at least one function in a spreadsheet programming language and, when the candidate program is executed, the candidate program generates output that matches the first example; ranking the plurality of candidate programs; and storing a highest-ranked program of the plurality of candidate programs in association with the first cell in the spreadsheet.