IP Library › Granted Patent US 12,639,865
Granted Patent B2
US 12,639,865 · App. 18/619,889 · Granted May 26, 2026

Graph layout retention using hidden edges

Inventors: Min Wu (Pleasanton, CA); Zhe Wang (San Francisco, CA); Yaron Guez (San Diego, CA); Nicandro Floro Malveda Vergara (San Diego, CA); Jan Ove Kristian Olsson (Castro Valley, CA); Justin Jonathan Shaw (San Diego, CA)
Assignee: ServiceNow, Inc.
G06T11/206G06F16/9024G06F16/904
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 12,639,865
App. No.
18/619,889
Granted
May 26, 2026
Kind
B2
Abstract

Various implementations disclosed herein include receiving an input indicating an edit to a graph, the graph including a plurality of nodes connected by a plurality of edges, and modifying the graph according to the input. Upon determining that the modification causes a node of the graph to be isolated, a hidden edge is generated to connect the node to at least one other node of the graph.

Claims (51)

1 . A method comprising:

obtaining a directed graph comprising:

a plurality of nodes; and

a plurality of edges, wherein each node of the plurality of nodes is interconnected to at least one other node from the plurality of nodes via a respective edge of the plurality of edges, and wherein each edge of the plurality of edges comprises a respective starting point at a respective start node and a respective end point at a respective end node;

receiving, via a user interface, an input indicating an edit to the directed graph;

in response to receiving the edit:

modifying, based on the edit, the directed graph; and

determining that modifying the directed graph based on the edit causes a particular node of the directed graph to be isolated; and

in response to determining that modifying the directed graph based on the edit causes the particular node of the directed graph to be isolated:

generating a hidden edge comprising an invisible graphical user element to connect the particular node of the directed graph to at least one other node of the plurality of nodes of the directed graph, wherein the invisible graphical user element comprises a data structure that is not visually displayed on the directed graph but recognized as being a connection between respective nodes of the plurality of nodes to act as a placeholder.

2 . The method of claim 1 , wherein the edit comprises causing edges having an end point at the particular node to be deleted.

3 . The method of claim 1 , wherein generating the hidden edge comprises inserting the invisible graphical user element between a node of the plurality of nodes precedent to the particular node and the particular node.

4 . The method of claim 1 , wherein the hidden edge comprises a data structure that is maintained in a display of the directed graph.

5 . The method of claim 1 , wherein generating the hidden edge includes storing the invisible graphical user element separate from process data of the directed graph.

6 . The method of claim 1 , wherein generating the hidden edge includes maintaining a position of the particular node in the directed graph unchanged relative to the position of the particular node prior to receiving the input indicating the edit.

7 . The method of claim 1 , further comprising:

determining that modifying the directed graph according to the input indicating the edit does not cause the particular node of the directed graph to be isolated; and

maintaining, based on the determination, a layout of the directed graph without generating the hidden edge.

8 . A system, comprising:

one or more processors; and

memory, including computer-executable instructions that, if executed by the one or more processor, cause the system to:

obtain a directed graph comprising:

a plurality of nodes; and

a plurality of edges, wherein each node of the plurality of nodes is interconnected to at least one other node from the plurality of nodes via a respective edge of the plurality of edges, and wherein each edge of the plurality of edges comprises a respective starting point at a respective start node and a respective end point at a respective end node;

receive, via a user interface, an input indicating an edit to the directed graph;

in response to receiving the edit:

modify, based on the edit, the directed graph; and

determine that modifying the directed graph based on the edit causes a particular node of the directed graph to be isolated; and

in response to determining that modifying the directed graph based on the edit causes the particular node of the directed graph to be isolated:

generate a hidden edge comprising an invisible graphical user element to connect the particular node of the directed graph to at least one other node of the plurality of nodes of the directed graph, wherein the invisible graphical user element comprises a data structure that is not visually displayed on the directed graph but recognized as being a connection between respective nodes of the plurality of nodes to act as a placeholder.

9 . The system of claim 8 , wherein the hidden edge is removed from the directed graph in response to receiving a subsequent input indicating a subsequent edit to the directed graph, and wherein the subsequent edit to the directed graph comprises addition of a new edge to the particular node.

