In my type system, PosTaggerToken is a subtype of FullToken type. I
aggregate UIMA SimpleTokenAndSentenceAnnotator, my type converter,
POSTagger, and another AE (with strange behavior) whose code is:

AnnotationIndex sentenceIndex= (AnnotationIndex) aJCas.getJFSIndexRepository
().getAnnotationIndex(Sentence.type);
       AnnotationIndex tokenIndex= (AnnotationIndex)
aJCas.getJFSIndexRepository().getAnnotationIndex(FullToken.type);


       //iterate over Sentences
       FSIterator sentenceIterator = sentenceIndex.iterator();
       while (sentenceIterator.hasNext()) {
           Sentence sentence = (Sentence) sentenceIterator.next();
           // iterate over Tokens
           FSIterator tokenIterator = tokenIndex.subiterator(sentence);
           while (tokenIterator.hasNext()){
               System.out.println((FullToken) tokenIterator.next());
           }
       }

And here is the XCAS of a document containing only one test sentence : "He
is running"

<cas:Sofa xmi:id="1" sofaNum="1" sofaID="_InitialView" mimeType="text"
sofaString="He is running.                         &#10;"/>
<tcas:DocumentAnnotation xmi:id="8" sofa="1" begin="0" end="40"
language="en"/>
<examples:SourceDocumentInformation xmi:id="13" sofa="1" begin="0" end="0"
uri="file:test2.txt" offsetInSource="0" documentSize="40"
lastSegment="true"/>
<mine1:Sentence xmi:id="41" sofa="1" begin="0" end="40" componentId="Example
simple sentence detector and tokenizer by IBM"/>
<mine1:Token xmi:id="46" sofa="1" begin="0" end="2"/>
<mine1:Token xmi:id="51" sofa="1" begin="3" end="5"/>
<mine1:Token xmi:id="56" sofa="1" begin="6" end="13"/>
<mine1:Token xmi:id="61" sofa="1" begin="13" end="14"/>
<mine1:Chunk xmi:id="80" sofa="1" begin="0" end="2" type="NP"
componentId="PosTagger"/>
<mine1:Chunk xmi:id="100" sofa="1" begin="3" end="13" type="VP"
componentId="PosTagger"/>
<tokenizer:Sentence xmi:id="21" sofa="1" begin="0" end="40"/>
<tokenizer:Token xmi:id="25" sofa="1" begin="0" end="2"/>
<tokenizer:Token xmi:id="29" sofa="1" begin="3" end="5"/>
<tokenizer:Token xmi:id="33" sofa="1" begin="6" end="13"/>
<tokenizer:Token xmi:id="37" sofa="1" begin="13" end="14"/>
<mine2:PosTaggerToken xmi:id="66" sofa="1" begin="0" end="2" posTag="PRP"
base="He" componentId="PosTagger"/>
<mine2:PosTaggerToken xmi:id="73" sofa="1" begin="3" end="5" posTag="VBZ"
base="be" componentId="PosTagger"/>
<mine2:PosTaggerToken xmi:id="86" sofa="1" begin="6" end="13" posTag="VBG"
base="run" componentId="PosTagger"/>
<mine2:PosTaggerToken xmi:id="93" sofa="1" begin="13" end="14" posTag="."
base="." componentId="PosTagger"/>
<cas:View sofa="1" members="8 13 41 46 51 56 61 80 100 21 25 29 33 37 66 73
86 93"/>

---------

And println output:
PosTaggerToken
  sofa: _InitialView
  begin: 0
  end: 2
  posTag: "PRP"
  base: "He"
  componentId: "PosTagger"

PosTaggerToken
  sofa: _InitialView
  begin: 13
  end: 14
  posTag: "."
  base: "."
  componentId: "PosTagger"

PosTaggerToken
  sofa: _InitialView
  begin: 6
  end: 13
  posTag: "VBG"
  base: "run"
  componentId: "PosTagger"

PosTaggerToken
  sofa: _InitialView
  begin: 3
  end: 5
  posTag: "VBZ"
  base: "be"
  componentId: "PosTagger"

Reply via email to