Recalculation Dependency Graph for Spreadsheet Transformation Chains

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing recalculation user interfaces in systems like spreadsheets face inefficiencies in handling declarative transformations, as they require manual recalculation upon user edits, lacking an effective mechanism to analyze dependencies and optimize execution steps.

Innovation Solution

A compilation process that analyzes transformation chains for dependencies, creating a dependency graph to generate lower-level execution steps, allowing for efficient recalculation and optimization of declarative transformations within the user interface.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual recalculation is used upon user edits, then simplicity of implementation is maintained, but recalculation efficiency deteriorates

Engineering Contradiction:
Improverecalculation efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary analysis of the transformation chain to build a dependency graph before recalculation is needed. This pre-computed dependency information enables efficient identification of affected cells during recalculation, avoiding the need for full-document recalculation and improving recalculation efficiency without adding significant runtime complexity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The transformation chain is segmented into discrete transformation steps with identified dependencies between them. By breaking down the recalculation process into individual transformation units and their dependencies, the system can selectively recalculate only necessary segments rather than the entire document, improving efficiency while maintaining manageable system complexity

Inventive Principle:
Principle #1Segmentation

2Reliability

If all transformations are recalculated upon user edits, then completeness of recalculation is ensured, but time consumption increases

Engineering Contradiction:
Improverecalculation completenessVSAvoidrecalculation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The dependency graph provides feedback mechanisms that track which transformations depend on which data sources. When a user edit occurs, the system uses this feedback to trace dependencies and identify exactly which transformations need recalculation, ensuring completeness while minimizing time consumption by avoiding unnecessary recalculation of independent transformations

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary analysis to build the dependency graph structure before recalculation is triggered. This pre-computed dependency information enables rapid identification of affected transformations during user edits, ensuring that all necessary transformations are recalculated completely while minimizing the time required by avoiding full-document recalculation

Inventive Principle:
Principle #10Preliminary action

3Productivity

If dependency analysis is performed to optimize execution, then recalculation efficiency improves, but processing overhead increases

Engineering Contradiction:
Improverecalculation speedVSAvoidprocessing overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The dependency analysis and graph construction is performed as a preliminary action during document loading or transformation chain setup, not during each recalculation event. This pre-computed dependency information is stored and reused during recalculation, improving recalculation speed while minimizing processing overhead during actual recalculation operations

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The transformation chain is segmented into discrete units with explicit dependency relationships. This segmentation allows the dependency analysis to focus on identifying relationships between specific transformation units rather than analyzing the entire transformation chain each time, reducing processing overhead while maintaining recalculation efficiency

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9645801B2Compilation of transformation in recalculation user interface
Publication Date: 2017.05.09 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9645801B2 patent drawing
  • US9645801B2 patent drawing
  • US9645801B2 patent drawing

AI summary

The compilation of a transformation chain of a recalculation user interface that displays an electronic canvas that contains one or more displayed result of a transformation chain. The transformation chain includes transforms between a respective data source and data sink. User editing of the recalculation user interface could cause one or more of the transforms to be re-executed, thereby causing recalculation. The compilation involves analyzing the transformation chain of the recalculation user interface for dependencies to create a dependency graph of dependencies between entities. For instance, some dependencies might be between entities so as to indicate that if one entity is evaluated, then the other should be also. The dependency graph is then used to create a lower level of execution steps. The dependency graph is further provided to a runtime for the program, so that the dependency graph may be available during operation of the recalculation user interface.