IP Library Granted Patent US 11,429,986
Granted Patent B2
US 11,429,986 · App. 16/346,372 · Granted Aug 30, 2022

Realtime busyness for places

Inventors: Frank Russo (Sunnyvale, CA); Luuk Van Dijk (Zürich, CH); Paul Donnelly (San Jose, CA); Quang Duong (San Francisco, CA); James Aspinall (San Francisco, CA); Finnegan Southey (San Francisco, CA); Steve Chien (San Carlos, CA)
Assignee: Google LLC
G06Q30/0201G06F16/2255
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,429,986
App. No.
16/346,372
Granted
Aug 30, 2022
Kind
B2
Abstract

Real-time busyness information is for a public place is computed in a privacy-sensitive way, and provided for display in relation to historical busyness information. An aggregate amount of real-time location information available for a particular public place is measured ( 410 ), and used to determine ( 420 ) whether the public place is privacy-qualified. If the public place is privacy-qualified, real-time busyness information is computed ( 440 ) for the public place based on the real-time location information. Further, it is determined ( 450 ) whether the computed real-time busyness information is accuracy-qualified, based on a comparison of the real-time busyness information to historical busyness information. If both qualifications are met, the real-time busyness information is output ( 470 ) for display or to another application.

Claims (76)

1. A method, comprising:

receiving, at one or more processors, a request for information about a particular public place;

computing a hash of an identifier uniquely assigned to a user at the particular public place;

setting a threshold number of hash values to be stored in a predetermined portion of a data structure for the particular public place;

measuring, using the one or more processors, an aggregate amount of real-time location information available for the particular public place, the measuring comprising:

determining a number of unique hashes having location data that corresponds to the particular public place; and

storing the number of unique hashes corresponding to location data in the predetermined portion of the data structure;

determining, with the one or more processors, whether the public place meets a first qualification based on privacy, wherein the first qualification is met when the aggregate amount of available real-time location information for the public place meets or exceeds a predetermined threshold, the determining comprising determining whether the threshold number of hash values for the public place is reached within a predetermined period of time, thereby minimizing an amount of real-time location information to be stored at any instant in time;

when the public place does not meet the first qualification, reducing an amount of information stored by removing from the predetermined portion of the data structure the stored unique hashes, thereby conserving resources;

when the public place meets the first qualification, generating, with the one or more processors, real-time busyness information for the public place based on the real-time location information;

determining whether the computed real-time busyness information meets a second qualification based on an accuracy of the real-time busyness information; and

providing for display, when the computed real-time busyness information meets the second qualification, the generated real-time busyness information for the particular public place in response to the request.

2. The method of claim 1 , wherein determining whether the public place meets the first qualification based on the amount of available real-time location information further comprises:

computing a hash of an identifier, the identifier uniquely assigned to a user at the particular public place;

counting a number of unique hashes having location data that, within a predetermined period of time, corresponds to the particular public place; and

determining, with the one or more processors, whether a threshold number of unique hashes for the public place are reached within the predetermined period of time.

3. The method of claim 2 , wherein counting the number of unique hashes comprises filling a predetermined portion of a first data structure.

4. The method of claim 3 , wherein the data structure is a first bit vector.

5. The method of claim 1 , wherein computing the real-time busyness information for the public place comprises:

aggregating the unique hashes within a second data structure; and

determining, with the one or more processors, a duration of time during which the unique hashes were aggregated.

6. The method of claim 5 , further comprising:

emptying the second data structure each time it is filled; and

counting a number of times the second data structure is emptied.

7. The method of claim 1 , wherein determining whether the computed real-time busyness information meets the second qualification comprises comparing, over an evaluation period, the computed real-time busyness information for the public place to historical real-time busyness information for the public place for each hour that the public place was open during the evaluation period.

8. The method of claim 7 , further comprising:

counting a first number of hours that differ beyond a first threshold;

counting a second number of hours that match beyond a second threshold;

determining whether the first number of hours is less than a first predetermined percentage of the total open hours in the evaluation period; and

determining whether the second number of hours is greater than a second predetermined percentage of the total open hours in the evaluation period.

9. The method of claim 1 , further comprising providing for display historical busyness information for the public place, the historical information provided in relation to the real-time information.

10. A system, comprising:

a memory; and

one or more processors in communication with the memory, the one or more processors configured to:

receive a request for information about a particular public place;

compute a hash of an identifier uniquely assigned to a user at the particular public place;

set a threshold number of hash values to be stored in a predetermined portion of a data structure for the particular public place;

