You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by Peter Klügl <pe...@averbis.com> on 2017/07/06 16:00:45 UTC

Re: UIMA Ruta use of features in a block statement

Hi,


I cannot reproduce the problem. So you have maybe a small runnable test?


Best,


Peter



Am 31.05.2017 um 14:18 schrieb Sumit Madan:
> Am 31.05.2017 um 13:26 schrieb Sumit Madan:
>> Am 31.05.2017 um 09:59 schrieb Peter Klügl:
>>> Hi,
>>
>> Hi Peter,
>>
>>> Am 30.05.2017 um 19:35 schrieb Sumit Madan:
>>>> We were not able to access the annotation within the BLOCK.
>>>>
>>>> ###
>>>> STRING s;
>>>> BOOLEAN a ;
>>>>
>>>> // This is not working for us:
>>>> BLOCK(forEACH) Lemma{}{
>>>>      Lemma{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>>>>      Lemma{a ->Test1};
>>>> }
>>>>
>>>> // This is working:
>>>> BLOCK(forEACH) Lemma{}{
>>>>      W{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>>>>      W{a ->Test2};
>>>> }
>>>>
>>>> // This is also working:
>>>> BLOCK(forEACH) Lemma{}{
>>>> Document{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>>>> Document{a ->Test3};
>>>> }
>>>> ###
>>>>
>>> All three examples should work. Which ruta version do you use? It looks
>>> like a bug.
>>
>> Lisa is testing again and will get back to you.
>
> We tested it again and can confirm the following:
>
> ###
> STRING s;
> BOOLEAN a ;
>
> // This is not working:
> BLOCK(forEACH1) Lemma{} { // Matches a lot
>      Lemma{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))}; // Matches 0
>      Lemma{a ->Test1};
> }
>
> // This is not working:
> BLOCK(forEACH2) Lemma{} { // Matches a lot
> Lemma{contains(Lemma.ct, "er") -> MARK(Test2)}; // Matches 0
> }
>
> // This is working:
> Lemma{contains(Lemma.ct, "er") -> MARK(Test3)}; // Matches 1
>
> // This is working:
> BLOCK(forEACH4) Lemma{}{
>      W{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))}; // Matches 1
>      W{a ->Test4};
> }
>
> // This is also working:
> BLOCK(forEACH5) Lemma{}{
>     Document{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))}; // Matches 1
>     Document{a ->Test5};
> }
> ###
>
> Is it possible that in a BLOCK only Ruta types are available?
>
> We are using the latest stable version 2.6.0.
>


Re: UIMA Ruta use of features in a block statement

Posted by Peter Klügl <pe...@averbis.com>.
Hi


Am 13.07.2017 um 10:31 schrieb Sumit Madan:
> I'll take a look. Could take a few days until I get back to you.
>
> No hurry as it is not urgent.
>

It's hard to reproduce the problem using the xmis since I do not have
the typesystems. I do not see any problems in the Applied Rules view.
Maybe you can debug it? I would set a (conditioned) break point at
RutaRuleElement line 59 (current trunk) and investigate why an empty
list is returned for the Lemma rule in the block.

Is there any change of the filtering settings, action or parameter? Have
you tried to update to the current release candidate for testing? Have
you set any special parameters for internal indexing?


Best,

Peter

>>
>>> Another small issue: DebugRuleApply.element doesn't always match with
>>> the original rules. For example, for the second rule, it contains the
>>> value "Lemma{-&gt;MATCHEDTEXT(s, ),ASSIGN(a, contains(s))};", which is
>>> not identical to the user input.
>>>
>> Yes, unfortunately I did not really take care of it since it is only
>> debug info. I assume you are referring to the comma? I'll fix that. Let
>> me know if you observe more.
>
> Yes, the comma, and also the contains() method is missing the second
> string parameter.
>
> I've one more issue: The loading of extensions is not working if I run
> Ruta under Groovy (2.4.7) (and with Java 1.7 or 1.8 source and target
> compatibility). But I haven't looked deep into it. I'll provide you
> more information as soon as I have it. (The runnable test I created
> was first developed with Groovy.)
>
>> Best,
>>
>> Peter
>


Re: UIMA Ruta use of features in a block statement

Posted by Sumit Madan <su...@scai.fraunhofer.de>.
Am 13.07.2017 um 09:32 schrieb Peter Klügl:
> Hi,
Hi Peter,

