use of nars.term.subst.Unify in project narchy by automenta.
the class NLPGen method train.
private void train(String natural, Task t) {
Compound pattern = (Compound) (index.get(t.term(), true).term());
rules.add((tt, freq, conf, tense) -> {
if (timeMatch(t, tense)) {
if (Math.abs(t.freq() - freq) < 0.33f) {
if (Math.abs(t.conf() - conf) < 0.33f) {
final String[] result = { null };
Unify u = new Unify(VAR_PATTERN, terminal.random(), Param.UnificationStackMax, terminal.matchTTLmean.intValue()) {
@Override
public void tryMatch() {
final String[] r = { natural };
xy.forEach((x, y) -> {
String var = x.toString();
if (!var.startsWith("%"))
return;
// HACK conversion between normalized pattern vars and the vars used in the input pattern
var = String.valueOf(((char) (var.charAt(1) - '1' + 'A')));
r[0] = r[0].replace(var, y.toString());
});
result[0] = r[0];
}
};
u.unify(pattern, tt, true);
if (result[0] != null)
return result[0];
}
}
}
return null;
});
}
Aggregations