summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2014-12-16 15:29:52 +0200
committerAlon Levy <alon@pobox.com>2014-12-16 15:29:52 +0200
commitf8261b417268f1fc4cf068492db8ba000b1993c7 (patch)
treefbf1ab05ec4d9447b7b10b3a7eaf032299f754bc
parentb231e0807fffb01351a978ad61a39de2a3e6fd2f (diff)
textanalysis: fix compareSubset
1. make sure compareSubset links array is pairs of strings (source,dest). 2. factor out the link addition - we recreate all links anyway right now, and the special case for small name change was wrong anyway (used {__src,__dst}.name instead of __src,__dst)
-rw-r--r--src/textanalysis.js36
1 files changed, 15 insertions, 21 deletions
diff --git a/src/textanalysis.js b/src/textanalysis.js
index 71621b95..830c16c1 100644
--- a/src/textanalysis.js
+++ b/src/textanalysis.js
@@ -392,22 +392,17 @@ var textAnalyser = function (newtext, finalize) {
var n_set = ret.node_set_add.filter(function(node) {
return false == graph.hasNodeByNameAndNotState(node.name, "temp")
&& node.type !== 'bubble';
- });
-
- var comp = graph.compareSubset('temp', n_set, ret.link_set_add);
+ }),
+ link_set = ret.link_set_add.map(
+ function (link) {
+ return [link.__src, link.__dst];
+ }),
+ comp = graph.compareSubset('temp', n_set, link_set);
if (false == finalize && comp.graph_same) {
if (comp.old_name && comp.new_name) {
up_to_two_renames(graph, comp.old_name, comp.new_name);
}
-
- ret.for_each_link_add(function (link) {
- apply_conjugator_link_logic(link, ret.drop_conjugator_links);
- graph.addLinkByName(link.__src.name,
- link.__dst.name,
- link.name,
- link.state);
- });
} else {
// REINITIALISE GRAPH (DUMB BUT IT WORKS)
graph.removeNodes(function(n){ return "temp" == n.state; });
@@ -424,17 +419,16 @@ var textAnalyser = function (newtext, finalize) {
}
}
});
-
- ret.for_each_link_add(function (link) {
- if (false == finalize || link.name !== 'and') {
- apply_conjugator_link_logic(link, ret.drop_conjugator_links);
- graph.addLinkByName(link.__src,
- link.__dst,
- link.name,
- link.state);
- }
- });
}
+ ret.for_each_link_add(function (link) {
+ if (false == finalize || link.name !== 'and') {
+ apply_conjugator_link_logic(link, ret.drop_conjugator_links);
+ graph.addLinkByName(link.__src,
+ link.__dst,
+ link.name,
+ link.state);
+ }
+ });
if (!finalize) {
graph.markRelated(token_set_new_node_names);