uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Lally" <ala...@alum.rpi.edu>
Subject Re: Default Result Specifications too complicated?
Date Fri, 08 Jun 2007 14:06:30 GMT
On 6/8/07, Michael Baessler <mba@michael-baessler.de> wrote:
> the old code is still in place that tries to set the result spec for the
> next node, but I think it has no effect.
> It is in CapabilityLanguageFlowObject.next()
>         // check if current engine should be called
>         if (shouldEngineBeCalled == true) {
>           // set result spec for current analysis engine
>           node.setResultSpec(currentAnalysisResultSpec);
>           // return current analysis engine node
>           return new SimpleStep(node.getCasProcessorKey());
> So if the AnalysisSequenceCapabilityNode does not support setting a
> ResultSpec than we
> should remove this method or at least deprecate it since it is not
> support. Also the comment of
> this class is wrong!

This isn't a user-facing API, though.  This code is now just an
implementation detail of the CapabilityLanguageFlowController.  I just
reused the old implementation classes and wrapped them in the new
FlowController interface.

> I think that this is a very important feature for search engine
> integrations. It's so bad that the test cases did not cover it.
> The tests cover only some cases where the annotator isn't called anyway
> so we don't see that bad behavior!
> How big is the design change to enable the result spec manipulation
> again. I know that some of the UIMA 1.4 users want to
> migrate to Apache UIMA and they use this feature. So they maybe can't
> migrate if this feature is not supported! Maybe there
> is a workaround, but this depends on the the annotator capabilities and
> is not always possible.
> If possible this feature should be in UIMA 2.2.

It's a little tricky since the semantics of Result Spec have changed
to be less of a per-call parameter and instead there is an
AE.setResultSpec call that is stateful.   I guess we can make a new
Step type like SimpleStepWithResultSpec (maybe a subtype of
SimpleStep) and then change ASB_impl where it interprets the step so
that it calls setResultSpec on the target AE before invoking that AE's
process method.  I'm not sure what all the implications are of doing

Also I don't know when I would have time to do this...


View raw message