Program Generation Using Inferred Transformation Rules

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveease of program creationVSAvoidtime to write program
Core Design Contradiction:
Ease of operationVSLoss of time

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

Inventive Principle:
Principle #25Self-service

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

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improverange of tasksVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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

Inventive Principle:
Principle #35Parameter changes

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

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improveprogram generation speedVSAvoidrule determination accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

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

Inventive Principle:
Principle #23Feedback

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

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9940106B2Generating programs using context-free compositions and probability of determined transformation rules
Publication Date: 2018.04.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9940106B2 patent drawing
  • US9940106B2 patent drawing
  • US9940106B2 patent drawing

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.