Degree Centrality

Algorithm link: Degree Centrality

Degree centrality is defined as the number of edges incident upon a vertex (i.e., the number of ties that a node has). The degree can be interpreted in terms of the immediate risk of a node for catching whatever is flowing through the network (such as a virus, or some information).

Specifications

CREATE QUERY tg_degree_cent(SET<STRING> v_type, SET<STRING> e_type,
  SET<STRING> re_type, BOOL in_degree = TRUE, BOOL out_degree = TRUE,
  INT top_k=100, BOOL print_accum = True, STRING result_attr = "",
  STRING file_path = "")

Time complexity

The algorithm has a time complexity of \(O(E)\), where \(E\) is the total number of edges in the graph.

Parameters

Name Description Data type

v_type

A set of vertex types.

SET<STRING>

e_type

A set of edge types.

SET<STRING>

re_type

A set of reverse edge types. If an edge is undirected, put the edge name in the set as well.

`SET

in_degree

Boolean value that indicates whether to count the incoming edges as part of a vertex’s degree centrality.

BOOL

out_degree

Boolean value that indicates whether to count the outgoing edges as part of a vertex’s degree centrality.

BOOL

top_k

The number of vertices with the highest scores to return.

INT

print_accum

If true, print results to JSON output.

BOOL

result_attr

If not empty, save the degree centrality score of each vertex to this attribute.

STRING

file_attr

If not empty, save results in CSV to this file.

STRING

Return value

The vertices with the highest degree centrality scores along with their scores.

Example

Suppose we have the following graph:

article rank ex

Running the query on the graph will show that Dan has the highest degree centrality:

  • Query

  • Result

RUN QUERY tg_degree_cent(["person"], ["friendship"],["friendship"])
{
  "error": false,
  "message": "",
  "version": {
    "schema": 2,
    "edition": "enterprise",
    "api": "v2"
  },
  "results": [{"top_scores": [
    {
      "score": 8,
      "Vertex_ID": "Dan"
    },
    {
      "score": 6,
      "Vertex_ID": "Jenny"
    },
    {
      "score": 4,
      "Vertex_ID": "Nancy"
    },
    {
      "score": 2,
      "Vertex_ID": "Kevin"
    },
    {
      "score": 2,
      "Vertex_ID": "Amily"
    },
    {
      "score": 2,
      "Vertex_ID": "Jack"
    }
  ]}]
}