Hi. Thanks for your answers. So it seems that programming-language independence is the primal reason to do things as they have done.
Many thanks, Asher. 2016-09-09 18:49 GMT+03:00 Richard Eckart de Castilho <[email protected]>: > 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
