uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eddie Epstein <eaepst...@gmail.com>
Subject Re: Are CasConsumers deprecated by AnalysisEngines?
Date Tue, 11 Aug 2009 13:49:30 GMT
> In 2007 Adam Lally stated:
>> In recent versions of UIMA there is essentially no difference between an
>> AnalysisEngine and a CasConsumer
> I think at least in CPEs it makes a difference, since with the first
> CasConsumer the CPE supposed to be run in a single thread, so the
> CasConsumer sees all the documents. The CPE, however, is afaik deprecated
> and replaced by UIMA AS.

The CPE logic for what runs in the final, "CasConsumer thread", is to
walk the pipeline backwards, stopping at the first component that is
"parallizable". Any non-parallizable components which occur before
that are run in the processing pipeline thread(s), but only a single
instance of that component is run and all pipelines route CASes thru

The CPE is not deprecated, but all development effort for scale-up
moved to UIMA AS.

> If an AnalysisEngine has "allow multiple deployment" set to "false", that
> should have the same affect within a CPE or within UIMA AS.
> So the questions are:
> - Is there any reason why CasConsumers are still required?
> - Is there any reason that a CasConsumer cannot be replaced "as is" (minus
> inheriting from a different base class and changing the descriptor type) by
> an AnalysisEngine that may not be deployed multiply?

CasConsumers are not required. They (and collection readers) can be
replaced by AnalysisEngines with appropriate operational properties in
order to have a single component interface that needs to be
implemented for primitives, aggregates, remote services, or anything
else that comes along.


View raw message