IP Library Granted Patent US 10,467,294
Granted Patent B2
US 10,467,294 · App. 15/435,122 · Granted Nov 5, 2019

Systems and methods of using a bitmap index to determine bicliques

Inventors: Travis Turner (Austin, TX); Ryan Edward Ebanks (Austin, TX); Kevin Troy Safford (Austin, TX); Matthew Isaac Jaffee (Austin, TX); Todd Wesley Gruben (Cedar Park, TX); Cody Stephen Soyland (Austin, TX); Higinio O. Maycotte (Austin, TX); Charles Martin (Austin, TX)
Assignee: Pilosa Corp.
G06F16/90344G06F16/9024G06F16/90335G06F16/951G06Q30/0201
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,467,294
App. No.
15/435,122
Granted
Nov 5, 2019
Kind
B2
Abstract

A method includes receiving, at a computing device comprising a processor, a request to determine bicliques in a graph, where the graph includes a first set of nodes, a second set of nodes, and a set of edges, each edge in the set of edges connecting a node in the first set of nodes to a node in the second set of nodes. The method also includes determining at least one biclique based on querying a bitmap index representing the graph, where the bitmap index includes a plurality of bit strings corresponding to the first set of nodes, and where a value stored in a particular location in each bit string indicates whether an edge connects a first node corresponding to the bit string to a second node corresponding to the particular location.

Claims (40)

1. A method comprising:

receiving, at a computing device comprising a processor, a request to determine bicliques in a graph, wherein the graph includes a first set of nodes, a second set of nodes, and a set of edges, each edge in the set of edges connecting a node in the first set of nodes to a node in the second set of nodes; and

determining at least one biclique based on querying a bitmap index representing the graph, wherein the bitmap index includes a plurality of bit strings corresponding to the first set of nodes, and wherein a value stored in a particular location in each bit string indicates whether an edge connects a first node corresponding to the bit string to a second node corresponding to the particular location.

2. The method of claim 1 , wherein the bitmap index represents data stored in a data store.

3. The method of claim 2 , wherein the data stored in the data store is determined based on event signals received from devices associated with users that accessed a website.

4. The method of claim 3 , wherein the graph includes nodes corresponding to less than all of the users.

5. The method of claim 3 , wherein the graph includes nodes corresponding to a custom segment of the users.

6. The method of claim 3 , wherein the graph corresponds to top N signals associated with the website, wherein N is an integer greater than or equal to one.

7. The method of claim 3 , wherein the event signals include at least one registration event signal.

8. The method of claim 1 , wherein one or more of the plurality of bit strings corresponds to a demographic attribute, a behavior, a brand affinity, or a combination thereof.

9. The method of claim 1 , wherein the bitmap index is distributed across a plurality of storage nodes.

10. The method of claim 9 , wherein each of the plurality of bit strings is stored as one or more distributed slices, and wherein at least a first slice of a particular bit string of the plurality of bit strings is stored in a different storage node than a second slice of the particular bit string.

11. The method of claim 1 , wherein determining the at least one biclique includes:

determining a third set of nodes;

determining a fourth set of nodes; and

outputting an indication that a combination of the third set of nodes and the fourth set of nodes corresponds to a maximal biclique of the graph.

12. The method of claim 1 , wherein querying the bitmap index includes generating a query execution plan for a query.

13. The method of claim 12 , wherein the query execution plan identifies:

one or more set operations;

that one or more first storage nodes are to send stored portions of one or more bit strings to a second storage node;

that the second storage node is to perform the one or more set operations with respect to:

the portions of the one or more bit strings received from the one or more first storage nodes; and

portions of one or more bit strings stored at the second storage node; and

that the second storage node is to concatenate results of performing the one or more set operations to generate a result bit string that indicates a result of the query.

14. An apparatus comprising:

a processor; and

a memory storing instructions executable by the processor to perform operations comprising:

receiving a request to determine bicliques in a graph, wherein the graph includes a first set of nodes, a second set of nodes, and a set of edges, each edge in the set of edges connecting a node in the first set of nodes to a node in the second set of nodes; and

