uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Valkyrie Savage" <sav...@tk.informatik.tu-darmstadt.de>
Subject RE: CAS Multipliers and Pipeline Troubles
Date Tue, 23 Jun 2009 11:04:50 GMT
Thank you again!  The Flow Controller that I wrote was basically just a stripped version of
the AdvancedFixedFlowController in org.apache.uima.examples.flow, but I guess it would have
been easier to just use that one that was already there..  At any rate, it's all working now.
 I appreciate it!


-----Original Message-----
From: Burn Lewis [mailto:burnlewis@gmail.com]
Sent: Mon 6/22/2009 5:09 PM
To: uima-user@incubator.apache.org
Subject: Re: CAS Multipliers and Pipeline Troubles
You don't need a new Flow Controller ... just override the
ActionAfterCasMultiplier as is done in the example descriptor

Unfortunately section 7.4 of the Tutorial says that Cas Multipliers are not
supported by the CPE .. it was designed to support AAEs that return only the
input CAS.  It can run AAEs with CMs but the generated CASes cannot be
returned and must be dropped ... e.g. after their contents have been
consumed and saved externally.  With some effort you could let the input CAS
continue in the flow following the split CASes and so be the last CAS to
enter your merge component where it could be filled with the accumulated
results and so be the only CAS returned to the CPE.  You'd have to make your
intermediate annotators ignore it and pass it through unprocessed.  Your

>> This is interesting.  I think it would be sort of inefficient for me to rework all
the components and metadata with some kind of "ignore" flag, though.  I think saving in some
intermediate step would be better.

final merge component would not be a CM as it would not generate any new
CASes, and your aggregate would have outputsNewCASes="false" so that the
intermediate CASes would be dropped at the end of the flow.
Another possibility is to move your Cas Consumer into the aggregate so it
sees all of the split CASes, replacing the merge component.

>> This makes sense.

There are other alternatives to the CPE ... putting your Collection Reader
at the start of your aggregate, using a custom flow controller with UIMA-AS,
or using the processAndOutputNewCASes api to handle an aggregate CM.

>> CPEs are what's typically used in my lab, so I think I'll stick to those.  But thanks.

- Burn

  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message