IP Library Granted Patent US 12694062
Granted Patent B2
US 12694062 · App. 18/342,474 · Granted Jul 28, 2026

Providing insights on semi-structured data

Inventors: Sachin Kumar Chauhan (New Delhi, IN); Subrata Mitra (Bangalore, IN); Sunav Choudhary (Kolkata, IN); Ramasuri Narayanam (Bangalore, IN); Koyel Mukherjee (Bangalore, IN); Gautam Pratap Kowshik (El Cerrito, CA)
Assignee: ADOBE INC.
G06F16/9024
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12694062
App. No.
18/342,474
Granted
Jul 28, 2026
Kind
B2
Abstract

Tabular data is received. A graph is created based on the tabular data. The graph comprises nodes corresponding to key-value pairs of the tabular data. Weights are assigned to the nodes and to edges that connect the nodes. The node and edge weights are updated using a message-passing neural network (MPNN) framework. The resulting graph is sampled based on the updated weights.

Claims (64)

1 . A computer-implemented method comprising:

receiving semi-structured tabular data comprising key-value pairs, wherein at least one cell of the semi-structured tabular data comprises at least two key-value pairs of the key-value pairs;

creating a graph based on the semi-structured tabular data, the graph comprising a plurality of nodes and a plurality of edges, wherein each node of the plurality of nodes corresponds to a corresponding key-value pair of the key-value pairs of the semi-structured tabular data;

assigning weights to the plurality of nodes and edge weights to the plurality of edges;

updating the weights of the plurality of nodes and the edge weights of the plurality of edges using a message-passing neural network (MPNN) framework by:

performing a forward pass from a source node to a target node and a backward pass from the target node to the source node such that for each node of the plurality of nodes, a corresponding updated weight of the node is equal to a first sum of updated edge weights of incoming edges to the node and a second sum of the updated edge weights of outgoing edges from the node; and

based on sampling the semi-structured tabular data by sampling the graph based on the updated edge weights of the plurality of edges, causing display of a summary of the semi-structured tabular data.

2 . The computer-implemented method of claim 1 , wherein updating an edge weight of an edge of the plurality of edges is based on the weights assigned to a first node connected to the edge and a second node connected to the edge.

3 . The computer-implemented method of claim 2 , wherein assigning a weight to a node of the plurality of nodes is based on a number of occurrences of a key-value pair of the node in a column of the semi-structured tabular data that corresponds to the node.

4 . The computer-implemented method of claim 3 ,

wherein the first node corresponds to a first key-value pair of the semi-structured tabular data and the second node corresponds to a second key-value pair of the semi-structured tabular data, and

wherein creating the graph further comprises assigning an initial weight to the edge based on a number of co-occurrences in the semi-structured tabular data of the first key-value pair in a first column and the second key-value pair in a second column.

5 . The computer-implemented method of claim 1 , further comprising:

providing the summary of the semi-structured tabular data for display at a user interface.

6 . The computer-implemented method of claim 1 , wherein creating the graph further comprises connecting nodes of the plurality of nodes with directed edges of the plurality of edges based on nodes corresponding to the key-value pairs located in a same row of the semi-structured tabular data.

7 . The computer-implemented method of claim 1 , wherein creating the graph further comprises:

creating the source node;

creating a plurality of outgoing directed edges from the source node;

creating the target node; and

creating a plurality of incoming directed edges to the target node,

wherein the graph is a directed acyclic graph (DAG).

8 . The computer-implemented method of claim 7 , wherein sampling the graph further comprises selecting a path from the source node to the target node, and wherein selecting the path comprises selecting edges of the plurality of edges to form the path based on the updated edge weights of the plurality of edges.

9 . One or more non-transitory computer storage media storing computer-useable instructions that, when used by a computing device, cause the computing device to perform operations, the operations comprising:

receiving semi-structured tabular data comprising a plurality of cells, the plurality of cells comprising a plurality of key-value pairs, wherein at least one cell of the plurality of cells comprising at least two key-value pairs of the plurality of key-value pairs;

creating a graph based on the semi-structured tabular data, the graph comprising a plurality of nodes and a plurality of edges, wherein each node of the plurality of nodes corresponds to a corresponding key-value pair for each of the plurality of key-value pairs of the plurality of cells of the semi-structured tabular data;

assigning weights to the plurality of nodes and edge weights to the plurality of edges;

updating the weights of the plurality of nodes and the edge weights of the plurality of edges using a message-passing neural network (MPNN) framework by:

performing a forward pass to a node to compute a first sum of the edge weights of incoming edges to the node to update a corresponding weight of the node based on the first sum and compute updated edge weights of the plurality of edges based on updating the corresponding weight of the node; and

