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. "/>
<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"