} $nv = get_next_int64($fp); $ne = get_next_int64($fp); $off = get_int64_array($fp, $nv + 1); $ind = get_int64_array($fp, $ne); $wgt = get_int64_array($fp, $ne); fclose($fp); print "Inserting into DB...\n"; //$batch = new Batch($connection); //$batch->activate(); $vertices = array_fill(0, $nv, "-1"); $time_start = microtime(true); for ($v = 0; $v < $nv; $v++) { $s = $vertices[$v]; if ($s == "-1") { $s = new_vertex($documents, $u, $nv); $vertices[$v] = $s; } for ($i = $off[$v]; $i < $off[$v + 1]; $i++) { $u = $ind[$i]; $d = $vertices[$u]; if ($d == "-1") { $d = new_vertex($documents, $u, $nv); $vertices[$u] = $d; } $edg = new Edge(); $edg->set("weight", $wgt[$i]); $edges->saveEdge($edge, $s, $d, $edg, true); } } //$batch->process();
function add_tree($vertex, $pattern, $male_rule, $female_rule) { global $tree; add_cases($male_rule); add_cases($female_rule); $have_hyphen = 0; $have_bracket = 0; $l = strlen($pattern); $current_len = 0; $tail_len = -1; $have_asterisk = 0; for ($i = $l - 1; $i >= 0; $i--) { $c = $pattern[$i]; if ($c == '*') { $have_asterisk = 1; break; } if ($c == '-') { if ($i == $l - 1) { $have_hyphen = 1; } continue; } if ($c == ')') { assert($have_bracket == 0 && $current_len == 0); $have_bracket = 1; continue; } if ($c == '(') { assert($have_bracket); $tail_len = $current_len; continue; } if (!isset($tree[$vertex]["children"][$c])) { $tree[$vertex]["children"][$c] = new_vertex(); } $vertex = $tree[$vertex]["children"][$c]; $current_len++; } if ($have_asterisk == 0) { $c = chr(0); if (!isset($tree[$vertex]["children"][$c])) { $tree[$vertex]["children"][$c] = new_vertex(); } $vertex = $tree[$vertex]["children"][$c]; } if ($tree[$vertex]["real"] == 1) { print "//!!! dupicate rule for pattern {$pattern} (old pattern " . $tree[$vertex]["pattern"] . ")\n"; } $tree[$vertex]["real"] = 1; $tree[$vertex]["hyphen"] = $have_hyphen; $tree[$vertex]["tail_len"] = $tail_len != -1 ? $tail_len : $current_len; $tree[$vertex]["pattern"] = $pattern; $tree[$vertex]["male_rule"] = $male_rule; $tree[$vertex]["female_rule"] = $female_rule; $tree[$vertex]["have_asterisk"] = $have_asterisk; }