IP Library Granted Patent US 8,924,388
Granted Patent B2
US 8,924,388 · App. 14/099,661 · Granted Dec 30, 2014

Computer-implemented systems and methods for comparing and associating objects

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 8,924,388
App. No.
14/099,661
Granted
Dec 30, 2014
Kind
B2
Abstract

Computer-implemented systems and methods are disclosed for comparing and associating objects. In some embodiments, a method is provided for associating a first object with one or more objects within a plurality of objects, each object comprising a first plurality of properties, each property comprising data reflecting a characteristic of an entity represented by the object, the associated objects comprising matching data in corresponding properties for a second plurality of properties. The method may include executing, for each object within the plurality of objects and for the first object, the following: creating a slug for the object, the slug comprising the second plurality of properties from the object; and inputting the slug for the object into a Bloom filter. Further, the method may include creating for a bin within the Bloom filter corresponding to the slug for the first object, an association between objects whose slugs correspond to the bin if the slugs for those objects match.

Claims (41)

1. A method for associating a first object with one or more objects within a plurality of objects, each object comprising a first plurality of properties, each property comprising data reflecting a characteristic of an entity represented by the object, the associated objects comprising matching data in corresponding properties for a second plurality of properties that includes at least some of the first plurality of properties, the method comprising the following operations performed by one or more processors:

executing, for each object within the plurality of objects and for the first object, the following:

creating a slug for the object, the slug comprising the second plurality of properties from the object; and

inputting the slug for the object into a Bloom filter; and

creating for a bin within the Bloom filter corresponding to the slug for the first object, an association between objects whose slugs correspond to the bin if the slugs for those objects match.

2. The method of claim 1 , further comprising:

sizing the Bloom filter for a predetermined error rate and number of objects within the plurality of objects.

3. The method of claim 1 , further comprising:

reading the plurality of objects from at least one database.

4. The method of claim 3 , further comprising determining if the slugs within the bin corresponding to the slug for the first object match the slug for the first object comprises the following operations performed by one or more processors:

inputting for each slug in the bin corresponding to the slug for the first object, the each slug and its corresponding object into a multimap, wherein the slug for the each object is a key to the multimap and its corresponding object is a value to the multimap; and

associating objects in the multimap whose key matches the slug for the first object.

5. The method of claim 4 , wherein the slug comprises a concatenation of two or more strings separated by a delimiter between each concatenated string.

6. The method of claim 5 , wherein the delimiter comprises a character that is not otherwise present in the strings that were concatenated.

7. The method of claim 5 , wherein the delimiter comprises a sequence of two or more characters and the sequence of two or more characters is not present in any of the two or more strings that were concatenated.

8. The method of claim 5 , wherein the number of properties in the first plurality of properties equals the number of properties in the second plurality of properties.

9. The method of claim 5 , wherein the number of properties in the first plurality of properties is greater than the number of properties in the second plurality of properties.

10. A method for associating objects within one or more groups of objects within a plurality of objects, each object comprising a first plurality of properties, each property comprising data reflecting a characteristic of an entity represented by the object, the associated objects within a group of objects comprising matching data in corresponding properties for a second plurality of properties that includes at least some of the first plurality of properties, the method comprising the following operations performed by one or more processors:

executing, for each object within the plurality of objects, the following:

creating a slug for the object, the slug comprising the second plurality of properties from the object; and

inputting the slug for the object into a counting Bloom filter;

inputting for each created slug, the slug and its corresponding object into a multimap, if a bin within the counting Bloom filter corresponding to the slug has a count value greater than 1, wherein the slug is a key to the multimap and the object is a value to the multimap; and

associating the objects stored as values for each multimap key with two or more corresponding values.

11. The method of claim 10 , further comprising:

sizing the counting Bloom filter for a predetermined error rate and number of objects within the plurality of objects.

12. The method of claim 11 , further comprising:

reading the plurality of objects from at least one database.

13. The method of claim 12 , wherein each entry in the counting Bloom filter comprises a 2-bit counter.

14. The method of claim 13 , wherein each 2-bit counter is a saturation counter.

15. The method of claim 11 , wherein the slug comprises a concatenation of two or more strings separated by a delimiter between each concatenated string.

16. The method of claim 15 , wherein the delimiter comprises a character that is not otherwise present in the strings that were concatenated.

17. The method of claim 15 , wherein the delimiter comprises a sequence of two or more characters and the sequence of two or more characters is not present in any of the two or more strings that were concatenated.

18. The method of claim 15 , wherein the number of properties in the first plurality of properties equals the number of properties in the second plurality of properties.

19. The method of claim 15 , wherein the number of properties in the first plurality of properties is greater than the number of properties in the second plurality of properties.

20. A system for associating a first object with one or more objects within a plurality of objects, each object comprising a first plurality of properties, each property comprising data reflecting a characteristic of an entity represented by the object, the associated objects comprising matching data in corresponding properties for a second plurality of properties that includes at least some of the first plurality of properties, the system comprising:

a memory device that stores a set of instructions; and

at least one processor that executes the set of instructions to perform the following operations:

executing, for each object within the plurality of objects and for the first object, the following:

creating a slug for the object, the slug comprising the second plurality of properties from the object; and

inputting the slug for the object into a Bloom filter; and

creating for a bin within the Bloom filter corresponding to the slug for the first object, an association between objects whose slugs correspond to the bin if the slugs for those objects match.

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 Dec 6, 2013
From: ELLIOT, MARK; CHANG, ALLEN
To: PALANTIR TECHNOLOGIES, INC.
Reel/Frame 031735/0708 →