Graph-Based Computational Notebook Interface for Execution Tracing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computational notebooks lack an effective interface for summarizing structure and execution order, making it difficult to share, debug, and collaborate on code, especially in data science applications where non-linear execution paths and variable dependencies are common.

Innovation Solution

A graphical interface representing computational notebooks as a network of nodes and links, where nodes represent cells and links indicate execution order, allowing for visual exploration and debugging of relationships and dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If computational notebooks use a linear cell structure for code organization, then the notebook maintains a simple document format, but it cannot effectively represent non-linear execution paths and variable dependencies

Engineering Contradiction:
Improveexecution path representationVSAvoidinterface structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent transforms the traditional linear one-dimensional notebook structure into a two-dimensional graph structure with nodes and edges. Nodes represent code cells, markdown cells, and variables, while edges represent execution order and dependencies. This dimensional transformation enables the representation of non-linear execution paths and complex variable relationships that cannot be captured in a simple linear sequence.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If computational notebooks allow arbitrary execution order for flexibility, then users can experiment with different techniques, but it becomes difficult to trace errors and debug execution

Engineering Contradiction:
Improveexecution flexibilityVSAvoidexecution tracing
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The graph interface provides real-time visual feedback about execution state by highlighting the current execution path, showing which nodes have been executed, which are pending, and which are currently running. This feedback mechanism allows users to easily trace execution flow and identify errors even when execution follows non-linear paths, resolving the difficulty of debugging flexible notebooks.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If computational notebooks combine code, documentation, and output in a single document, then the notebook becomes expressive and flexible, but it lacks clear structure for storytelling and collaboration

Engineering Contradiction:
Improvecontent integrationVSAvoidstructural context
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent segments the integrated notebook content into distinct node types within the graph structure: code cells, markdown cells, variables, and outputs. Each node type is visually distinguished and can be independently analyzed. This segmentation preserves the integrated nature of the notebook while restoring clear structural context through the graph's organized representation of relationships between different content types.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10768904B2System and method for a computational notebook interface
Publication Date: 2020.09.08 FUJIFILM BUSINESS INNOVATION CORP
  • US10768904B2 patent drawing
  • US10768904B2 patent drawing
  • US10768904B2 patent drawing

AI summary

Example implementations described herein are directed to an improved interface for a computational notebook that represents cells of the computational notebook in a graph form involving nodes and links. Through such an improved interface, the execution order of the cells can be immediately understood, as well as the dependencies between different cells of executable code and the variables contained therein.