Hi List-Members, I'm using UIMA in a very large project. For two reasons I would like to store annotations /partly and the SofaText/SofaStream: 1.) The workflow of our application is roughly as follows: First, UIMA AE is used to add Meta Data to the artifacts. Second, the artifacts are stored together with the Meta Data in a DB and accessed by several other (non-uima) components. From time to time a second UIMA AE is used to produce additional metadata or a representation for the User. This means the CAS has to be serialized and deseralized quite often.
2.) The number of annotations is for some documents to large to fit into memory. Currently this means UIMA crashes my application from time to time with OutOfMemoryExceptions. Even though I was able to harden our application I can not apply UIMA to all documents. As the feature structures are accessed in my annotators in a sequential manner (using FSIterators) streaming of annotations from HD/external DB would easily solve the problem. I digged a little bit into the UIMA code and to me it currently looks like the best option would be to build a custom CAS/JCas where I replace FSRepository for certain types. and also the Method getSofaStream getSofaText(). However, I was wondering wether this is really the best option for my problem. best regards, Ingo Thon
