uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard Eckart de Castilho <eckar...@tk.informatik.tu-darmstadt.de>
Subject Re: UIMA and uimaFIT
Date Thu, 20 Oct 2011 06:57:29 GMT
Am 20.10.2011 um 01:08 schrieb Eddie Epstein:

> On Wed, Oct 19, 2011 at 2:06 AM, Richard Eckart de Castilho
> <eckartde@tk.informatik.tu-darmstadt.de> wrote:
>> In Darmstadt we completely rely on descriptors generated at runtime form the annotations
in the Java
>> files and find that very very convenient. I understand others will prefer static
XML files to
>> runtime-generated descriptors.
> This is a common approach for users with complex systems with many
> configuration parameters. However, for systems with many annotators,
> and particularly deeply nested annotators, parameter overrides becomes
> more of a problem and working with temporary descriptors is another
> complication. This is why Adam has submitted a jira to allow a Java
> property file to override parameters anywhere in such a system. All
> the descriptors become more like code, they live in the classpath and
> are all imported by name, and any parameter values are easily changed
> via a single property file.
> Another advantage for real descriptor files is scale out frameworks. I
> don't understand how uimaFit will work in UIMA-AS or other scale out
> frameworks.

The context injection will work with UIMA-AS or any other scale out system
because is only an extra step that happens in the "initialize" phase of the
component life-cycle. Currently uimaFIT invokes the logic from the initialize()
method - if it was integrated into UIMA, then the core framework would call
the logic before invoking initialize().

Run-time generated descriptors will go nicely with UIMA-AS or other scale 
out frameworks that require that a remote service permanently runs. It 
will work nicely with scale-out systems that support on-demand deployment,
e.g. Hadoop. Instead of shipping a static descriptor with the Job-JAR, 
the map/reduce code can generate a descriptor at runtime, create an AAE
from it and run it.

However, the "factories" of uimaFIT were initially not intended to support
scale out, but to allow for the simple creation of descriptors in unit tests.
Meanwhile we also intensively use it in our day-to-day resereach business because
we need highly flexible pipeline configurations (parameter-wise and flow-wise),
but we do not make much use of scale-out at the moment.

Again: uimaFIT context injection and uimaFIT factories are largely independent
from each other. You can use either one alone or both together - depending on
how it fits into your usage scenario.


Richard Eckart de Castilho
Technical Lead
Ubiquitous Knowledge Processing Lab 
FB 20 Computer Science Department      
Technische Universit├Ąt Darmstadt 
Hochschulstr. 10, D-64289 Darmstadt, Germany 
phone [+49] (0)6151 16-7477, fax -5455, room S2/02/B117
Web Research at TU Darmstadt (WeRC) www.werc.tu-darmstadt.de

View raw message