IP Library Granted Patent US 11,341,157
Granted Patent B2
US 11,341,157 · App. 16/567,837 · Granted May 24, 2022

Filter chains for exploring large data sets

Inventors: Adit Kumar (New York, NY); Lindsay Canfield (Santa Clara, CA); Karl Hanson (Palo Alto, CA); Kevin Simler (Palo Alto, CA); Beyang Liu (Menlo Park, CA)
Assignee: Palantir Technologies Inc.
G06F16/26G06F16/335G06F16/35G06F16/904
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,341,157
App. No.
16/567,837
Granted
May 24, 2022
Kind
B2
Abstract

A multipath explorer may allow a user to quickly visualize an entire population of data hierarchically in a tree-like structure. For example, a user can select a first filter to be applied to a data set, and the multipath explorer can display data in the data set that satisfies the first filter requirements and data in the data set that does not satisfy the first filter requirements. A second filter can be applied to the data in the data set, and the multipath explorer can display data in the data set that satisfies the first and second filter requirements, data in the data set that satisfies the first filter requirements and not the second filter requirements, data in the data set that satisfies the second filter requirements and not the first filter requirements, and data in the data set that does not satisfy the first or second filter requirements.

Claims (120)

1. A computing system comprising:

non-transitory computer storage storing a plurality of data objects; and

one or more computing devices programmed, via executable code instructions, to:

apply a first filter to the plurality of data objects, the plurality of data objects including a starting quantity of data objects, to determine:

a first set of data objects from the plurality of data objects that satisfy the first filter, the first set including a first quantity of data objects;

apply a second filter to the plurality of data objects to determine:

a second set of data objects from the plurality of data objects that satisfy the second filter, the second set including a second quantity of data objects;

apply a third filter to the first and the second sets of data objects to determine:

a third set of data objects from both the first and the second set of data objects that satisfy the third filter, the third set including a third quantity of data objects;

apply a transform filter to the third set of data objects to determine:

a set of object properties from a property associated with each respective data object in the third set of data objects; and

generate or update a user interface to include:

concurrent graphical representations of:

a first segment having a top width representative of the starting quantity and a bottom width representative of the first quantity;

a second segment positioned adjacent and below the first segment, the second segment having a top width representative of the first quantity and a bottom width representative of the second quantity; and

wherein the graphical representation includes a selectable control associated with the first segment and, in response to user selection of the selectable control, an order of filtering is adjusted so that the second filter is applied prior to the first filter, causing updates to the graphical representation so that:

 the top width of the first segment is representative of the starting quantity and the bottom width of the first segment is representative of the second quantity, and

 the top width of the second segment is representative of the second quantity and the bottom width of the second segment is representative of the first quantity; and

concurrent graphical representations of:

a root node indicating a root quantity of objects in the plurality of data objects;

a first node associated with the first filter and indicating the first quantity, wherein the first node is displayed as linked to the root node;

a second node associated with the second filter and indicating the second quantity, wherein the second node is displayed as linked to the root node;

a third node associated with the third filter and indicating the third quantity, wherein the third node is displayed as linked to the first and second nodes; and

a fourth node associated with the transform filter and indicating a quantity of unique object properties in the set of object properties, wherein the fourth node is displayed as linked to the third node;

wherein the first node is selectable to initiate display of one or more of a first list or a first graph associated with the first set of data objects;

wherein the second node is selectable to initiate display of one or more of a second list or a second graph associated with the second set of data objects;

wherein the third node is selectable to initiate display of one or more of a third list or a third graph associated with the third set of data objects; and

wherein the fourth node is selectable to initiate display of one or more of a fourth list or a fourth graph associated with the set of object properties.

2. The computing system of claim 1 , wherein each data object of the plurality of data objects is a home data object.

3. The computing system of claim 1 , wherein application of the first filter is in response to a user selection.

4. The computing system of claim 1 , wherein the plurality of data objects is selected by a user.

5. The computing system of claim 1 , wherein the one or more computing devices are further programmed, via executable code instructions, to:

generate a report based at least on data from the first set of data objects and the second set of data objects, wherein a format of the report comprises at least one of a text format, a word processing format, a spreadsheet format, or a portable document format.

