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 <[email protected]>: >> >> 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 ? >>> >
