You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by Luca Toldo <lu...@gmail.com> on 2017/05/04 08:00:05 UTC
Deserialization of CAS object back from JSON
Inspired by https://goo.gl/zg9Bs3 following code
import java.io.*;
import org.apache.uima.fit.factory.JCasFactory;
import org.apache.uima.jcas.JCas;
import org.apache.uima.cas.CAS;
import org.apache.uima.json.JsonCasSerializer;
public class test {
public static void main(String [] args ) throws IOException {
try {
String note="Lorem ipsum incididunt ut labore et dolore magna aliqua";
JCas jcas = JCasFactory.createJCas();
jcas.setDocumentText(note);
JsonCasSerializer jcs = new JsonCasSerializer();
StringWriter sw = new StringWriter();
CAS cas = jcas.getCas();
jcs.serialize(cas, sw);
System.out.println(sw.toString());
} catch (Exception ex) {
}
}
}
compiles fine with javac -cp .:uima-core.jar:uimafit-core-2.3.0.jar:uimaj-core-2.9.0.jar:uimaj-json.jar test.java and executed delivers properly formatted JSON serialization.
{"_context":{"_types":{"DocumentAnnotation":{"_id":"uima.tcas.DocumentAnnotation","_feature_types":{"sofa":"_ref"}},"Sofa":{"_id":"uima.cas.Sofa","_feature_types":{"sofaArray":"_ref"}},"Annotation":{"_id":"uima.tcas.Annotation","_feature_types":{"sofa":"_ref"},"_subtypes":["DocumentAnnotation"]},"AnnotationBase":{"_id":"uima.cas.AnnotationBase","_feature_types":{"sofa":"_ref"},"_subtypes":["Annotation"]},"TOP":{"_id":"uima.cas.TOP","_subtypes":["AnnotationBase","Sofa"]}}},"_views":{"_InitialView":{"DocumentAnnotation":[{"sofa":1,"begin":0,"end":55,"language":"x-unspecified"}]}},"_referenced_fss":{"1":{"_type":"Sofa","sofaNum":1,"sofaID":"_InitialView","mimeType":"text","sofaString":"Lorem ipsum incididunt ut labore et dolore magna aliqua"}}}
Help would be appreciated how to convert back the serialized JSON into a CAS object.
Unfortunately, there is no org.apache.uima.json.JsonCasDeSerialize...
Thanks.
Re: Deserialization of CAS object back from JSON
Posted by Richard Eckart de Castilho <re...@apache.org>.
Hi Luca,
On 04.05.2017, at 10:00, Luca Toldo <lu...@gmail.com> wrote:
>
> Help would be appreciated how to convert back the serialized JSON into a CAS object.
> Unfortunately, there is no org.apache.uima.json.JsonCasDeSerialize...
That's unfortunately correct: the JSON support in UIMA presently only supports serialization, but not deserialization.
We have support for serializing to/from XML (XMI) and for various binary formats.
For sending data across a network connection, I would personally choose a compressed binary format (COMPRESSED_TSI).
I would suggest you have a look at CasIOUtils and SerialFormat present in recent UIMA releases.
Cheers,
-- Richard