measure an aggregate amount of real-time location information available for the particular public place, comprising:

determine a number of unique hashes having location data that corresponds to the particular public place; and

store the number of unique hashes corresponding to location data in the predetermined portion of the data structure;

determine whether the public place meets a first qualification based on privacy, wherein the first qualification is met when the aggregate amount of available real-time location information for the public place meets or exceeds a predetermined threshold, the determining comprising determining whether the threshold number of hash values for the public place is reached within a predetermined period of time, thereby minimizing an amount of real-time location information to be stored at any instant in time;

when the public place does not meet the first qualification, reduce an amount of information stored by removing from the predetermined portion of the data structure the stored unique hashes, thereby conserving resources;

when the public place meets the first qualification, generate real-time busyness information for the public place based on the real-time location information;

determine whether the computed real-time busyness information meets a second qualification based on an accuracy of the real-time busyness information; and

provide for display, when the computed real-time busyness information meets the second qualification, the generated real-time busyness information for the particular public place in response to the request.

11. The system of claim 10 , wherein in determining whether the public place meets the first qualification based on the amount of available real-time location information, the one or more processors are further configured to:

compute a hash of an identifier, the identifier uniquely assigned to a user at the particular public place;

count a number of unique hashes having location data that, within a predetermined period of time, corresponds to the particular public place; and

determine whether a threshold number of unique hashes for the public place are reached within the predetermined period of time.

12. The system of claim 11 , wherein counting the number of unique hashes comprises filling a predetermined portion of a first data structure.

13. The system of claim 12 , wherein the data structure is a first bit vector.

14. The system of claim 10 , wherein in computing the real-time busyness information for the public place, the one or more processors are further configured to:

aggregate the unique hashes within a second data structure; and

determine a duration of time during which the unique hashes were aggregated.

15. The system of claim 14 , wherein the one or more processors are further configured to:

empty the second data structure each time it is filled; and

count a number of times the second data structure is emptied.

16. The system of claim 10 , wherein determining whether the computed real-time busyness information meets the second qualification comprises comparing, over an evaluation period, the computed real-time busyness information for the public place to historical real-time busyness information for the public place for each hour that the public place was open during the evaluation period.

17. The system of claim 16 , wherein the one or more processors are further configured to:

count a first number of hours that differ beyond a first threshold;

count a second number of hours that match beyond a second threshold;

determine whether the first number of hours is less than a first predetermined percentage of the total open hours in the evaluation period; and

determine whether the second number of hours is greater than a second predetermined percentage of the total open hours in the evaluation period.

18. The system of claim 10 , wherein the one or more processors are further configured to provide for display historical busyness information for the public place, the historical information provided in relation to the real-time information.

19. A non-transitory computer-readable storage medium storing instructions executable by one or more processors for performing a method, comprising:

receiving a request for information about a particular public place;

computing a hash of an identifier uniquely assigned to a user at the particular public place;

setting a threshold number of hash values to be stored in a predetermined portion of a data structure for the particular public place;

measuring an aggregate amount of real-time location information available for the particular public place, the measuring comprising:

determining a number of unique hashes having location data that corresponds to the particular public place; and

storing the number of unique hashes corresponding to location data in the predetermined portion of the data structure;

determining whether the public place meets a first qualification based on privacy, wherein the first qualification is met when the aggregate amount of available real-time location information for the public place meets or exceeds a predetermined threshold, the determining comprising determining whether the threshold number of hash values for the public place is reached within a predetermined period of time, thereby minimizing an amount of real-time location information to be stored at any instant in time;

when the public place does not meet the first qualification, reducing an amount of information stored by removing from the predetermined portion of the data structure the stored unique hashes, thereby conserving resources;

when the public place meets the first qualification, generating real-time busyness information for the public place based on the real-time location information;

determining whether the computed real-time busyness information meets a second qualification based on an accuracy of the real-time busyness information; and

providing for display, when the computed real-time busyness information meets the second qualification, the generated real-time busyness information for the particular public place in response to the request.

Assignments (2)
CHANGE OF NAME Recorded May 2, 2019
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 049067/0370 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2019
From: RUSSO, FRANK; VAN DIJK, LUUK; DONNELLY, PAUL; DUONG, QUANG; ASPINALL, JAMES; SOUTHEY, FINNEGAN; CHIEN, STEVE
To: GOOGLE INC.
Reel/Frame 049046/0059 →
Continuity (1)
Related Publication 20200058039A1 · Feb 20, 2020