On 09.09.2016, at 17:37, Asher Stern <[email protected]> wrote: > > You explanation really makes things clear, and also answers my question. > > I still wonder whether some automatic mechanism can be developed to > automatically generate TypeDescription and TypeSystemDescription directly > from a Java class (under some conditions). > This can shorten the learning curve of UIMA and remove the need for > automatically-generated code, as well as tracking XML files in the > classpath. (Such benefits are actually part of the primary goals of > UimaFIT. Isn't it?) > Though, such a development, even if possible, would not be trivial.
The way that UIMA works, the JCas files are not meant to be a canonical source of metadata information. The typesystem is an independent schema and the JCas classes are a convenience. They can be used, but they do not have to be used. In some cases, it is more reasonable to use the CAS API instead of the JCas API and to operate entirely without the JCas classes. E.g. an annotation editor where you can flexibibly define types (such as WebAnno) would rely on the CAS API where annotations are accessed by name instead of on the JCas API where compiled Java classes are required. So JCas is optional, but type descriptors are not. With components, it is different. The descriptor is meaningless without the implementing component. If somebody thought it would be worth the effort to generate type descriptors from annotated Java classes, it wouldn't be just annotating fields or methods. Some code generation would probably be involved, maybe comparable to how Lombok works. That approach has its own drawbacks starting from requiring a compiler plugin and going until e.g. Eclipse being unable to search for references of auto-generated methods. I'll not spend my time atm to follow that idea, but maybe you want to try it? ;) Btw. there is ongoing work on a reimplementation of the CAS (and JCas) towards a UIMA v3 in the future. If you consider diving into this, you may want to read a bit in the recent archives of the developer mailing list first. Cheers, -- Richard
