IP Library Granted Patent US 11,010,429
Granted Patent B2
US 11,010,429 · App. 14/506,116 · Granted May 18, 2021

Dynamic social network relationship determination method and apparatus

Inventors: Paul J. Martino (Mountain View, CA); Chris Vale (San Francisco, CA); Kristopher C. Wehner (Oakland, CA)
Assignee: Microsoft Technology Licensing, LLC
G06F16/90335G06F16/907G06F16/9024G06F16/958G06Q50/01H04L67/10H04L67/306
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,010,429
App. No.
14/506,116
Granted
May 18, 2021
Kind
B2
Abstract

A method for a computer system includes receiving an identifier from a user, initiating a user session in response to the identifier, determining a social map for the user in response to the identifier and in response to a plurality of social network relationships, receiving a first change to the plurality of social network relationships from the user, receiving a second change to the plurality of network relationships from another user, determining a revised social map for the user during the user session in response to receiving the first change, but not in response to receiving the second change, wherein the revised social map for the user reflects the first change and the second change, and storing the revised social map for the user during the user session in a cache.

Claims (56)

1. A system for dynamically determining social relationships within a social network, the system comprising:

a database system including:

a memory device storing a plurality of social network relationships for a first user; and

a first processor coupled to the memory device, the first processor operative to process queries related to social network relationships;

a graphing system including a second processor communicatively coupled to the database system, the second processor operative to compute social distances between users represented by the plurality of social network relationships; and

a server communicatively coupled to the graphing system and the database system, the server configured to:

receive a user query requesting information regarding relationships between the first user and other users of the social network, the user query including attributes of users of the social network and a maximum social distance between the first user and other users of the social network;

analyze the user query to determine if a number of users that are within the maximum social distance exceeds a pre-defined threshold number;

when the number of users exceeds the pre-defined threshold number, formulate partial queries to divide processing of the partial queries between the database system, the graphing system and the server based at least in part on the analysis of the user query;

combine results of the partial queries received from the database system and the graphing system; and

provide a response to the user query based on the combination of results.

2. The system of claim 1 , wherein the partial queries include a social distance calculation query and a database query based on the attributes of the users of the social network specified in the user query.

3. The system of claim 2 , wherein the server is further configured to divide processing of the user query by:

sending the social distance calculation query to the graphing system; and

sending the database query to the database system.

4. The system of claim 3 , wherein the server is configured to combine the results of the partial queries by performing an intersection operation or a union operation on the results from the social distance calculation query received from the graphing system and results from the database query received from the database system.

5. The system of claim 2 , wherein the server is further configured to:

receive results of the social distance calculation query from the graphing system prior to formulating the database query; and

send the database query to the database system.

6. The system of claim 5 , wherein the server uses the results of the social distance calculation query to limit the database query to users within the maximum social distance specified within the user query.

7. The system of claim 1 , wherein the server is further configured to:

divide processing of the user query by performing a social distance query on cached data accessible on the server and formulating a separate database query to be processed by the database system.

8. The system of claim 1 , wherein the server is further configured to:

divide processing of the user query by formulating a database query including social distance calculations for processing by the database system.

9. The system of claim 8 , wherein the database system is further configured to:

formulate a social distance calculation query for the graphing system in response to receiving the database query from the server.

10. The system of claim 1 , wherein the server is further configured to:

analyze the user query based on multiple social network parameters; and

formulate one or more queries to divide the processing of the user query based at least in part on the multiple social network parameters.

11. A method for dynamically determining social relationships within a social networking system including a database system, a graphing system, and a server system, the method comprising:

receiving, on the server system, a user query requesting information regarding relationships between a first user and other users of the social networking system, the user query including attributes of users of the social networking system and a maximum social distance between the first user and other users of the social networking system;

analyzing, on the server system, the user query to determine if a number of users that are within the maximum social distance exceeds a pre-defined threshold number;

when the number of users exceeds the pre-defined threshold number, formulating, on the server system, partial queries to divide processing of the partial queries between the database system, the graphing system and the server system based at least in part on the analysis of the user query;

combining, on the server system, results of the partial queries received from the database system and the graphing system; and

providing, from the server system, a response to the user query based on the combination of results.

12. The method of claim 11 ; wherein the partial queries include a social distance calculation query and a database query based on the attributes of the users of the social networking system specified in the user query.

13. The method of claim 12 , further comprising:

sending the social distance calculation query to the graphing system; and

sending the database query to the database system.

14. The method of claim 13 , further comprising:

combining the results of the partial queries by performing an intersection operation or a union operation on the results from the social distance calculation query received from the graphing system and results from the database query received from the database system.

15. The method of claim 12 , further comprising:

receiving results of the social distance calculation query from the graphing system prior to formulating the database query; and

sending the database query to the database system.

16. The method of claim 15 , further comprising analyzing the results of the social distance calculation query to limit the database query to users within the maximum social distance specified within the user query.

17. A non-transitory computer-readable storage medium comprising instructions that, when executed within a social networking system including a database system, a graphing system, and a server system, cause the social network system to perform operations comprising:

receiving, on the server system, a user query requesting information regarding relationships between a first user and other users of the social networking system, the user query including attributes of users of the social networking system and a maximum social distance between the first user and other users of the social networking system;

analyzing, on the server system, the user query to determine if a number of users that are within the maximum social distance exceeds a pre-defined threshold number;

when the number of users exceeds the pre-defined threshold number, formulating, on the server system, partial queries to divide processing of the partial queries between the database system, the graphing system and the server system based at least in part on the analysis of the user query;

combining, on the server system, results of the partial queries received from the database system and the graphing system; and

providing, from the server system, a response to the user query based on the combination of results.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the partial queries include a database query including social distance calculations for processing by the database system.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the partial queries include a social distance calculation query for the graphing system in response to receiving the database query results from the server system.

20. The non-transitory computer-readable storage medium of claim 17 , further including instructions that cause the server system to:

analyze the user query based on multiple social network parameters; and

formulate one or more queries to divide the processing of the user query based at least in part on the multiple social network parameters.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2015
From: CISCO TECHNOLOGY, INC.
To: LINKEDIN CORPORATION
Reel/Frame 034854/0235 →
Continuity (4)
Continuation 14470458 · Aug 27, 2014
Continuation 11123854 · May 6, 2005
Provisional Application 60570911 · May 12, 2004
Related Publication 20150026211A1 · Jan 22, 2015