public DEPNode getLeftMostDependent() { DEPNode dep; if (!l_dependents.isEmpty()) { dep = l_dependents.get(0).getNode(); if (dep.id < id) return dep; } return null; }
public List<DEPNode> getDependentNodeList() { List<DEPNode> list = new ArrayList<DEPNode>(); for (DEPArc arc : l_dependents) list.add(arc.getNode()); return list; }
public DEPNode getRightMostDependent() { DEPNode dep; if (!l_dependents.isEmpty()) { dep = l_dependents.get(l_dependents.size()-1).getNode(); if (dep.id > id) return dep; } return null; }
public DEPNode getFirstDependentByLabel(String label) { for (DEPArc arc : l_dependents) { if (arc.isLabel(label)) return arc.getNode(); } return null; }
public List<DEPNode> getDependentsByLabels(Pattern regex) { List<DEPNode> list = new ArrayList<DEPNode>(); for (DEPArc arc : l_dependents) { if (arc.isLabel(regex)) list.add(arc.getNode()); } return list; }
public List<DEPArc> getGrandDependents() { List<DEPArc> list = new ArrayList<DEPArc>(); for (DEPArc arc : l_dependents) list.addAll(arc.getNode().getDependents()); return list; }
public DEPNode getFirstDependentByLabel(Pattern p) { for (DEPArc arc : l_dependents) { if (p.matcher(arc.getLabel()).find()) return arc.getNode(); } return null; }
private DEPNode getLastNodeAux(DEPNode node) { List<DEPArc> deps = node.getDependents(); if (deps.isEmpty()) return node; DEPNode dep = getLastNodeAux(deps.get(deps.size()-1).getNode()); return (dep.id < node.id) ? node : dep; }
public DEPNode getFirstNodeAux(DEPNode node) { List<DEPArc> deps = node.getDependents(); if (deps.isEmpty()) return node; DEPNode dep = getFirstNodeAux(deps.get(0).getNode()); return (dep.id > node.id) ? node : dep; }
private void getSubNodeCollectionAux(Collection<DEPNode> col, DEPNode curr) { col.add(curr); for (DEPArc arc : curr.getDependents()) getSubNodeCollectionAux(col, arc.getNode()); }
private void getDescendentsAux(DEPNode curr, List<DEPArc> list, int depth) { List<DEPArc> deps = curr.getDependents(); list.addAll(deps); if (depth == 0) return; for (DEPArc arc : deps) getDescendentsAux(arc.getNode(), list, depth-1); }
/** {@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; }
private boolean isXDescendentOfAux(DEPNode curr, DEPNode node) { for (DEPArc arc : curr.x_heads) { if (arc.isNode(node) || isXDescendentOfAux(arc.getNode(), node)) return true; } return false; }
protected boolean rnrHasSHead(DEPNode dNode, DEPNode sHead, String label) { for (DEPArc rnr : dNode.getXHeads(DEPLibEn.DEP_RNR)) { if (rnr.getNode().isArgumentOf(sHead, label)) return true; } return false; }
static public boolean containsRelativizer(DEPNode arg) { DEPNode dep; for (DEPArc arc : arg.getDependents()) { dep = arc.getNode(); if (dep.pos.startsWith("W") || (!MPLibEn.isVerb(dep.pos) && containsRelativizer(dep))) return true; } return false; }
private DEPArc getAnyDescendentArcByPOSAux(DEPNode node, String pos) { DEPNode dep; for (DEPArc arc : node.getDependents()) { dep = arc.getNode(); if (dep.isPos(pos)) return arc; arc = getAnyDescendentArcByPOSAux(dep, pos); if (arc != null) return arc; } return null; }
private void getSubIdSetAux(IntOpenHashSet set, DEPNode curr) { set.add(curr.id); for (DEPArc arc : curr.getDependents()) getSubIdSetAux(set, arc.getNode()); }
private void collectDown(DEPNode pred, DEPNode arg) { if (arg.isArgumentOf(pred)) { for (String path : getDUPathList(pred, arg.getHead())) m_down.add(path); } for (DEPArc arc : arg.getDependents()) collectDown(pred, arc.getNode()); }