Overview
The Local Clustering Coefficient algorithm calculates the density of connection among the immediate neighbors of a node. It quantifies the ratio of actual connections among the neighbors to the maximum possible connections.
The local clustering coefficient provides insights into the cohesion of a node's ego network. In the context of a social network, the local clustering coefficient helps understand the degree of interconnectedness among an individual's friends or acquaintances. A high local clustering coefficient suggests that the person's friends are likely to be connected to each other, indicating the presence of a closely-knit social group, such as a family. Conversely, a low local clustering coefficient indicates a more dispersed or loosely interconnected ego network, where the person's friends do not have strong connections with each other.
Concepts
Local Clustering Coefficient
Mathematically, the local clustering coefficient of a node in an undirected graph is calculated as the ratio of the number of connected neighbor pairs to the total number of possible neighbor pairs:

where n is the number of nodes contained in the 1-hop neighborhood of node v (denoted as N(v)), i and j are any two distinct nodes within N(v), δ(i,j) is equal to 1 if i and j are connected, and 0 otherwise.

In this example, the local clustering coefficient of the red node is 1/(5*4/2) = 0.1.
Considerations
- The Local Clustering Coefficient algorithm ignores the direction of edges but calculates them as undirected edges.
 
Syntax
- Command: 
algo(clustering_coefficient) - Parameters:
 
Name  | 
Type  | 
Spec  | 
Default  | 
Optional  | 
Description | 
|---|---|---|---|---|---|
| ids / uuids | []_id / []_uuid | 
/ | / | Yes | ID/UUID of nodes to calculate the local clustering coefficient, calculate for all nodes if not set | 
| limit | int | ≥-1 | -1 | 
Yes | Number of results to return, -1 to return all results | 
| order | string | asc, desc | 
/ | Yes | Sort nodes by the value of the local clustering coefficient | 
Examples
The example graph is as follows:

File Writeback
| Spec | Content | 
|---|---|
| filename | _id,centrality | 
algo(clustering_coefficient).params({ 
  ids: ['Lee', 'Choi']
}).write({
  file:{
    filename: 'lcc'
 }
})
Results: File lcc
Lee,0.266667
Choi,1
Property Writeback
| Spec | Content | Write to | Data Type | 
|---|---|---|---|
| property | centrality | 
Node property | float | 
algo(clustering_coefficient).params().write({
  db:{
    property: 'lcc'
 }
})
Results: The value of the local clustering coefficient for each node is written to a new property named lcc
Direct Return
Alias Ordinal  | 
Type  | 
Description | Columns  | 
|---|---|---|---|
| 0 | []perNode | Node and its local clustering coefficient | _uuid, centrality | 
algo(clustering_coefficient).params({
  order: 'desc'
}) as lcc 
return lcc
Results: lcc
| _uuid | centrality | 
|---|---|
| 2 | 1 | 
| 6 | 1 | 
| 3 | 0.666667 | 
| 4 | 0.666667 | 
| 7 | 0.666667 | 
| 1 | 0.266667 | 
| 5 | 0 | 
Stream Return
Alias Ordinal  | 
Type  | 
Description | Columns  | 
|---|---|---|---|
| 0 | []perNode | Node and its local clustering coefficient | _uuid, centrality | 
algo(clustering_coefficient).params().stream() as lcc
where lcc.centrality == 1
return count(lcc)
Results: 2