On Thu, Jul 16, 2015 at 08:00:35PM +0200, Richard Eckart de Castilho wrote:
> On 16.07.2015, at 18:52, Petr Baudis <pa...@ucw.cz> wrote:
> >  Sorry for the confusion, but that's not quite what I had in mind.
> > I literally believe that right now, in order to modify value of
> > a feature, you need to first remove it from an index, change the
> > value, then re-add it back.  Is that a misconception?
> 
> Well, yes and no. Yes, it was required for the case where the value that
> you changed was on a feature that was part of some index. No, it should
> no longer be required as measures have been implemented to handle this
> automatically.
> 
> See: "The curious case of the zombie annotation" aka UIMA-4049
> 
> https://issues.apache.org/jira/browse/UIMA-4049

  That's great to hear!  However, when reading the bug report and
looking closely at that part of the release notes, I think "it should no
longer be required" isn't quite precise as changing indexed features
might cause an exception to be thrown by an iterator that goes through
these at the same time (so the fix for that is to use a snapshot
iterator, and that sounds reasonable, more so when JCasUtil gets support
for them - sorry if it did and I missed it, I'm still stuck on UIMA 2.6
for now anyway until the next release with fixed CasCopier).

> >  I think that's a bug for the UIMA Tutorial, which mentions FSArray but
> > not FSList.  :-)
> 
> Then I should tell you also about the uimaFIT FSCollectionFactory which
> contains all kinds of helpers to manage FSArray and FSList ;)
> 
> Btw. there is also ArrayFS which is the CAS version of FSArray :P
..
> Did you know that uimaFIT JCasUtil.select() can also be applied to
> FSList and FSArray to avoid casting?
> 
> for (Token t : JCasUtil.select(sentence.getTokens(), Token.class) {
>   ...
> }
> 
> CasUtil.select() can work also on ArrayFS

  So many great news! Thanks so much for these.  We'll certainly start
using them in new code. :-)

-- 
                                Petr Baudis
        If you have good ideas, good data and fast computers,
        you can do almost anything. -- Geoffrey Hinton

Reply via email to