IP Library Granted Patent US 9,641,393
Granted Patent B2
US 9,641,393 · App. 14/816,563 · Granted May 2, 2017

Forming crowds and providing access to crowd data in a mobile environment

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 9,641,393
App. No.
14/816,563
Granted
May 2, 2017
Kind
B2
Abstract

A system and method are provided for forming crowds of users and providing access to corresponding crowd data. In one embodiment, a central system, which includes one or more servers, operates to obtain current locations for users of mobile devices. The system forms a crowd including a number of users based on the current locations of the number of users using a spatial crowd formation process based on an optimal inclusion distance that is a function of density of users of the plurality of users within a bounding region. The central system then generates crowd data for the crowd and provides access to the crowd data for the crowd. In one embodiment, the crowd data for the crowd includes an aggregate profile for the crowd. In another embodiment, the crowd data includes data characterizing the crowd. The central system provides access to the crowd data by serving crowd data requests.

Claims (53)

1. A method of operation of a server computer, comprising:

obtaining, by the server computer, current locations of a plurality of users of a plurality of mobile devices each of the plurality of users being a user of a corresponding one of the plurality of mobile devices;

forming, by the server computer, a crowd including a number of users from the plurality of users based on the current locations of the number of users, wherein forming the crowd comprises using a spatial crowd formation process based on an optimal inclusion distance that is a function of density of users of the plurality of users within a bounding region for the spatial crowd formation process, the optimal inclusion distance subject to change as the crowd is formed;

generating, by the server computer, crowd data regarding the crowd, the crowd data comprising an aggregate profile for the crowd; and

providing, by the server computer, access to the crowd data in response to receiving a request for the crowd data.

2. The method of claim 1 wherein generating the crowd data regarding the crowd comprises generating the aggregate profile for the crowd based on a comparison of user profiles of the number of users in the crowd and a user profile associated with a requestor for which the aggregate profile for the crowd is generated.

3. The method of claim 2 wherein the user profiles of the number of users in the crowd and the user profile associated with the requestor each comprises one or more keywords, and generating the aggregate profile for the crowd based on the comparison of the user profiles of the number of users in the crowd and the user profile associated with the requestor comprises:

for each user of the number of users in the crowd, performing a comparison of the one or more keywords in the user profile of the user in the crowd to the one or more keywords in the user profile associated with the requestor to identify matching keywords; and

based on the comparisons, generating the aggregate profile such that the aggregate profile includes at least one of a group consisting of: a number of user matches over all keywords which identify a number of the number of users having user profiles that include at least one keyword that matches a keyword in the user profile associated with the requestor, a number of user matches for each of one or more keywords from the user profile associated with the requestor, a ratio of the number of user matches over all keywords to a total number of users in the crowd, and a ratio of user matches to the total number of users for each of one or more keywords from the user profile associated with the requestor.

4. The method of claim 2 wherein the requestor is one of the plurality of users, and the user profile associated with the requestor is one of a group consisting of: a user profile of the one of the plurality of users, a select subset of a user profile of the one of the plurality of users, and a target user profile.

5. The method of claim 1 wherein generating the crowd data regarding the crowd comprises generating the aggregate profile for the crowd based on a comparison of user profiles of the number of users in the crowd to one another.

6. The method of claim 5 wherein the user profiles of the number of users in the crowd each comprise one or more keywords, and generating the aggregate profile for the crowd based on the comparison of the user profiles of the number of users in the crowd to one another comprises generating the aggregate profile such that the aggregate profile includes at least one of a group consisting of: a number of user matches for each of one or more keywords from the user profiles of the number of users in the crowd and a ratio of user matches to a total number of users for each of one or more keywords from the user profiles of the number of users in the crowd.

7. The method of claim 1 wherein generating the crowd data regarding the crowd comprises generating data identifying a degree of fragmentation of the crowd such that the crowd data comprises the data identifying the degree of fragmentation of the crowd.

8. The method of claim 7 wherein the data identifying the degree of fragmentation of the crowd comprises at least one of a group consisting of: a number of crowd fragments in the crowd and an average number of users per crowd fragment in the crowd.

9. The method of claim 7 wherein generating the data identifying the degree of fragmentation of the crowd comprises dividing the crowd into one or more crowd fragments using a spatial crowd fragmentation process.

10. The method of claim 9 wherein dividing the crowd into the one or more crowd fragments using the spatial crowd fragmentation process comprises:

creating a crowd fragment for each user in the crowd;

identifying two closest crowd fragments;

determining a distance between the two closest crowd fragments;

determining whether the distance between the two closest crowd fragments is less than the optimal inclusion distance for a crowd fragment;

combining the two closest crowd fragments if the distance between the two closest crowd fragments is less than the optimal inclusion distance for a crowd fragment; and

repeating the steps of identifying two closest crowd fragments, determining a distance between the two closest crowd fragments, determining whether the distance between the two closest crowd fragments is less than the optimal inclusion distance for a crowd fragment, and combining the two closest crowd fragments.

11. The method of claim 7 wherein generating the data identifying the degree of fragmentation of the crowd comprises dividing the crowd into one or more crowd fragments using a connectivity-based crowd fragmentation process.

