Perhaps my main concern is the change with respect to the fact that now not all features are indexed. I can see that allows for significant memory savings and speed improvements. However, it introduces further dependencies between Annotator creators and users. A feature structure that in UIMA 2.0 would be indexed and available for users in ways the original author did not anticipate would still be indexed. If the result for this change is to obtain empty iterators, it will lead to bugs difficult to track.
My question is: does the current metadata in the UIMAfit java annotations or XML descriptors captures exactly what feature structures are being indexed (I believe so, just want to double check). This could be a good opportunity to include some sanity checking on aggregates: if no annotator upstream has declared as indexing a certain feature structure, then indicating it as input can produce a warning. A more erroneous situation relates to accessing types not declared in the metadata. This is a common UIMAfit new user bug: forget to add any annotation to the class. In simpler configurations, it will work but in more complex ones (custom flow controllers, etc) will "fail" without failing: the annotations will just not be there. As I am concerned the selective indexing will exacerbate this situation, giving an actual error might be helpful.
