Just a note.  I'm currently using JRuby as part of an annotator and I
generate all my internal annotation classes from the type system
dynamically, like JCasGen but on the fly.  Right now, the only ways I
have access to the type system are to either have the Analysis Engine
Descriptor point at itself, which seems weird or get the type system
from the first Cas that comes through.  It would be nice to be able to
see this stuff somehow.  

Frank

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
Adam Lally
Sent: Thursday, June 21, 2007 6:15 PM
To: [email protected]; [EMAIL PROTECTED]
Subject: Re: programmatic access to AE's capabilities

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