Eddie: I mispoke slight earlier. We have 3 analysis engines: one to create a new view, one to work on that new view, and one that calls the previous two. Let's call them A, B, and C respectively. So C calls A and then B in a fixed flow order utilizing custom resource specifier. C is the full pipeline and does not specify any input or output sofas. Previously, A was not included in the C pipeline and was called separately. We are trying to integrate A into C to simplify things. Thanks in advance.
Chuong Ngo On Wed, Mar 26, 2014 at 6:16 PM, Eddie Epstein <[email protected]> wrote: > Would be nice to see the big picture, how the JMS services are integrated > into the full pipeline. Sounds like you have two, separate, "remote" JMS > annotators, which are being called from an aggregate on a "local" client. > And guessing that there is sofamapping on the aggregate, for the two remote > delegates? > > Anyway, sofamapping currently does not work across to remote services. The > workaround is to wrap a remote annotator in an aggregate with the same > sofamapping specified there as in the local client. > > Note also that by setting sofa capabilities in its descriptor, an annotator > is declaring itself "view aware", which changes the View delivered to the > annotator's process method. A view aware annotator receives something > called a base CAS which does not have a sofa, and has to use getView to > work with real views. > > The whole ball of wax is at > > http://uima.apache.org/d/uimaj-2.5.0/tutorials_and_users_guides.html#ugr.tug.mvs > > > > On Wed, Mar 26, 2014 at 12:04 PM, Chuong Ngo <[email protected]> wrote: > > > I have two annotators that are being used via JMS calls in UIMA AS. The > > first annotator creates a separate view that then needs to be read by the > > second annotator. The view is created with: > > > > String destinationId = "SomeView"; > > JCas targetView = aJCas.createView(destinationId); > > String text = "hold the new text." > > ... > > targetView.setDocumentText(text); > > targetView.setDocumentLanguage(sourceView.getDocumentLanguage()) > > > > This part seems to work, since after calling this annotator's queue, I > can > > iterate through the views in the CAS and it shows up. In order for my > > second annotator to read from and write to that new view that was just > > created, I simply added the View's name as the input and output sofas: > > > > <capabilities> > > <capability> > > ... > > <inputSofas> > > <sofaName>SomeView</sofaName> > > </inputSofas> > > <outputSofas> > > <sofaName>SomeView</sofaName> > > </outputSofas> > > <languagesSupported/> > > </capability> > > </capabilities> > > > > However, the JCas that gets passed to the 2nd annotator is blank. What > is > > the problem? > > >
