[ 
https://issues.apache.org/jira/browse/UIMA-2917?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13664252#comment-13664252
 ] 

Richard Eckart de Castilho commented on UIMA-2917:
--------------------------------------------------

It'd be interesting to support the union strategy. It would allow for a kind of 
"mix-in" strategy. Consider you have one "base" type system which defines a 
type "Token" with a feature "part-of-speech". Another "tagset" type system 
would redefine "Token" only allowing "part-of-speech" values from a certain tag 
set. That would allow to use the inheritance mechanism for something different 
than specializing for a particular tag set, e.g. to have "Word", "Number" or 
"Whitespace" sub-types of "Token".

So what happens now in this case? Your definition of "strict" says the values 
are not merged in a union if the value sets are different. What if one type 
system does not make a restriction at all and the other does? At least the 
"closed world" assumption would not be violated, if the restriction was now 
applied, rather the contrary.
                
> Type System Merging for string subtypes with allowed values
> -----------------------------------------------------------
>
>                 Key: UIMA-2917
>                 URL: https://issues.apache.org/jira/browse/UIMA-2917
>             Project: UIMA
>          Issue Type: Bug
>          Components: Core Java Framework
>    Affects Versions: 2.4.0SDK
>            Reporter: Marshall Schor
>            Priority: Minor
>             Fix For: 2.4.1SDK
>
>
> UIMA uses type system merging to combine separately developed annotators and 
> their type systems.  When the same type is define in multiple type systems, 
> perhaps with different features, these are "merged" where possible, and if 
> not possible, exceptions are thrown.  The current implementation is missing 
> any support for merging subtypes of Strings - which UIMA uses for associating 
> Allowed-Values for.  If two type systems define the same-named subtype of 
> String, no merging of allowed values is done, no exception is thrown if the 
> allowed value sets are different, and the merge uses the first definition as 
> the merge result, ignoring the others. 
> The behavior could be changed to be "strict" - throwing an exception if the 
> allowed values are not identical, or more lenient - for example, having the 
> merged definition be the union of the the sets of allowed value.  The 
> drawback to the union approach is that any annotator which was assuming a 
> "closed universe" of possible values, could now be seeing values not in the 
> set it expected.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to