} catch (CASException e) {
throw new AnalysisEngineProcessException(e);
}
for(BinaryTextRelation relation : Lists.newArrayList(JCasUtil.select(goldView, BinaryTextRelation.class))) {
RelationArgument arg1 = relation.getArg1();
RelationArgument arg2 = relation.getArg2();
String eventText;
String timeText;
List<EventMention> coveringSystemEventMentions;
if(arg1.getArgument() instanceof TimeMention && arg2.getArgument() instanceof EventMention) {
timeText = arg1.getArgument().getCoveredText().toLowerCase();
eventText = arg2.getArgument().getCoveredText().toLowerCase();
coveringSystemEventMentions = JCasUtil.selectCovered(
systemView,
EventMention.class,
arg2.getArgument().getBegin(),
arg2.getArgument().getEnd());
} else if(arg1.getArgument() instanceof EventMention && arg2.getArgument() instanceof TimeMention) {
eventText = arg1.getArgument().getCoveredText().toLowerCase();
timeText = arg2.getArgument().getCoveredText().toLowerCase();
coveringSystemEventMentions = JCasUtil.selectCovered(
systemView,
EventMention.class,
arg1.getArgument().getBegin(),
arg1.getArgument().getEnd());
} else {
// this is not a event-time relation
continue;
}
if(coveringSystemEventMentions.size() > 0) {
// keep this instance
System.out.println("keeping: " + timeText + "-" + eventText);
continue;
}
System.out.println("removing: "+ timeText + "-" + eventText);
arg1.removeFromIndexes();
arg2.removeFromIndexes();
relation.removeFromIndexes();
}
// remove events (that didn't participate in relations) not discovered by dictionary lookup
for(EventMention mention : Lists.newArrayList(JCasUtil.select(goldView, EventMention.class))) {