Thanks, but the question was specifically: how can you do that *without* running the two annotators in an aggregate. I've been thinking you could create an aggregate to create the JCas, then run the individual annotators manually. However, I don't see how you can do that with the official UIMA APIs.

--Thilo

LASRI YASSINE wrote:
Hi,
Let's imagine that :
1. Sentence Annotator adds sentences span to the index (from JCas)
2. Person Annotator adds Persons Names to the index (from the same JCas)

==> Develop the first annotator with a type system (Sentence)
==> Develop the second annotator with a type system (Person)
In the first annotator you read from JCas and add to the index
public void process(JCas aJCas) throws AnalysisEngineProcessException {
   String docText = aJCas.getDocumentText();

  // detect a sentence span and add it to the index
    Sentence annotation = new Sentence(aJCas);
    annotation.setBegin(??);
    annotation.setEnd(??);
    annotation.addToIndexes();

}

==> In the second annotator you have to get information from Sentence index
public void process(JCas aJCas) throws AnalysisEngineProcessException {
    FSIndex indexer = aJCas.getJFSIndexRepository().getAnnotationIndex(
Sentence.type);
    FSIterator iter = indexer.iterator();
         while (iter.hasNext()) {
            Sentence item = (Sentence)iter.get();
            // here you have an object Sentence


           // do something with this object, for example detect person name
           // add person name to the index
                Person annotations = new Person (aJCas);
annotations.setBegin(??);
                annotations.setEnd(??);
                annotations.addToIndexes();

            }// While()
      } // process()


Until now all is nice, now if you want to run the two annotators on the same
JCas
you have to create an aggregate analysis engine with the two other
annotators.

Good Luck
- Yassine



2007/4/25, Thilo Goetz <[EMAIL PROTECTED]>:

[Claire has problems subscribing to the list, so I'm forwarding her note.]

Hi Claire,

I'm not sure myself how to accomplish this, at least not in a simple
manner supported by UIMA.  Anybody else have any ideas?

--Thilo

-------- Original Message --------
Subject: Re: read in from inputstream with UIMA
Date: Wed, 25 Apr 2007 08:35:26 +0200
From: Claire Jessel <[EMAIL PROTECTED]>
To: Thilo Goetz <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>

Hello
Thankyou very much for your reply - it was just what i needed.
I've tried subscribing a few times to the list but i still havent got
any reply. I'll try again now.

I have another question now.
If I run an annotator (eg. a Sentence splitter/annotator) on a document
and store the Sentence annotations in the index, and then at some later
stage run another annotator (such as a Person Annotator) on the same
document, once again indexing the annotations, does the index then
contain both types of annotations for the document in question?
As far as I can see, the Index Repository is specific to a JCas. How can
I ensure that both annotators use the same Jcas (without running them
consecutively within an aggregate engine) and then use this JCas to
access the index?

Thanks in advance!
Claire Jessel

Am 23.04.2007 22:15, Thilo Goetz schrieb:

> Claire Jessel wrote:
>
>> Hello
>> Thankyou for your reply
>> I sent an email to subscribe to the list, but have got no reply so far.
>
>
> Do you use a spam filter?  It may have ended up in there.  Reply from
> mailing list subscription is pretty much instantaneous.
>
>>
>> By 'external resource', i mean that instead of giving the name of a
>> text file to be read in, or directly inputting the string values (in
>> the configuration parameters of the descriptor), is it possible to
>> read in elements dynamically via the Java API or SQL Statements from
>> a database?
>
>
> I'm still not 100% sure I understand what it is that you want to do.
> If you mean, construct a descriptor dynamically: yes, you can do
> that.  You can also load a descriptor and set parameters on that
> descriptor before you use it to create an analysis engine.  You could
> get those parameter values from a DB using JDBC, but there is no
> special UIMA API to support you in that.
>
> You may want to start looking at
> org.apache.uima.analysis_engine.AnalysisEngineDescription (in the API
> docs) to see how you can get at the details of a descriptor
> programmatically, and how you can modify it.  I'm not sure there is
> info about this in the documentation, that would be a question for the
> list.
>
>>
>> Similarly, can the output of an annotator be given straight into an
>> output stream or a byte array instead of being put into a file?
>
>
> The output of an annotator is accessed programmatically, so you can do
> with it whatever you like.  The CAS that is produced during processing
> contains all the data that was produced, and you can access that data
> via APIs.  There is no need to write anything to a file if you don't
> want to.
>
> I hope that helps.  I would need to understand more about what it is
> you are trying to do to give more specific comments.
>
> --Thilo
>
>>
>> Thanks
>> Claire
>>
>> Am 20.04.2007 17:49, Thilo Goetz schrieb:
>>
>>> Hi Claire,
>>>
>>> the short answer to your question is probably "yes".  Not sure what
>>> you mean by an external resource exactly.  Text?
>>>
>>> Please check http://incubator.apache.org/uima/mail-lists.html for
>>> instructions on how to join our mailing lists.  If you have more
>>> questions, please subscribe to uima-user by sending mail to
>>> [EMAIL PROTECTED]  uima-commits is just for
>>> auto-generated Subversion commit messages.
>>
>>
>>
>>
>


--

uma - separating the signal from the noise

claire jessel . software engineer . [EMAIL PROTECTED]
uma information technology GmbH . amerlingstrasse 1 . a-1060 vienna
http://www.uma.at . phone +43-1-526 29 67-712 . fax +43-1-526 29 67-200

--
This message contains information which may be confidential and
privileged. Unless you are the addressee (or authorised to receive
for the addressee), you may not use, copy or disclose to anyone the
message or any information contained in the message. If you have
received the message in error, please advise the sender by reply
e-mail @uma.at, and delete the message. Thank you very much.



Reply via email to