Thanks Marshall, I’ll get back to you with a small sample as soon I get the time to do it. This will also get me a better understanding of the the format.
Cheers, Mario > On 13 Sep 2019, at 19:32 , Marshall Schor <m...@schor.com> wrote: > > I'm wondering if you could post a very small test case showing this problem > with > a small type system. > > With that, I could run in the debugger and see exactly what was happening, and > see whether or not some small fix would make this work. > > The Deserializer for this already supports a certain type of mismatch between > type systems, but mainly one where one is a subset of the other - see the > javadoc for the method > > org.apache.uima.cas.impl.BinaryCasSerDes6.java. > > But it must not currently cover this particular case. > > -Marshall > > On 9/13/2019 10:48 AM, Mario Juric wrote: >> Just a quick follow up. >> >> I played a bit around with the CasIOUtils, and it seems that it is possible >> to load and use the embedded type system, i.e. the old type system with X, >> but I found no way to replace it with the new type system and make the >> necessary mappings to Y. I tried to see if I could use the CasCopier in a >> separate step but it expectedly fails when it reaches to the FSArray of X in >> the source CAS because the destination type system requires elements of type >> Y. I could make my own modified version of the CasCopier that could take >> some mapping functions for each pair of source and destination types that >> need to be mapped, but this is where it starts to get too complicated, so I >> found it not to be worth it at this point, since we might then want to >> reprocess everything from scratch anyway. >> >> Cheers, >> Mario >> >> >> >> >> >> >> >> >> >> >> >> >> >>> On 12 Sep 2019, at 10:41 , Mario Juric <m...@unsilo.ai> wrote: >>> >>> Hi, >>> >>> We use form 6 compressed binaries to persist the CAS. We now want to make a >>> change to the type system that is not directly compatible, although in >>> principle the new type system is really a subset from a data perspective, >>> so we want to migrate existing binaries to the new type system, but we >>> don’t know how. The change is as follows: >>> >>> In the existing type system we have a type A with a FSArray feature of >>> element type X, and we want to change X to Y where Y contains a genuine >>> feature subset of X. This means we basically want to replace X with Y for >>> the FSArray and ditch a few attributes of X when loading the CAS into the >>> new type system. >>> >>> Had the CAS been stored in JSON this would be trivial by just mapping the >>> attributes that they have in common, but when I try to load the CAS binary >>> into the new target type system it chokes with an EOF, so I don’t know if >>> that is at all possible with a form 6 compressed CAS binary? >>> >>> I pocked a bit around in the reference, API and mailing list archive but I >>> was not able to find anything useful. I can of course keep parallel >>> attributes for both X and Y and then have a separate step that makes an >>> explicit conversion/copy, but I prefer to avoid this. I would appreciate >>> any input to the problem, thanks :) >>> >>> Cheers, >>> Mario >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>