IP Library Granted Patent US 10,885,021
Granted Patent B1
US 10,885,021 · App. 15/969,648 · Granted Jan 5, 2021

Interactive interpreter and graphical user interface

Inventors: Antoine Llorca (San Francisco, CA); Gregory O'Connor (San Francisco, CA)
Assignee: PALANTIR TECHNOLOGIES INC.
G06F16/2379G06F3/0484G06F16/248G06F16/252
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 10,885,021
App. No.
15/969,648
Granted
Jan 5, 2021
Kind
B1
Abstract

A text-based interactive interpreter and user interface that sequentially allows a user to modify, transform, or filter data sets from a database system. Execution of user generated instructions results in output that can be rendered as a table, map, JSON, or other view. A user can easily retrieve a data set from a resource identifier for the data set. Instructions and results are presented in a sequential manner down the user interface page. Instructions can refer to variables and output data from previous blocks in the user interface page. The interpreted user-generated textual instruction areas can retrieve a data set specified in the textual blocks, parse and execute the textual instructions to transform, filter, or manipulate the data set. The resulting data set is rendered according to the data type, default settings, or preconfigured preferences into a table, map, JSON, or other view. Each or a subset of the textual instruction blocks can be persisted, versioned, and permissioned according to access control lists. The particular session of textual instruction blocks and transformations can be published as a service, which, if called again, can dynamically perform the user generated instructions and output the result data.

Claims (79)

1. A system comprising:

a data pipeline system, wherein the data pipeline system is configured to perform data transformations to generate a plurality of data sets;

one or more non-transitory computer storage mediums configured to at least store persisted user generated computer-executable instructions and computer-executable instructions; and

one or more computer hardware processors in communication with the one or more non-transitory computer storage mediums, the one or more computer hardware processors configured to execute the computer-executable instructions to at least:

cause presentation of a graphical user interface configured to receive user generated computer-executable instructions;

receive, from the graphical user interface, first user generated computer-executable instructions comprising a resource identifier;

in response to receiving the first user generated computer-executable instructions,

retrieve, from the data pipeline system, a data set from the plurality of data sets associated with the resource identifier, and

cause a first presentation in the graphical user interface, wherein the first presentation includes at least a portion of the data set;

after causing the first presentation, receive, from the graphical user interface, second user generated computer-executable instructions;

in response to receiving the second user generated computer-executable instructions, apply the second user generated computer-executable instructions, wherein applying the second user generated computer-executable instructions further comprises:

determining, based on automated analysis of the second user generated computer-executable instructions, an operation;

performing the determined operation on the data set; and

generating output from the operation, wherein the output is different from the data set;

cause a second presentation in the graphical user interface, wherein the second presentation includes at least a portion of the output, wherein the first presentation and the second presentation are both displayed on the graphical user interface; and

store, in the one or more non-transitory computer storage mediums, the first user generated computer-executable instructions and the second user generated computer-executable instructions.

2. The system of claim 1 , wherein the first user generated computer-executable instructions is stored as a first block and the second user generated computer-executable instructions is stored as a second block.

3. The system of claim 1 , wherein at least one of the first user generated computer-executable instructions or the second user generated computer-executable instructions are accessible by a plurality of users.

4. The system of claim 1 , wherein at least one of the first user generated computer-executable instructions or the second user generated computer-executable instructions are accessible to one or more users based at least in part on preconfigured user access restrictions.

5. The system of claim 1 , wherein the one or more computer hardware processors are further configured to:

receive, from the graphical user interface, third user generated computer-executable instructions; and

in response to receiving the third user generated computer-executable instructions, apply the third user generated computer-executable instructions, wherein applying the third user generated computer-executable instructions further comprises:

publishing the second user generated computer-executable instructions as a service.

6. The system of claim 5 , wherein the one or more computer hardware processors are further configured to:

execute the service to dynamically retrieve and process data.

7. The system of claim 6 , wherein executing the service to dynamically retrieve and process data further comprises:

retrieving, from the one or more non-transitory computer storage mediums, at least one of the first user generated computer-executable instructions or the second user generated computer-executable instructions; and

applying at least one of the first user generated computer-executable instructions or the second user generated computer-executable instructions a second time.

8. The system of claim 1 , wherein the one or more computer hardware processors are further configured to:

assign, a reference variable to the output from the operation based on the second user generated computer-executable instructions;

receive fourth user generated computer-executable instructions comprising the reference variable; and

in response to receiving the fourth user generated computer-executable instructions, apply the fourth user generated computer-executable instructions, wherein applying the fourth user generated computer-executable instructions further comprises:

determining, based at least on the fourth user generated computer-executable instructions, a second operation;

