Harmonic Centrality

Supported graph types
Edge direction 
Edge weight 
Vertex types 
Undirected, Directed 
Unweighted 
Homogeneous, Heterogeneous 

Maturity level: Production (P)

Format and Deployment Options

GraphStudio: oneclick install

Packaged template

GSQL source code: Harmonic Centrality

Harmonic Centrality is a variant of Closeness Centrality. In a (not necessarily connected) graph, the harmonic centrality reverses the sum and reciprocal operations in the definition of closeness centrality:
The Harmonic Centrality algorithm calculates a harmonic centrality score for each vertex in the graph.
Notes
For more information, see the paper on Harmonic Centrality: Marchiori and Latora 2000, Harmony in the SmallWorld.
Specifications
CREATE QUERY harmonic_cent(SET<STRING> v_type_set, SET<STRING> e_type_set,
SET<STRING> reverse_e_type_set,INT max_hops=10, INT top_k=100,
BOOL wf = TRUE,BOOL print_results = True, STRING result_attribute = "",
STRING file_path = "", BOOL display_edges = FALSE)
Parameters
Name  Description  Default value 


Vertex types to calculate harmonic centrality for 
(empty set of strings) 

Edge types to traverse 
(empty set of strings) 

Reverse edge types to traverse 
(empty set of strings) 

The maximum number of hops the algorithm considers for each vertex. If set to a nonpositive value, the limit is ignored. 
10 

Output the highest 
100 

Whether to use the WassermanFaust normalization for multicomponent graphs 
True 

Whether to output JSON to standard output 
True 

If not empty, store centrality values in FLOAT format to this attribute 
(empty string) 

If not empty, write output to this file in CSV. 
(empty string) 

Whether to include the graph’s edges in the JSON output so that the full graph can be displayed. 
False 
Output
Returns a centrality score for all vertices of the specified type in the graph. The results are ordered from most central to least central.
Result size
There is an optional parameter, top_k
, that limits the results to an arbitrary number of vertices with the highest centrality scores in the graph.
This can be useful for larger graphs, since in large graphs there are likely to be many vertices with very low centrality.
The maximum result size is equal to \(V\), the number of vertices, because one centrality score is calculated for each vertex.
Example
If we have the following graph, we can see that Ivy is the most central of the five vertices. Running the algorithm on the graph shows that Ivy has the highest centrality score:
RUN QUERY harmonic_cent(["Person"], ["Coworker"], ["Coworker"], 4, 5,
true, true, _, _, _)
{
"error": false,
"message": "",
"version": {
"schema": 0,
"edition": "enterprise",
"api": "v2"
},
"results": [{"top_scores": [
{
"score": 0.04167,
"Vertex_ID": "Ivy"
},
{
"score": 0.03571,
"Vertex_ID": "Damon"
},
{
"score": 0.03571,
"Vertex_ID": "George"
},
{
"score": 0.025,
"Vertex_ID": "Steven"
},
{
"score": 0.025,
"Vertex_ID": "Glinda"
}
]}]
}