US 12,443,336 B2
Interactive user interface for dynamically updating data and data analysis and query processing
Helen Kaltegaertner, New York, NY (US); Alexandru Antihi, Palo Alto, CA (US); Adam Borochoff, New York, NY (US); Benjamin Duffield, New York, NY (US); Brandon Krieger, New York, NY (US); Caitlin Colgrove, Palo Alto, CA (US); Diran Li, New York, NY (US); Gabrielle Javitt, New York, NY (US); Gregory O'Connor, San Francisco, CA (US); Mark Schafer, New York, NY (US); Mark Elliot, New York, NY (US); Maria Franco, Abu Dhabi (AE); Matthew Lynch, Brooklyn, NY (US); Matthew Sills, San Francisco, CA (US); Nir Ackner, Palo Alto, CA (US); Punyashloka Biswal, Norwalk, CT (US); Phillip Chen, New York, NY (US); Sander Kromwijk, New York, NY (US); Shannon Scott, New York, NY (US); Samuel Szuflita, New York, NY (US); Stephanie Yu, New York, NY (US); and Walker Burgin, Seattle, WA (US)
Assigned to Palantir Technologies Inc., Denver, CO (US)
Filed by Palantir Technologies Inc., Palo Alto, CA (US)
Filed on Oct. 13, 2017, as Appl. No. 15/784,004.
Application 15/784,004 is a continuation in part of application No. 15/092,964, filed on Apr. 7, 2016, granted, now 10,157,200.
Application 15/092,964 is a continuation of application No. 14/858,647, filed on Sep. 18, 2015, granted, now 9,335,911, issued on May 10, 2016.
Claims priority of provisional application 62/436,906, filed on Dec. 20, 2016.
Claims priority of provisional application 62/097,327, filed on Dec. 29, 2014.
Prior Publication US 2018/0039399 A1, Feb. 8, 2018
Int. Cl. G06F 3/04842 (2022.01); G06F 3/04817 (2022.01); G06F 3/0482 (2013.01); G06F 3/04847 (2022.01); G06F 16/248 (2019.01); G06F 16/26 (2019.01)
CPC G06F 3/04847 (2013.01) [G06F 3/04817 (2013.01); G06F 3/0482 (2013.01); G06F 3/04842 (2013.01); G06F 16/248 (2019.01); G06F 16/26 (2019.01)] 18 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
causing simultaneous presentation, in a user interface, of a plurality of user interface boards, wherein:
each of the plurality of user interface boards is represented by a corresponding data node, of a plurality of data nodes, in a data analysis graph;
the plurality of data nodes in the data analysis graph includes: a parent data node, a first data node that is a child of the parent data node, a second data node that is a child of the first data node, and a current data node that is a child of the second data node; and
the current data node is associated with a most recent user interaction among the plurality of user interface boards;
receiving, via the user interface, a request to update a first user interface board that corresponds to the first data node; and
in response to receiving the request to update the first user interface board, automatically:
accessing historical user interaction data associated with the data analysis graph;
identifying, from historical user interaction data associated with the data analysis graph, the current data node of the data analysis graph;
identifying, based on a dependency of the current data node, an active path of the data analysis graph that includes at least: the first data node, the second data node, and the current data node;
identifying from the active path:
an insertion point between the first data node and the parent data node; and
one or more children data nodes of the first data node including at least the second data node and the current data node;
duplicating the one or more children data nodes to generate one or more duplicate children data nodes, wherein each data node of the one or more duplicate children data nodes is a distinct copy of a corresponding data node from the one or more children data nodes including the second data node and the current data node;
generating an updated first data node based on the request to update the first user interface board;
adding a new path to the data analysis graph comprising the updated first data node and the one or more duplicate children data nodes, wherein adding the new path to the data analysis graph comprises:
linking the updated first data node to the parent data node based on the identified insertion point;
linking the one or more duplicate children data nodes to the updated first data node; and
updating the one or more duplicate children data nodes based on the updated first data node; and
causing presentation, in the user interface, of:
a plurality of updated user interface boards corresponding to respective data nodes of the new path of the data analysis graph.