Hi,

I was wondering what exactly the semantics of JCasUtil.selectAt is supposed to 
be after looking into the implementation, since the JavaDoc isn’t very precise. 
I initially thought that it would select annotations of the given type with the 
exact begin and end, but this is not the case when inspecting the 
implementation. The problem is in CasUtil.selectAt with the following while 
loop:

while (it.isValid()) {
  AnnotationFS a = it.get();
  // If the offsets do not match the specified offets, we're done
  if (a.getBegin() != aBegin && a.getEnd() != aEnd) {
    break;
  }
  it.moveToNext();
  list.add(a);
}

I would have expected that either begin or end must be different to drop the 
item, i.e. "if (a.getBegin() != aBegin || a.getEnd() != aEnd)" instead. This is 
obviously not the case, and it does not have the same behaviour like 
selectCovered either, so what is the intend if it’s not a bug?

Best,
Mario












Reply via email to