IP Library Granted Patent US 11,580,068
Granted Patent B2
US 11,580,068 · App. 15/844,110 · Granted Feb 14, 2023

Systems and methods for client-side data analysis

Inventor: William Dwyer (Seattle, WA)
Assignee: Palantir Technologies Inc.
G06F16/156G06F16/116G06F16/248G06F16/951G06F3/0483
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,580,068
App. No.
15/844,110
Granted
Feb 14, 2023
Kind
B2
Abstract

Systems and methods are provided for analyzing data in one or more datasets, where the one or more datasets are embodied as local, embedded databases in a client-side application, such as a web browser or web browser tab. A client-side data analysis application or artifact may be used to interact, i.e., query, the local, embedded databases, and retrieve results to analyze data. Because the one or more datasets are localized, there is no need to access a remote database/datastore in order to analyze the data. Moreover, the client-side data analysis application or artifact can be executed as individual instances in the client-side application. The state of a local, embedded database may be stored as another file that can be used as a local, embedded database for another instance of the client-side data analysis application or artifact.

Claims (54)

1. A system comprising:

one or more processors; and

a memory storing instructions that, when executed by the one or more processors, cause the system to:

translate data files into a local embedded database stored at a client-side application;

execute an instance of a client-side data analysis artifact within the client-side application to analyze the local embedded database without an active network connection to a remote database or a remote server, wherein the instance of the client-side data analysis artifact comprises a browser tab operating in a sandboxed environment;

receive a data analysis query, through the instance of the client-side data analysis artifact, to analyze the dataset;

process the data analysis query using the local embedded database;

store a result of the data analysis query in the local embedded database;

capture a state of the local embedded database including the result of the data analysis query; and

export the captured state of the local embedded database to the remote database or the remote server upon restoration of the active network connection.

2. The system of claim 1 , wherein the client-side data analysis artifact comprises a first client-side data analysis artifact; and the instructions, when executed, further cause to the system to:

execute a second client-side data analysis artifact, the second client-side data analysis artifact being executed in a second client-side application, the second client-side data analysis artifact comprising a second local embedded database compiled as an SQLite database.

3. The system of claim 2 , wherein the instructions, when executed, further cause the system to:

import, from the remote database or the remote server, the captured state of the local embedded database to the second client-side analysis artifact in response to receiving a user interaction through the second client-side analysis artifact; and

providing the captured state of the local embedded database as the second local embedded database.

4. The system of claim 3 , wherein the data analysis query comprises a first data analysis query; and the instructions, when executed, further cause the system to:

receive a second data analysis query;

process the second data analysis query using the second client-side data analysis artifact and the second local embedded database; and

store a result of the second data analysis query in the second local embedded database, wherein a state of the second local embedded database is updated based on the result of the second data analysis query.

5. The system of claim 2 , wherein the second client-side data analysis artifact comprises a second instance of the client-side data analysis artifact.

6. The system of claim 5 , wherein the second instance of the client-side data analysis artifact is executed in a second web browser tab.

7. The system of claim 1 , wherein the instructions, when executed, cause the system to:

export the captured state of the local embedded database to a file on the system.

8. The system of claim 1 , wherein the client-side data analysis artifact comprises a data visualization tool adapted to render the result of the data analysis query in at least one of a graphical manner or a tabular manner.

9. The system of claim 7 , wherein the instructions, when executed, further cause the system to:

convert the file comprising data to which the data analysis query is applied into the captured state of the local embedded database.

10. A method being implemented by a computing system including one or more physical processors and a storage media storing machine-readable instructions, the method comprising:

translating data files into a local embedded database stored at a client-side application;

executing an instance of a client-side data analysis artifact within the client-side application to analyze the local embedded database without an active network connection to a remote database or a remote server, wherein the instance of the client-side data analysis artifact comprises a browser tab operating in a sandboxed environment;

receiving a data analysis query via a user interface of the instance of the client-side application, to analyze the dataset;

processing the data analysis query using the local embedded database; and

generating one or more representations of a result of the data analysis query for presentation through the client-side application.

11. The method of claim 10 , wherein the generating the one or more representations of the result of the data analysis query comprises at least one of a textual representation or graphical representation of the result of the data analysis query.

12. The method of claim 10 , further comprising:

exporting a current state of the local embedded database to at least one of a local file, the remote server or the remote database, subsequent to processing the data analysis query.

13. The system of claim 1 , wherein the instance of the client-side data analysis artifact is executed without accessing a remote database or server.

14. The system of claim 1 , wherein the executing an instance further comprises:

in response to processing the data analysis query:

representing the results as a table comprising fields; and

determining a type of graph and a number of divisions of the graph based on a format of one of the fields.

15. A non-transitory memory of a computing system including instructions that, when executed by one or more processors, cause the computing system to:

translate data files into a local embedded database stored at a client-side application;

execute an instance of a client-side data analysis artifact within the client-side application to analyze the local embedded database without an active network connection to a remote database or a remote server, wherein the instance of the client-side data analysis artifact comprises a browser tab operating in a sandboxed environment;

receive a data analysis query, through the instance of the client-side data analysis artifact, to analyze the dataset;

process the data analysis query using the local embedded database;

store a result of the data analysis query in the local embedded database;

capture a state of the local embedded database including the result of the data analysis query; and

export the captured state of the local embedded database to the remote database or the remote server upon restoration of the active network connection.

16. The non-transitory memory of claim 15 , wherein the client-side data analysis artifact comprises a first client-side data analysis artifact; and the instructions, when executed, further cause to the computing system to:

execute a second client-side data analysis artifact, the second client-side data analysis artifact being executed in a second client-side application, the second client-side data analysis artifact comprising a second local embedded database compiled as an SQLite database.

17. The non-transitory memory of claim 16 , wherein the instructions, when executed, further cause to the computing system to:

import, from the remote database or the remote server, the captured state of the local embedded database to the second client-side analysis artifact in response to receiving a user interaction through the second client-side analysis artifact; and

providing the captured state of the local embedded database as the second local embedded database.

18. The system of claim 1 , wherein the local embedded database is compiled as an SQLite database.

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 Feb 13, 2018
From: DWYER, WILLIAM
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 044917/0603 →
Continuity (1)
Related Publication 20190188282A1 · Jun 20, 2019