performing a backward pass from the node to compute a second sum of the edge weights of outgoing edges from the node to further update the corresponding weight of the node based on the second sum and update the updated edge weights of the plurality of edges based on further updating the corresponding weight of the node; and

based on sampling the graph based on the updated edge weights of the plurality of edges, causing display of a summary of the semi-structured tabular data.

10 . The one or more non-transitory computer storage media of claim 9 , wherein updating an edge weight of an edge of the plurality of edges is based on the weights assigned to a first node connected to the edge and a second node connected to the edge.

11 . The one or more non-transitory computer storage media of claim 9 , wherein assigning a weight to a corresponding node of the plurality of nodes is based on a number of occurrences of a key-value pair of the corresponding node in a column of the semi-structured tabular data that corresponds to the corresponding node.

12 . The one or more non-transitory computer storage media of claim 11 ,

wherein a first node corresponds to a first key-value pair of the semi-structured tabular data and a second node corresponds to a second key-value pair of the semi-structured tabular data, and

wherein creating the graph further comprises assigning an initial weight to an edge based on a number of co-occurrences in the semi-structured tabular data of the first key-value pair in a first column and the second key-value pair in a second column.

13 . The one or more non-transitory computer storage media of claim 9 , wherein creating the graph further comprises connecting nodes of the plurality of nodes with directed edges of the plurality of edges based on nodes corresponding to key-value pairs located in a same row of the semi-structured tabular data.

14 . The one or more non-transitory computer storage media of claim 9 , wherein creating the graph further comprises:

creating a source node;

creating a plurality of outgoing directed edges from the source node;

creating a target node; and

creating a plurality of incoming directed edges to the target node,

wherein the graph is a directed acyclic graph (DAG), and

wherein updating the weights of the plurality of nodes and the edge weights of the plurality of edges further comprises:

using the MPNN framework, performing the forward pass from the source node to the target node and the backward pass from the target node to the source node such that for each node of the plurality of nodes, an updated weight of the node is equal to (a) the first sum and (b) the second sum.

15 . A computer system comprising:

one or more processors; and

one or more non-transitory computer storage media storing computer-useable instructions that, when used by a computing device, cause the computing device to perform operations, the operations comprising:

receiving semi-structured tabular data comprising a plurality of cells, the plurality of cells comprising a plurality of key-value pairs, wherein at least one cell of the plurality of cells comprising at least two key-value pairs of the plurality of key-value pairs;

creating a graph based on the semi-structured tabular data, the graph comprising a plurality of nodes and a plurality of edges, wherein each node of the plurality of nodes corresponds to a corresponding key-value pair for each of the plurality of key-value pairs of the plurality of cells of the semi-structured tabular data;

assigning weights to the plurality of nodes and edge weights to the plurality of edges;

updating the weights of the plurality of nodes and the edge weights of the plurality of edges using a message-passing neural network (MPNN) framework by:

performing a forward pass from a source node to a target node and a backward pass from the target node to the source node such that for each node of the plurality of nodes, a corresponding updated weight of the node is equal to a first sum of updated edge weights of incoming edges to the node and a second sum of the updated edge weights of outgoing edges from the node; and

based on sampling the semi-structured tabular data by sampling the graph based on the updated edge weights of the plurality of edges, causing display of a summary of the semi-structured tabular data.

16 . The computer system of claim 15 , wherein updating an edge weight of an edge of the plurality of edges is based on the weights assigned to a first node connected to the edge and a second node connected to the edge, and wherein assigning a weight to a node of the plurality of nodes is based on a number of occurrences of a key-value pair of the node in a column of the semi-structured tabular data that corresponds to the node.

17 . The computer system of claim 16 ,

wherein the first node corresponds to a first key-value pair of the semi-structured tabular data and the second node corresponds to a second key-value pair of the semi-structured tabular data, and

wherein creating the graph further comprises assigning an initial weight to the edge based on a number of co-occurrences in the semi-structured tabular data of the first key-value pair in a first column and the second key-value pair in a second column.

18 . The computer system of claim 15 , wherein creating the graph further comprises connecting nodes of the plurality of nodes with directed edges of the plurality of edges based on nodes corresponding to key-value pairs located in a same row of the semi-structured tabular data.

19 . The computer system of claim 15 , wherein creating the graph further comprises:

creating the source node;

creating a plurality of outgoing directed edges from the source node;

creating the target node; and

creating a plurality of incoming directed edges to the target node, and

wherein the graph is a directed acyclic graph (DAG).