public Dep getDepToTerm(final Term term) { for (final Dep dep : getDepsByTerm(term)) { if (dep.getTo() == term) { return dep; } } return null; }
public Dep getDepToTerm(final Term term) { for (final Dep dep : getDepsByTerm(term)) { if (dep.getTo() == term) { return dep; } } return null; }
Map<AnnotationType, List<Annotation>> getReferencedAnnotations() { Map<AnnotationType, List<Annotation>> referenced = new HashMap<AnnotationType, List<Annotation>>(); List<Annotation> terms = new ArrayList<Annotation>(); terms.add(this.getFrom()); terms.add(this.getTo()); referenced.put(AnnotationType.TERM, terms); return referenced; }
public static Path create(final Term from, final Term to, final Iterable<Dep> deps) { Term term = from; List<Dep> depList = new ArrayList<>(); final List<Term> termList = new ArrayList<>(); termList.add(term); for (final Dep dep : deps) { depList.add(dep); term = dep.getTo() == term ? dep.getFrom() : dep.getTo(); if (!termList.add(term)) { throw new IllegalArgumentException("Path contains loop"); } } if (!term.equals(to)) { throw new IllegalArgumentException("Invalid path"); } return new Path(depList, termList); }
public Set<Term> getTermsByDepAncestors(final Iterable<Term> ancestors) { final Set<Term> terms = new HashSet<Term>(); final List<Term> queue = new LinkedList<Term>(); for (final Term term : ancestors) { terms.add(term); queue.add(term); } while (!queue.isEmpty()) { final Term term = queue.remove(0); final List<Dep> deps = getDepsByTerm(term); for (final Dep dep : deps) { if (dep.getFrom() == term) { if (terms.add(dep.getTo())) { queue.add(dep.getTo()); } } } } return terms; }
public Set<Term> getTermsByDepAncestors(final Iterable<Term> ancestors) { final Set<Term> terms = new HashSet<Term>(); final List<Term> queue = new LinkedList<Term>(); for (final Term term : ancestors) { terms.add(term); queue.add(term); } while (!queue.isEmpty()) { final Term term = queue.remove(0); final List<Dep> deps = getDepsByTerm(term); for (final Dep dep : deps) { if (dep.getFrom() == term) { if (terms.add(dep.getTo())) { queue.add(dep.getTo()); } } } } return terms; }
public String getLabel() { if (this.label == null) { final StringBuilder builder = new StringBuilder(); Term term = this.terms.get(0); for (final Dep dep : this.deps) { builder.append(dep.getRfunc().toLowerCase()); if (term.equals(dep.getFrom())) { builder.append('D'); term = dep.getTo(); } else { builder.append('U'); term = dep.getFrom(); } } this.label = builder.toString(); } return this.label; }
public Set<Term> getTermsByDepDescendants(Iterable<Term> descendents) { final Set<Term> terms = new HashSet<Term>(); final List<Term> queue = new LinkedList<Term>(); for (final Term term : descendents) { terms.add(term); queue.add(term); } while (!queue.isEmpty()) { final Term term = queue.remove(0); final List<Dep> deps = getDepsByTerm(term); for (final Dep dep : deps) { if (dep.getTo() == term) { if (terms.add(dep.getFrom())) { queue.add(dep.getFrom()); } } } } return terms; }
public static Term syntacticToSRLHead(final KAFDocument document, final Term term) { for (final Dep dep : document.getDepsFromTerm(term)) { final String func = dep.getRfunc(); if ("VC".equals(func) || "IM".equals(func)) { return syntacticToSRLHead(document, dep.getTo()); } } return term; }
private static String getDepPathString(final Term from, final Iterable<Dep> path) { final StringBuilder builder = new StringBuilder("_"); Term term = from; // current node in the path for (final Dep dep : path) { char prefix; if (dep.getFrom() == term) { prefix = '+'; term = dep.getTo(); } else { prefix = '-'; term = dep.getFrom(); } for (final String label : dep.getRfunc().split("-")) { final Character letter = getDepPathChar(label); builder.append(prefix).append(letter); } builder.append("_"); } return builder.toString(); }
Dep(Dep dep, HashMap<String, Term> terms) { this.from = terms.get(dep.from.getId()); if (this.from == null) { throw new IllegalStateException("Couldn't find the term when loading dep (" + dep.getFrom().getId()+", "+dep.getTo().getId()+")"); } this.to = terms.get(dep.to.getId()); if (this.to == null) { throw new IllegalStateException("Couldn't find the term when loading dep (" + dep.getFrom().getId()+", "+dep.getTo().getId()+")"); } this.rfunc = dep.rfunc; this.depcase = dep.depcase; }
Dep(Dep dep, HashMap<String, Term> terms) { this.from = terms.get(dep.from.getId()); if (this.from == null) { throw new IllegalStateException("Couldn't find the term when loading dep (" + dep.getFrom().getId()+", "+dep.getTo().getId()+")"); } this.to = terms.get(dep.to.getId()); if (this.to == null) { throw new IllegalStateException("Couldn't find the term when loading dep (" + dep.getFrom().getId()+", "+dep.getTo().getId()+")"); } this.rfunc = dep.rfunc; this.depcase = dep.depcase; }
private static String getDepPathString(final Term from, final Iterable<Dep> path) { final StringBuilder builder = new StringBuilder("_"); Term term = from; // current node in the path for (final Dep dep : path) { char prefix; if (dep.getFrom() == term) { prefix = '+'; term = dep.getTo(); } else { prefix = '-'; term = dep.getFrom(); } for (final String label : dep.getRfunc().split("-")) { final Character letter = getDepPathChar(label); builder.append(prefix).append(letter); } builder.append("_"); } return builder.toString(); }
final String func = dep.getRfunc(); if ("COORD".equals(func) || "CONJ".equals(func)) { final Term t = dep.getTo(); queue.add(t); if ("CC".equals(t.getMorphofeat())
public String getStr() { return rfunc + "(" + this.getFrom().getStr() + ", " + this.getTo().getStr() + ")"; }
private static boolean extractHeadsHelper(final KAFDocument document, final Term term, final java.util.function.Predicate<Term> predicate, final Collection<Term> result) { final String pos = extendedPos(document, term); boolean accepted = false; if (pos.startsWith("V")) { final Term srlHead = syntacticToSRLHead(document, term); if (!term.equals(srlHead)) { accepted = extractHeadsHelper(document, srlHead, predicate, result); } } if (!accepted && (predicate == null || predicate.test(term))) { result.add(term); accepted = true; } if (accepted) { for (final Dep dep : document.getDepsFromTerm(term)) { if (dep.getRfunc().toUpperCase().contains("COORD")) { extractHeadsHelper(document, dep.getTo(), predicate, result); } } } else { for (final Dep dep : document.getDepsFromTerm(term)) { extractHeadsHelper(document, dep.getTo(), predicate, result); } } return accepted; }
/** * Adds a dependency to the container */ void add(Dep dep) { deps.add(dep); /* Index by 'from' and 'to' terms */ if (dep.getFrom() != null) { String tId = dep.getFrom().getId(); indexAnnotation(dep, tId, depsIndexedByTerm); } if (dep.getTo() != null) { String tId = dep.getTo().getId(); indexAnnotation(dep, tId, depsIndexedByTerm); } this.indexBySent(dep, dep.getFrom().getSent(), this.depsIndexedBySent); }
for (final Dep dep : this.document.getDepsFromTerm(head)) { if (dep.getRfunc().equals("AMOD") || dep.getRfunc().equals("NMOD")) { final Term modifier = dep.getTo(); final ExternalRef modifierRef = NAFUtils.getRef(modifier, NAFUtils.RESOURCE_WN_SYNSET, null);