/** @return {@code true} if this node is a dependent of an artificial root. */ public boolean isRoot() { DEPNode head = getHead(); return head != null && head.id == DEPLib.ROOT_ID; }
static public Deque<DEPNode> getPreviousConjuncts(DEPNode node) { Deque<DEPNode> deque = new ArrayDeque<DEPNode>(); while (node.isLabel(DEPLibEn.DEP_CONJ)) { node = node.getHead(); deque.add(node); } return deque; }
private List<String> getDUPathList(DEPNode top, DEPNode bottom) { List<String> paths = new ArrayList<String>(); while (bottom != top) { paths.add(getDUPath(top, bottom)); bottom = bottom.getHead(); } return paths; }
public boolean isSiblingOf(DEPNode node) { return node.isDependentOf(getHead()); }
public void add(DEPNode node) { Object[] data = new Object[]{node.id, node.form, node.pos, node.getHead().id, node.getLabel()}; DefaultTableModel model = (DefaultTableModel)j_table.getModel(); model.addRow(data); }
private DEPNode getDependent(DEPNode pred, DEPNode node) { if (node.isDependentOf(pred)) return node; else return getDependent(pred, node.getHead()); }
public DEPNode getLeftMostDependent(int id) { DEPNode node, head = get(id); int i; for (i=1; i<id; i++) { node = get(i); if (node.getHead() == head) return node; } return null; }
public int getLeftValency(int id) { DEPNode node = get(id); int i, c = 0; for (i=node.id-1; i>0; i--) { if (get(i).getHead() == node) c++; } return c; }
public DEPNode getRightMostDependent(int id) { DEPNode node, head = get(id); int i; for (i=size()-1; i>id; i--) { node = get(i); if (node.getHead() == head) return node; } return null; }
public DEPNode getFirstRoot() { DEPNode node, root = get(0); int i, size = size(); for (i=1; i<size; i++) { node = get(i); if (node.getHead() == root) return node; } return null; }
public int getRightValency(int id) { int i, c = 0, size = size(); DEPNode node = get(id); for (i=node.id+1; i<size; i++) { if (get(i).getHead() == node) c++; } return c; }
private void matchUserVerb(DEPNode node) { if (node.isLabel(DEPLibEn.P_SBJ)) { DEPNode verb = node.getHead(); if (verb != null && MPLibEn.isVerb(verb.pos)) { DEPNode aux = verb.getFirstDependentByLabel(DEPLibEn.P_AUX); if (aux != null) to3rdNumber(aux); else to3rdNumber(verb); } } }
protected DEPNode getNode(FtrToken token) { DEPNode node = getNodeAux(token); if (node == null) return null; if (token.relation != null) { if (token.isRelation(JointFtrXml.R_H)) node = node.getHead(); else if (token.isRelation(JointFtrXml.R_LMD)) node = node.getLeftMostDependent(); else if (token.isRelation(JointFtrXml.R_RMD)) node = node.getRightMostDependent(); } return node; }
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()); }