6. The computing system of claim 1 , wherein the transform filter comprises a user-specified transform metric.

7. The computing system of claim 1 , wherein the plurality of data objects is selected through a graphical user interface.

8. The computing system of claim 1 , wherein at least one data object of the plurality of data objects corresponds to at least one of a buyer, seller, entity, or real estate agent.

9. Non-transitory computer storage comprising instructions for causing one or more computing devices to perform operations comprising:

applying a first filter to a plurality of data objects, the plurality of data objects including a starting quantity of data objects, to determine:

a first set of data objects from the plurality of data objects that satisfy the first filter, the first set including a first quantity of data objects;

applying a second filter to the plurality of data objects to determine:

a second set of data objects from the plurality of data objects that satisfy the second filter, the second set including a second quantity of data objects;

applying a third filter to the first and the second sets of data objects to determine:

a third set of data objects from both the first and the second set of data objects that satisfy the third filter, the third set including a third quantity of data objects;

applying a transform filter to the third set of data objects to determine:

a set of object properties from a property associated with each respective data object in the third set of data objects; and

generating or updating a user interface to include:

concurrent graphical representations of:

a first segment having a top width representative of the starting quantity and a bottom width representative of the first quantity;

a second segment positioned adjacent and below the first segment, the second segment having a top width representative of the first quantity and a bottom width representative of the second quantity; and

wherein the graphical representation includes a selectable control associated with the first segment and, in response to user selection of the selectable control, an order of filtering is adjusted so that the second filter is applied prior to the first filter, causing updates to the graphical representation so that:

the top width of the first segment is representative of the starting quantity and the bottom width of the first segment is representative of the second quantity, and

the top width of the second segment is representative of the second quantity and the bottom width of the second segment is representative of the first quantity; and

concurrent graphical representations of:

a root node indicating a root quantity of objects in the plurality of data objects;

a first node associated with the first filter and indicating the first quantity, wherein the first node is displayed as linked to the root node;

a second node associated with the second filter and indicating the second quantity, wherein the second node is displayed as linked to the root node;

a third node associated with the third filter and indicating the third quantity, wherein the third node is displayed as linked to the first and second nodes; and

a fourth node associated with the transform filter and indicating a quantity of unique object properties in the set of object properties, wherein the fourth node is displayed as linked to the third node;

wherein the first node is selectable to initiate display of one or more of a first list or a first graph associated with the first set of data objects;

wherein the second node is selectable to initiate display of one or more of a second list or a second graph associated with the second set of data objects;

wherein the third node is selectable to initiate display of one or more of a third list or a third graph associated with the third set of data objects; and

wherein the fourth node is selectable to initiate display of one or more of a fourth list or a fourth graph associated with the set of object properties.

10. The computing system of claim 1 , wherein the one or more computing devices are further programmed, via the executable code instructions, to:

generate or update a user interface to include a graphical representation of:

a third segment positioned adjacent and below the second segment, the third segment having a top width representative of the second quantity and a bottom width representative of the third quantity.

11. The non-transitory computer storage of claim 9 , wherein each data object of the plurality of data objects is a home data object.

12. The non-transitory computer storage of claim 9 , wherein application of the first filter is in response to a user selection.

13. The non-transitory computer storage of claim 9 , wherein the plurality of data objects is selected by a user.

14. The non-transitory computer storage of claim 9 , wherein the transform filter comprises a user-specified transform metric.

15. A computer-implemented method comprising:

applying a first filter to a plurality of data objects, the plurality of data objects including a starting quantity of data objects, to determine:

a first set of data objects from the plurality of data objects that satisfy the first filter, the first set including a first quantity of data objects;

applying a second filter to the plurality of data objects to determine:

a second set of data objects from the plurality of data objects that satisfy the second filter, the second set including a second quantity of data objects;

applying a third filter to the first and the second sets of data objects to determine:

a third set of data objects from both the first and the second set of data objects that satisfy the third filter, the third set including a third quantity of data objects;

applying a transform filter to the third set of data objects to determine:

a set of object properties from a property associated with each respective data object in the third set of data objects; and

generating or updating a user interface to include:

