public static boolean hasHead(final KAFDocument document, final Object annotation, final Term head) { List<Span<Term>> spans; if (annotation instanceof Coref) { spans = ((Coref) annotation).getSpans(); } else if (annotation instanceof Entity) { spans = ((Entity) annotation).getSpans(); } else if (annotation instanceof Timex3) { spans = ImmutableList.of(KAFDocument.newTermSpan(document .getTermsByWFs(((Timex3) annotation).getSpan().getTargets()))); } else if (annotation instanceof Predicate) { spans = ImmutableList.of(((Predicate) annotation).getSpan()); } else if (annotation instanceof Role) { spans = ImmutableList.of(((Role) annotation).getSpan()); } else { throw new IllegalArgumentException("Unsupported annotation: " + annotation); } for (final Span<Term> span : spans) { if (head == extractHead(document, span)) { return true; } } return false; }
private void applySRLRoleLinking(final KAFDocument document) { // Process all the roles in the SRL layer for (final Predicate predicate : Lists.newArrayList(document.getPredicates())) { for (final Role role : predicate.getRoles()) { // Identify the role head. Skip if not found. final Term head = NAFUtils.extractHead(document, role.getSpan()); if (head == null) { continue; } // Identify the terms that can be linked final Set<Term> argTerms = document.getTermsByDepAncestors( Collections.singleton(head), PARTICIPATION_REGEX); // Perform the linking, possible augmenting terms using coref info linkEntitiesTimexPredicates(document, role, role.getSpan(), argTerms, this.srlRoleLinkingUsingCoref); } } }
final Set<Term> mateTerms = ImmutableSet.copyOf(mateRole.getSpan() .getTargets()); for (final Role semaforRole : semaforPredicate.getRoles()) { final Set<Term> semaforTerms = ImmutableSet.copyOf(semaforRole.getSpan() .getTargets()); if (mateTerms.equals(semaforTerms)) { mateRole.getSemRole(), mateRole.getSpan()); semaforPredicate.addRole(semaforRole); for (final ExternalRef ref : mateRole.getExternalRefs()) {
Span<Term> roleSpan = role.getSpan(); if (roleSpan.getTargets().size() > 0) { Comment spanComment = new Comment(role.getStr());
roleElem.setAttribute("id", role.getId()); roleElem.setAttribute("semRole", role.getSemRole()); Span<Term> roleSpan = role.getSpan(); if (roleSpan.getTargets().size() > 0) { Comment spanComment = new Comment(StringEscapeUtils.escapeXml11(role.getStr()));
for (final Role role : predicate.getRoles()) { final Term head = NAFUtils.extractHead(this.document, role.getSpan()); if (head != null) { if ("A1".equals(role.getSemRole())) { Set<Term> corefPredicateHeads = null; for (final Role role : predicate.getRoles()) { final Term roleHead = NAFUtils.extractHead(this.document, role.getSpan()); if (roleHead != null) { final Set<Term> argHeads = this.document.getTermsByDepAncestors(
if (ann.objectURI != null) { for (final Role role : predicate.getRoles()) { selfArg |= head.equals(NAFUtils.extractHead(this.document, role.getSpan()));
final Term roleHead = NAFUtils.extractHead(this.document, role.getSpan()); if (roleHead != null) { for (final Term argHead : this.document.getTermsByDepAncestors(
public String getStr() { String str = ""; if (!this.span.isEmpty()) { Term target = this.span.getFirstTarget(); str += target.getId() + " " + target.getStr() + " "; } str += ":"; for (Role role : this.roles) { if (!role.span.isEmpty()) { Term roleTarget = role.getSpan().getFirstTarget(); str += " " + role.getSemRole() + "[" + roleTarget.getId() + " " + roleTarget.getStr() + "]"; } } return str; }
public String getStr() { String str = ""; if (!this.span.isEmpty()) { Term target = this.span.getFirstTarget(); str += target.getId() + " " + target.getStr() + " "; } str += ":"; for (Role role : this.roles) { if (!role.span.isEmpty()) { Term roleTarget = role.getSpan().getFirstTarget(); str += " " + role.getSemRole() + "[" + roleTarget.getId() + " " + roleTarget.getStr() + "]"; } } return str; }