1
- CREATE QUERY tg_weighted_degree_cent(STRING v_type, STRING e_type, STRING reverse_e_type, string weight_attribute, BOOL in_degree = TRUE, BOOL out_degree = TRUE, INT top_k=100, BOOL print_results = TRUE, STRING result_attribute = "",STRING file_path = "") SYNTAX V1 {
2
-
1
+ CREATE QUERY tg_weighted_degree_cent(STRING v_type, STRING e_type, STRING reverse_e_type, STRING weight_attribute, BOOL in_degree = TRUE, BOOL out_degree = TRUE, INT top_k=100, BOOL print_results = TRUE, STRING result_attribute = "",STRING file_path = "") SYNTAX V1 {
3
2
/*
4
3
First Author: <First Author Name>
5
4
First Commit Date: <First Commit Date>
@@ -22,18 +21,20 @@ CREATE QUERY tg_weighted_degree_cent(STRING v_type, STRING e_type, STRING revers
22
21
for undirected graph, you only need to set e_type and in_degree
23
22
24
23
Publications:
25
- <link>
24
+ NA
26
25
27
26
TigerGraph Documentation:
28
- <link>
27
+ https://docs.tigergraph.com/graph-ml/current/centrality-algorithms/weighted-degree-centrality
29
28
30
29
Parameters:
31
30
v_type:
32
- vertex types to traverse
31
+ Vertex types to traverse
33
32
e_type:
34
- edge types to traverse
33
+ Edge types to traverse
35
34
reverse_e_type:
36
- for indegree use
35
+ For indegree use
36
+ weight_attribute:
37
+ The edge weight attribute name
37
38
in_degree:
38
39
If True, count incoming relationships
39
40
out_degree:
@@ -43,27 +44,28 @@ CREATE QUERY tg_weighted_degree_cent(STRING v_type, STRING e_type, STRING revers
43
44
print_results:
44
45
If True, print the results
45
46
result_attribute:
46
- attribute to write result to
47
+ Attribute to write result to
47
48
file_path:
48
- file to write CSV output to
49
- */
49
+ File to write CSV output to
50
+ */
50
51
51
52
TYPEDEF TUPLE<VERTEX Vertex_ID, FLOAT score> Vertex_Score;
52
53
HeapAccum<Vertex_Score>(top_k, score DESC) @@top_scores_heap;
53
- SumAccum<INT > @sum_degree_score;
54
+ SumAccum<FLOAT > @sum_degree_score;
54
55
FILE f (file_path);
55
56
56
57
all = {v_type};
57
58
IF in_degree THEN
58
59
sll = SELECT s
59
- FROM all:s-(reverse_e_type:e)-:t
60
- ACCUM s.@sum_degree_score+= e.getAttr(weight_attribute,"INT ");
60
+ FROM all:s -(reverse_e_type:e)- :t
61
+ ACCUM s.@sum_degree_score += e.getAttr(weight_attribute, "FLOAT ");
61
62
END;
62
63
IF out_degree THEN
63
64
sll = SELECT s
64
- FROM all:s-(e_type:e)-:t
65
- ACCUM s.@sum_degree_score+= e.getAttr(weight_attribute,"INT ");
65
+ FROM all:s -(e_type:e)- :t
66
+ ACCUM s.@sum_degree_score += e.getAttr(weight_attribute, "FLOAT ");
66
67
END;
68
+
67
69
#Output
68
70
IF file_path != "" THEN
69
71
f.println("Vertex_ID", "Degree");
@@ -72,17 +74,17 @@ CREATE QUERY tg_weighted_degree_cent(STRING v_type, STRING e_type, STRING revers
72
74
Start = SELECT s
73
75
FROM all:s
74
76
POST-ACCUM
75
- IF result_attribute != "" THEN
76
- s.setAttr(result_attribute, s.@sum_degree_score)
77
- END,
78
-
79
- IF print_results THEN
80
- @@top_scores_heap += Vertex_Score(s, s.@sum_degree_score)
81
- END,
82
-
83
- IF file_path != "" THEN
84
- f.println(s, s.@sum_degree_score)
85
- END;
77
+ IF result_attribute != "" THEN
78
+ s.setAttr(result_attribute, s.@sum_degree_score)
79
+ END,
80
+
81
+ IF print_results THEN
82
+ @@top_scores_heap += Vertex_Score(s, s.@sum_degree_score)
83
+ END,
84
+
85
+ IF file_path != "" THEN
86
+ f.println(s, s.@sum_degree_score)
87
+ END;
86
88
87
89
IF print_results THEN
88
90
PRINT @@top_scores_heap AS top_scores;
0 commit comments