Hi,
I am developing an NLP tool based on latest UIMA version (2.3.0
incubating). Basically, the tool utilizes an aggregate engine with
several primitive engines.
Currently, I am having a problem with the handling of ByteArray values
of one of the annotation features.
Here is how am I setting the value of the feature:
final ByteArray ba = new ByteArray(
cas, wordHypernymsAsBytes.length );
ba.copyFromArray( wordHypernymsAsBytes,
0, 0, wordHypernymsAsBytes.length );
token.setHypernyms( ba );
And here is how am I reading the ByteArray features (there will be more,
so I need a generic way of reading them):
List< Feature > annoFeatures =
anno.getCAS().getJCas().getTypeSystem().getType(
anno.getType().getName() ).getFeatures();
Iterator< Feature > featIter = annoFeatures.iterator();
....
while ( featIter.hasNext() ) {
Feature feature = featIter.next();
...
if ( feature.getRange().getName().equalsIgnoreCase(
"uima.cas.ByteArray" ) ) {
FeatureStructure fs = anno.getFeatureValue( feature );
if ( fs != null ) {
byte[] bytes = ( ( ByteArrayFS ) fs ).toArray();
----> here is the problem actually. The bytes array contains a single
byte (length of the array is 1). The "setter" above is setting something
much longer.
}
}
}
My question is how to read&write the ByteArray features?
Attached you can find the serialized CAS file as well...
greetings
Diman
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmlns:cas="http:///uima/cas.ecore" xmlns:text="http:///eu/atlas/anno/core/text.ecore" xmlns:xmi="http://www.omg.org/XMI" xmlns:tcas="http:///uima/tcas.ecore" xmlns:doc="http:///eu/atlas/anno/core/doc.ecore" xmi:version="2.0">
<cas:NULL xmi:id="0"/>
<cas:Sofa xmi:id="6" sofaNum="1" sofaID="_InitialView" mimeType="text" sofaString="With US combat troop operations in Iraq at an end, less than 50,000 US service personnel remain in a country mired in political quagmire. This week the ISN looks toward Iraq's future on its own in the wake of US occupation."/>
<tcas:DocumentAnnotation xmi:id="1" sofa="6" begin="0" end="223" language="en"/>
<text:Paragraph xmi:id="13" sofa="6" begin="0" end="223" numSentences="0"/>
<text:Sentence xmi:id="18" sofa="6" begin="0" end="137" sentenceOffset="0"/>
<text:Sentence xmi:id="23" sofa="6" begin="138" end="222" sentenceOffset="1"/>
<text:Token xmi:id="28" sofa="6" begin="0" end="4" posTag="IN" stem="with" lemma="with" wordSense="0"/>
<text:Token xmi:id="37" sofa="6" begin="5" end="7" posTag="NNP" stem="us" lemma="us" wordSense="1"/>
<text:Token xmi:id="46" sofa="6" begin="8" end="14" posTag="NN" stem="combat" lemma="combat" wordSense="2" hypernyms="439"/>
<text:Token xmi:id="55" sofa="6" begin="15" end="20" posTag="NN" stem="troop" lemma="troop" wordSense="3" hypernyms="442"/>
<text:Token xmi:id="64" sofa="6" begin="21" end="31" posTag="NNS" stem="oper" lemma="operation" wordSense="6" hypernyms="445"/>
<text:Token xmi:id="73" sofa="6" begin="32" end="34" posTag="IN" stem="in" lemma="in" wordSense="1"/>
<text:Token xmi:id="82" sofa="6" begin="35" end="39" posTag="NNP" stem="iraq" lemma="iraq" wordSense="1"/>
<text:Token xmi:id="91" sofa="6" begin="40" end="42" posTag="IN" stem="at" lemma="at" wordSense="0"/>
<text:Token xmi:id="100" sofa="6" begin="43" end="45" posTag="DT" stem="an" lemma="an" wordSense="0"/>
<text:Token xmi:id="109" sofa="6" begin="46" end="49" posTag="NN" stem="end" lemma="end" wordSense="1" hypernyms="448"/>
<text:Token xmi:id="118" sofa="6" begin="49" end="50" posTag="," stem="," lemma=","/>
<text:Token xmi:id="127" sofa="6" begin="51" end="55" posTag="JJR" stem="less" lemma="less" wordSense="1"/>
<text:Token xmi:id="136" sofa="6" begin="56" end="60" posTag="IN" stem="than" lemma="than" wordSense="0"/>
<text:Token xmi:id="145" sofa="6" begin="61" end="67" posTag="CD" stem="50,000" lemma="50,000" wordSense="0"/>
<text:Token xmi:id="154" sofa="6" begin="68" end="70" posTag="PRP" stem="us" lemma="us" wordSense="0"/>
<text:Token xmi:id="163" sofa="6" begin="71" end="78" posTag="NN" stem="servic" lemma="service" wordSense="6" hypernyms="451"/>
<text:Token xmi:id="172" sofa="6" begin="79" end="88" posTag="NNS" stem="personnel" lemma="personnel" wordSense="1" hypernyms="454"/>
<text:Token xmi:id="181" sofa="6" begin="89" end="95" posTag="VBP" stem="remain" lemma="remain" wordSense="1" hypernyms="457"/>
<text:Token xmi:id="190" sofa="6" begin="96" end="98" posTag="IN" stem="in" lemma="in" wordSense="1"/>
<text:Token xmi:id="199" sofa="6" begin="99" end="100" posTag="DT" stem="a" lemma="a" wordSense="0"/>
<text:Token xmi:id="208" sofa="6" begin="101" end="108" posTag="NN" stem="countri" lemma="country" wordSense="3" hypernyms="460"/>
<text:Token xmi:id="217" sofa="6" begin="109" end="114" posTag="VBN" stem="mire" lemma="mire" wordSense="2" hypernyms="463"/>
<text:Token xmi:id="226" sofa="6" begin="115" end="117" posTag="IN" stem="in" lemma="in" wordSense="1"/>
<text:Token xmi:id="235" sofa="6" begin="118" end="127" posTag="JJ" stem="polit" lemma="political" wordSense="1"/>
<text:Token xmi:id="244" sofa="6" begin="128" end="136" posTag="NN" stem="quagmir" lemma="quagmire" wordSense="1" hypernyms="466"/>
<text:Token xmi:id="253" sofa="6" begin="136" end="137" posTag="." stem="." lemma="."/>
<text:Token xmi:id="262" sofa="6" begin="138" end="142" posTag="DT" stem="thi" lemma="this" wordSense="0"/>
<text:Token xmi:id="271" sofa="6" begin="143" end="147" posTag="NN" stem="week" lemma="week" wordSense="1" hypernyms="424"/>
<text:Token xmi:id="280" sofa="6" begin="148" end="151" posTag="DT" stem="the" lemma="the" wordSense="0"/>
<text:Token xmi:id="289" sofa="6" begin="152" end="155" posTag="NNP" stem="isn" lemma="isn" wordSense="1" hypernyms="427"/>
<text:Token xmi:id="298" sofa="6" begin="156" end="161" posTag="VBZ" stem="look" lemma="look" wordSense="1"/>
<text:Token xmi:id="307" sofa="6" begin="162" end="168" posTag="IN" stem="toward" lemma="toward" wordSense="0"/>
<text:Token xmi:id="316" sofa="6" begin="169" end="173" posTag="NNP" stem="iraq" lemma="iraq" wordSense="1"/>
<text:Token xmi:id="325" sofa="6" begin="173" end="175" posTag="POS" stem="'s" lemma="'s" wordSense="0"/>
<text:Token xmi:id="334" sofa="6" begin="176" end="182" posTag="NN" stem="futur" lemma="future" wordSense="1" hypernyms="430"/>
<text:Token xmi:id="343" sofa="6" begin="183" end="185" posTag="IN" stem="on" lemma="on" wordSense="3"/>
<text:Token xmi:id="352" sofa="6" begin="186" end="189" posTag="PRP$" stem="it" lemma="its" wordSense="0"/>
<text:Token xmi:id="361" sofa="6" begin="190" end="193" posTag="JJ" stem="own" lemma="own" wordSense="1"/>
<text:Token xmi:id="370" sofa="6" begin="194" end="196" posTag="IN" stem="in" lemma="in" wordSense="1"/>
<text:Token xmi:id="379" sofa="6" begin="197" end="200" posTag="DT" stem="the" lemma="the" wordSense="0"/>
<text:Token xmi:id="388" sofa="6" begin="201" end="205" posTag="NN" stem="wake" lemma="wake" wordSense="2" hypernyms="433"/>
<text:Token xmi:id="397" sofa="6" begin="206" end="208" posTag="IN" stem="of" lemma="of" wordSense="0"/>
<text:Token xmi:id="406" sofa="6" begin="209" end="211" posTag="NNP" stem="us" lemma="us" wordSense="1"/>
<text:Token xmi:id="415" sofa="6" begin="212" end="222" posTag="NN" stem="occup" lemma="occupation" wordSense="1" hypernyms="436"/>
<text:Organization xmi:id="469" sofa="6" begin="5" end="7"/>
<text:Organization xmi:id="473" sofa="6" begin="68" end="70"/>
<text:Organization xmi:id="481" sofa="6" begin="209" end="211"/>
<text:Location xmi:id="477" sofa="6" begin="35" end="39"/>
<text:Location xmi:id="485" sofa="6" begin="169" end="173"/>
<text:Date xmi:id="489" sofa="6" begin="138" end="147"/>
<text:NP xmi:id="493" sofa="6" begin="118" end="136"/>
<cas:ByteArray xmi:id="436" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000800757200025B43B02666B0E25D84AC020000787000000010006100630074006900760069007400790000000000000000000000000000000078"/>
<cas:ByteArray xmi:id="433" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000B00757200025B43B02666B0E25D84AC0200007870000000100063006F006E00730065007100750065006E006300650000000000000000000078"/>
<cas:ByteArray xmi:id="430" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000400757200025B43B02666B0E25D84AC02000078700000001000740069006D006500000000000000000000000000000000000000000000000078"/>
<cas:ByteArray xmi:id="427" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000002100757200025B43B02666B0E25D84AC0200007870000000220069006E007400650072006E006100740069006F006E0061006C00200069006E00740065006C006C006900670065006E006300650020006100670065006E00630079000078"/>
<cas:ByteArray xmi:id="424" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000B00757200025B43B02666B0E25D84AC02000078700000001000740069006D006500200070006500720069006F00640000000000000000000078"/>
<cas:ByteArray xmi:id="466" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000300757200025B43B02666B0E25D84AC0200007870000000100062006F0067000000000000000000000000000000000000000000000000000078"/>
<cas:ByteArray xmi:id="463" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000700757200025B43B02666B0E25D84AC0200007870000000100069006E0076006F006C0076006500000000000000000000000000000000000078"/>
<cas:ByteArray xmi:id="460" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000E00757200025B43B02666B0E25D84AC0200007870000000100070006F006C00690074006900630061006C00200075006E006900740000000078"/>
<cas:ByteArray xmi:id="457" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000200757200025B43B02666B0E25D84AC020000787000000010006200650000000000000000000000000000000000000000000000000000000078"/>
<cas:ByteArray xmi:id="454" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000C00757200025B43B02666B0E25D84AC020000787000000010006F007200670061006E0069007A006100740069006F006E000000000000000078"/>
<cas:ByteArray xmi:id="451" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000400757200025B43B02666B0E25D84AC0200007870000000100077006F0072006B00000000000000000000000000000000000000000000000078"/>
<cas:ByteArray xmi:id="448" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000900757200025B43B02666B0E25D84AC02000078700000001000650078007400720065006D006900740079000000000000000000000000000078"/>
<cas:ByteArray xmi:id="445" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000600757200025B43B02666B0E25D84AC0200007870000000100061006300740069006F006E000000000000000000000000000000000000000078"/>
<cas:ByteArray xmi:id="442" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000900757200025B43B02666B0E25D84AC02000078700000001000610072006D007900200075006E00690074000000000000000000000000000078"/>
<cas:ByteArray xmi:id="439" elements="ACED0005737200166A6176612E6C616E672E537472696E674275666665722F0707D9EAC8EAD3030003490005636F756E745A00067368617265645B000576616C75657400025B4378700000000600757200025B43B02666B0E25D84AC0200007870000000100062006100740074006C0065000000000000000000000000000000000000000078"/>
<cas:View sofa="6" members="1 13 18 23 28 37 46 55 64 73 82 91 100 109 118 127 136 145 154 163 172 181 190 199 208 217 226 235 244 253 262 271 280 289 298 307 316 325 334 343 352 361 370 379 388 397 406 415 469 473 481 477 485 489 493"/>
</xmi:XMI>