Renaud,

We (clinical NLP group at the University of Utah) have written a platform that 
sits on top of UIMA-AS that will allow you to dynamically assign and even 
generate types for annotation engines.  We have a whole family of annotators 
whose parameters are dynamic using this platform.  We are almost ready to 
release this as open source, though it is still probably another month or two 
out.  Until that time we are open to collaboration opportunities to wherein we 
give you access to the software and teach you how it is used.

Thanks,

Thomas Ginter
801-448-7676
thomas.gin...@utah.edu




On Dec 5, 2013, at 3:43 AM, Richard Eckart de Castilho <r...@apache.org> wrote:

> To my knowledge, the capabilities are part of the descriptor which must be 
> available before the AE is initialized. You cannot retroactively change the
> descriptor of a method from within its initialize() method.
> 
> It would be nice to have something like this, though. But that would also mean
> switching any flow controllers which use this information from a static 
> planning
> to a dynamic planning approach.
> 
> How about filing a feature request against the UIMA framework?
> 
> -- Richard
> 
> On 05.12.2013, at 08:35, Renaud Richardet <renaud.richar...@gmail.com> wrote:
> 
>> I find it very convenient to add
>> 
>> @TypeCapability(inputs = { TOKEN, SENTENCE, COOCCURRENCE })
>> so that I can ensure that dependencies are met. But sometimes, the
>> dependencies are dynamic (e.g. an input type capability is part of the
>> config of an annotator, and is loaded dynamically, see code below).
>> 
>> Is there a way to dynamically set a required annotation type from within a
>> UIMAfit annotator? Something like:
>> 
>>   @Override
>> 
>>   public void initialize(UimaContext context)
>> 
>>           throws ResourceInitializationException {
>> 
>>       super.initialize(context);
>> 
>>       try {
>> 
>>           // loading annotation class dynamically
>> 
>>           requiredAnnotation= (Class<? extends Annotation>) Class.forName(
>> "org.uima.MyRequiredAnnotation");
>> 
>>           // adding it as TypeCapability's input
>> 
>>           context.getMetadata().addCapabilityInput(requiredAnnotation);
>> 
>>       } catch (Exception e) {
>> 
>>           throw new ResourceInitializationException(e);
>> 
>>       }
>> 
>>   }
>> 
>> 
>> Thanks, Renaud
> 

Reply via email to