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