uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thilo Goetz <twgo...@gmx.de>
Subject Re: Reuse serialized XMI CAS in a dynamic application.
Date Wed, 17 Jun 2009 07:50:30 GMT
Kai Schlamp wrote:
> I compared both type systems (the serialized type system of the CAS with
> the original type system).
> It seems the problems comes from those definitions that are only present
> in the serialized one:
> 
> <typeDescription>
>   <name>org.pubcurator.uima.ts.PubIdentifier[]</name>
>   <description/>
>   <supertypeName>uima.cas.FSArray</supertypeName>
> </typeDescription>
> 
> So it seems that the TypeSystem2Xml produces an not 100% compatible type
> system description (at least for deserialization of a CAS).
> Can you think of any workarounds? Any chance to get that fixed soon?
> Should I create a bug report (if it is one at all)?

Yes, this is a bug.  Please open a Jira issue, we'll
fix it asap.

Re Tong's comments: it's odd that we have the same
functionality twice, with different implementations.
I have no idea how that came about.  However, looking
at the source code, the alternative should have
exactly the same problems.

--Thilo

> 
> Regards,
> Kai
> 
> 
> 
> Kai Schlamp wrote:
>> Hi Thilo,
>>
>> thanks for your help.
>> I tried it the way you suggested. I just tested it with one type
>> system. And if I use my type system description directly instead of
>> the serialized/deserialized type system it works fine.
>> But when I use the deserialized type system (serialized by your
>> mentioned TypeSystem2Xml) to deserialize the CAS I get a
>> CASAdminException.
>> Below is the Exception, the original type system description, the
>> serialized type description via TypeSystem2Xml, and a little
>> serialized CAS test case.
>> Do you have an idea why this Exception occurs?
>>
>> The Exception:
>> CASAdminException: Can't derive from type "uima.cas.FSArray" since it
>> is inheritance final.
>>     at
>> org.apache.uima.cas.impl.TypeSystemImpl.addType(TypeSystemImpl.java:581)
>>     at
>> org.apache.uima.util.CasCreationUtils.setupTypeSystem(CasCreationUtils.java:733)
>>
>>     at
>> org.apache.uima.util.CasCreationUtils.doCreateCas(CasCreationUtils.java:590)
>>
>>     at
>> org.apache.uima.util.CasCreationUtils.createCas(CasCreationUtils.java:352)
>>
>>     at
>> org.apache.uima.util.CasCreationUtils.createCas(CasCreationUtils.java:304)
>>
>>     at
>> org.pubcurator.uima.utils.FullCasDeserializer.deserialize(FullCasDeserializer.java:56)
>>
>>     at
>> org.pubcurator.uima.utils.FullCasDeserializerTest.testDeserialize(FullCasDeserializerTest.java:36)
>>
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>
>>     at java.lang.reflect.Method.invoke(Method.java:597)
>>     at
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>>
>>     at
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>>
>>     at
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>>
>>     at
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>>
>>     at
>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>
>>     at
>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>
>>     at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>>
>>     at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>>
>>     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>>     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>>     at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>>     at
>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>
>>     at
>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>
>>     at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>>     at
>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
>>
>>     at
>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>>
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>>
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>>
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>>
>>     at
>> org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:62)
>>
>>     at
>> org.eclipse.pde.internal.junit.runtime.CoreTestApplication.run(CoreTestApplication.java:23)
>>
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>
>>     at java.lang.reflect.Method.invoke(Method.java:597)
>>     at
>> org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:574)
>>
>>     at
>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>>
>>     at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
>>
>>     at
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
>>
>>     at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
>>
>>     at
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
>>
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>
>>     at java.lang.reflect.Method.invoke(Method.java:597)
>>     at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
>>     at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
>>     at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
>>     at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
>>
>>
>>
>> Orignial Type System Description:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">
>>   <name>PubCurator TypeSystem</name>
>>   <description>This is the type system that PubCurator uses for data
>> representation.
>> All analysis engines used in PubCurator must output this type
>> system.</description>
>>   <version>1.0</version>
>>   <vendor>PubCurator</vendor>
>>   <types>
>>     <typeDescription>
>>       <name>org.pubcurator.uima.ts.PubAnnotation</name>
>>       <description/>
>>       <supertypeName>uima.tcas.Annotation</supertypeName>
>>       <features>
>>         <featureDescription>
>>           <name>annotator</name>
>>           <description/>
>>          
>> <rangeTypeName>org.pubcurator.uima.ts.PubAnnotator</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>score</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>identifiers</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.FSArray</rangeTypeName>
>>           <elementType>org.pubcurator.uima.ts.PubIdentifier</elementType>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>spans</name>
>>           <description>One item for example can be devided in multiple
>> spans. For example, the phrase "</description>
>>           <rangeTypeName>uima.cas.FSArray</rangeTypeName>
>>           <elementType>org.pubcurator.uima.ts.PubSpan</elementType>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>topic</name>
>>           <description/>
>>           <rangeTypeName>org.pubcurator.uima.ts.PubTopic</rangeTypeName>
>>         </featureDescription>
>>       </features>
>>     </typeDescription>
>>     <typeDescription>
>>       <name>org.pubcurator.uima.ts.PubIdentifier</name>
>>       <description/>
>>       <supertypeName>uima.cas.TOP</supertypeName>
>>       <features>
>>         <featureDescription>
>>           <name>identifierType</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.String</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>identifier</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.String</rangeTypeName>
>>         </featureDescription>
>>       </features>
>>     </typeDescription>
>>     <typeDescription>
>>       <name>org.pubcurator.uima.ts.PubItem</name>
>>       <description/>
>>       <supertypeName>org.pubcurator.uima.ts.PubAnnotation</supertypeName>
>>     </typeDescription>
>>     <typeDescription>
>>       <name>org.pubcurator.uima.ts.PubItemAssociation</name>
>>       <description/>
>>       <supertypeName>org.pubcurator.uima.ts.PubAnnotation</supertypeName>
>>       <features>
>>         <featureDescription>
>>           <name>source</name>
>>           <description/>
>>           <rangeTypeName>org.pubcurator.uima.ts.PubItem</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>destination</name>
>>           <description/>
>>           <rangeTypeName>org.pubcurator.uima.ts.PubItem</rangeTypeName>
>>         </featureDescription>
>>       </features>
>>     </typeDescription>
>>     <typeDescription>
>>       <name>org.pubcurator.uima.ts.PubAnnotator</name>
>>       <description/>
>>       <supertypeName>uima.cas.TOP</supertypeName>
>>       <features>
>>         <featureDescription>
>>           <name>analyzerId</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.String</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>delegateName</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.String</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>analyzerVersion</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.String</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>note</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.String</rangeTypeName>
>>         </featureDescription>
>>       </features>
>>     </typeDescription>
>>     <typeDescription>
>>       <name>org.pubcurator.uima.ts.PubEntity</name>
>>       <description/>
>>       <supertypeName>uima.tcas.Annotation</supertypeName>
>>       <features>
>>         <featureDescription>
>>           <name>annotations</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.FSArray</rangeTypeName>
>>           <elementType>org.pubcurator.uima.ts.PubAnnotation</elementType>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>score</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>annotator</name>
>>           <description/>
>>          
>> <rangeTypeName>org.pubcurator.uima.ts.PubAnnotator</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>subEntities</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.FSArray</rangeTypeName>
>>           <elementType>org.pubcurator.uima.ts.PubEntity</elementType>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>identifiers</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.FSArray</rangeTypeName>
>>           <elementType>org.pubcurator.uima.ts.PubIdentifier</elementType>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>topic</name>
>>           <description/>
>>           <rangeTypeName>org.pubcurator.uima.ts.PubTopic</rangeTypeName>
>>         </featureDescription>
>>       </features>
>>     </typeDescription>
>>     <typeDescription>
>>       <name>org.pubcurator.uima.ts.PubProperty</name>
>>       <description/>
>>       <supertypeName>uima.cas.TOP</supertypeName>
>>       <features>
>>         <featureDescription>
>>           <name>key</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.String</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>value</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.String</rangeTypeName>
>>         </featureDescription>
>>       </features>
>>     </typeDescription>
>>     <typeDescription>
>>       <name>org.pubcurator.uima.ts.PubSpan</name>
>>       <description/>
>>       <supertypeName>uima.tcas.Annotation</supertypeName>
>>     </typeDescription>
>>     <typeDescription>
>>       <name>org.pubcurator.uima.ts.PubTopic</name>
>>       <description/>
>>       <supertypeName>uima.cas.TOP</supertypeName>
>>       <features>
>>         <featureDescription>
>>           <name>namespace</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.String</rangeTypeName>
>>         </featureDescription>
>>         <featureDescription>
>>           <name>name</name>
>>           <description/>
>>           <rangeTypeName>uima.cas.String</rangeTypeName>
>>         </featureDescription>
>>       </features>
>>     </typeDescription>
>>   </types>
>> </typeSystemDescription>
>>
>>
>>
>>
>> Serialized Type System Description:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">
>>     <types>
>>         <typeDescription>
>>             <name>uima.tcas.Annotation</name>
>>             <description/>
>>             <supertypeName>uima.cas.AnnotationBase</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>sofa</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Sofa</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>begin</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>end</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>uima.tcas.DocumentAnnotation</name>
>>             <description/>
>>             <supertypeName>uima.tcas.Annotation</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>sofa</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Sofa</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>begin</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>end</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>language</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubAnnotation</name>
>>             <description/>
>>             <supertypeName>uima.tcas.Annotation</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>sofa</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Sofa</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>begin</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>end</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>annotator</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubAnnotator</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>score</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>identifiers</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubIdentifier[]</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>spans</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubSpan[]</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>topic</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubTopic</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubIdentifier</name>
>>             <description/>
>>             <supertypeName>uima.cas.TOP</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>identifierType</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>identifier</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubItem</name>
>>             <description/>
>>            
>> <supertypeName>org.pubcurator.uima.ts.PubAnnotation</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>sofa</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Sofa</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>begin</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>end</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>annotator</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubAnnotator</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>score</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>identifiers</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubIdentifier[]</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>spans</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubSpan[]</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>topic</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubTopic</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubItemAssociation</name>
>>             <description/>
>>            
>> <supertypeName>org.pubcurator.uima.ts.PubAnnotation</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>sofa</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Sofa</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>begin</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>end</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>annotator</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubAnnotator</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>score</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>identifiers</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubIdentifier[]</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>spans</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubSpan[]</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>topic</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubTopic</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>source</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubItem</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>destination</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubItem</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubAnnotator</name>
>>             <description/>
>>             <supertypeName>uima.cas.TOP</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>analyzerId</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>delegateName</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>analyzerVersion</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>note</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubEntity</name>
>>             <description/>
>>             <supertypeName>uima.tcas.Annotation</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>sofa</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Sofa</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>begin</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>end</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>annotations</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubAnnotation[]</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>score</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>annotator</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubAnnotator</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>subEntities</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubEntity[]</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>identifiers</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubIdentifier[]</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>topic</name>
>>                     <description/>
>>                    
>> <rangeTypeName>org.pubcurator.uima.ts.PubTopic</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubProperty</name>
>>             <description/>
>>             <supertypeName>uima.cas.TOP</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>key</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>value</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubSpan</name>
>>             <description/>
>>             <supertypeName>uima.tcas.Annotation</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>sofa</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Sofa</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>begin</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>end</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.Integer</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubTopic</name>
>>             <description/>
>>             <supertypeName>uima.cas.TOP</supertypeName>
>>             <features>
>>                 <featureDescription>
>>                     <name>namespace</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>                 <featureDescription>
>>                     <name>name</name>
>>                     <description/>
>>                     <rangeTypeName>uima.cas.String</rangeTypeName>
>>                 </featureDescription>
>>             </features>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubIdentifier[]</name>
>>             <description/>
>>             <supertypeName>uima.cas.FSArray</supertypeName>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubSpan[]</name>
>>             <description/>
>>             <supertypeName>uima.cas.FSArray</supertypeName>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubAnnotation[]</name>
>>             <description/>
>>             <supertypeName>uima.cas.FSArray</supertypeName>
>>         </typeDescription>
>>         <typeDescription>
>>             <name>org.pubcurator.uima.ts.PubEntity[]</name>
>>             <description/>
>>             <supertypeName>uima.cas.FSArray</supertypeName>
>>         </typeDescription>
>>     </types>
>> </typeSystemDescription>
>>
>>
>>
>>
>>
>> Serialized CAS:
>>
>> <?xml version="1.0" encoding="UTF-8"?><xmi:XMI
>> xmlns:cas="http:///uima/cas.ecore" xmlns:xmi="http://www.omg.org/XMI"
>> xmlns:ts="http:///org/pubcurator/uima/ts.ecore"
>> xmlns:tcas="http:///uima/tcas.ecore" xmi:version="2.0"><cas:NULL
>> xmi:id="0"/><cas:Sofa xmi:id="10" sofaNum="1"
>> sofaID="_InitialView"/><ts:PubAnnotation xmi:id="1" sofa="10"
>> begin="10" end="20" score="1000"/><cas:View sofa="10"
>> members="1"/></xmi:XMI>
>>
>>

Mime
View raw message