There is some sample code that is part of Apache UIMA distribution that is a cas consumer that does a Cas to JDBC operation; you might be able to use this to guide you in developing your own cas consumer, if you want.
The sample code is in uimaj-examples/src/main/java/org/apache/uima/examples/cpe/PersonTitleDBWriterCasConsumer.java - here's a link to this in our SVN: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-examples/src/main/java/org/apache/uima/examples/cpe/PersonTitleDBWriterCasConsumer.java?view=co HTH. -Marshall Thilo Goetz wrote: > Hi Chengmin, > > please don't cross post. Answers below. > > Chengmin Ding wrote: > >> Hello, >> >> We have used the UIMA Adapter for IBM annotators and it worked for some of >> our testing annotators. However, when we tried it on cas2jdbc, we got the >> following error: >> >> We have a CPE pipeline and the CAS2JDBC is the only consumer/engine based on >> IBM UIMA framework. We are using Apache UIMA 2.2 for the entire pipeline. We >> were thinking this was caused by missing Omnifind specific annotator which >> fills out the DocumentAnnotation or the omnifind specific >> com.ibm.es.tt.DocumentMetaData feature structure (which contains documentid >> etc features). We then added the base annotator from Omnifind >> (OF_Tokenization.xml etc) and also wrapped it up with the adapter. But we >> still got the same error. Our questions are: >> >> 1) Is the error indeed caused by missing some Omnifind specific annotator >> that fills out the DocumentAnnotation feature structure? >> > > Not quite sure from the error message, but very likely yes. I suppose > that cas2jdbc was never intended to be run outside the OF UIMA pipeline. > OF has an internal document model that is shared between its annotators, > and I assume that cas2jdbc relies on that model. Seems reasonable, given > that you will later need to identify documents in the DB based on some ID > or other. > > >> 2) Is there any way to further isolate the problem via any tools considering >> we do not have the source code for cas2jdbc? >> > > I can't think of any. A better place to ask would be the IBM OF > support forum. > > >> 3) Can the IBM UIMA Adapter be used the same way to wrap regular annotator, >> aggregated analysis engine and consumers ? >> > > Yes for primitive and aggregate AEs. Consumers I actually don't know, > they used to have a special status in IBM UIMA. It doesn't look like > that's your problem, though. > > >> 4) Does Apache UIMA have any plan to come up with a CAS2JDBC compatible db >> consumer? >> > > If there is one, I don't know of it. > > --Thilo > > >> Thanks a lot! >> ================================================ >> org.apache.uima.analysis_engine.AnalysisEngineProcessException >> at >> com.ibm.uima.adapter.ibm.IBMAnalysisEngineWrapper.processAndOutputNewCASes(Unknown >> Source) >> at >> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:218) >> at >> org.apache.uima.collection.impl.cpm.engine.ProcessingUnit.processNext(ProcessingUnit.java:892) >> at >> org.apache.uima.collection.impl.cpm.engine.ProcessingUnit.run(ProcessingUnit.java:577) >> Caused by: com.ibm.uima.analysis_engine.AnalysisEngineProcessException: The >> common analysis structure cannot be processed. See the previous exception >> for details. >> at >> com.ibm.uima.reference_impl.analysis_engine.compatibility.CasConsumerAdapter.process(CasConsumerAdapter.java:93) >> at >> com.ibm.uima.reference_impl.analysis_engine.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:392) >> at >> com.ibm.uima.reference_impl.analysis_engine.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:297) >> at >> com.ibm.uima.reference_impl.analysis_engine.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:218) >> ... 4 more >> Caused by: com.ibm.uima.resource.ResourceProcessException: The common >> analysis structure cannot be processed. See the previous exception for >> details. >> at >> com.ibm.uima.consumer.cas2jdbc.utils.Cas2JdbcLogger.log_PROCESS_CAS__SEVERE(Unknown >> Source) >> at com.ibm.uima.consumer.cas2jdbc.Cas2Jdbc.processCas(Unknown Source) >> at >> com.ibm.uima.reference_impl.analysis_engine.compatibility.CasConsumerAdapter.process(CasConsumerAdapter.java:89) >> ... 7 more >> Caused by: com.ibm.uima.resource.ResourceProcessException: The document's ID >> cannot be parsed. See the previous exception for details. >> at >> com.ibm.uima.consumer.cas2jdbc.utils.Cas2JdbcLogger.log_BAD_DOCID__SEVERE(Unknown >> Source) >> at com.ibm.uima.consumer.cas2jdbc.Cas2Jdbc.parseDocID(Unknown Source) >> ... 9 more >> Caused by: java.lang.NullPointerException >> ... 10 more >> >> -Chengmin >> >> > > > >
