Programming by Example Hints for Data Transformation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Programming by example (PBE) systems require a large set of user examples to identify desired data transformations, which can be inefficient and cumbersome, especially with heterogeneous data, as they struggle to determine specific transformation conditions from ambiguous user inputs.

Innovation Solution

The introduction of a hints feature that allows users to provide additional information or conditions alongside their transformation examples, enabling the PBE system to identify the intended transformation conditions more accurately and reducing the need for numerous examples, such as indicating specific characters or conditions like 'starts with' or 'contains', thereby streamlining the transformation process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a PBE system relies solely on user-provided transformation examples without hints, then the system can operate with simpler input requirements, but it requires a large set of examples to accurately identify transformation conditions, reducing efficiency

Engineering Contradiction:
Improveinput simplicityVSAvoidtransformation identification efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces hints as an intermediary element between user examples and transformation condition identification. These hints act as mediating information that bridges the gap between simple user input and accurate transformation rule detection, allowing the system to converge on the correct transformation with fewer examples

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the PBE system processes heterogeneous data without hints, then the system maintains uniform processing logic, but it struggles to determine specific transformation conditions from ambiguous user inputs, requiring more examples

Engineering Contradiction:
Improvedata type handlingVSAvoidtransformation condition identification accuracy
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

The patent applies local quality by allowing hints to provide specific, localized information about transformation conditions for particular data elements. Instead of requiring the entire system to handle all heterogeneity uniformly, hints provide targeted information about specific characters, positions, or patterns that are relevant to each transformation case

Inventive Principle:
Principle #3Local quality

3Reliability

If users provide numerous transformation examples without hints, then the PBE system can gather more data for analysis, but the number of human-machine interactions increases, reducing overall efficiency

Engineering Contradiction:
Improvetransformation accuracyVSAvoiduser interaction time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having users provide hints in advance alongside their transformation examples. This preliminary information about transformation conditions allows the system to process fewer examples to achieve the same level of accuracy, reducing the time users spend interacting with the system

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11841889B1Generating visually simplified calculation expressions corresponding to user manipulation of textual data elements
Publication Date: 2023.12.12 TABLEAU SOFTWARE INC
  • US11841889B1 patent drawing
  • US11841889B1 patent drawing
  • US11841889B1 patent drawing

AI summary

A user interface displays: a first column comprising non-editable input strings retrieved from a data field; a second column comprising editable output strings initialized from the data field; and an expression window displaying a transformation function ƒ. The computer iteratively processes user inputs, each user input i providing a sample row transformation to edit an ith output string ti. Some user inputs i designate a contiguous substring ssi of the corresponding input string si. The contiguous substring expresses a causal basis for transforming the input string si. into the output string ti. The computer updates the transformation function ƒ according to the provided sample row transformations so that: ƒ(s1)=t1, . . . , ƒ(si)=ti; the transformation function ƒ specifies text or string position of at least one contiguous substring; and ƒ has minimal branching among possible transformation functions that satisfy the samples. The computer displays the updated transformation function ƒ in the expression window.