Hi Yason, Roberto and others,

we ran into the same problem after one day of using Drools. Using an artificial 
index however doesn't work for us since we have many Annotations and a complex 
TypeSystem, we had to retouch all our AEs to get this index working - not 
possible for us.

What do you think about an ArrayList, where all Annotations of one Type are 
stored in their order of appearance (e.g. sorted by Begin). Instead of only 
adding all Annotationen classes to Drools we now also add this ArrayList, which 
we create in our Drools AE? Does such an approach make sense? We can ask for 
their respective ordering by using indexOf(Object).

Best regards,

Alex

 


--
Alexander G. Klenner
Fraunhofer-Institute for Algorithms and Scientific Computing (SCAI)
Schloss Birlinghoven, D-53754 Sankt Augustin
Tel.: +49 - 2241 - 14 - 2736
E-mail: alexander.garvin.klen...@scai.fraunhofer.de
Internet: http://www.scai.fraunhofer.de


----- Original Message -----
From: "Roberto Franchini" <franch...@celi.it>
To: user@uima.apache.org, "Yasen Kiprov" <yasenkip...@yahoo.com>
Sent: Monday, November 19, 2012 12:25:02 PM
Subject: Re: drools for annotation sequences

On Mon, Nov 19, 2012 at 10:06 AM, Yasen Kiprov <yasenkip...@yahoo.com> wrote:
> Hello,
>
[cut]

>
> when
> Token with text == Mr. and number i
> Token with capital letter and number i + 1
> ...
>
> But it doesn't look right.
>
> Does anyone have any idea how such patterns can be modeled with Drools?

We use the same way.
So every annotation emitted before Drools grammars and from grammars
too has 2 additional features posBegin and posEnd, where pos stands
for "position".
So a single token has posBegin equals to posEnd, while a sentence has
posEnd greater than posBegin.

So, in the "when" part of rules, you can match sequence of tokens (pseudo code):

Token $t1 whit text == Mr. and $posBegin=posBegin
Token $t2 with ortho=capitalized and posBegin== $posBegin+1

And in the "then" emit new annotations
then
emit NE($1.sgetStart,$t2.getEnd)

And , yes, we adapted our type system to be used this way.
The better this is to write a little Drools DSL that encapsulate
"when" and "then" frequently used patterns.

Hope this help,
cheers,
FRANK


--
Roberto Franchini
The impossible is inevitable.
http://www.celi.it                     http://www.blogmeter.it
http://github.com/celi-uim       http://github.com/robfrank
Tel +39.011.562.71.15
jabber:ro.franch...@gmail.com skype:ro.franchini tw:@robfrankie

Reply via email to