/** {@link LGAsk#generateAskFromQuestion(DEPTree, String)}. */ private DEPNode getReferentArgument(DEPNode verb) { DEPNode dep; for (DEPArc arc : verb.getDependents()) { dep = arc.getNode(); if (dep.containsSHead(verb, SRLLib.P_ARG_REF)) return dep; } return null; }
/** {@link LGAsk#generateAskFromQuestion(DEPTree, String)}. */ private boolean hasRelativizer(DEPTree tree) { int i, size = tree.size(); DEPNode node; for (i=1; i<size; i++) { node = tree.get(i); if (node.containsSHead(SRLLib.P_ARG_REF)) return true; } return false; }
pred.addDependentFront(new DEPArc(dep, dep.getLabel())); else if (dep.containsSHead(pred)) if (dep.containsSHead(pred))
/** Called by {@link DEPLibEn#postLabel(DEPTree)}. */ static private void labelReferentOfRelativeClause(DEPNode verb, List<DEPArc> argList) { DEPNode top = getTopVerbChain(verb); DEPNode head = top.getHead(); if (top.isLabel(DEPLibEn.DEP_RCMOD) && !head.containsSHead(verb)) { for (DEPArc arc : argList) { if (arc.isLabel(SRLLib.P_ARG_REF) && isReferentArgument(arc.getNode())) { head.addSHead(verb, SRLLib.getBaseLabel(arc.getLabel())); return; } } } }
private void initPBArgs(DEPTree dTree, CTTree cTree, CTNode cNode) { if (!cNode.isPTag(CTLib.PTAG_TOP)) { DEPNode dNode, sHead; if (cNode.isPhrase()) dNode = getDEPNode(dTree, cNode); else dNode = dTree.get(cNode.getTokenId()+1); for (StringIntPair p : cNode.pbArgs) { sHead = dTree.get(p.i); if (isRefArgument(cNode)) p.s = "R-"+p.s; if (!dNode.containsSHead(sHead) && dNode != sHead) dNode.addSHead(sHead, p.s); } } for (CTNode child : cNode.getChildren()) initPBArgs(dTree, cTree, child); }
if (dep.containsSHead(pred, P_ARG_REF))