Option 1 - by foot:

I guess the uimaFIT JCasIterator should continue to read CAS by CAS
from the reader. However, for each CAS read by the reader, it should be
able to return 0-x CASes. Currently it can only return 1 because it 
calls engine.process(jCas) on each engine in turn. To return 0-x, 

I think, it would have create a single aggregate engine from all the engines, 
call engine.processAndOutputNewCASes(jCas) on that, and handle the UIMA 
JCasIterator
that is returned by it (sorry for two classes having the same name hereā€¦).

The UIMA JCasIterator would need to become part of the uimaFIT JCasIterator 
state.
Special handling needs to be introduced to make sure the hasNext() method still 
works,
in particular for the case that a CAS produced by the reader does not result in 
any
output CAS.

Option 2 - let UIMA do the heavy lifting

An alternative and much simple approach might be to create an aggregate which
does not only contain the engines, but also the reader. Then you don't have to 
worry about the reader anymore at all. Just create a UIMA JCasIterator and 
poll CASes from that until it is empty. Some additional info may be found in
the legacy issue 89 [1].

There are probably nasty details, but those should be roughly the general
approaches.

Cheers,

-- Richard

[1] https://code.google.com/p/uimafit/issues/detail?id=89

On 04.12.2013, at 01:16, Swirl <lriwsw...@gmail.com> wrote:

> Richard Eckart de Castilho <rec@...> writes:
> 
>> 
>> For further reference:
>> 
>> https://issues.apache.org/jira/browse/UIMA-3470
> 
> Thanks for raising the Jira.
> 
> I tried looking at the source codes, but I think I am not able to come up 
> with 
> a solution for this.
> Do you have any pointers to get me started?
> 
> Thanks.

Reply via email to