@@ -78,23 +78,24 @@ CREATE TEMPLATE QUERY GDBMS_ALGO.community.louvain(
78
78
// -------------------- 1. First pass --------------------
79
79
// Initialization
80
80
All_Nodes = {v_type_set};
81
- Pass_Nodes = SELECT s
82
- FROM All_Nodes:s -(e_type_set:e)- :t
83
- ACCUM @@m += e.getAttr(weight_attribute, "DOUBLE") / 2,
84
- s.@k += e.getAttr(weight_attribute, "DOUBLE"),
85
- IF s == t THEN // Self-loop link
86
- s.@k_self_loop += e.getAttr(weight_attribute, "DOUBLE")
87
- END
88
- POST-ACCUM
89
- s.@community_id = s,
90
- s.@vid = getvid(s),
91
- s.@batch_id = s.@vid % total_batch_count;
81
+ All_Nodes = SELECT s
82
+ FROM All_Nodes:s -(e_type_set:e)- :t
83
+ ACCUM @@m += e.getAttr(weight_attribute, "DOUBLE") / 2,
84
+ s.@k += e.getAttr(weight_attribute, "DOUBLE"),
85
+ IF s == t THEN // Self-loop link
86
+ s.@k_self_loop += e.getAttr(weight_attribute, "DOUBLE")
87
+ END
88
+ POST-ACCUM
89
+ s.@community_id = s,
90
+ s.@vid = getvid(s),
91
+ s.@batch_id = s.@vid % total_batch_count;
92
92
IF @@m < 0.00000000001 THEN
93
93
RETURN;
94
94
END;
95
95
96
96
// Local moving
97
97
INT hop = 0;
98
+ Pass_Nodes = All_Nodes;
98
99
Candidates (ANY) = Pass_Nodes;
99
100
WHILE Candidates.size() > 0 AND hop < maximum_iteration DO
100
101
hop = hop + 1;
@@ -376,11 +377,7 @@ CREATE TEMPLATE QUERY GDBMS_ALGO.community.louvain(
376
377
s.setAttr(result_attribute, getvid(s.@community_id))
377
378
END,
378
379
IF file_path != "" THEN
379
- IF v_type_set.size() == 1 THEN
380
- f.println(s.id, s.@community_id)
381
- ELSE
382
- VERTEX node = s.@community_id,
383
- f.println(s.type, s, node.type, node)
384
- END
380
+ VERTEX node = s.@community_id,
381
+ f.println(s.type, s, node.type, node)
385
382
END;
386
383
}
0 commit comments