Hello,
if I got it right the idea of uima is to provide a framework which
can be extended by annotators which
are developed by a 3rd party. A user can now go shopping for the
annotators he needs, put them
together and is happy. To put them togehter he must declare his own
type system.
Now he will encounter a problem to get the annotators to work
together with his type system.
One solution might be to write little annotators which cast the FS
instance to meet the annotators
type system before it was executed and after that it will run again
to cast the FS instances back.
What he have done is he has mapped his FS types to the annotator
types and then mapped them back
to his FS types.
I have written uima wrappers for the opennlp project which nearly
exactly do this natively. If some
wants to use them he must specify his types in the descriptor and
then the annotator
try to get instances of them.
http://opennlp.cvs.sourceforge.net/opennlp/opennlp.uima/src/opennlp/uima
Maybe it would make things for all easier to make this the default way.
If someone wants to use an annotator he must provide a mapping
between annotator type system
and his own type system.
I think this would also solve your jcas problems, cause jcas types
(classes) are then only
locally known by one annotator.
Jörn