uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Burn Lewis <burnle...@gmail.com>
Subject Re: CAS Multipliers and Pipeline Troubles
Date Mon, 22 Jun 2009 15:09:40 GMT
You don't need a new Flow Controller ... just override the
ActionAfterCasMultiplier as is done in the example descriptor
Segment_Annotate_Merge_AE.xml<file:///C:/Program%20Files/IBM/apache-uima-as/examples/descriptors/cas_multiplier/Segment_Annotate_Merge_AE.xml>

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
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.

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.

- Burn

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