# US 10,311,106 B2 · Social graph visualization and user interface

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,311,106 B2
- Document ID: US10311106B2
- Status: Granted
- Kind: B2
- Application number: 14/368,725
- Filed: 2011-12-28
- Published: 2015-01-22
- Granted: 2019-06-04
- Earliest claimed: 2011-12-28
- Assignees: Www.Trustscience.Com Inc.
- Applicants: Evan V Chrapko; Leo M. Chan
- Inventors: Evan V Chrapko; Leo M. Chan
- Web page: https://patentgrep.com/patent/US10311106B2

## CPC

- G06Q 10/48: using social graphs
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F 16/904: Browsing; Visualisation therefor (for navigating the web G06F16/954; browsing optimisation for the web G06F16/957)
- G06N 5/048: Fuzzy inferencing
- H04L 51/52: for supporting social networking services
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods for visualizing trust scores in a social graph are described herein. The trust scores may be determined within or between individuals, groups, and/or entities connected in a network. A user may initiate the visualization of connections between themselves and others in the network. Contacts are selected for the visualization of the social graph, and a spatial distribution of the nodes is calculated. Nodes in the visualization of the social graph are rendered based on the calculated spatial distribution. Connections between the nodes may be rendered based on connectivity statistics calculated between the rendered nodes.

## Claims

### Claim 1

A method for rendering a visualization of a social graph, wherein the visualization represents relationship data between a user and at least two other contacts in the social graph, the method comprising:
receiving, by a device comprising a processor and from a second device of a user, social network credentials associated with the user based upon an input of the user into the second device;
storing, in a memory of the device, relationship data associated with the user and the at least two other contacts in the social network based on the social network credentials, wherein the at least two other contacts are indicated via an input through a display of the visualization of the social graph on the second device;
selecting, by the device, selected contacts from a group of contacts for the visualization of the social graph based on the relationship data;
determining, by the processor, trust scores between the user and selected nodes representing the selected contacts based on an indication of trust in a user profile;
based on at least one measure of fitness, calculating, by the processor, a spatial distribution of the selected nodes to visually communicate to the user the at least one measure of fitness, wherein the at least one measure of fitness comprises the determined trust scores;
rendering, via a display of the device, the selected nodes based on the calculated spatial distribution;
receiving, by the device and from the second device, at least one user adjustment to the spatial distribution; and
updating, in the memory, at least a portion of the relationship data based upon the user adjustment.

### Claim 2 (depends on 1)

The method of claim 1, wherein the relationship data comprises degrees of separation between the user and the at least two other contacts.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
receiving, by the device, a user selection of a first contact in the social network; and
selecting, by the device, contacts for the visualization of the social graph based on the degrees of separations between the user and the first contact.

### Claim 4 (depends on 3)

The method of claim 3, wherein selecting contacts for the visualization of the social graph based on degrees of separation from the user and the first contact comprises only selecting those contacts that are within four degrees of separation from the user and the first contact.

### Claim 5 (depends on 2)

The method of claim 2, wherein a portion of the at least two other contacts in the social network are within two or more degrees of separation from the user and a first contact.

### Claim 6 (depends on 1)

The method of claim 1, wherein calculating the spatial distribution of the nodes associated with the selected contacts based on at least one measure of fitness further comprises calculating the amount of area the selected nodes occupy in the visualization of the social graph.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
calculating, by the device, trust scores between a node representing the user and each of the rendered nodes; and
for each node, rendering, by the device, the radius of that node based on a trust score of the calculated trust scores associated with that node.

### Claim 8 (depends on 7)

The method of claim 7, wherein the length of each radius is directly proportional to the trust score of the calculated trust scores associated with that node.

### Claim 9 (depends on 1)

The method of claim 1, further comprising allowing, by the device, the user to adjust the size of one of the rendered nodes.

### Claim 10 (depends on 9)

The method of claim 9, further comprising updating, by the device, the relationship data associated with the contact represented by the one of the rendered nodes.

### Claim 11 (depends on 10)

