Computational Graph Editor With Declarative-to-Imperative Transformation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems require users with technical expertise to specify low-level implementation details for dataflow graphs, making it difficult for users with minimal background to create and modify computational graphs efficiently.
Innovation Solution
A graphical user interface with a canvas and dataset catalog allows users to create and modify dataflow graphs using transformation and dataset icons, with automatic layout and optimization capabilities to transform the graph into a compiled form by adding imperative operations and removing redundancies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If users specify low-level implementation details for dataflow graphs, then the system can execute computations accurately, but it becomes difficult for users with minimal technical background to create and modify graphs efficiently
Solution Approach 1:
The patent introduces an intermediary system that automatically translates high-level graphical specifications into low-level implementation details. The system includes a graph editor that accepts user-friendly graph definitions and an automatic code generation component that produces the necessary low-level code, thereby mediating between user capability and system requirements without forcing users to learn complex implementation details
Solution Approach 2:
The system enables self-service by automatically generating low-level implementation code from high-level graph specifications. The code generation component autonomously translates user-created graphs into executable code without requiring user intervention or technical expertise in low-level details, allowing users to focus solely on designing the computational logic
2Productivity
If the system automatically optimizes dataflow graphs by adding imperative operations and removing redundancies, then computational efficiency improves, but the complexity of the transformation process increases
Solution Approach 1:
The system performs preliminary optimization actions by automatically analyzing the high-level graph specification and pre-computing optimal execution plans before code generation. The transformation component identifies redundant operations and applies optimization rules in advance, so that the generated low-level code is already optimized without requiring complex runtime transformations
Solution Approach 2:
The patent extracts optimization logic into a separate transformation component that independently processes the graph specification. This component removes redundant operations and adds necessary imperative operations as distinct transformation steps, separating the optimization function from both the graph editing and code generation processes to manage complexity
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
Techniques for generating a dataflow graph include generating a first dataflow graph with a plurality of first nodes representing first computer operations in processing data, with at least one of the first computer operations being a declarative operation that specifies one or more characteristics of one or more results of processing of data, and transforming the first dataflow graph into a second dataflow graph for processing data in accordance with the first computer operations, the second dataflow graph including a plurality of second nodes representing second computer operations, with at least one of the second nodes representing one or more imperative operations that implement the logic specified by the declarative operation, where the one or more imperative operations are unrepresented by the first nodes in the first dataflow graph.