/** {@link LGAsk#generateAskFromQuestion(DEPTree, String)}. */ private void relocateAuxiliary(DEPTree tree, DEPNode verb) { List<DEPNode> auxes = new ArrayList<DEPNode>(); DEPNode sbj = null; for (DEPArc arc : verb.getDependents()) { if (arc.isLabel(DEPLibEn.P_AUX)) auxes.add(arc.getNode()); else if (arc.isLabel(DEPLibEn.P_SBJ)) sbj = arc.getNode(); } if (sbj != null) { if (!auxes.isEmpty() && auxes.get(0).id < sbj.id) { relocateAuxiliaryAux(tree, verb, auxes, sbj); } else if (verb.isLemma(ENAux.BE) && verb.id < sbj.id) { tree.remove(verb); tree.add(sbj.getLastNode().id, verb); setBeVerbForm(verb, sbj); } } }
/** Called by {@link LGAsk#generateQuestionFromAsk(DEPTree, String)}. */ private void resetDEPTreePost(DEPTree tree, DEPNode root) { root.setHead(tree.get(0), DEPLibEn.DEP_ROOT); String end = STPunct.QUESTION_MARK; String vtype; if ((vtype = root.getFeat(DEPLib.FEAT_VERB_TYPE)) != null && vtype.equals(NON_FINITE)) { tree.add(1, getNode(root, PLEASE, PLEASE, CTLibEn.POS_UH, DEPLibEn.DEP_INTJ, SRLLib.ARGM_DIS)); end = STPunct.PERIOD; } DEPNode last = root.getLastNode(); if (last.isPos(CTLibEn.POS_PERIOD)) { last.form = end; last.lemma = end; } else tree.add(getNode(root, end, end, CTLibEn.POS_PERIOD, DEPLibEn.DEP_PUNCT, null)); }
tree.add(sbj.getLastNode().id, aux);
arg.removeSHead(pred); tmp = arg.getLastNode(); tmp.form = LGLibEn.getPossessiveForm(tmp.form);