This page collects differences between Version 2 of UIMA and Version 1.
New Annotator Interfaces
UIMA 2.x has a new set of Annotator interfaces. Annotators should extend CasAnnotator_ImplBase
or JCasAnnotator_ImplBase
instead of the v1.x TextAnnotator_ImplBase
and JTextAnnotator_ImplBase
.
The v1.x annotator interfaces are unchanged and are still supported for backwards compatibility.
Differences between v2 and v1 annotator interfaces
The following summarizes what has changed between the v2 annotator interfaces (CasAnnotator_ImplBase
, JCasAnnotator_ImplBase
) and the v1 interfaces (TextAnnotator_ImplBase
,JTextAnnotator_ImplBase
).
Result Specification
The Result Specification was previously passed in on each process() call as the 2nd parameter. Now it is set when changed and it's up to the annotator to store it in a local field and make it available
when needed.
This approach lets the annotator receive a specific signal (a method call) when the Result Specification changes. Previously, it would need to check on every call to see if it changed.
The default impl base classes provide set/getResultSpecification(...) methods for this.
Annotator Context now UimaContext
The context for the Annotator is the same as the overall UIMA context. The impl base classes provide a getContext() method which returns now the UimaContext object