You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by Aaron Kaplan <Aa...@xrce.xerox.com> on 2007/11/21 12:53:35 UTC

Result Specifications in CPE

In Section 1.5.5.4 of "UIMA Tutorial and Developers' Guides" I read:

   The Default Result Specification is always used for all components of 
a Collection Processing Engine.

Why is this?  Is it just because nobody's gotten around to putting in a 
call to setResultSpecification, or is there some fundamental reason that 
it couldn't be done?

What I would like is that when my annotator is instantiated inside a 
CPE, it can skip generating certain annotations if no other component in 
the CPE is going to consume them.

-Aaron

Result Specifications in CPE

Posted by Michael Baessler <mb...@michael-baessler.de>.
I think this is an documentation issue. Since we changed the code to 
work fine with the capabilityLanguageFlow the Default ResultSpec is not 
used in any case, right?

-- Michael


> Aaron Kaplan wrote:
>> In Section 1.5.5.4 of "UIMA Tutorial and Developers' Guides" I read:
>>
>>   The Default Result Specification is always used for all components 
>> of a Collection Processing Engine.
>>
>> Why is this?  Is it just because nobody's gotten around to putting in 
>> a call to setResultSpecification, or is there some fundamental reason 
>> that it couldn't be done?
>>
>> What I would like is that when my annotator is instantiated inside a 
>> CPE, it can skip generating certain annotations if no other component 
>> in the CPE is going to consume them.
>>
>> -Aaron
> I think this is a documentation issue, but I'm not quite sure. I will 
> start a discussion about this on the uima-dev list.
> I think when you use an aggregate AE with a capabilityLanguageFlow as 
> flow constraint, a computed Result Specification is used.
>
> If you don't use an aggregate AE as CasProcessor I think it is true, 
> that the Default Result Specification is used.
>
> We will let you know the result of the discussion on uima-dev.
>
> -- Michael
>


Re: Result Specifications in CPE

Posted by Aaron Kaplan <Aa...@xrce.xerox.com>.
Adam Lally wrote:

> The documentation may be a little confusing.  What it means is that
> the default Result Spec is used for all _top level_ components in the
> CPE.  For an aggregate AE, the rules in section 1.5.5.3 of the
> documentation apply _within_ that aggregate.

Great.  Thanks for the clarification.
-Aaron

Re: Result Specifications in CPE

Posted by Adam Lally <al...@alum.rpi.edu>.
On Nov 21, 2007 8:02 AM, Michael Baessler <mb...@michael-baessler.de> wrote:
>
> Aaron Kaplan wrote:
> > In Section 1.5.5.4 of "UIMA Tutorial and Developers' Guides" I read:
> >
> >   The Default Result Specification is always used for all components
> > of a Collection Processing Engine.
> >
> > Why is this?  Is it just because nobody's gotten around to putting in
> > a call to setResultSpecification, or is there some fundamental reason
> > that it couldn't be done?
> >
> > What I would like is that when my annotator is instantiated inside a
> > CPE, it can skip generating certain annotations if no other component
> > in the CPE is going to consume them.
> >
> > -Aaron
> I think this is a documentation issue, but I'm not quite sure. I will
> start a discussion about this on the uima-dev list.
> I think when you use an aggregate AE with a capabilityLanguageFlow as
> flow constraint, a computed Result Specification is used.
>
> If you don't use an aggregate AE as CasProcessor I think it is true,
> that the Default Result Specification is used.
>

Yes, the last thing that Michael said is right.

The documentation may be a little confusing.  What it means is that
the default Result Spec is used for all _top level_ components in the
CPE.  For an aggregate AE, the rules in section 1.5.5.3 of the
documentation apply _within_ that aggregate.

So it is true that if you have an AE that outputs types x and y, and
you put that AE as a top-level component in a CPE, but no downstream
component of the CPE inputs type x, then the result spec. for your AE
will still include both types x and y.  The same would be true if you
wrapped your AE in an aggregate that declared both x and y as outputs.
 The bottom line is: downstream components of the CPE have no effect
on the result spec.

I don't think there's any fundamental reason for this, it's just that
no one ever got around to implementing it.

-Adam

Re: Result Specifications in CPE

Posted by Michael Baessler <mb...@michael-baessler.de>.
Aaron Kaplan wrote:
> In Section 1.5.5.4 of "UIMA Tutorial and Developers' Guides" I read:
>
>   The Default Result Specification is always used for all components 
> of a Collection Processing Engine.
>
> Why is this?  Is it just because nobody's gotten around to putting in 
> a call to setResultSpecification, or is there some fundamental reason 
> that it couldn't be done?
>
> What I would like is that when my annotator is instantiated inside a 
> CPE, it can skip generating certain annotations if no other component 
> in the CPE is going to consume them.
>
> -Aaron
I think this is a documentation issue, but I'm not quite sure. I will 
start a discussion about this on the uima-dev list.
I think when you use an aggregate AE with a capabilityLanguageFlow as 
flow constraint, a computed Result Specification is used.

If you don't use an aggregate AE as CasProcessor I think it is true, 
that the Default Result Specification is used.

We will let you know the result of the discussion on uima-dev.

-- Michael