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 >