  # Change Nickname

Current Nickname:

Certifications

Certificate Issued at Valid until Serial No. File
Serial No. Valid until

Not having one? Apply now! >>>

Invoice

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

# Common Neighbors

✓ File Writeback ✕ Property Writeback ✓ Direct Return ✓ Stream Return ✕ Stats

The Topological Link Prediction algorithm employs various metrics to assess the similarity between pairs of nodes, leveraging the topological attributes of nodes. A higher similarity score implies a greater likelihood of future connectivity between two nodes (which are not connected yet).

## Overview

The Common Neighbors algorithm computes the number of common neighbors between two nodes as a measure of their similarity.

The logic behind this algorithm is that if two nodes have a high number of neighbors in common, they are likely to be similar or connected in some meaningful way. It is computed using the following formula: where N(x) and N(y) are the sets of adjacent nodes to nodes x and y respectively.

More common neighbors indicate greater similarity between nodes, while a number of 0 indicates no similarity between two nodes. In this example, CN(D,E) = |N(D) ∩ N(E)| = |{B, F}| = 2.

## Considerations

• The Common Neighbors algorithm ignores the direction of edges but calculates them as undirected edges.

## Syntax

• Command: `algo(topological_link_prediction)`
• Parameters:
Name
Type
Spec
Default
Optional
Description
ids / uuids []`_id` / []`_uuid` / / No ID/UUID of the first set of nodes to calculate; each node in `ids`/`uuids` will be paired with each node in `ids2`/`uuids2`
ids2 / uuids2 []`_id` / []`_uuid` / / No ID/UUID of the second set of nodes to calculate; each node in `ids`/`uuids` will be paired with each node in `ids2`/`uuids2`
type string `Common_Neighbors` `Adamic_Adar` No Type of similarity; for Common Neighbors, keep it as `Common_Neighbors`
limit int >=-1 `-1` Yes Number of results to return, `-1` to return all results

## Example

The example graph is as follows: ### File Writeback

Spec Content
filename `node1`,`node2`,`num`
``````algo(topological_link_prediction).params({
uuids: ,
uuids2: [1,5,7],
type: 'Common_Neighbors'
}).write({
file:{
filename: 'cn'
}
})
``````

Results: File cn

``````C,A,1.000000
C,E,2.000000
C,G,1.000000
``````

### Direct Return

Alias Ordinal Type
Description
Columns
0 []perNodePair Node pair and its similarity `node1`, `node2`, `num`
``````algo(topological_link_prediction).params({
ids: 'C',
ids2: ['A','C','E','G'],
type: 'Common_Neighbors'
}) as cn
return cn
``````

Results: cn

node1 node2 num
3 1 1
3 5 2
3 7 1

### Stream Return

Alias Ordinal Type
Description
Columns
0 []perNodePair Node pair and its similarity `node1`, `node2`, `num`
``````find().nodes() as n
with collect(n._id) as nID
ids: 'C',
ids2: nID,
type: 'Common_Neighbors'
}).stream() as cn
where cn.num >= 2
return cn
``````

Results: cn

node1 node2 num
3 4 2
3 5 2