performing the second operation on the output identified by the reference variable; and

generating second output from the second operation, wherein the second output is different from the output; and

causing a third presentation, in the graphical user interface, of the second output, wherein the first presentation, the second presentation, and the third presentation are displayed on the graphical user interface.

9. The system of claim 1 , wherein the one or more computer hardware processors are further configured to:

after causing the second presentation, receive, from the graphical user interface, a request to generate a service;

in response to receiving the request, publishing the first user generated computer-executable instructions and the second user generated computer-executable instructions together as a service such that the service is configured to:

execute the first user generated computer-executable instructions and the second user generated computer-executable instructions;

generate updated output from the execution of the service, wherein the updated output includes up-to-date information from the data pipeline system that is different from the output; and

cause a third presentation in the graphical user interface, wherein the third presentation includes the updated output; and

store, in the one or more non-transitory computer storage mediums, the published service.

10. The system of claim 9 , wherein underlying computer-executable instructions associated with the service are not viewable, accessible, or editable, and wherein the underlying computer-executable instructions include at least the first user generated computer-executable instructions and the second user generated computer-executable instructions.

11. The system of claim 1 , wherein the graphical user interface displays the first presentation while receiving second user generated computer-executable instructions.

12. A method comprising:

causing presentation of a graphical user interface configured to receive user generated computer-executable instructions;

receiving, from the graphical user interface, first user generated computer-executable instructions comprising a resource identifier;

in response to receiving the first user generated computer-executable instructions,

retrieving, from a data pipeline system, a data set from the plurality of data sets associated with the resource identifier, wherein the data pipeline system is configured to perform data transformations to generate a plurality of data sets, and

causing a first presentation in the graphical user interface, wherein the first presentation includes at least a portion of the data set;

after causing the first presentation, receiving, from the graphical user interface, second user generated computer-executable instructions;

in response to receiving the second user generated computer-executable instructions, applying the second user generated computer-executable instructions, wherein applying the second user generated computer-executable instructions further comprises:

determining, based on automated analysis of the second user generated computer-executable instructions, an operation;

performing the determined operation on the data set; and

generating output from the operation, wherein the output is different from the data set;

causing a second presentation in the graphical user interface, wherein the second presentation includes at least a portion of the output wherein the first presentation and the second presentation are both displayed on the graphical user interface; and

storing, the first user generated computer-executable instructions and the second user generated computer-executable instructions,

wherein the method is performed by one or more computer hardware processors.

13. The method of claim 12 , wherein the first user generated computer-executable instructions is stored as a first block and the second user generated computer-executable instructions is stored as a second block.

14. The method of claim 12 , wherein at least one of the first user generated computer-executable instructions or the second user generated computer-executable instructions are accessible by a plurality of users.

15. The method of claim 12 , wherein at least one of the first user generated computer-executable instructions or the second user generated computer-executable instructions are accessible to one or more users based at least in part on preconfigured user access restrictions.

16. The method of claim 12 , further comprising:

receiving, from the graphical user interface, third user generated computer-executable instructions; and

in response to receiving the third user generated computer-executable instructions, applying the third user generated computer-executable instructions, wherein applying the third user generated computer-executable instructions further comprises:

publishing the second user generated computer-executable instructions as a service.

17. The method of claim 16 , further comprising:

executing the service to dynamically retrieve and process data.

18. The method of claim 17 , wherein executing the service to dynamically retrieve and process data further comprises:

retrieving at least one of the first user generated computer-executable instructions or the second user generated computer-executable instructions.

19. The method of claim 12 , further comprising:

assigning, a reference variable to the output from the operation based on the second user generated computer-executable instructions;

receiving fourth user generated computer-executable instructions comprising the reference variable; and

in response to receiving the fourth user generated computer-executable instructions, applying the fourth user generated computer-executable instructions, wherein applying the fourth user generated computer-executable instructions further comprises:

determining, based at least on the fourth user generated computer-executable instructions, a second operation;

performing the second operation on output identified by the reference variable; and

generating second output from the second operation, wherein the second output is different from the output; and

causing a third presentation, in the graphical user interface, of the second output, wherein the first presentation, the second presentation, and the third presentation are displayed on the graphical user interface.

20. The method of claim 12 , wherein the graphical user interface displays the first presentation while receiving second user generated computer-executable instructions.

Assignments (2)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2018
From: LLORCA, ANTOINE; O'CONNOR, GREGORY
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 046049/0291 →
Cited By (11)
US 12,212,696 US 12,242,892 US 12,293,199 US 12,423,309 US 12,461,847 US 12,566,589 US 12,566,758 US 12,578,933 US 12,645,704 US 12,651,001 US 12,695,681