>
>
> Am 12.07.2017 um 18:35 schrieb Sumit Madan:
>> The applied rules:
>> ###
>> BLOCK(forEACH) Lemma{}{
>>        Lemma{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>>        Lemma{a ->Value1};
>> }
>> ###
>>
> I'll take a look. Could take a few days until I get back to you.

No hurry as it is not urgent.

>
>> Another small issue: DebugRuleApply.element doesn't always match with
>> the original rules. For example, for the second rule, it contains the
>> value "Lemma{-&gt;MATCHEDTEXT(s, ),ASSIGN(a, contains(s))};", which is
>> not identical to the user input.
>>
> Yes, unfortunately I did not really take care of it since it is only
> debug info. I assume you are referring to the comma? I'll fix that. Let
> me know if you observe more.

Yes, the comma, and also the contains() method is missing the second 
string parameter.

I've one more issue: The loading of extensions is not working if I run 
Ruta under Groovy (2.4.7) (and with Java 1.7 or 1.8 source and target 
compatibility). But I haven't looked deep into it. I'll provide you more 
information as soon as I have it. (The runnable test I created was first 
developed with Groovy.)

> Best,
>
> Peter

-- 
Mit freundlichem Gruß / Best regards

Sumit Madan, M.Sc.

Wissenschaftlicher Mitarbeiter / Research fellow

Fraunhofer-Institute for Algorithms and Scientific Computing (SCAI)
Department of Bioinformatics
Schloss Birlinghoven
D-53754 Sankt Augustin

Room: C3-242
Tel.: +49 2241 14 2997
Email: sumit.madan@scai.fraunhofer.de
Internet: http://www.scai.fraunhofer.de/


Re: UIMA Ruta use of features in a block statement

Posted by Peter Klügl <pe...@averbis.com>.
Hi,


Am 12.07.2017 um 18:35 schrieb Sumit Madan:
> Am 06.07.2017 um 18:00 schrieb Peter Klügl:
>> Hi,
>
> Hi Peter,
>
>> I cannot reproduce the problem. So you have maybe a small runnable test?
>
> I've created a small runnable test with DKPro (1.8.0) and Ruta
> (2.6.0). I've to say that I'm also unable to reproduce the problem.
> All block constructs are working just fine in the runnable test.
>
> For the documents that we process in our internal pipeline, which is
> mostly identical to the runnable test, the block constructs on Lemma
> type are not working. The pipeline uses our own internal type system.
> I've tried to do some debugging but not able to find the problem. A
> characteristic of our pipeline is that we work on a different view
> than _InitialView. I've also considered this aspect in the runnable test.
>
> As I cannot provide you the source code of the internal pipeline,
> we've created a minimal serialized CAS with debug types. May be you
> can identify the problem in the CAS? (The serialized CAS has been sent
> to your private email address.)
>
> The applied rules:
> ###
> BLOCK(forEACH) Lemma{}{
>       Lemma{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>       Lemma{a ->Value1};
> }
> ###
>

I'll take a look. Could take a few days until I get back to you.


> Another small issue: DebugRuleApply.element doesn't always match with
> the original rules. For example, for the second rule, it contains the
> value "Lemma{-&gt;MATCHEDTEXT(s, ),ASSIGN(a, contains(s))};", which is
> not identical to the user input.
>

Yes, unfortunately I did not really take care of it since it is only
debug info. I assume you are referring to the comma? I'll fix that. Let
me know if you observe more.

Best,

Peter

>>
>> Best,
>>
>>
>> Peter
>>
>>
>>
>> Am 31.05.2017 um 14:18 schrieb Sumit Madan:
>>> Am 31.05.2017 um 13:26 schrieb Sumit Madan:
>>>> Am 31.05.2017 um 09:59 schrieb Peter Klügl:
>>>>> Hi,
>>>> Hi Peter,
>>>>
>>>>> Am 30.05.2017 um 19:35 schrieb Sumit Madan:
>>>>>> We were not able to access the annotation within the BLOCK.
>>>>>>
>>>>>> ###
>>>>>> STRING s;
>>>>>> BOOLEAN a ;
>>>>>>
>>>>>> // This is not working for us:
>>>>>> BLOCK(forEACH) Lemma{}{
>>>>>>       Lemma{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>>>>>>       Lemma{a ->Test1};
>>>>>> }
>>>>>>
>>>>>> // This is working:
>>>>>> BLOCK(forEACH) Lemma{}{
>>>>>>       W{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>>>>>>       W{a ->Test2};
>>>>>> }
>>>>>>
>>>>>> // This is also working:
>>>>>> BLOCK(forEACH) Lemma{}{
>>>>>> Document{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>>>>>> Document{a ->Test3};
>>>>>> }
>>>>>> ###
>>>>>>
>>>>> All three examples should work. Which ruta version do you use? It
>>>>> looks
>>>>> like a bug.
>>>> Lisa is testing again and will get back to you.
>>> We tested it again and can confirm the following:
>>>
>>> ###
>>> STRING s;
>>> BOOLEAN a ;
>>>
>>> // This is not working:
>>> BLOCK(forEACH1) Lemma{} { // Matches a lot
>>>       Lemma{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))}; // Matches 0
>>>       Lemma{a ->Test1};
>>> }
>>>
>>> // This is not working:
>>> BLOCK(forEACH2) Lemma{} { // Matches a lot
>>> Lemma{contains(Lemma.ct, "er") -> MARK(Test2)}; // Matches 0
>>> }
>>>
>>> // This is working:
>>> Lemma{contains(Lemma.ct, "er") -> MARK(Test3)}; // Matches 1
>>>
>>> // This is working:
>>> BLOCK(forEACH4) Lemma{}{
>>>       W{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))}; // Matches 1
>>>       W{a ->Test4};
>>> }
>>>
>>> // This is also working:
>>> BLOCK(forEACH5) Lemma{}{
>>>      Document{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))}; //
>>> Matches 1
>>>      Document{a ->Test5};
>>> }
>>> ###
>>>
>>> Is it possible that in a BLOCK only Ruta types are available?
>>>
>>> We are using the latest stable version 2.6.0.
>>>
>
>


