From e2a725daca4d23df713520ef590706b306c8dcbb Mon Sep 17 00:00:00 2001 From: Sida Wang Date: Wed, 11 Jan 2017 16:59:14 -0800 Subject: [PATCH] for demo in meeting, parsing again after def --- src/edu/stanford/nlp/sempre/InteractiveUtils.java | 2 +- src/edu/stanford/nlp/sempre/Master.java | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/edu/stanford/nlp/sempre/InteractiveUtils.java b/src/edu/stanford/nlp/sempre/InteractiveUtils.java index 415720c..cb20789 100644 --- a/src/edu/stanford/nlp/sempre/InteractiveUtils.java +++ b/src/edu/stanford/nlp/sempre/InteractiveUtils.java @@ -133,7 +133,7 @@ public final class InteractiveUtils { exHead.preprocess(); exHead.predDerivations = Lists.newArrayList(bodyDeriv); - if (refEx != null) refEx.value = exHead; + refEx.value = exHead; LogInfo.begin_track("Definition"); LogInfo.logs("mode: %s", blockmode); diff --git a/src/edu/stanford/nlp/sempre/Master.java b/src/edu/stanford/nlp/sempre/Master.java index 23857a0..fca836d 100644 --- a/src/edu/stanford/nlp/sempre/Master.java +++ b/src/edu/stanford/nlp/sempre/Master.java @@ -504,14 +504,18 @@ public class Master { InteractiveUtils.logRawDef(head, jsonDef, session.id); Ref refExHead = new Ref<>(); - List inducedRules = InteractiveUtils.induceRulesHelper(command, head, jsonDef, builder.parser, builder.params, session.id, refExHead); - response.ex = refExHead.value; - response.candidateIndex = response.ex.predDerivations.size() > 0 ? 0 : -1; - + List inducedRules = InteractiveUtils.induceRulesHelper(command, head, jsonDef, + builder.parser, builder.params, session.id, refExHead); + + if (inducedRules.size() > 0) { for (Rule rule : inducedRules) { InteractiveUtils.addRuleInteractive(rule, builder.parser); } + + builder.parser.parse(builder.params, refExHead.value, false); + response.ex = refExHead.value; + response.candidateIndex = response.ex.predDerivations.size() > 0 ? 0 : -1; // write out the grammar PrintWriter out = IOUtils.openOutAppendHard(Paths.get(Master.opts.newGrammarPath, session.id + ".grammar").toString()); for (Rule rule : inducedRules) {