public static List<ConllDependencyNode> getRightSibs( ConllDependencyNode refNode, List<ConllDependencyNode> tree ) { ConllDependencyNode parent = refNode.getHead(); List<ConllDependencyNode> out = new ArrayList<ConllDependencyNode>(); for ( ConllDependencyNode node : tree.subList( tree.indexOf(refNode)+1, tree.size() ) ) { if ( node.getHead().equals(parent) ) { out.add(node); } } return out; }
public static List<ConllDependencyNode> getLeftSibs( ConllDependencyNode refNode, List<ConllDependencyNode> tree ) { ConllDependencyNode parent = refNode.getHead(); List<ConllDependencyNode> out = new ArrayList<ConllDependencyNode>(); List<ConllDependencyNode> lSide = tree.subList(0,tree.indexOf(refNode)); for ( int i=tree.indexOf(refNode)-1; i>=0; i-- ) { ConllDependencyNode node = lSide.get(i); if ( node.getHead().equals(parent) ) { out.add(node); } } return out; }
public static List<ConllDependencyNode> getRightSibs( ConllDependencyNode refNode, List<ConllDependencyNode> tree ) { ConllDependencyNode parent = refNode.getHead(); List<ConllDependencyNode> out = new ArrayList<ConllDependencyNode>(); for ( ConllDependencyNode node : tree.subList( tree.indexOf(refNode)+1, tree.size() ) ) { if ( node.getHead().equals(parent) ) { out.add(node); } } return out; }
public static List<ConllDependencyNode> getLeftSibs( ConllDependencyNode refNode, List<ConllDependencyNode> tree ) { ConllDependencyNode parent = refNode.getHead(); List<ConllDependencyNode> out = new ArrayList<ConllDependencyNode>(); List<ConllDependencyNode> lSide = tree.subList(0,tree.indexOf(refNode)); for ( int i=tree.indexOf(refNode)-1; i>=0; i-- ) { ConllDependencyNode node = lSide.get(i); if ( node.getHead().equals(parent) ) { out.add(node); } } return out; }
public static List<ConllDependencyNode> getProgeny( ConllDependencyNode refNode, List<ConllDependencyNode> tree) { List<ConllDependencyNode> out = new ArrayList<ConllDependencyNode>(); // Find the path to root for every node for ( ConllDependencyNode node : tree ) { // Progeny includes the reference node itself if ( node.equals(refNode) ) { out.add(node); } else { // Anything with refNode on its path to root is progeny. Requires acyclicity ConllDependencyNode upNode = node; while (upNode.getHead()!=null) { upNode = upNode.getHead(); if (upNode.equals(refNode)) { out.add(node); break; } } } } return out; }
public static List<ConllDependencyNode> getProgeny( ConllDependencyNode refNode, List<ConllDependencyNode> tree) { List<ConllDependencyNode> out = new ArrayList<ConllDependencyNode>(); // Find the path to root for every node for ( ConllDependencyNode node : tree ) { // Progeny includes the reference node itself if ( node.equals(refNode) ) { out.add(node); } else { // Anything with refNode on its path to root is progeny. Requires acyclicity ConllDependencyNode upNode = node; while (upNode.getHead()!=null) { upNode = upNode.getHead(); if (upNode.equals(refNode)) { out.add(node); break; } } } } return out; }