Change Password

Please enter the password.
Please enter the password. Between 8-64 characters. Not identical to your email address. Contain at least 3 of uppercase, lowercase, numbers, and special characters (such as @*&#).
Please enter the password.
Submit

Change Nickname

Current Nickname:
Submit

v4.2
Search
中文EN
v4.2

    Degree Centrality

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

    Overview

    Degree Centrality algorithm is used to find important nodes in the network, it measures the number of incoming and/or outgoing edges incident to the node, or the sum of weights of those edges. Degree is the simplest and most efficient graph algorithm since it only considers the 1-hop neighborhood of nodes. Degree plays a vital role in scientific computing, feature extraction, supernode recognition and other fields.

    Concepts

    In-Degree and Out-Degree

    The number of incoming edges a node has is called its in-degree; accordingly, the number of outgoing edges is called out-degree. If ignores edge direction, it is degree.

    In this graph, the red node has in-degree of 4 and out-degree of 3, and its degree is 7. Directed self-loop is regarded as an incoming edge and an outgoing edge.

    Weighted Degree

    In many applications, each edge of a graph has an associated numeric value, called weight. In weighted graph, weighted degree of a node is the sum of weights of all its neighbor edges. Unweighted degree is equivalent to when all edge weights are 1.

    In this weighted graph, the red node has weighted in-degree of 0.5 + 0.3 + 2 + 1 = 3.8 and weighted out-degree of 1 + 0.2 + 2 = 3.2, and its weighted degree is 3.2 + 3.8 = 7.

    Considerations

    • Degree of isolated node only depends on its self-loop. If it has no self-loop, degree is 0.
    • Every self-loop is counted as 2 edges attaching to its node. Directed self-loop is viewed as an incoming edge and an outgoing edge.

    Syntax

    • Command: algo(degree)
    • Parameters:
    Name Type
    Spec
    Default
    Optional
    Description
    ids / uuids []_id / []_uuid / / Yes ID/UUID of the nodes to calculate, calculate for all nodes if not set
    edge_schema_property []@<schema>?.<property> Must LTE / Yes Edge properties to use for weighted degree
    direction string in, out / Yes in for in-degree, out for out-degree
    limit int ≥-1 -1 Yes Number of results to return, -1 to return all results
    order string asc, desc / Yes Sort nodes by the size of degree

    Examples

    The example is a social network, edge property @follow.score can be used as weights:

    File Writeback

    Spec Content
    filename _id,degree
    algo(degree).params().write({
      file:{ 
        filename: "degree_all"
      }
    })
    

    Results: File degree_all and statistics

    Tim,0
    Bill,1
    Bob,2
    Sam,2
    Joe,3
    Anna,5
    Cathy,4
    Mike,3
    
    total_degree average_degree
    20 2.25

    Property Writeback

    Spec
    Content
    Write to
    Data Type
    property degree Node property int64 for unweighted degree, int64 or double for weighted degree
    algo(degree).params({
      edge_schema_property: @follow.score
    }).write({
      db:{ 
        property: "degree"
      }
    })
    

    Results: Degree for each node is written to a new property named degree, statistics is returned at the same time

    total_degree average_degree
    40.4 5.05

    Direct Return

    Alias Ordinal
    Type
    Description Columns
    0 []perNode Node and its degree _uuid, degree
    1 KV Total and average degree of all nodes total_degree, average_degree
    algo(degree).params({ 
      edge_schema_property: @follow.score,
      order: "desc" 
    }) as degree, stats
    return degree, stats
    

    Results: degree and stats

    _uuid degree
    3 11.1
    2 6.5
    4 6.1
    6 5.2
    1 4.9
    5 4.3
    7 2.3
    8 0
    total_degree average_degree
    40.4 5.05

    Stream Return

    Alias Ordinal
    Type
    Description Columns
    0 []perNode Node and its degree _uuid, degree

    Example: Find 1-hop neighbors of the node with the highest degree, return all information of those neighbors

    algo(degree).params({
      order: "desc",
      limit: 1 
    }).stream() as results
    khop().src({_uuid == results._uuid}).depth(1) as neighbors
    return neighbors{*}
    

    Results: neighbors

    _id _uuid
    Bill 7
    Sam 5
    Joe 4
    Cathy 2
    Mike 1

    Stats

    Alias Ordinal
    Type
    Description Columns
    0 KV Total and average degree of all nodes total_degree, average_degree
    algo(degree).params({
      direction: "out"
    }).stats() as stats
    return stats
    

    Results: stats

    total_degree average_degree
    10 1.25
    Please complete the following information to download this book
    *
    公司名称不能为空
    *
    公司邮箱必须填写
    *
    你的名字必须填写
    *
    你的电话必须填写
    *
    你的电话必须填写