The method of claim 10, further comprising increasing or decreasing, by the device, trust scores associated with the one of the rendered nodes based on the adjustment in the size.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
receiving, by the device, a user selection of a first and second contact in the social network;
calculating, by the device, the shortest path between the user and the first selected contact that includes the second selected contact based on the trust scores; and
rendering, via the display of the device, lines between the rendered nodes that represent the calculated shortest path.

### Claim 13 (depends on 12)

The method of claim 12, wherein calculating the shortest path further comprises calculating path scores for each of the paths between the user and the first selected contact that includes the second selected contact.

### Claim 14 (depends on 12)

The method of claim 12, wherein calculating the shortest path between the user and the first selected contact that includes the second selected contact comprises:
for each path, calculating a pathscore according to the equation
PathScore
⁡
(
path
)
=
g
⁡
(
path
)
*
∏
edge
∈
path
⁢
⁢
f
⁡
(
w
edge
)
,
wherein wedge is associated with a trust score between two nodes in the path, ƒ(w) is defined according to the function
f
(
w
⁢
)
=
{
4
,
if
⁢
⁢
w
<
0.2
2
,
if
⁢
⁢
0.2
≤
w
<
0.4
1
,
if
⁢
⁢
0.4
≤
w
<
0.8
2
⁢
⁢
if
⁢
⁢
0.8
≤
w
<
1.0
4
,
if
⁢
⁢
w
=
1.0
}
and g(path) is defined according to the function
g
⁡
(
path
)
=
{
-
1
,
∃
w
edge
<
.6
1
,
otherwise
}
.

### Claim 15 (depends on 1)

The method of claim 1, further comprising:
receiving, by the device, a user selection of a first and second contact in the social network;
calculating, by the device, paths between a node associated with the user and a node associated with the second contact that include a node associated with the second selected contact; and
rendering, via the display of the device, the calculated paths between the rendered nodes.

### Claim 16 (depends on 15)

The method of claim 15, further comprising rendering, by the device, the radius of each node based on the calculated paths.

### Claim 17 (depends on 16)

The method of claim 16, wherein the calculated paths comprise a plurality of outgoing edges and a plurality of incoming edges associated with each node.

### Claim 18 (depends on 1)

The method of claim 1, further comprising:
receiving, by the device, at least one contact to add to the visualization of the social graph;
recalculating, by the device, the spatial distribution of nodes associated with the selected contacts and the at least one contact; and
rerendering, via the display of the device, the visualization of the social graph based on the recalculated spatial distribution.

### Claim 19

A network server for rendering a visualization of a social graph on a display device, wherein the visualization represents relationship data between a user and at least two other contacts in the social graph, the network server comprising processing circuitry comprising a microprocessor configured to:
receive social network credentials associated with the user from a second device of the user based upon an input of the user into the second device;
store in a memory of the network server relationship data associated with the user and the at least two other contacts in the social network based on the social network credentials, wherein the at least two other contacts are indicated via an input through a display of the visualization of the social graph on the second device;
select using the processor selected contacts from a group of contacts for the visualization of the social graph based on the relationship data;
determine by the processor a trust score between the user and selected nodes representing the selected contacts based on an indication of trust in a user profile;
based on at least one measure of fitness, calculate by the processor a spatial distribution of the selected nodes to visually indicate to the user the at least one measure of fitness, wherein the at least one measure of fitness comprises the trust score;
cause to be rendered using a display of the second device the selected nodes based on the calculated spatial distribution;
receive from the second device, at least one user adjustment to the spatial distribution; and
update, in the memory, at least a portion of the relationship data based upon the user adjustment.

### Claim 20 (depends on 19)

The network server of claim 19, wherein the relationship data comprises degrees of separation between the user and the at least two other contacts.

### Claim 21 (depends on 20)

The network server of claim 20, wherein the processing circuitry is further configured to:
receive a user selection of a first contact in the social network; and
select contacts for the visualization of the social graph based on the degrees of separations between the user and the first contact.

### Claim 22 (depends on 21)

