IP Library Granted Patent US 11,016,986
Granted Patent B2
US 11,016,986 · App. 15/997,177 · Granted May 25, 2021

Query-based time-series data display and processing system

Inventor: Benjamin Duffield (New York, NY)
Assignee: Palantir Technologies Inc.
G06F16/248G06F9/451G06F16/245G06F16/26G06F40/18
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 11,016,986
App. No.
15/997,177
Granted
May 25, 2021
Kind
B2
Abstract

Various systems and methods are described herein for an improved spreadsheet application that allows a user to generate, manipulate, and replicate data visualizations (e.g., sparklines, graphs, charts, etc.) using functions without importing data into cells of the application. For example, data is stored in one or more remote or local data stores accessible to the improved spreadsheet application. A user enters a function into a cell of the improved spreadsheet application. The improved spreadsheet application generates a query using the function, the query identifying a portion of a dataset to retrieve from the data store(s). The improved spreadsheet application then transmits the query to the data store(s) and retrieves the requested data. A renderer of the improved spreadsheet application then renders a sparkline using the retrieved data. The improved spreadsheet application displays the rendered sparkline in the cell in which the function was entered, or at another designated location.

Claims (77)

1. A system comprising:

a renderer;

at least one processor; and

a storage device configured to store computer-executable instructions, the computer-executable instructions, when executed by the at least one processor, cause the system to at least:

generate user interface data that, when rendered by a user device, causes the user device to display a user interface, wherein the user interface depicts a first data cell;

receive an indication that a first function is entered in the first data cell;

generate a first query using the first function in response to receiving the indication that the first function is entered in the first data cell;

retrieve a plurality of data using the first query;

render a data visualization using the plurality of data; and

update the user interface data such that the user interface displays the rendered data visualization in the first data cell, while storing the first query as a value of the first data cell.

2. The system of claim 1 , wherein the computer-executable instructions are associated with a first application, wherein the storage device is further configured with second computer-executable instructions associated with a second application, the second computer-executable instructions, when executed by the at least one processor, cause the system to at least:

obtain the first query from the first application;

render a second data visualization using the first query; and

generate second user interface data that, when rendered by the user device, causes the user device to display a second user interface, wherein the second user interface includes the rendered second data visualization.

3. The system of claim 2 , wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least:

obtain an indication from the second application that the rendered second data visualization is modified;

generate a modified version of the first query using the first function and the obtained indication;

retrieve a modified plurality of data using the modified version of the first query;

rendered a modified data visualization using the modified plurality of data; and

update the user interface data such that the user interface displays the rendered modified data visualization in the first data cell.

4. The system of claim 1 , wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least:

receive an indication that a second function is entered in a second data cell, wherein the second function references the first function;

generate a second query using the first function and the second function;

retrieve a second plurality of data using the second query;

render a second data visualization using the second plurality of data; and

update the user interface data such that the user interface displays the rendered second data visualization in the second data cell.

5. The system of claim 4 , wherein the second function references a conditional formatting display operation, and wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least render the second data visualization according to the conditional formatting display operation in response to a determination that a condition associated with the conditional formatting display operation occurred.

6. The system of claim 4 , wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least:

receive an indication that a third function is entered in a third data cell, wherein the third function references the first function, the second function, and a first condition;

generate a third query using the first function, the second function, and the third function;

retrieve a first value using the third query; and

generate a notification in response to a determination that the first value satisfies the first condition.

7. The system of claim 1 , wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least:

cache the rendered data visualization; and

retrieve the rendered data visualization from cache in response to reception of a re-paint operation.

8. The system of claim 1 , wherein a first timestamp is stored in a second data cell, wherein the first function references the second data cell, and wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least:

generate the query using the first function and the first timestamp;

receive an indication that the second data cell is updated to store a second timestamp;

generate a second query using the first function and the second timestamp;

retrieve a second plurality of data using the second query;

render a second data visualization using the second plurality of data; and

update the user interface data such that the user interface displays the rendered second data visualization in the first data cell, while storing the second query as the value of the first data cell.

9. The system of claim 1 , wherein the first query identifies a number of available cell pixels, and wherein the plurality of data comprises, for each available cell pixel, a minimum value and a maximum value, and wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least render the data visualization by, for each available cell pixel, drawing a line from the respective minimum value to the respective maximum value.

10. The system of claim 1 , wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least:

receive an indication that the first function is pulled to a second data cell, wherein the first function includes a parameter dependent on the location in which the first function is entered; and

enter a second function in the second data cell, wherein the second function comprises the first function with the parameter modified to reflect the location in which the second function is entered.

11. The system of claim 1 , wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least:

receive an indication that the first data cell is resized;

generate a modified query using the first function and a representation of a size of the resized first data cell;

retrieve a second plurality of data using the modified query;

render a second data visualization using the second plurality of data; and

update the user interface data such that the user interface displays the rendered second data visualization in the first data cell.

12. The system of claim 11 , wherein the representation of the size of the resized first data cell comprises at least one of a number of available cell pixels in the resized first data cell or a time duration of a single pixel in the resized first data cell.

13. The system of claim 1 , wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least:

receive an indication that the first data cell is selected;

update the user interface data such that the user interface displays a window of a first size;

generate a modified query using the first function and a representation of a size of the window;

retrieve a second plurality of data using the modified query;

render a second data visualization using the second plurality of data; and

update the user interface data such that the user interface displays the rendered second data visualization in the window.

14. The system of claim 1 , wherein the first function comprises a display operation, and wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to at least render the data visualization using the plurality of data and the display operation.

15. The system of claim 1 , wherein the rendered data visualization comprises one of a line graph, a bar graph, a pie graph, a sparkline, an X-Y scatterplot, or a chart.

16. A computer-implemented method comprising:

generating user interface data that, when rendered by a computing device, causes the computing device to display a user interface, wherein the user interface depicts a first data cell;

receiving an indication that a first function is entered in the first data cell;

generating a first query using the first function in response to receiving the indication that the first function is entered in the first data cell;

retrieving a portion of a dataset using the first query;

rendering a data visualization using the retrieved portion of the dataset; and

updating the user interface data such that the user interface displays the rendered data visualization in the first data cell, while storing the first query as a value of the first data cell,

wherein the method is performed using one or more processors.

17. One or more non-transitory, computer-readable storage media storing computer-executable instructions, which if performed by one or more processors, cause the one or more processors to at least:

generate user interface data that, when executed, causes a display of a user interface, wherein the user interface depicts a first data cell;

receive an indication that a first function is entered in the first data cell;

generate a first query using the first function in response to reception of the indication that the first function is entered in the first data cell;

retrieve a portion of a dataset using the first query;

render a data visualization using the retrieved portion of the dataset; and

update the user interface data such that the user interface displays the rendered data visualization in the first data cell, wherein the first query is stored in the first data cell.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2018
From: DUFFIELD, BENJAMIN
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 046093/0764 →
Continuity (2)
Provisional Application 62594457 · Dec 4, 2017
Related Publication 20190171748A1 · Jun 6, 2019
Cited By (2)
US 12,271,388 US 12,554,733