uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christoph B├╝scher <christoph.buesc...@neofonie.de>
Subject Re: Problems with "deserializeCasFromXmi" after using C++ AS Annotator
Date Mon, 14 Dec 2009 14:29:43 GMT

I did some further testing and the problem seems to happen when the FS is not
declared in the remote C++ TAE but declared and set in an AE in the (lokal) main
   application (in out case a CPE running various Java AEs).
In my unit test I create a "DummyAE" descriptor basically doing nothing but
declaring a "DocumentData" type with the URL Feature. I also created a
customResourceSpecifier pointing to the DAVEDETECTORQ on the remote system. My
test looks like this:

public class RemoteCTaeTest {

      private AnalysisEngine daveAe;
      private AnalysisEngine myAe;

       * @throws java.lang.Exception
      public void setUp() throws Exception {
          URL daveResource =
          URL myResource =
          ResourceSpecifier res =
                  new XMLInputSource(daveResource));
          AnalysisEngineDescription aeDesc =
                  new XMLInputSource(myResource));
          this.daveAe = UIMAFramework.produceAnalysisEngine(res);
          this.myAe = UIMAFramework.produceAnalysisEngine(aeDesc);

       * @throws Exception
      public void testSendCAS() throws Exception {
          CAS cas = CasCreationUtils.createCas(Arrays.asList(new
AnalysisEngineMetaData[] {
this.myAe.getAnalysisEngineMetaData() }));
          JCas cas2 = cas.getJCas();
          DocumentData metadata = new DocumentData(cas2);

          String text = "This is a  Dave Test.";

The test fails when I used the DaveDetector descriptor delivered with
"2.2.2-incubating". When I add DocumentData type to the DaveDetector descriptor,
the test succeeds and the URL is returned correctly by the remote AE:

        <description>Metadata for a document</description>
            <description>The original URL of the document</description>

I will attach both descriptors used in the test. The implementation of the
DummyAE is completely empty, since it is not called in the test.
  From my UIMA understanding so far a remote AS service shouldn't have to declare
or import all types and type systems by potential AE clients connecting to it,
or am I wrong in this regard?
I attached the descriptors used in the Junit test above. Hope this helps. I will
continue to try to reproduce the problem using CVD.


Eddie Epstein schrieb:
> Hi,
> Well, I tried another, simpler scenario based on your description:
> Just add the following to DaveDetector.xml:
>     <typeDescription>
>       <name>uima.tcas.Chris</name>
>       <description></description>
>       <supertypeName>uima.tcas.Annotation</supertypeName>
>       <features>
>   	<featureDescription>
>   	  <name>documentURL</name>
>   	  <description></description>
>   	  <rangeTypeName>uima.cas.String</rangeTypeName>
>   	</featureDescription>
>       </features>
>     </typeDescription>
> Create the following CasXmi file:
> <?xml version="1.0" encoding="UTF-8"?>
> <xmi:XMI xmlns:cas="http:///uima/cas.ecore"
> xmlns:tcas="http:///uima/tcas.ecore"
> xmlns:xmi="http://www.omg.org/XMI"  xmi:version="2.0">
> <cas:NULL xmi:id="0"/>
>  <cas:Sofa xmi:id="1" sofaNum="1" sofaID="_InitialView"
> mimeType="text" sofaString="This is a text document with Dave for
> analysis"/>
>  <tcas:DocumentAnnotation xmi:id="8" sofa="1" begin="0" end="46" language=""/>
>  <tcas:Chris xmi:id="20" sofa="1" begin="0" end="1"
> documentURL="http://www.gesundheitsnachrichten.net/live/navigation/live.php?navigation_id=11&amp;_psmand=1"/>
> <cas:View sofa="1" members="8 20"/>
> </xmi:XMI>
> Launch the unaltered DaveDetector as a service, have CVD connect to it
> via JMS service descriptor, use File->Read Xmi Cas File to load the test Cas,
> use Run->Run DaveDetector On CAS to call the remote service, and, finally
> expand the annotation index to see the results. No problems.
> This was using something close to uima-2.3.0.
> Eddie
> On Fri, Dec 11, 2009 at 9:04 AM, Christoph Buescher
> <christophbuescher@gmx.de> wrote:
>> Hi Eddie,
>> unfortunately I'm out of the office today so I can only send you the unit
>> test reproducing the problem on monday. But our scenario is more or less the
>> following:
>> - A CPE running several Java AEs first, then send the CAS to a remote AS
>> Service which is a C++ AE
>> - the collection reader adds a FS with document metadata (including the
>> String Feature "URL") to the CAS. This FS directly extends the Top-Type, not
>> Annotation.
>> - I used the unaltered DaveDetector to replace our own C++ AE to reproduce
>> the problem
>> For the unit test I wrote a "No-OP" Java AE which uses a Typesystem only
>> including this "DocumentData" FS with only this one String Feature. I used a
>> Custom Resource Specifier like in the AS Documentation to reference the
>> DaveDetector on a remote machine. I then create a CAS using the
>> CasCreationUtil which in turn uses the "No-OP" AE descriptor and the
>> DaveDetector-Resource Specifier. I then add the problematic Feature in
>> question and call "process" on the remote Dave-AE. Then the exception I
>> mentioned in my earlier mail happens.
>> I will send you the test code on monday and also try to use CVD to reproduce
>> the problem.
>> Thanks,
>> Christoph

View raw message