You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by Marshall Schor <ms...@schor.com> on 2010/08/12 21:55:23 UTC

Rework of resultSpecification impl

 While trying to address the issue that resulted in re-opening

https://issues.apache.org/jira/browse/UIMA-1840

I've discovered several corner cases where the impl may not be doing the right thing.

Here's one: 

ResultSpec has typeXXX:featYYY

type system has subtype of typeXXX, call it typeXXXsub

In this case, it seems to me that containsFeature(typeXXXsub:featYYY) should return true, but I think it will return false in our current impl.

========

Another case: 

ResultSpec has typeXXX, allFeatures

In this case, it seem also that containsFeature(typeXXXsub:featYYY) could return true, but I can also see an argument where it would not.  

Argument for returning true: the designation of allFeatures for typeXXX is thought to mean all features for this type, and all features for any subtypes, including those features introduced only in the subtypes.

Argument for returning false: the designation of allFeatures for typeXXX is thought to mean all features just of this type. If subtypes introduce additional features, those are not covered by this specification.

This may be a nit, which no one is (currently) using, but I'd like to have a clear definition for it and make the impl conform.

Any thoughts?

-Marshall




Re: Rework of resultSpecification impl

Posted by Marshall Schor <ms...@schor.com>.

On 8/12/2010 5:38 PM, Adam Lally wrote:
> On Thu, Aug 12, 2010 at 3:55 PM, Marshall Schor <ms...@schor.com> wrote:
>
>>  While trying to address the issue that resulted in re-opening
>>
>> https://issues.apache.org/jira/browse/UIMA-1840
>>
>> I've discovered several corner cases where the impl may not be doing the
>> right thing.
>>
>> Here's one:
>>
>> ResultSpec has typeXXX:featYYY
>>
>> type system has subtype of typeXXX, call it typeXXXsub
>>
>> In this case, it seems to me that containsFeature(typeXXXsub:featYYY)
>> should return true, but I think it will return false in our current impl.
>>
> Returning true seems correct to me.
>
>
>
>> ========
>>
>> Another case:
>>
>> ResultSpec has typeXXX, allFeatures
>>
>> In this case, it seem also that containsFeature(typeXXXsub:featYYY) could
>> return true, but I can also see an argument where it would not.
>>
>> Argument for returning true: the designation of allFeatures for typeXXX is
>> thought to mean all features for this type, and all features for any
>> subtypes, including those features introduced only in the subtypes.
>>
>> Argument for returning false: the designation of allFeatures for typeXXX is
>> thought to mean all features just of this type. If subtypes introduce
>> additional features, those are not covered by this specification.
>>
>> This may be a nit, which no one is (currently) using, but I'd like to have
>> a clear definition for it and make the impl conform.
>>
> I vote for the latter.  True should be returned only if featYYY is defined
> in typeXXX.

This seems more correct to me, also. -Marshall
> -Adam
>

Re: Rework of resultSpecification impl

Posted by Adam Lally <al...@alum.rpi.edu>.
On Thu, Aug 12, 2010 at 3:55 PM, Marshall Schor <ms...@schor.com> wrote:

>  While trying to address the issue that resulted in re-opening
>
> https://issues.apache.org/jira/browse/UIMA-1840
>
> I've discovered several corner cases where the impl may not be doing the
> right thing.
>
> Here's one:
>
> ResultSpec has typeXXX:featYYY
>
> type system has subtype of typeXXX, call it typeXXXsub
>
> In this case, it seems to me that containsFeature(typeXXXsub:featYYY)
> should return true, but I think it will return false in our current impl.
>

Returning true seems correct to me.



> ========
>
> Another case:
>
> ResultSpec has typeXXX, allFeatures
>
> In this case, it seem also that containsFeature(typeXXXsub:featYYY) could
> return true, but I can also see an argument where it would not.
>
> Argument for returning true: the designation of allFeatures for typeXXX is
> thought to mean all features for this type, and all features for any
> subtypes, including those features introduced only in the subtypes.
>
> Argument for returning false: the designation of allFeatures for typeXXX is
> thought to mean all features just of this type. If subtypes introduce
> additional features, those are not covered by this specification.
>
> This may be a nit, which no one is (currently) using, but I'd like to have
> a clear definition for it and make the impl conform.
>

I vote for the latter.  True should be returned only if featYYY is defined
in typeXXX.

-Adam