12. The method of claim 11 wherein dividing the crowd into the one or more crowd fragments using the connectivity-based crowd fragmentation process comprises:

creating a crowd fragment for each user in the crowd;

identifying a pair of crowd fragments having a pair of users including a first user from a first crowd fragment of the pair of crowd fragments having a required social network relationship with a second user from a second crowd fragment of the pair of crowd fragments;

combining the pair of crowd fragments; and

repeating the steps of identifying a pair of crowd fragments and combining the pair of crowd fragments.

13. The method of claim 12 wherein the required social network relationship is a degree of separation (DOS) that is less than a predefined maximum DOS and a required bidirectionality state.

14. The method of claim 1 wherein generating the crowd data regarding the crowd comprises:

dividing the crowd into one or more crowd fragments; and

for each crowd fragment of at least one of the one or more crowd fragments, generating a best-case average degree of separation (DOS) for the crowd fragment such that the crowd data comprises the best-case average DOS for the crowd fragment.

15. The method of claim 14 wherein generating the best-case average DOS for the crowd fragment comprises generating the best-case average DOS for the crowd fragment as an average DOS for social network relationships between pairs of users in the crowd fragment using a best-case DOS for each pair of users in the crowd fragment for which a social network relationship is not explicitly defined.

16. The method of claim 1 wherein the crowd data regarding the crowd comprises:

dividing the crowd into one or more crowd fragments; and

for each crowd fragment of at least one of the one or more crowd fragments, generating a worst-case average degree of separation (DOS) for the crowd fragment such that the crowd data comprises the worst-case average DOS for the crowd fragment.

17. The method of claim 16 wherein generating the worst-case average DOS for the crowd fragment comprises generating the worst-case average DOS for the crowd fragment as an average DOS for social network relationships between pairs of users in the crowd fragment using a worst-case DOS for each pair of users in the crowd fragment for which a social network relationship is not explicitly defined.

18. The method of claim 1 wherein the crowd data regarding the crowd comprises:

dividing the crowd into one or more crowd fragments; and

for each crowd fragment of at least one of the one or more crowd fragments, generating data identifying a degree of bidirectionality of friend relationships between users in the crowd fragment such that the crowd data comprises the data identifying the degree of bidirectionality of friend relationships between the users in the crowd fragment.

19. The method of claim 18 wherein generating the data identifying the degree of bidirectionality of friend relationships between the users in the crowd fragment comprises computing a ratio of bidirectional friend relationships between pairs of users in the crowd fragment to a total number of friend relationships between pairs of users in the crowd fragment.

20. A server computer comprising:

a controller; and

memory containing software executable by the controller, whereby the server computer is configured to:

obtain current locations of a plurality of users of a plurality of mobile devices, each of the plurality of users being a user of a corresponding one of the plurality of mobile devices;

form a crowd including a number of users from the plurality of users based on the current locations of the number of users, wherein the crowd is formed using a spatial crowd formation process based on an optimal inclusion distance that is a function of density of users of the plurality of users within a bounding region for the spatial crowd formation process, the optimal inclusion distance subject to change as the crowd is formed;

generate crowd data regarding the crowd, the crowd data comprising an aggregate profile for the crowd; and

provide access to the crowd data in response to receiving a request for the crowd data.

21. A non-transitory computer readable medium storing software for instructing a controller of a computing device to:

obtain current locations of a plurality of users of a plurality of mobile devices, each of the plurality of users being a user of a corresponding one of the plurality of mobile devices;

form a crowd including a number of users from the plurality of users based on the current locations of the number of users, wherein to form the crowd, the software includes software for instructing the controller to form the crowd using a spatial crowd formation process based on an optimal inclusion distance that is a function of density of users of the plurality of users within a bounding region for the spatial crowd formation process, the optimal inclusion distance subject to change as the crowd is formed;

generate crowd data regarding the crowd, the crowd data comprising an aggregate profile for the crowd; and

provide access to the crowd data in response to receiving a request for the crowd data.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2021
From: CRIA, INC.
To: STRIPE, INC.
Reel/Frame 057044/0753 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2019
From: IP3 2017, SERIES 200 OF ALLIED SECURITY TRUST I
To: CRIA, INC.
Reel/Frame 048082/0767 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2018
From: WALDECK TECHNOLOGY, LLC
To: IP3 2017, SERIES 200 OF ALLIED SECURITY TRUST I
Reel/Frame 045061/0144 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CONCERT DEBT, LLC
To: CONCERT TECHNOLOGY CORPORATION
Reel/Frame 044591/0775 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CONCERT DEBT, LLC
To: WALDECK TECHNOLOGY, LLC
Reel/Frame 044591/0845 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2017
From: CONCERT DEBT, LLC
To: WALDECK TECHNOLOGY, LLC
Reel/Frame 044391/0407 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2017
From: CONCERT DEBT, LLC
To: CONCERT TECHNOLOGY CORPORATION
Reel/Frame 044391/0438 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: KOTA ENTERPRISES, LLC
To: WALDECK TECHNOLOGY, LLC
Reel/Frame 036725/0905 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: PETERSEN, STEVEN L.; CURTIS, SCOTT; JENNINGS, KENNETH
To: KOTA ENTERPRISES, LLC
Reel/Frame 036725/0878 →