The network server of claim 21, wherein the processing circuitry is configured to select contacts for the visualization of the social graph based on degrees of separation from the user and the first contact by only selecting those contacts that are within four degrees of separation from the user and the first contact.

### Claim 23 (depends on 20)

The network server of claim 20, wherein a portion of the at least two other contacts in the social network are within two or more degrees of separation from the user and a first contact.

### Claim 24 (depends on 19)

The network server of claim 19, wherein the processing circuitry is configured to calculate the spatial distribution of the nodes associated with the selected contacts based on at least one measure of fitness by calculating the amount of area the selected nodes occupy in the visualization of the social graph.

### Claim 25 (depends on 19)

The network server of claim 19, wherein the processing circuitry is further configured to:
calculate trust scores between a node representing the user and each of the rendered nodes; and
for each node, render the radius of that node based on a trust score of the calculated trust scores associated with that node.

### Claim 26 (depends on 25)

The network server of claim 25, wherein the length of each radius is directly proportional to the trust score of the calculated trust scores associated with that node.

### Claim 27 (depends on 19)

The network server of claim 19, wherein the processing circuitry is further configured to allow the user to adjust the size of one of the rendered nodes.

### Claim 28 (depends on 27)

The network server of claim 27, wherein the processing circuitry is further configured to update the relationship data associated with the contact represented by the one of the rendered nodes.

### Claim 29 (depends on 28)

The network server of claim 28, wherein the processing circuitry is further configured to increase or decrease trust scores associated with the one of the rendered nodes based on the adjustment in the size.

### Claim 30 (depends on 19)

The network server of claim 19, wherein the processing circuitry is further configured to:
receive a user selection of a first and second contact in the social network;
calculate trust scores between each of the rendered nodes;
calculate the shortest path between the user and the first selected contact that includes the second selected contact based on the calculated trust scores; and
render lines between the rendered nodes that represent the calculated shortest path.

### Claim 31 (depends on 30)

The network server of claim 30, wherein the processing circuitry is configured to calculate the shortest path further by calculating path scores for each of the paths between the user and the first selected contact that includes the second selected contact.

### Claim 32 (depends on 31)

The network server of claim 31, wherein the processing circuitry is further configured to calculate the shortest path between the user and the first selected contact that includes the second selected contact by:
for each path, calculating a pathscore according to the equation
PathScore
⁡
(
path
)
=
g
⁡
(
path
)
*
∏
edge
∈
path
⁢
⁢
f
⁡
(
w
edge
)
,
wherein wedge is associated with a trust score between two nodes in the path, ƒ(w) is defined according to the function
f
(
w
⁢
)
=
{
4
,
if
⁢
⁢
w
<
0.2
2
,
if
⁢
⁢
0.2
≤
w
<
0.4
1
,
if
⁢
⁢
0.4
≤
w
<
0.8
2
⁢
⁢
if
⁢
⁢
0.8
≤
w
<
1.0
4
,
if
⁢
⁢
w
=
1.0
}
and g(path) is defined according to the function
g
⁡
(
path
)
=
{
-
1
,
∃
w
edge
<
.6
1
,
otherwise
}
.

### Claim 33 (depends on 19)

The network server of claim 19, wherein the processing circuitry is further configured to:
receive a user selection of a first and second contact in the social network;
calculate paths between a node associated with the user and a node associated with the second contact that include a node associated with the second selected contact; and
render the calculated paths between the rendered nodes.

### Claim 34 (depends on 33)

The network server of claim 33, wherein the processing circuitry is further configured to render the radius of each node based on the calculated paths.

### Claim 35 (depends on 34)

The network server of claim 34, wherein the calculated paths comprise a plurality of outgoing edges and a plurality of incoming edges associated with each node.

### Claim 36 (depends on 19)

The network server of claim 19, wherein the processing circuitry is further configured to:
receive at least one contact to add to the visualization of the social graph;
recalculate the spatial distribution of nodes associated with the selected contacts and the at least one contact; and
rerender the visualization of the social graph based on the recalculated spatial distribution.
