On 6/21/07, Katrin Tomanek <[EMAIL PROTECTED]> wrote:
BTW: where are the capabilities _really_ used in UIMA?


There are only a small number of things that capabilities are used for
right now.

The main use is just for documentation purposes - say if you want to
register a component in a repository like the one at
http://uima.lti.cs.cmu.edu and allow people to search and
what types your component produces as output.

They can also be used in Flow Controllers.  The example
WhiteboardFlowController uses them to automatically compute the flow.
Based on the capabilities it tries to figure out what order makes
sense to run your annotators in.  And it won't run an annotator at all
if the CAS doesn't contain instances of the input types that the
annotator declares.  But that's just an example FlowController, not a
general behavior of the UIMA framework.

The Document Analyzer tool will not display any types that are not
listed in the outputs (of the outermost Aggregate AE).  So for example
if Tokens are produced internally by some annotator and consumed by a
downstream annotator, but are not declared as outptus of the entire
aggregate, then they won't show up in the CAS Viewer display.

Finally they are used in the computation of the "ResultSpecification"
that's passed to annotator's output methods.  This gives an annotator
the opportunity to optimize its processing by not producing Types that
aren't necessary.  Most annotators don't pay attention to the result
specification anyway, though.

-Adam

Reply via email to