Program Generation Using Inferred Transformation Rules
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for generating computer programs to automate data manipulation tasks, such as text processing, are cumbersome and time-consuming, especially when dealing with complex and large datasets, as they often rely on manual assumptions or hand-crafted probabilities, limiting the range of tasks that can be performed.
Innovation Solution
A method and system that break down tasks into individual steps, using user-provided input-output examples to determine transformation rules based on cues within the data, ranking these rules by probability, and combining them to generate a program that can automate repetitive tasks efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If manual methods are used to write computer programs for data manipulation tasks, then the program can be customized to perform specific tasks, but the process is difficult and time-consuming
Solution Approach 1:
The system enables self-service program generation by automatically inferring transformation rules from input-output examples provided by the user. The program generation module creates the complete program without requiring manual coding, allowing users to obtain customized programs through simple example provision rather than lengthy development processes
Solution Approach 2:
The system performs preliminary action by pre-defining a library of transformation rules that can be automatically selected and combined. Instead of creating programs from scratch during runtime, the system has transformation rules prepared in advance that can be quickly inferred and assembled based on the provided examples, significantly reducing program creation time
2Adaptability or versatility
If hand-crafted probabilities are used in existing program generation methods, then the system can generate programs for simple tasks, but the range of performable tasks is limited
Solution Approach 1:
The system changes the parameter of probability determination from fixed hand-crafted values to dynamically inferred probabilities based on data cues. By analyzing characteristics of the input-output examples and transforming these observations into probability values, the system adapts to a wider variety of tasks without requiring manual adjustment of complex parameters for each task type
Solution Approach 2:
The system achieves universality by creating a single program generation module that can handle multiple different task types through the same underlying mechanism. The transformation rule inference process works across diverse data manipulation tasks by learning from examples, eliminating the need for task-specific complex configurations and expanding the range of performable tasks
3Productivity
If transformation rules are determined based on cues in input-output examples, then the program generation is quick and automated, but accuracy may be compromised without manual verification
Solution Approach 1:
The system implements feedback by using the input-output examples as verification data to validate the inferred transformation rules. The program generation module generates candidate rules based on cues, then tests these rules against the provided examples to ensure they produce correct transformations. This feedback loop maintains accuracy while keeping the process automated and fast
Solution Approach 2:
The system applies partial action by determining transformation rules for only the essential aspects of the data manipulation task based on the provided examples. Rather than manually verifying every detail, the system infers rules that cover the critical transformation patterns demonstrated in the examples, achieving sufficient accuracy for automation while maintaining quick generation speeds
Data Source
AI summary
There is provided a method and system for generating a program. The method includes detecting a number of steps for performing a task on a computing device and detecting an example relating to each of the steps, wherein the example includes input data and corresponding output data relating to the step. The method also includes, for each example, determining a rule that transforms the input data to the corresponding output data based on cues including textual features within the input data and the corresponding output data. The method further includes generating a program for performing the task based on the rules.


