Total Neighbors

Supported Graph Characteristics

Unweighted edges

Directed edges

Undirected edges

Homogeneous vertex types

Heterogeneous vertex types

Algorithm link: Total Neighbors

The algorithm counts the total number of neighbors, or vertices connected by one hop, of two vertices.

Notes

This algorithm ignores edge weights.

Specifications

CREATE QUERY tg_total_neighbors(VERTEX v_source VERTEX v_target,
    SET<STRING> e_type)

Parameters

Name Description Default value

VERTEX v_source

The first vertex to compare. Provide the vertex ID and type as a tuple: ("id","type")

N/A

VERTEX v_target

The second vertex to compare with the first. Provide the vertex ID and type as a tuple: ("id","type")

N/A

SET<STRING> e_type_set

Edge types to traverse.

(an empty set of strings)

Output

The total number of neighbors of two vertices as a closeness value.

Time complexity

The algorithm has a time complexity of \$O(D1 + D2)\$, where \$D1\$ and \$D2\$ are the degrees of the two vertices.

Example

Suppose we have the following graph.

preferential attachment ex

Dan and Jenny together have 6 neighbors in total.

Dan’s neighbors are:

  • Nancy

  • Kevin

  • Tom

  • Jenny

and Jenny’s neighbors are:

  • Dan

  • Tom

  • Amily

Running the algorithm with input vertices of Dan and Jenny would give us a result of 6 because the connection Dan - Jenny and Jenny - Dan is not double-counted.

  • Query

  • Result

RUN QUERY tg_total_neighbors (("Jenny", "person"), ("Dan", "person"), ["friendship"])
{
  "error": false,
  "message": "",
  "version": {
    "schema": 2,
    "edition": "enterprise",
    "api": "v2"
  },
  "results": [{"closeness": 6}]
}