uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marshall Schor <...@schor.com>
Subject Re: Using REST api with UIMA
Date Thu, 04 May 2017 18:02:35 GMT
I am unfamiliar with this project.

I took a quick look and see that:

a) it's old - not been worked on for more than 3 years

b) The serialization technique is to serialize using UIMA's CAS -> XCAS (an
older form of xml serialization), followed by a transform from the xml to json. 
I didn't look, but I'd guess that the json -> cas path did a json -> xcas,
followed by a deserialization of the XCAS format by UIMA.

This would be relatively inefficient I think.   I would guess this would be
unlikely to be included into UIMA.

-Marshall


On 5/4/2017 10:43 AM, Luca Toldo wrote:
> Thankyou Marshall for your fast and authoritative reply.
>
> The deserialization from JSON to CAS is really important since this will „bridge“
the UIMA community with the micro service REST world.
>
> I've found the following project https://github.com/windj007/uima-serialization/ and
I am interested on your opinion about its level of „maturity“ / likelihood of inclusion
in the UIMA releases.
>
> Thanks
> Luca
>
>
>> Am 04.05.2017 um 16:37 schrieb Marshall Schor <msa@schor.com>:
>>
>> The core UIMA support has not (yet) implemented a deserializer back into CAS
>> form, for this. 
>>
>> The main idea behind CAS -> JSON conversion was to provide the CAS info to JSON
>> Consumers.
>>
>> We have multiple other serializations (CAS -> XMI, etc.) that are designed for
>> "transport" and include deserializers.
>>
>> Of course, it is quite possible to create an addition to UIMA which can
>> deserialize the JSON format(s) - that just hasn't yet been done. Contributions
>> welcome!
>>
>> -Marshall
>>
>>
>> On 5/4/2017 3:49 AM, Luca Toldo wrote:
>>> The following Java code (inspired from http://stackoverflow.com/questions/40838999/getting-output-in-json-format-in-uima
) 
>>>
>>> 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();
>>>                        jcs.setPrettyPrint(true); 
>>>                        StringWriter sw = new StringWriter();
>>>                        CAS cas = jcas.getCas();
>>>                        jcs.serialize(cas, sw); 
>>>                        System.out.println(sw.toString());
>>>                } catch (Exception ex) {
>>>                }
>>>        }
>>> }
>>>
>>>
>>> delivers properly formatted JSON CAS:
>>>
>>> {"_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" } } }
>>>
>>> How to deserialize that back into CAS object ?
>>>
>


Mime
View raw message