concurrent graphical representations of:

a first segment having a top width representative of the starting quantity and a bottom width representative of the first quantity;

a second segment positioned adjacent and below the first segment, the second segment having a top width representative of the first quantity and a bottom width representative of the second quantity; and

wherein the graphical representation includes a selectable control associated with the first segment and, in response to user selection of the selectable control, an order of filtering is adjusted so that the second filter is applied prior to the first filter, causing updates to the graphical representation so that:

the top width of the first segment is representative of the starting quantity and the bottom width of the first segment is representative of the second quantity, and

the top width of the second segment is representative of the second quantity and the bottom width of the second segment is representative of the first quantity; and

concurrent graphical representations of:

a root node indicating a root quantity of objects in the plurality of data objects;

a first node associated with the first filter and indicating the first quantity, wherein the first node is displayed as linked to the root node;

a second node associated with the second filter and indicating the second quantity, wherein the second node is displayed as linked to the root node;

a third node associated with the third filter and indicating the third quantity, wherein the third node is displayed as linked to the first and second nodes; and

a fourth node associated with the transform filter and indicating a quantity of unique object properties in the set of object properties, wherein the fourth node is displayed as linked to the third node;

wherein the first node is selectable to initiate display of one or more of a first list or a first graph associated with the first set of data objects;

wherein the second node is selectable to initiate display of one or more of a second list or a second graph associated with the second set of data objects;

wherein the third node is selectable to initiate display of one or more of a third list or a third graph associated with the third set of data objects; and

wherein the fourth node is selectable to initiate display of one or more of a fourth list or a fourth graph associated with the set of object properties.

16. The computer-implemented method of claim 15 , wherein each data object of the plurality of data objects is a home data object.

17. The computer-implemented method of claim 15 , wherein the application of the first filter is in response to a user selection.

18. The computer-implemented method of claim 15 , wherein the plurality of data objects is selected by a user.

19. The computer-implemented method of claim 15 , wherein the transform filter comprises a user-specified transform metric.

20. A computing system comprising:

non-transitory computer storage storing a plurality of data objects; and

one or more computing devices programmed, via executable code instructions, to:

apply a first filter to the plurality of data objects, the plurality of data objects including a starting quantity of data objects, to determine:

a first set of data objects from the plurality of data objects that satisfy the first filter, the first set including a first quantity of data objects;

apply a second filter to the plurality of data objects to determine:

a second set of data objects from the plurality of data objects that satisfy the second filter, the second set including a second quantity of data objects;

apply a third filter to the first and the second sets of data objects to determine:

a third set of data objects from both the first and the second set of data objects that satisfy the third filter, the third set including a third quantity of data objects;

apply a transform filter to the third set of data objects to determine:

a set of object properties from a property associated with each respective data object in the third set of data objects; and

generate or update a user interface to include:

concurrent graphical representations of:

a first segment having a top width representative of the starting quantity and a bottom width representative of the first quantity;

a second segment positioned adjacent and below the first segment, the second segment having a top width representative of the first quantity and a bottom width representative of the second quantity; and

wherein the graphical representation includes a selectable control associated with the first segment and, in response to user selection of the selectable control, an order of filtering is adjusted so that the second filter is applied prior to the first filter, causing updates to the graphical representation so that:

the top width of the first segment is representative of the starting quantity and the bottom width of the first segment is representative of the second quantity, and

the top width of the second segment is representative of the second quantity and the bottom width of the second segment is representative of the first quantity.

21. The computing system of claim 20 , wherein the one or more computing devices are further programmed, via the executable code instructions, to:

generate or update a user interface to include a graphical representation of:

a third segment positioned adjacent and below the second segment, the third segment having a top width representative of the second quantity and a bottom width representative of the third quantity.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2023
From: KUMAR, ADIT; CANFIELD, LINDSAY; HANSON, KARL; SIMLER, KEVIN; LIU, BEYANG
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 064810/0967 →
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 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
Continuity (4)
Continuation 14562420 · Dec 5, 2014
Continuation 14149608 · Jan 7, 2014
Provisional Application 61794653 · Mar 15, 2013
Related Publication 20200110758A1 · Apr 9, 2020