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

Reply via email to