As part of my UIMA pipeline, I have a number of analysis engines that produce different annotations based on their configuration. For instance, you might configure a gazetteer annotator to annotate people in one instance, and locations in another (potentially both within the same pipeline). I also have a flow controller that looks at the inputs and outputs of each analysis engine and works out the optimum order to run them in.
However, I'm struggling to find a way for the analysis engine to pass information about the types it consumers/produces to the flow controller. I looked at doing it with capabilities, but that doesn't work because I am unable to modify those capabilities (as far as I can tell) at run time to match the configuration. I also looked at trying to use the Session object, but it would appear that this is not shared between the FlowContext and the UimaContext. The only thing I've found that is even remotely plausible is that I can access the ConfigurationParameters of the analysis engine from the flow controller, but using that will involve the flow controller having an understanding of how each analysis engine can be configured so I'd rather not use that if I can help it. How can I pass information from the analysis engine to the flow controller? Alternatively, is there a way to get from the analysis engine key to the instance itself so that I can directly ask the analysis engine how it is configured? Thanks, James
