We might want to take a look at what other frameworks are doing
these days. For example, one could imagine UIMA annotations
(as in Java annotations) in source code, and tooling that
creates descriptors automatically from those. We should be able
to reconcile the need for external descriptors with the desire
to declare a parameter in just one place.
In OpenNLP UIMA wrapper the implementation code checks
if mandatory parameters are really declared. These checks are also
performed by UIMA but thats error prone because its really easy to break
the descriptor.
If we now use annotations inside the AEs to declare the parameters the
configurationParameterSettings element in the descriptor is not necessary
anymore and can also not break. In the example of the OpenNLP annotators
it would now be possible to remove the second check since the implementation
code has full control over the parameters and now only have to trust UIMA
and not the user.
Another interesting thing could be to inject the configuration
parameters directly
into the annotators based on the annotations.
Jörn