determining at least one biclique based on querying a bitmap index representing the graph, wherein the bitmap index includes a plurality of bit strings corresponding to the first set of nodes, and wherein a value stored in a particular location in each bit string indicates whether an edge connects a first node corresponding to the bit string to a second node corresponding to the particular location.

15. The apparatus of claim 14 , wherein the bitmap index represents data stored in a data store.

16. The apparatus of claim 15 , wherein the data stored in the data store represents users that accessed a website, wherein the biclique corresponds to a target segment, the target segment corresponding to fewer than all of the users that accessed the website.

17. The apparatus of claim 14 , wherein the bitmap index is distributed across a plurality of storage nodes.

18. The apparatus of claim 17 , wherein each of the plurality of bit strings is stored as one or more distributed slices, and wherein at least a first slice of a particular bit string is stored in a different storage node than a second slice of the particular bit string.

19. A computer readable storage device storing instructions that, when executed, cause a computer to perform operations comprising:

receiving, at a first storage node, a request to determine bicliques in a graph, wherein the graph includes a first set of nodes, a second set of nodes, and a set of edges, each edge in the set of edges connecting a node in the first set of nodes to a node in the second set of nodes; and

determining at least one biclique based on querying a bitmap index representing the graph, wherein the bitmap index includes a plurality of bit strings corresponding to the first set of nodes, and wherein a value stored in a particular location in each bit string indicates whether an edge connects a first node corresponding to the bit string to a second node corresponding to the particular location.

20. The computer readable storage device of claim 19 , wherein the bitmap index is generated by a measurement system, and wherein the graph corresponds to at least one of:

less than all users tracked by the measurement system,

a custom segment of the users tracked by the measurement system, or

top N signals tracked by the measurement system, wherein N is an integer greater than or equal to one.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2025
From: CIRCUIT, INC.
To: CIRCUIT HOLDINGS, INC.
Reel/Frame 072497/0436 →
MERGER AND CHANGE OF NAME Recorded Aug 15, 2024
From: MOLECULA CORP.; CIRCUIT MERGER SUB, INC.
To: CIRCUIT, INC.
Reel/Frame 068300/0045 →
SECURITY INTEREST Recorded Feb 12, 2024
From: MOLECULA CORP.
To: FIRST-CITIZENS BANK & TRUST COMPANY (SUCCESSOR BY PURCHASE TO THE FEDERAL DEPOSIT INSURANCE CORPORATION AS RECEIVER FOR SILICON VALLEY BRIDGE BANK, N.A. (AS SUCCESSOR TO SILICON VALLEY BANK))
Reel/Frame 066440/0187 →
CHANGE OF NAME Recorded Nov 22, 2019
From: PILOSA CORP.
To: MOLECULA CORP.
Reel/Frame 051097/0072 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SECOND LISTED INVENTOR PREVIOUSLY RECORDED AT REEL: 041282 FRAME: 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 26, 2017
From: TURNER, TRAVIS; EBANKS, RYAN EDWARD; SAFFORD, KEVIN TROY; JAFFEE, MATTHEW ISAAC; GRUBEN, TODD WESLEY; SOYLAND, CODY STEPHEN; MAYCOTTE, HIGINIO O.; MARTIN, CHARLES
To: UMBEL CORPORATION
Reel/Frame 042590/0916 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2017
From: UMBEL CORP.
To: PILOSA CORP.
Reel/Frame 042086/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2017
From: TURNER, TRAVIS; EBANKS, RYAN EDWARDS; SAFFORD, KEVIN TROY; JAFFEE, MATTHEW ISAAC; GRUBEN, TODD WESLEY; SOYLAND, CODY STEPHEN; MAYCOTTE, HIGINIO O.; MARTIN, CHARLES
To: UMBEL CORPORATION
Reel/Frame 041282/0012 →
Continuity (2)
Continuation 15143021 · Apr 29, 2016
Related Publication 20170316111A1 · Nov 2, 2017