The uimaFIT selectFollowing as well as the UIMA v3 SelectFS.following show the following behavior:
- Given two annotations X: [0-1] and Y: [1-1]
- performing an operation select annotations FOLLOWING X, Y is returned.
So a zero-width annotation at the end of another annotation is treated to be "following" that other annotation.
However, a zero-width annotation at the beginning of another annotation is NOT treated to be "preceding" that other annotation.
- Given two annotations X: [1-2] and Y: [1-1]
- performing an operation select annotations PRECEDING Y, X is not returned.
Looking at the uimaFIT implementation, the fact that the SelectFS was modelled after the uimaFIT implementation and a general discussion on the mailing list regarding the rationales for interval predicates (e.g. following and preceding), I come to the conclusion that the uimaFIT selectFollowing was simply not thought to the end when it was implemented. So this seems to be an edge-case bug that needs to be fixed for a consistent behavior.