Re: UIMA Ruta use of features in a block statement

Posted by Sumit Madan <su...@scai.fraunhofer.de>.
Am 06.07.2017 um 18:00 schrieb Peter Klügl:
> Hi,

Hi Peter,

> I cannot reproduce the problem. So you have maybe a small runnable test?

I've created a small runnable test with DKPro (1.8.0) and Ruta (2.6.0). 
I've to say that I'm also unable to reproduce the problem. All block 
constructs are working just fine in the runnable test.

For the documents that we process in our internal pipeline, which is 
mostly identical to the runnable test, the block constructs on Lemma 
type are not working. The pipeline uses our own internal type system. 
I've tried to do some debugging but not able to find the problem. A 
characteristic of our pipeline is that we work on a different view than 
_InitialView. I've also considered this aspect in the runnable test.

As I cannot provide you the source code of the internal pipeline, we've 
created a minimal serialized CAS with debug types. May be you can 
identify the problem in the CAS? (The serialized CAS has been sent to 
your private email address.)

The applied rules:
###
BLOCK(forEACH) Lemma{}{
       Lemma{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
       Lemma{a ->Value1};
}
###

Another small issue: DebugRuleApply.element doesn't always match with 
the original rules. For example, for the second rule, it contains the 
value "Lemma{-&gt;MATCHEDTEXT(s, ),ASSIGN(a, contains(s))};", which is 
not identical to the user input.

>
> Best,
>
>
> Peter
>
>
>
> Am 31.05.2017 um 14:18 schrieb Sumit Madan:
>> Am 31.05.2017 um 13:26 schrieb Sumit Madan:
>>> Am 31.05.2017 um 09:59 schrieb Peter Klügl:
>>>> Hi,
>>> Hi Peter,
>>>
>>>> Am 30.05.2017 um 19:35 schrieb Sumit Madan:
>>>>> We were not able to access the annotation within the BLOCK.
>>>>>
>>>>> ###
>>>>> STRING s;
>>>>> BOOLEAN a ;
>>>>>
>>>>> // This is not working for us:
>>>>> BLOCK(forEACH) Lemma{}{
>>>>>       Lemma{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>>>>>       Lemma{a ->Test1};
>>>>> }
>>>>>
>>>>> // This is working:
>>>>> BLOCK(forEACH) Lemma{}{
>>>>>       W{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>>>>>       W{a ->Test2};
>>>>> }
>>>>>
>>>>> // This is also working:
>>>>> BLOCK(forEACH) Lemma{}{
>>>>> Document{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))};
>>>>> Document{a ->Test3};
>>>>> }
>>>>> ###
>>>>>
>>>> All three examples should work. Which ruta version do you use? It looks
>>>> like a bug.
>>> Lisa is testing again and will get back to you.
>> We tested it again and can confirm the following:
>>
>> ###
>> STRING s;
>> BOOLEAN a ;
>>
>> // This is not working:
>> BLOCK(forEACH1) Lemma{} { // Matches a lot
>>       Lemma{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))}; // Matches 0
>>       Lemma{a ->Test1};
>> }
>>
>> // This is not working:
>> BLOCK(forEACH2) Lemma{} { // Matches a lot
>> Lemma{contains(Lemma.ct, "er") -> MARK(Test2)}; // Matches 0
>> }
>>
>> // This is working:
>> Lemma{contains(Lemma.ct, "er") -> MARK(Test3)}; // Matches 1
>>
>> // This is working:
>> BLOCK(forEACH4) Lemma{}{
>>       W{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))}; // Matches 1
>>       W{a ->Test4};
>> }
>>
>> // This is also working:
>> BLOCK(forEACH5) Lemma{}{
>>      Document{->MATCHEDTEXT(s), ASSIGN(a,contains(s,"er"))}; // Matches 1
>>      Document{a ->Test5};
>> }
>> ###
>>
>> Is it possible that in a BLOCK only Ruta types are available?
>>
>> We are using the latest stable version 2.6.0.
>>


-- 
Mit freundlichem Gruß / Best regards

Sumit Madan, M.Sc.

Wissenschaftlicher Mitarbeiter / Research fellow

Fraunhofer-Institute for Algorithms and Scientific Computing (SCAI)
Department of Bioinformatics
Schloss Birlinghoven
D-53754 Sankt Augustin

Room: C3-242
Tel.: +49 2241 14 2997
Email:sumit.madan@scai.fraunhofer.de
Internet:http://www.scai.fraunhofer.de/