10 . The system of claim 9 , wherein the new edge has a respective end point at the particular node and a respective start point at a node of the plurality of nodes that precedes the particular node in the directed graph.

11 . The system of claim 8 , wherein the edit includes deletion of a node of the plurality of nodes, the node comprising greater than a threshold number of incoming nodes and/or greater than a threshold number of outgoing nodes, and wherein one or more additional hidden edges are to be generated in response to the deletion of the node.

12 . The system of claim 8 , wherein the directed graph is used to depict process flows for project management, and wherein the plurality of nodes are one or more of tasks, activities, and entities, and the plurality of edges are directed edges indicated dependencies between the plurality of nodes.

13 . The system of claim 8 , wherein the edit includes shifting of an end point of an edge from the particular node to an incoming node of the plurality of nodes, the edge being an only incoming edge to the particular node, and wherein the hidden edge is inserted between the incoming node and the particular node.

14 . A non-transitory computer-readable storage medium having stored thereon executable instructions which, when executed by one or more processor of a computer system, cause the computer system to:

obtain a directed graph comprising:

a plurality of nodes; and

a plurality of edges, wherein each node of the plurality of nodes is interconnected to at least one other node from the plurality of nodes via a respective edge of the plurality of edges, and wherein each edge of the plurality of edges comprises a respective starting point at a respective start node and a respective end point at a respective end node;

receive, via a user interface, an input indicating an edit to the directed graph;

in response to receiving the edit:

modify, based on the edit, the directed graph; and

determine that modifying the directed graph based on the edit causes a particular node of the directed graph to be isolated; and

in response to determining that modifying the directed graph based on the edit causes the particular node of the directed graph to be isolated:

generate a hidden edge comprising an invisible graphical user element to connect the particular node of the directed graph to at least one other node of the plurality of nodes of the directed graph, wherein the invisible graphical user element comprises a data structure that is not visually displayed on the directed graph but recognized as being a connection between respective nodes of the plurality of nodes to act as a placeholder.

15 . The non-transitory computer-readable storage medium of claim 14 , wherein the hidden edge is stored as a data structure used for user interface specific data.

16 . The non-transitory computer-readable storage medium of claim 14 , wherein the hidden edge is not persisted to process data of the directed graph.

17 . The non-transitory computer-readable storage medium of claim 14 , wherein the directed graph is in temporarily unavailable state when the hidden edge is generated.

18 . The non-transitory computer-readable storage medium of claim 14 , wherein the directed graph is to adjust from a temporary unavailable state to an available state when the hidden edge is removed from the directed graph.

19 . The non-transitory computer-readable storage medium of claim 14 , wherein the hidden edge is to be removed from the directed graph when a new edge is added to the directed graph, the new edge including an end point at the particular node.

20 . The non-transitory computer-readable storage medium of claim 14 , wherein the plurality of edges are directed edges.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2024
From: WU, MIN; WANG, ZHE; GUEZ, YARON; VERGARA, NICANDRO FLORO MALVEDA; OLSSON, JAN OVE KRISTIAN; SHAW, JUSTIN JONATHAN
To: SERVICENOW, INC.
Reel/Frame 066937/0755 →
Continuity (1)
Related Publication 20250308103A1 · Oct 2, 2025
References Cited (9)
US 6897885B1 · Hao · 2005 [cited by examiner]
US 20200050632A1 · Zhang · 2020 [cited by examiner]
US 20200104425A1 · Shin · 2020 [cited by examiner]
US 20230237096A1 · Bullard et al. · 2023 [cited by applicant]
US 20230334093A1 · Garduno Hernandez · 2023 [cited by applicant]
CN 109388716A · 2019 [cited by applicant]
Cerven Ken: “Network graph analysis and visualization with Gephi: visualize and analyze your data swiftly using dynamic network graphs built with Gephi”; Jan. 1, 2013 (XP093281905) [retrieved from https://webpages.iust.… [cited by applicant]
Unknown: “Gephi: Using filters”; Apr. 10, 2023 (XP093281926) [retrieved https://seinecle.github.io/gephi-tutorials/generated-pdf/using-filters-en.pdf]; 27 pgs. [cited by applicant]
International Search Report and Written Opinion for PCT Application No. PCT/US2025/020347 dated Jun. 17, 2025; 10pgs. [cited by applicant]