# US 10,768,904 B2 · System and method for a computational notebook interface

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,768,904 B2
- Document ID: US10768904B2
- Status: Granted
- Kind: B2
- Application number: 16/172,357
- Filed: 2018-10-26
- Published: 2020-04-30
- Granted: 2020-09-08
- Earliest claimed: 2018-10-26
- Assignees: Fuji Xerox Co., Ltd.
- Applicants: Fuji Xerox Co., Ltd.
- Inventors: John Edward Wenskovitch, Jr.; Jian Zhao; Matthew L. Cooper; Scott Carter
- Web page: https://patentgrep.com/patent/US10768904B2

## CPC

- G06F 8/33: Intelligent editors
- G06F 8/34: Graphical or visual programming
- G06F 3/0484: for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F 3/04847: Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
- G06F 8/313: {Logic programming, e.g. PROLOG programming language}
- G06F 8/38: for implementing user interfaces
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F 16/904: Browsing; Visualisation therefor (for navigating the web G06F16/954; browsing optimisation for the web G06F16/957)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

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.

## Claims

### Claim 1

A method, comprising:
receiving a computational notebook comprising a plurality of cells, each of the plurality of cells comprising executable code and markdown;
building a first interface of the computational notebook, the first interface comprising the plurality of cells;
extracting properties from the executable code and markdown of each of the plurality of cells;
building a second interface using the extracted properties, the second interface representing the computational notebook in a graph form comprising a plurality of nodes and a plurality of links linking the nodes, the nodes comprising representations of the plurality of cells;
generating a user interface projected on a display, the user interface comprising a first visualization of the first interface adjacent to a second visualization of the second interface; and
generating a visual path through the nodes and links on the second interface based on executing of the plurality of cells in the computational notebook, the visual path indicative of an order of the execution of the plurality of cells.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
upon a highlighting of one of the plurality of nodes comprising the executable code, extracting the code from one of the plurality of cells corresponding to the one of the plurality of nodes;
displaying the extracted code corresponding to the one of the plurality of nodes on the display; and
modifying the one of the plurality of cells in the first interface according to modifications made to the displayed extracted code.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
providing, on one or more of corresponding nodes of the second interface and in a background of the interface, an indication of variables utilized in each cell of the plurality of cells.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
upon a highlighting of one of the plurality of nodes, determining a representation of a chart associated with one of the plurality of cells corresponding to the one of the plurality of nodes; and
displaying the determined chart corresponding to the one of the plurality of nodes.

### Claim 5 (depends on 1)

The method of claim 1, wherein the graph is a force-directed graph, wherein the plurality of nodes are arranged according to similarity of variables used in corresponding cells such that a length of each of the plurality of links is representative of the similarity.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
providing on the second interface, a time slider configured to provide one or more historical execution snapshots of the computational notebook; and
displaying the graph form of the computational notebook according to a corresponding one of the one or more historical execution snapshots.

### Claim 7

A non-transitory computer readable medium, storing instructions for executing a process, the instructions comprising:
for a first interface of a computational notebook comprising a plurality of cells, each of the plurality of cells comprising executable code and markdown,
extracting properties from the executable code and markdown of each of the plurality of cells; and
building a second interface using the extracted properties, the second interface representing the computational notebook in a graph form comprising a plurality of nodes and a plurality of links linking the nodes, the nodes comprising representations of the plurality of cells;
generating a user interface projected on a display, the user interface comprising a first visualization of the first interface adjacent to a second visualization of the second interface; and
for execution of the plurality of cells in the computational notebook, generating a visual path through the nodes and links on the second interface indicative of an order of the execution of the plurality of cells.

### Claim 8 (depends on 7)

The non-transitory computer readable medium of claim 7, the instructions further comprising:
upon a highlighting of one of the plurality of nodes comprising the executable code, extracting the code from one of the plurality of cells corresponding to the one of the plurality of nodes;
displaying the extracted code corresponding to the one of the plurality of nodes on the display; and
modifying the one of the plurality of cells in the first interface according to modifications made to the displayed extracted code.

### Claim 9 (depends on 7)

The non-transitory computer readable medium of claim 7, the instructions further comprising:
providing, on one or more of corresponding nodes of the second interface and in a background of the interface, an indication of variables utilized in each cell of the plurality of cells.

### Claim 10 (depends on 7)

The non-transitory computer readable medium of claim 7, the instructions further comprising:
upon a highlighting of one of the plurality of nodes, determining a representation of a chart associated with one of the plurality of cells corresponding to the one of the plurality of nodes; and
displaying the determined chart corresponding to the one of the plurality of nodes.

### Claim 11 (depends on 7)

The non-transitory computer readable medium of claim 7, wherein the graph is a force-directed graph, wherein the plurality of nodes are arranged according to similarity of variables used in corresponding cells such that a length of each of the plurality of links is representative of the similarity.

### Claim 12 (depends on 7)

The non-transitory computer readable medium of claim 7, the instructions further comprising:
providing on the second interface, a time slider configured to provide one or more historical execution snapshots of the computational notebook; and
displaying the graph form of the computational notebook according to a corresponding one of the one or more historical execution snapshots.

### Claim 13

An apparatus, comprising:
a processor, configured to:
for a first interface of a computational notebook comprising a plurality of cells, each of the plurality of cells comprising of executable code and markdown,
extract properties from the executable code and markdown of each of the plurality of cells, and
build a second interface using the extracted properties, the second interface representing the computational notebook in a graph form comprising a plurality of nodes and a plurality of links linking the nodes, the nodes comprising representations of the plurality of cells;
generate a user interface projected on a display, the user interface comprising a first visualization of the first interface adjacent to a second visualization of the second interface; and
for execution of the plurality of cells in the computational notebook, generate a visual path through the nodes and links on the second interface indicative of an order of the execution of the plurality of cells.

### Claim 14 (depends on 13)

The apparatus of claim 13, the processor further configured to:
upon a highlighting of one of the plurality of nodes comprising the executable code, extract the code from one of the plurality of cells corresponding to the one of the plurality of nodes;
display the extracted code corresponding to the one of the plurality of nodes on the display; and
modify the one of the plurality of cells in the first interface according to modifications made to the displayed extracted code.

### Claim 15 (depends on 13)

The apparatus of claim 13, the processor further configured to:
provide, on one or more of corresponding nodes of the second interface and in a background of the interface, an indication of variables utilized in each cell of the plurality of cells.

### Claim 16 (depends on 13)

The apparatus of claim 13, the processor further configured to:
upon a highlighting of one of the plurality of nodes, determine a representation of a chart associated with one of the plurality of cells corresponding to the one of the plurality of nodes; and
display the determined chart corresponding to the one of the plurality of nodes.

### Claim 17 (depends on 13)

The apparatus of claim 13, wherein the graph is a force-directed graph, wherein the plurality of nodes are arranged according to similarity of variables used in corresponding cells such that a length of each of the plurality of links is representative of the similarity.

### Claim 18 (depends on 13)

The apparatus of claim 13, the processor further configured to:
provide on the second interface, a time slider configured to provide one or more historical execution snapshots of the computational notebook; and
display the graph form of the computational notebook according to a corresponding one of the one or more historical execution snapshots.
