@Override public List<Constituent> transform(Constituent input) { TextAnnotation ta = input.getTextAnnotation(); int tokenPosition = input.getStartSpan(); TreeView dependency = (TreeView) ta.getView(ViewNames.DEPENDENCY); Constituent verbNode = dependency.getConstituentsCoveringToken(tokenPosition).get(0); boolean done = false; while (!done) { String pos = WordHelpers.getPOS(ta, verbNode.getStartSpan()); if (POSUtils.isPOSVerb(pos)) { done = true; } else { List<Relation> incoming = verbNode.getIncomingRelations(); if (incoming == null || incoming.size() == 0) { return new ArrayList<>(); } else verbNode = incoming.get(0).getSource(); } } return Collections.singletonList(addPointerToSource(input, verbNode)); }