IP Library Granted Patent US 10,664,490
Granted Patent B2
US 10,664,490 · App. 15/684,591 · Granted May 26, 2020

Data aggregation and analysis system

Inventors: Steven Fackler (Menlo Park, CA); David Skiff (Redwood City, CA)
Assignee: Palantir Technologies Inc.
G06F16/252G06F3/04842G06F3/04847G06F16/2477G06F16/9024G06F16/9558G06F40/106G06F40/134G06T11/206
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,664,490
App. No.
15/684,591
Granted
May 26, 2020
Kind
B2
Abstract

An interactive user interface for displaying projects comprising a collection of links specifying data to be displayed from a plurality of different applications and/or data sources. When loading a project for display, links are automatically parsed to identify the application and/or data source they are associated with. Retrieved data associated with the links is displayed in a format based upon that of their native application. The data may be displayed in an interactive format, allowing the user to change or manipulate the data in a manner that would be possible in the data's native application. A project may be expressed as a “project link,” comprising a text string, wherein the links of the assets associated with the project are included or embedded within the text string, and which may be shared between different users, and may function as a snapshot of the project.

Claims (58)

1. A method implemented by one or more computer processors executing program instructions, the method comprising:

receiving a first link shared by a first user;

providing at least a portion of the first link to at least a first plug-in of one or more plug-ins, wherein the one or more plug-ins are associated with respective one or more external applications or external data sources, and wherein the first plug-in is associated with a first external application or external data source;

parsing, using the first plug-in, at least the portion of the first link;

in response to the parsing, determining that a first link is associated with the first external application or external data source based at least in part on providing at least the portion of the first link to the first plug-in;

determining information encoded in the first link based at least in part on the parsing of at least the portion of the first link using a first plug-in of the one or more plug-ins associated with the first external application or external data source, wherein the information includes at least one or more display parameters indicating a first snapshot of data from the first external application or external data source, wherein the first snapshot specifies an updated version of the data incorporating modifications to the data made by the first user at a time the first link was generated and a state of how the updated version of the data was interactively displayed to the first user at the time the first link was generated;

using the first plug-in to retrieve data from the first external application or external data source as indicated by the first link; and

causing the retrieved data to be displayed in the state indicated by the one or more display parameters encoded in the first link.

2. The method of claim 1 , wherein the first plug-in corresponds to an application for creating one or more graphs from a plurality of stored data points.

3. The method of claim 1 , further comprising:

submitting an authentication token to the first external application or external data source, and wherein the authentication token allows first the plug-in to retrieve a first portion of the data but not a second portion of the data from the first external application or external data source.

4. The method of claim 1 , further comprising:

receiving an indication from the first user of a modification to be made to at least a portion of the displayed data;

performing the modification on the displayed data in response to the received indication; and

generating a first updated link based at least in part upon the modification to the displayed data.

5. The method of claim 1 , wherein the first plug-in retrieves data from the first external application or external data source using an API of the first external application or external data source.

6. A computer system comprising:

one or more computer processors; and

a computer readable storage medium storing program instructions configured to be executed by the one or more computer processors to cause the computing system to:

receive a first link shared by a first user;

provide at least a portion of the first link to at least a first plug-in of one or more plug-ins, wherein the one or more plug-ins are associated with respective one or more external applications or external data sources, and wherein the first plug-in is associated with a first external application or external data source;

parse, by the first plug-in, at least the portion of the first link;

in response to the parsing by the first plug-in, determine that the first link is associated with the first external application or external data source based at least in part on at least the portion of the first link provided to the first plug-in;

determine information encoded in the first link based at least in part on the parsing of at least the portion of the first link using the first plug-in of the one or more plug-ins associated with the first external application or external data source, wherein the information includes at least one or more display parameters indicating a first snapshot of data from the first external application or external data source, wherein the first snapshot specifies an updated version of the data incorporating modifications made to the data made by the first user at a time the first link was generated and a state of how the updated version of the data was interactively displayed to the first user at the time the first link was generated;

using the first plug-in, retrieve the updated version of the data from the first external application or external data source as indicated by the first link; and

cause the retrieved updated version of the data to be displayed in the state specified by the first snapshot indicated by the one or more display parameters encoded in the first link.

7. The computing system of claim 6 , wherein the first plug-in corresponds to an application for creating one or more graphs from a plurality of stored data points.

8. The computing system of claim 7 , wherein the first link specifies one or more graphs created using stored data points.

9. The computing system of claim 6 , wherein the program instructions are further configured to cause the computing system to:

submit an authentication token to the first external application or external data source, and wherein the authentication token allows first the plug-in to retrieve a first portion of the data but not a second portion of the data from the first external application or external data source.

10. The computing system of claim 6 , wherein the first plug-in corresponds to the first external application, the first external application configured for providing a hierarchy of objects associated with one or more data entities.

11. The computing system of claim 10 , wherein the first link corresponds to a particular object associated with a data entity of the one or more data entities, and wherein the retrieved updated version of the data is displayed as a representation of the object and a breadcrumb trail indicating a position of the object within the hierarchy.

12. The computing system of claim 6 , wherein the program instructions are further configured to cause the computing system to:

provide at least a portion of a second link to the one or more plug-ins, the second link associated with a second external application or external data source;

determine that a plug-in associated with the second external application or external data source does not exist; and

in response to the determination that the plug-in associated with the second external application or external data source does not exist, display the second link as text.

13. The computing system of claim 6 , wherein the first link comprises a URL.

14. The computing system of claim 13 , wherein the URL corresponds to an image, and wherein the program instructions cause the computing system to display the image specified by the URL.

15. The computing system of claim 6 , wherein the program instructions are further configured to cause the computing system to:

receive, from the first user, a first indication of a first modification to be made to at least a first portion of the displayed data;

perform the first modification on the displayed data in response to receiving the first indication; and

generate a first updated link based at least in part upon the first modification to the displayed data.

16. The computing system of claim 15 , wherein the program instructions are further configured to cause the computing system to:

receive a second indication from a second user of a second modification to be made to at least a second portion of the displayed data;

generate a second updated link in response to a determination that the second indication was not received between the receipt of the first indication and the generation of the first updated link; and

prevent the generation of the second updated link in response to a determination that the second indication was received between the receipt of the first indication and the generation of the first updated link.

17. The computing system of claim 15 , wherein the first modification comprises changing a field of view of the displayed data associated with the first link.

18. The computing system of claim 6 , wherein the first plug-in retrieves data from the first external application or external data source using an API of the first external application or external data source.

19. The computing system of claim 6 , wherein the first link encodes data indicating at least:

the first external application or external data source;

the data to be retrieved; and

a format in which the data to be retrieved can be accessed.

20. The computing system of claim 6 , wherein the program instructions are further configured to cause the computing system to:

access the first external application or external data source through the first plug-in.

21. The computer system of claim 6 , wherein the program instructions are further configured to cause the computing system to:

provide at least the portion of the first link to a second plug-in of the one or more plug-ins, wherein the second plug-in is associated with a second external application or data source; and

parse, by the second plug-in, at least the portion of the first link to determine that the first link is not associated with the second external application or data source.

22. The computer system of claim 6 , wherein the one or more display parameters include at least one of: a zoom level, graph axis range settings, or graph display settings.

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 Sep 18, 2017
From: FACKLER, STEVEN; SKIFF, DAVID
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 043616/0534 →