You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by Joerg Poecher <jo...@econob.com> on 2013/12/13 16:37:27 UTC

UIMA Ruta 2.1.0 Issues

Hello,

 

I would like to report some issues that occurred while testing the Ruta
Workbench.

 

There seems to be a problem with certain composed disjunctive rules in
combination with quantifiers.

Please see the source and input files below for clarification.

 

OS: Windows 8.1

Eclipse Version: Kepler Service Release 1, Build id: 20130919-0819

UIMA Runtime: 2.4.2

Ruta Version: 2.1.0

JDK 

 

Best wishes

Joerg

 

 

  _____  

Ruta Source file:

 

DECLARE TMP_ConcreteSpecialPLUS;

DECLARE TMP_ConcreteSpecialComposedPLUS;

DECLARE TMP_ConcreteSpecialComposedSTAR;

DECLARE TMP_ConcreteSpecialNumComposedPLUS;

DECLARE TMP_ConcreteNumSpecialComposedPLUS;

 

DECLARE TMP_GenericAny;

DECLARE TMP_GenericAnyPLUS;

DECLARE TMP_GenericAnyPLUS_Reluctant;

DECLARE TMP_GenericAnySTAR;

DECLARE TMP_GenericAnySTAR_Reluctant;

 

DECLARE TMP_GenericAll;

DECLARE TMP_GenericAllPLUS;

DECLARE TMP_GenericAllPLUS_Reluctant;

DECLARE TMP_GenericAllSTAR;

DECLARE TMP_GenericAllSTAR_Reluctant;

 

DECLARE TMP_GenericSharp;

 

DECLARE TMP_GenericWordPLUS;

DECLARE TMP_ConcreteSw;

DECLARE TMP_ConcreteCw;

DECLARE TMP_ConcreteCwPLUS;

DECLARE TMP_ConcreteSwPLUS;

DECLARE TMP_ConcreteSwCwComposedPLUS;

 

//
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++

//  DOCUMENTATION:

//  

//  *   Rules without comments annotate as intended

//  *   Commented rules indicate a problem

//  

//  Adding the '?' modifier to any of the composed disjunctive rules as '(
... | ... )+' or '( ... | ... )*' below 

//  throws an exception: see excerpt of log file at the end

//
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++

 

//
============================================================================
=========================================

 

// Does not match anything

SPECIAL ( SPECIAL | CW | SW )* {-> MARK(TMP_ConcreteSpecialComposedSTAR)}
SPECIAL;

 

// Does not match anything

(SPECIAL ( SPECIAL | CW )+ SPECIAL) {->
MARK(TMP_ConcreteSpecialComposedPLUS)};

 

// when adding a '?' after '(...)+' an exception is thrown

(SPECIAL ( NUM | CW )+ SPECIAL) {->
MARK(TMP_ConcreteSpecialNumComposedPLUS)};

(NUM ( SPECIAL | CW )+ NUM) {-> MARK(TMP_ConcreteNumSpecialComposedPLUS)};

 

//
============================================================================
=========================================

 

//  Works only with '?' - it's the same problem as 'ANY+' resp. 'ALL+' below


(SPECIAL SPECIAL+? SPECIAL) {-> MARK(TMP_ConcreteSpecialPLUS)};

 

//
============================================================================
=========================================

 

(SPECIAL CW SPECIAL) {-> MARK(TMP_ConcreteCw)};

 

(SPECIAL SW SPECIAL) {-> MARK(TMP_ConcreteSw)};

 

(SPECIAL CW+ SPECIAL) {-> MARK(TMP_ConcreteCwPLUS)};

 

(SPECIAL SW+ SPECIAL) {-> MARK(TMP_ConcreteSwPLUS)};

 

// throws an exception when adding a '?' after '(...)+'

(SPECIAL (CW | SW)+ SPECIAL) {-> MARK(TMP_ConcreteSwCwComposedPLUS)};

 

(SPECIAL W+ SPECIAL) {-> MARK(TMP_GenericWordPLUS)};

 

//
============================================================================
=========================================

 

(SPECIAL ANY SPECIAL) {-> MARK(TMP_GenericAny)};

 

// does not match anything

(SPECIAL ANY+ SPECIAL) {-> MARK(TMP_GenericAnyPLUS)};

 

(SPECIAL ANY+? SPECIAL) {-> MARK(TMP_GenericAnyPLUS_Reluctant)};

 

// does not match anything

(SPECIAL ANY* SPECIAL) {-> MARK(TMP_GenericAnySTAR)};

 

(SPECIAL ANY*? SPECIAL) {-> MARK(TMP_GenericAnySTAR_Reluctant)};

 

//
============================================================================
=========================================

 

(SPECIAL ALL SPECIAL) {-> MARK(TMP_GenericAll)};

 

// does not match anything

(SPECIAL ALL+ SPECIAL) {-> MARK(TMP_GenericAllPLUS)};

 

(SPECIAL ALL+? SPECIAL) {-> MARK(TMP_GenericAllPLUS_Reluctant)};

 

// does not match anything

(SPECIAL ALL* SPECIAL) {-> MARK(TMP_GenericAllSTAR)};

 

(SPECIAL ALL*? SPECIAL) {-> MARK(TMP_GenericAllSTAR_Reluctant)};

 

//
============================================================================
=========================================

 

(SPECIAL # SPECIAL) {-> MARK(TMP_GenericSharp)};

 

  _____  

Input file:

 

( CAP CAP CAP sw CAP CAP Cw sw CAP Cw )

( sw Cw sw Cw )

( sw Cw <TAG> sw )

( sw sw )

( Cw Cw )

( CAP CAP )

( sw )

(sw)

(Cw)

( Cw )

( CAP )

( )

( $$$ )

 

1 Cw $ Cw Cw $ 8

( Cw $ Cw Cw $ )

( Cw 5 Cw Cw 8 )

 

 

  _____  

Log file:

 

!ENTRY org.eclipse.core.jobs 4 2 2013-12-13 15:56:10.403

!MESSAGE An internal error occurred during: "Label Job".

!STACK 0

org.eclipse.swt.SWTException: Invalid thread access

                at org.eclipse.swt.SWT.error(SWT.java:4397)

                at org.eclipse.swt.SWT.error(SWT.java:4312)

                at org.eclipse.swt.SWT.error(SWT.java:4283)

                at org.eclipse.swt.widgets.Display.error(Display.java:1258)

                at
org.eclipse.swt.widgets.Display.checkDevice(Display.java:764)

                at
org.eclipse.swt.widgets.Display.disposeExec(Display.java:1203)

                at
org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry.hookDisplay(
ImageDescriptorRegistry.java:77)

                at
org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry.<init>(Image
DescriptorRegistry.java:40)

                at
org.eclipse.jdt.internal.ui.JavaPlugin.internalGetImageDescriptorRegistry(Ja
vaPlugin.java:954)

                at
org.eclipse.jdt.internal.ui.JavaPlugin.getImageDescriptorRegistry(JavaPlugin
.java:347)

                at
org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getVariableImage(JDIM
odelPresentation.java:914)

                at
org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getImage(JDIModelPres
entation.java:682)

                at
org.eclipse.debug.internal.ui.LazyModelPresentation.getImage(LazyModelPresen
tation.java:127)

                at
org.eclipse.debug.internal.ui.DelegatingModelPresentation.getImage(Delegatin
gModelPresentation.java:143)

                at
org.eclipse.debug.internal.ui.views.launch.DebugElementHelper.getImageDescri
ptor(DebugElementHelper.java:70)

                at
org.eclipse.debug.internal.ui.model.elements.DebugElementLabelProvider.getIm
ageDescriptor(DebugElementLabelProvider.java:72)

                at
org.eclipse.debug.internal.ui.model.elements.VariableLabelProvider.getImageD
escriptor(VariableLabelProvider.java:70)

                at
org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.getImageDe
scriptor(ElementLabelProvider.java:289)

                at
org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.retrieveLa
bel(ElementLabelProvider.java:216)

                at
org.eclipse.jdt.internal.debug.ui.variables.JavaVariableLabelProvider.retrie
veLabel(JavaVariableLabelProvider.java:183)

                at
org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelUpdat
er.run(ElementLabelProvider.java:160)

                at
org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelJob.r
un(ElementLabelProvider.java:74)

                at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)



---
Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz ist aktiv.
http://www.avast.com

Re: UIMA Ruta 2.1.0 Issues

Posted by Peter Klügl <pk...@uni-wuerzburg.de>.
Am 17.12.2013 18:14, schrieb Alexandre Patry:
> On 2013-12-17 12:10, Peter Klügl wrote:
>> Am 17.12.2013 18:00, schrieb Alexandre Patry:
>>> On 2013-12-17 11:56, Peter Klügl wrote:
>>>> Hi,
>>>>
>>>> some of the rules behave as expected. It's maybe a bit 
>>>> counterintuitive,
>>>> but I do not see a way to improve it. I will fix the rest in the next
>>>> few days.
>>>>
>>>> An example:
>>>>
>>>> (SPECIAL ALL* SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>>>>
>>>> ALL is a parent type of SPECIAL and * is a greedy quantifier. 
>>>> Therefore
>>>> ALL matches on all annotations and also on the SPECIAL annotations 
>>>> until
>>>> the end of the document. Then, there is no SPECIAL annotation left to
>>>> match and the rule fails.
>>> Using a reluctant quantifier should work as expected for this specific
>>> case case:
>>>
>>> (SPECIAL ALL*? SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>>>
>>>
>> Just another comment that has nothing to do with the problem :-)
>>
>> The rule is of course somewhat "slow".
>>
>> I would rather rewrite it in:
>>
>> (SPECIAL # SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>>
>> Here, the wildcard searches for the next SPECIAL annotation in the index
>> and has not to match on each token until the next SPECIAL annotation.
> Nice trick, thanks for sharing!
>
> Is there a cookbook somewhere where all these tricks are stored?
>

Nope, but I am thinking for some time about adding another chapter in 
the documentation for such stuff, e.g., how to easily include DKPro 
components in Ruta scripts or how to apply Ruta scripts for 
transformation-based part-of-speech tagging.

However, no time...

Best,

Peter



Re: UIMA Ruta 2.1.0 Issues

Posted by Alexandre Patry <al...@keatext.com>.
On 2013-12-17 12:10, Peter Klügl wrote:
> Am 17.12.2013 18:00, schrieb Alexandre Patry:
>> On 2013-12-17 11:56, Peter Klügl wrote:
>>> Hi,
>>>
>>> some of the rules behave as expected. It's maybe a bit counterintuitive,
>>> but I do not see a way to improve it. I will fix the rest in the next
>>> few days.
>>>
>>> An example:
>>>
>>> (SPECIAL ALL* SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>>>
>>> ALL is a parent type of SPECIAL and * is a greedy quantifier. Therefore
>>> ALL matches on all annotations and also on the SPECIAL annotations until
>>> the end of the document. Then, there is no SPECIAL annotation left to
>>> match and the rule fails.
>> Using a reluctant quantifier should work as expected for this specific
>> case case:
>>
>> (SPECIAL ALL*? SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>>
>>
> Just another comment that has nothing to do with the problem :-)
>
> The rule is of course somewhat "slow".
>
> I would rather rewrite it in:
>
> (SPECIAL # SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>
> Here, the wildcard searches for the next SPECIAL annotation in the index
> and has not to match on each token until the next SPECIAL annotation.
Nice trick, thanks for sharing!

Is there a cookbook somewhere where all these tricks are stored?

-- 
Alexandre Patry, Ph.D
Chercheur / Researcher
http://KeaText.com


Re: UIMA Ruta 2.1.0 Issues

Posted by Peter Klügl <pk...@uni-wuerzburg.de>.
Am 17.12.2013 18:00, schrieb Alexandre Patry:
> On 2013-12-17 11:56, Peter Klügl wrote:
>> Hi,
>>
>> some of the rules behave as expected. It's maybe a bit counterintuitive,
>> but I do not see a way to improve it. I will fix the rest in the next
>> few days.
>>
>> An example:
>>
>> (SPECIAL ALL* SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>>
>> ALL is a parent type of SPECIAL and * is a greedy quantifier. Therefore
>> ALL matches on all annotations and also on the SPECIAL annotations until
>> the end of the document. Then, there is no SPECIAL annotation left to
>> match and the rule fails.
> Using a reluctant quantifier should work as expected for this specific
> case case:
>
> (SPECIAL ALL*? SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>
>

Just another comment that has nothing to do with the problem :-)

The rule is of course somewhat "slow".

I would rather rewrite it in:

(SPECIAL # SPECIAL) {-> MARK(TMP_GenericAllSTAR)};

Here, the wildcard searches for the next SPECIAL annotation in the index
and has not to match on each token until the next SPECIAL annotation.

Best,

Peter



> Hope this help,
>
> Alexandre
>


Re: UIMA Ruta 2.1.0 Issues

Posted by Alexandre Patry <al...@keatext.com>.
On 2013-12-17 11:56, Peter Klügl wrote:
> Hi,
>
> some of the rules behave as expected. It's maybe a bit counterintuitive,
> but I do not see a way to improve it. I will fix the rest in the next
> few days.
>
> An example:
>
> (SPECIAL ALL* SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>
> ALL is a parent type of SPECIAL and * is a greedy quantifier. Therefore
> ALL matches on all annotations and also on the SPECIAL annotations until
> the end of the document. Then, there is no SPECIAL annotation left to
> match and the rule fails.
Using a reluctant quantifier should work as expected for this specific 
case case:

(SPECIAL ALL*? SPECIAL) {-> MARK(TMP_GenericAllSTAR)};


Hope this help,

Alexandre

-- 
Alexandre Patry, Ph.D
Chercheur / Researcher
http://KeaText.com


Re: UIMA Ruta 2.1.0 Issues

Posted by Peter Klügl <pk...@uni-wuerzburg.de>.
Hi,

some of the rules behave as expected. It's maybe a bit counterintuitive,
but I do not see a way to improve it. I will fix the rest in the next
few days.

An example:

(SPECIAL ALL* SPECIAL) {-> MARK(TMP_GenericAllSTAR)};

ALL is a parent type of SPECIAL and * is a greedy quantifier. Therefore
ALL matches on all annotations and also on the SPECIAL annotations until
the end of the document. Then, there is no SPECIAL annotation left to
match and the rule fails.

May I use your examples in a junit test case?

Best,

Peter


Am 17.12.2013 17:45, schrieb Peter Klügl:
> Thanks, I will take a look at it ASAP.
>
> Best,
>
> Peter
>
> Am 13.12.2013 16:37, schrieb Joerg Poecher:
>> Hello,
>>
>>  
>>
>> I would like to report some issues that occurred while testing the Ruta
>> Workbench.
>>
>>  
>>
>> There seems to be a problem with certain composed disjunctive rules in
>> combination with quantifiers.
>>
>> Please see the source and input files below for clarification.
>>
>>  
>>
>> OS: Windows 8.1
>>
>> Eclipse Version: Kepler Service Release 1, Build id: 20130919-0819
>>
>> UIMA Runtime: 2.4.2
>>
>> Ruta Version: 2.1.0
>>
>> JDK 
>>
>>  
>>
>> Best wishes
>>
>> Joerg
>>
>>  
>>
>>  
>>
>>   _____  
>>
>> Ruta Source file:
>>
>>  
>>
>> DECLARE TMP_ConcreteSpecialPLUS;
>>
>> DECLARE TMP_ConcreteSpecialComposedPLUS;
>>
>> DECLARE TMP_ConcreteSpecialComposedSTAR;
>>
>> DECLARE TMP_ConcreteSpecialNumComposedPLUS;
>>
>> DECLARE TMP_ConcreteNumSpecialComposedPLUS;
>>
>>  
>>
>> DECLARE TMP_GenericAny;
>>
>> DECLARE TMP_GenericAnyPLUS;
>>
>> DECLARE TMP_GenericAnyPLUS_Reluctant;
>>
>> DECLARE TMP_GenericAnySTAR;
>>
>> DECLARE TMP_GenericAnySTAR_Reluctant;
>>
>>  
>>
>> DECLARE TMP_GenericAll;
>>
>> DECLARE TMP_GenericAllPLUS;
>>
>> DECLARE TMP_GenericAllPLUS_Reluctant;
>>
>> DECLARE TMP_GenericAllSTAR;
>>
>> DECLARE TMP_GenericAllSTAR_Reluctant;
>>
>>  
>>
>> DECLARE TMP_GenericSharp;
>>
>>  
>>
>> DECLARE TMP_GenericWordPLUS;
>>
>> DECLARE TMP_ConcreteSw;
>>
>> DECLARE TMP_ConcreteCw;
>>
>> DECLARE TMP_ConcreteCwPLUS;
>>
>> DECLARE TMP_ConcreteSwPLUS;
>>
>> DECLARE TMP_ConcreteSwCwComposedPLUS;
>>
>>  
>>
>> //
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> +++++++++++++++++++++++++++++++++++++++++
>>
>> //  DOCUMENTATION:
>>
>> //  
>>
>> //  *   Rules without comments annotate as intended
>>
>> //  *   Commented rules indicate a problem
>>
>> //  
>>
>> //  Adding the '?' modifier to any of the composed disjunctive rules as '(
>> ... | ... )+' or '( ... | ... )*' below 
>>
>> //  throws an exception: see excerpt of log file at the end
>>
>> //
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> +++++++++++++++++++++++++++++++++++++++++
>>
>>  
>>
>> //
>> ============================================================================
>> =========================================
>>
>>  
>>
>> // Does not match anything
>>
>> SPECIAL ( SPECIAL | CW | SW )* {-> MARK(TMP_ConcreteSpecialComposedSTAR)}
>> SPECIAL;
>>
>>  
>>
>> // Does not match anything
>>
>> (SPECIAL ( SPECIAL | CW )+ SPECIAL) {->
>> MARK(TMP_ConcreteSpecialComposedPLUS)};
>>
>>  
>>
>> // when adding a '?' after '(...)+' an exception is thrown
>>
>> (SPECIAL ( NUM | CW )+ SPECIAL) {->
>> MARK(TMP_ConcreteSpecialNumComposedPLUS)};
>>
>> (NUM ( SPECIAL | CW )+ NUM) {-> MARK(TMP_ConcreteNumSpecialComposedPLUS)};
>>
>>  
>>
>> //
>> ============================================================================
>> =========================================
>>
>>  
>>
>> //  Works only with '?' - it's the same problem as 'ANY+' resp. 'ALL+' below
>>
>>
>> (SPECIAL SPECIAL+? SPECIAL) {-> MARK(TMP_ConcreteSpecialPLUS)};
>>
>>  
>>
>> //
>> ============================================================================
>> =========================================
>>
>>  
>>
>> (SPECIAL CW SPECIAL) {-> MARK(TMP_ConcreteCw)};
>>
>>  
>>
>> (SPECIAL SW SPECIAL) {-> MARK(TMP_ConcreteSw)};
>>
>>  
>>
>> (SPECIAL CW+ SPECIAL) {-> MARK(TMP_ConcreteCwPLUS)};
>>
>>  
>>
>> (SPECIAL SW+ SPECIAL) {-> MARK(TMP_ConcreteSwPLUS)};
>>
>>  
>>
>> // throws an exception when adding a '?' after '(...)+'
>>
>> (SPECIAL (CW | SW)+ SPECIAL) {-> MARK(TMP_ConcreteSwCwComposedPLUS)};
>>
>>  
>>
>> (SPECIAL W+ SPECIAL) {-> MARK(TMP_GenericWordPLUS)};
>>
>>  
>>
>> //
>> ============================================================================
>> =========================================
>>
>>  
>>
>> (SPECIAL ANY SPECIAL) {-> MARK(TMP_GenericAny)};
>>
>>  
>>
>> // does not match anything
>>
>> (SPECIAL ANY+ SPECIAL) {-> MARK(TMP_GenericAnyPLUS)};
>>
>>  
>>
>> (SPECIAL ANY+? SPECIAL) {-> MARK(TMP_GenericAnyPLUS_Reluctant)};
>>
>>  
>>
>> // does not match anything
>>
>> (SPECIAL ANY* SPECIAL) {-> MARK(TMP_GenericAnySTAR)};
>>
>>  
>>
>> (SPECIAL ANY*? SPECIAL) {-> MARK(TMP_GenericAnySTAR_Reluctant)};
>>
>>  
>>
>> //
>> ============================================================================
>> =========================================
>>
>>  
>>
>> (SPECIAL ALL SPECIAL) {-> MARK(TMP_GenericAll)};
>>
>>  
>>
>> // does not match anything
>>
>> (SPECIAL ALL+ SPECIAL) {-> MARK(TMP_GenericAllPLUS)};
>>
>>  
>>
>> (SPECIAL ALL+? SPECIAL) {-> MARK(TMP_GenericAllPLUS_Reluctant)};
>>
>>  
>>
>> // does not match anything
>>
>> (SPECIAL ALL* SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>>
>>  
>>
>> (SPECIAL ALL*? SPECIAL) {-> MARK(TMP_GenericAllSTAR_Reluctant)};
>>
>>  
>>
>> //
>> ============================================================================
>> =========================================
>>
>>  
>>
>> (SPECIAL # SPECIAL) {-> MARK(TMP_GenericSharp)};
>>
>>  
>>
>>   _____  
>>
>> Input file:
>>
>>  
>>
>> ( CAP CAP CAP sw CAP CAP Cw sw CAP Cw )
>>
>> ( sw Cw sw Cw )
>>
>> ( sw Cw <TAG> sw )
>>
>> ( sw sw )
>>
>> ( Cw Cw )
>>
>> ( CAP CAP )
>>
>> ( sw )
>>
>> (sw)
>>
>> (Cw)
>>
>> ( Cw )
>>
>> ( CAP )
>>
>> ( )
>>
>> ( $$$ )
>>
>>  
>>
>> 1 Cw $ Cw Cw $ 8
>>
>> ( Cw $ Cw Cw $ )
>>
>> ( Cw 5 Cw Cw 8 )
>>
>>  
>>
>>  
>>
>>   _____  
>>
>> Log file:
>>
>>  
>>
>> !ENTRY org.eclipse.core.jobs 4 2 2013-12-13 15:56:10.403
>>
>> !MESSAGE An internal error occurred during: "Label Job".
>>
>> !STACK 0
>>
>> org.eclipse.swt.SWTException: Invalid thread access
>>
>>                 at org.eclipse.swt.SWT.error(SWT.java:4397)
>>
>>                 at org.eclipse.swt.SWT.error(SWT.java:4312)
>>
>>                 at org.eclipse.swt.SWT.error(SWT.java:4283)
>>
>>                 at org.eclipse.swt.widgets.Display.error(Display.java:1258)
>>
>>                 at
>> org.eclipse.swt.widgets.Display.checkDevice(Display.java:764)
>>
>>                 at
>> org.eclipse.swt.widgets.Display.disposeExec(Display.java:1203)
>>
>>                 at
>> org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry.hookDisplay(
>> ImageDescriptorRegistry.java:77)
>>
>>                 at
>> org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry.<init>(Image
>> DescriptorRegistry.java:40)
>>
>>                 at
>> org.eclipse.jdt.internal.ui.JavaPlugin.internalGetImageDescriptorRegistry(Ja
>> vaPlugin.java:954)
>>
>>                 at
>> org.eclipse.jdt.internal.ui.JavaPlugin.getImageDescriptorRegistry(JavaPlugin
>> .java:347)
>>
>>                 at
>> org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getVariableImage(JDIM
>> odelPresentation.java:914)
>>
>>                 at
>> org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getImage(JDIModelPres
>> entation.java:682)
>>
>>                 at
>> org.eclipse.debug.internal.ui.LazyModelPresentation.getImage(LazyModelPresen
>> tation.java:127)
>>
>>                 at
>> org.eclipse.debug.internal.ui.DelegatingModelPresentation.getImage(Delegatin
>> gModelPresentation.java:143)
>>
>>                 at
>> org.eclipse.debug.internal.ui.views.launch.DebugElementHelper.getImageDescri
>> ptor(DebugElementHelper.java:70)
>>
>>                 at
>> org.eclipse.debug.internal.ui.model.elements.DebugElementLabelProvider.getIm
>> ageDescriptor(DebugElementLabelProvider.java:72)
>>
>>                 at
>> org.eclipse.debug.internal.ui.model.elements.VariableLabelProvider.getImageD
>> escriptor(VariableLabelProvider.java:70)
>>
>>                 at
>> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.getImageDe
>> scriptor(ElementLabelProvider.java:289)
>>
>>                 at
>> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.retrieveLa
>> bel(ElementLabelProvider.java:216)
>>
>>                 at
>> org.eclipse.jdt.internal.debug.ui.variables.JavaVariableLabelProvider.retrie
>> veLabel(JavaVariableLabelProvider.java:183)
>>
>>                 at
>> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelUpdat
>> er.run(ElementLabelProvider.java:160)
>>
>>                 at
>> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelJob.r
>> un(ElementLabelProvider.java:74)
>>
>>                 at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
>>
>>
>>
>> ---
>> Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz ist aktiv.
>> http://www.avast.com
>>


Re: UIMA Ruta 2.1.0 Issues

Posted by Peter Klügl <pk...@uni-wuerzburg.de>.
Thanks, I will take a look at it ASAP.

Best,

Peter

Am 13.12.2013 16:37, schrieb Joerg Poecher:
> Hello,
>
>  
>
> I would like to report some issues that occurred while testing the Ruta
> Workbench.
>
>  
>
> There seems to be a problem with certain composed disjunctive rules in
> combination with quantifiers.
>
> Please see the source and input files below for clarification.
>
>  
>
> OS: Windows 8.1
>
> Eclipse Version: Kepler Service Release 1, Build id: 20130919-0819
>
> UIMA Runtime: 2.4.2
>
> Ruta Version: 2.1.0
>
> JDK 
>
>  
>
> Best wishes
>
> Joerg
>
>  
>
>  
>
>   _____  
>
> Ruta Source file:
>
>  
>
> DECLARE TMP_ConcreteSpecialPLUS;
>
> DECLARE TMP_ConcreteSpecialComposedPLUS;
>
> DECLARE TMP_ConcreteSpecialComposedSTAR;
>
> DECLARE TMP_ConcreteSpecialNumComposedPLUS;
>
> DECLARE TMP_ConcreteNumSpecialComposedPLUS;
>
>  
>
> DECLARE TMP_GenericAny;
>
> DECLARE TMP_GenericAnyPLUS;
>
> DECLARE TMP_GenericAnyPLUS_Reluctant;
>
> DECLARE TMP_GenericAnySTAR;
>
> DECLARE TMP_GenericAnySTAR_Reluctant;
>
>  
>
> DECLARE TMP_GenericAll;
>
> DECLARE TMP_GenericAllPLUS;
>
> DECLARE TMP_GenericAllPLUS_Reluctant;
>
> DECLARE TMP_GenericAllSTAR;
>
> DECLARE TMP_GenericAllSTAR_Reluctant;
>
>  
>
> DECLARE TMP_GenericSharp;
>
>  
>
> DECLARE TMP_GenericWordPLUS;
>
> DECLARE TMP_ConcreteSw;
>
> DECLARE TMP_ConcreteCw;
>
> DECLARE TMP_ConcreteCwPLUS;
>
> DECLARE TMP_ConcreteSwPLUS;
>
> DECLARE TMP_ConcreteSwCwComposedPLUS;
>
>  
>
> //
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++++++++++++++
>
> //  DOCUMENTATION:
>
> //  
>
> //  *   Rules without comments annotate as intended
>
> //  *   Commented rules indicate a problem
>
> //  
>
> //  Adding the '?' modifier to any of the composed disjunctive rules as '(
> ... | ... )+' or '( ... | ... )*' below 
>
> //  throws an exception: see excerpt of log file at the end
>
> //
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++++++++++++++
>
>  
>
> //
> ============================================================================
> =========================================
>
>  
>
> // Does not match anything
>
> SPECIAL ( SPECIAL | CW | SW )* {-> MARK(TMP_ConcreteSpecialComposedSTAR)}
> SPECIAL;
>
>  
>
> // Does not match anything
>
> (SPECIAL ( SPECIAL | CW )+ SPECIAL) {->
> MARK(TMP_ConcreteSpecialComposedPLUS)};
>
>  
>
> // when adding a '?' after '(...)+' an exception is thrown
>
> (SPECIAL ( NUM | CW )+ SPECIAL) {->
> MARK(TMP_ConcreteSpecialNumComposedPLUS)};
>
> (NUM ( SPECIAL | CW )+ NUM) {-> MARK(TMP_ConcreteNumSpecialComposedPLUS)};
>
>  
>
> //
> ============================================================================
> =========================================
>
>  
>
> //  Works only with '?' - it's the same problem as 'ANY+' resp. 'ALL+' below
>
>
> (SPECIAL SPECIAL+? SPECIAL) {-> MARK(TMP_ConcreteSpecialPLUS)};
>
>  
>
> //
> ============================================================================
> =========================================
>
>  
>
> (SPECIAL CW SPECIAL) {-> MARK(TMP_ConcreteCw)};
>
>  
>
> (SPECIAL SW SPECIAL) {-> MARK(TMP_ConcreteSw)};
>
>  
>
> (SPECIAL CW+ SPECIAL) {-> MARK(TMP_ConcreteCwPLUS)};
>
>  
>
> (SPECIAL SW+ SPECIAL) {-> MARK(TMP_ConcreteSwPLUS)};
>
>  
>
> // throws an exception when adding a '?' after '(...)+'
>
> (SPECIAL (CW | SW)+ SPECIAL) {-> MARK(TMP_ConcreteSwCwComposedPLUS)};
>
>  
>
> (SPECIAL W+ SPECIAL) {-> MARK(TMP_GenericWordPLUS)};
>
>  
>
> //
> ============================================================================
> =========================================
>
>  
>
> (SPECIAL ANY SPECIAL) {-> MARK(TMP_GenericAny)};
>
>  
>
> // does not match anything
>
> (SPECIAL ANY+ SPECIAL) {-> MARK(TMP_GenericAnyPLUS)};
>
>  
>
> (SPECIAL ANY+? SPECIAL) {-> MARK(TMP_GenericAnyPLUS_Reluctant)};
>
>  
>
> // does not match anything
>
> (SPECIAL ANY* SPECIAL) {-> MARK(TMP_GenericAnySTAR)};
>
>  
>
> (SPECIAL ANY*? SPECIAL) {-> MARK(TMP_GenericAnySTAR_Reluctant)};
>
>  
>
> //
> ============================================================================
> =========================================
>
>  
>
> (SPECIAL ALL SPECIAL) {-> MARK(TMP_GenericAll)};
>
>  
>
> // does not match anything
>
> (SPECIAL ALL+ SPECIAL) {-> MARK(TMP_GenericAllPLUS)};
>
>  
>
> (SPECIAL ALL+? SPECIAL) {-> MARK(TMP_GenericAllPLUS_Reluctant)};
>
>  
>
> // does not match anything
>
> (SPECIAL ALL* SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>
>  
>
> (SPECIAL ALL*? SPECIAL) {-> MARK(TMP_GenericAllSTAR_Reluctant)};
>
>  
>
> //
> ============================================================================
> =========================================
>
>  
>
> (SPECIAL # SPECIAL) {-> MARK(TMP_GenericSharp)};
>
>  
>
>   _____  
>
> Input file:
>
>  
>
> ( CAP CAP CAP sw CAP CAP Cw sw CAP Cw )
>
> ( sw Cw sw Cw )
>
> ( sw Cw <TAG> sw )
>
> ( sw sw )
>
> ( Cw Cw )
>
> ( CAP CAP )
>
> ( sw )
>
> (sw)
>
> (Cw)
>
> ( Cw )
>
> ( CAP )
>
> ( )
>
> ( $$$ )
>
>  
>
> 1 Cw $ Cw Cw $ 8
>
> ( Cw $ Cw Cw $ )
>
> ( Cw 5 Cw Cw 8 )
>
>  
>
>  
>
>   _____  
>
> Log file:
>
>  
>
> !ENTRY org.eclipse.core.jobs 4 2 2013-12-13 15:56:10.403
>
> !MESSAGE An internal error occurred during: "Label Job".
>
> !STACK 0
>
> org.eclipse.swt.SWTException: Invalid thread access
>
>                 at org.eclipse.swt.SWT.error(SWT.java:4397)
>
>                 at org.eclipse.swt.SWT.error(SWT.java:4312)
>
>                 at org.eclipse.swt.SWT.error(SWT.java:4283)
>
>                 at org.eclipse.swt.widgets.Display.error(Display.java:1258)
>
>                 at
> org.eclipse.swt.widgets.Display.checkDevice(Display.java:764)
>
>                 at
> org.eclipse.swt.widgets.Display.disposeExec(Display.java:1203)
>
>                 at
> org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry.hookDisplay(
> ImageDescriptorRegistry.java:77)
>
>                 at
> org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry.<init>(Image
> DescriptorRegistry.java:40)
>
>                 at
> org.eclipse.jdt.internal.ui.JavaPlugin.internalGetImageDescriptorRegistry(Ja
> vaPlugin.java:954)
>
>                 at
> org.eclipse.jdt.internal.ui.JavaPlugin.getImageDescriptorRegistry(JavaPlugin
> .java:347)
>
>                 at
> org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getVariableImage(JDIM
> odelPresentation.java:914)
>
>                 at
> org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getImage(JDIModelPres
> entation.java:682)
>
>                 at
> org.eclipse.debug.internal.ui.LazyModelPresentation.getImage(LazyModelPresen
> tation.java:127)
>
>                 at
> org.eclipse.debug.internal.ui.DelegatingModelPresentation.getImage(Delegatin
> gModelPresentation.java:143)
>
>                 at
> org.eclipse.debug.internal.ui.views.launch.DebugElementHelper.getImageDescri
> ptor(DebugElementHelper.java:70)
>
>                 at
> org.eclipse.debug.internal.ui.model.elements.DebugElementLabelProvider.getIm
> ageDescriptor(DebugElementLabelProvider.java:72)
>
>                 at
> org.eclipse.debug.internal.ui.model.elements.VariableLabelProvider.getImageD
> escriptor(VariableLabelProvider.java:70)
>
>                 at
> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.getImageDe
> scriptor(ElementLabelProvider.java:289)
>
>                 at
> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.retrieveLa
> bel(ElementLabelProvider.java:216)
>
>                 at
> org.eclipse.jdt.internal.debug.ui.variables.JavaVariableLabelProvider.retrie
> veLabel(JavaVariableLabelProvider.java:183)
>
>                 at
> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelUpdat
> er.run(ElementLabelProvider.java:160)
>
>                 at
> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelJob.r
> un(ElementLabelProvider.java:74)
>
>                 at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
>
>
>
> ---
> Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz ist aktiv.
> http://www.avast.com
>


Re: UIMA Ruta 2.1.0 Issues

Posted by Peter Klügl <pk...@uni-wuerzburg.de>.
Hi,

the problem with the rules throwing an exception is now fixed in the 
current trunk. Thanks for reporting it.

Best,

Peter


Am 13.12.2013 16:37, schrieb Joerg Poecher:
> Hello,
>
>   
>
> I would like to report some issues that occurred while testing the Ruta
> Workbench.
>
>   
>
> There seems to be a problem with certain composed disjunctive rules in
> combination with quantifiers.
>
> Please see the source and input files below for clarification.
>
>   
>
> OS: Windows 8.1
>
> Eclipse Version: Kepler Service Release 1, Build id: 20130919-0819
>
> UIMA Runtime: 2.4.2
>
> Ruta Version: 2.1.0
>
> JDK
>
>   
>
> Best wishes
>
> Joerg
>
>   
>
>   
>
>    _____
>
> Ruta Source file:
>
>   
>
> DECLARE TMP_ConcreteSpecialPLUS;
>
> DECLARE TMP_ConcreteSpecialComposedPLUS;
>
> DECLARE TMP_ConcreteSpecialComposedSTAR;
>
> DECLARE TMP_ConcreteSpecialNumComposedPLUS;
>
> DECLARE TMP_ConcreteNumSpecialComposedPLUS;
>
>   
>
> DECLARE TMP_GenericAny;
>
> DECLARE TMP_GenericAnyPLUS;
>
> DECLARE TMP_GenericAnyPLUS_Reluctant;
>
> DECLARE TMP_GenericAnySTAR;
>
> DECLARE TMP_GenericAnySTAR_Reluctant;
>
>   
>
> DECLARE TMP_GenericAll;
>
> DECLARE TMP_GenericAllPLUS;
>
> DECLARE TMP_GenericAllPLUS_Reluctant;
>
> DECLARE TMP_GenericAllSTAR;
>
> DECLARE TMP_GenericAllSTAR_Reluctant;
>
>   
>
> DECLARE TMP_GenericSharp;
>
>   
>
> DECLARE TMP_GenericWordPLUS;
>
> DECLARE TMP_ConcreteSw;
>
> DECLARE TMP_ConcreteCw;
>
> DECLARE TMP_ConcreteCwPLUS;
>
> DECLARE TMP_ConcreteSwPLUS;
>
> DECLARE TMP_ConcreteSwCwComposedPLUS;
>
>   
>
> //
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++++++++++++++
>
> //  DOCUMENTATION:
>
> //
>
> //  *   Rules without comments annotate as intended
>
> //  *   Commented rules indicate a problem
>
> //
>
> //  Adding the '?' modifier to any of the composed disjunctive rules as '(
> ... | ... )+' or '( ... | ... )*' below
>
> //  throws an exception: see excerpt of log file at the end
>
> //
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++++++++++++++++++++++++++++
>
>   
>
> //
> ============================================================================
> =========================================
>
>   
>
> // Does not match anything
>
> SPECIAL ( SPECIAL | CW | SW )* {-> MARK(TMP_ConcreteSpecialComposedSTAR)}
> SPECIAL;
>
>   
>
> // Does not match anything
>
> (SPECIAL ( SPECIAL | CW )+ SPECIAL) {->
> MARK(TMP_ConcreteSpecialComposedPLUS)};
>
>   
>
> // when adding a '?' after '(...)+' an exception is thrown
>
> (SPECIAL ( NUM | CW )+ SPECIAL) {->
> MARK(TMP_ConcreteSpecialNumComposedPLUS)};
>
> (NUM ( SPECIAL | CW )+ NUM) {-> MARK(TMP_ConcreteNumSpecialComposedPLUS)};
>
>   
>
> //
> ============================================================================
> =========================================
>
>   
>
> //  Works only with '?' - it's the same problem as 'ANY+' resp. 'ALL+' below
>
>
> (SPECIAL SPECIAL+? SPECIAL) {-> MARK(TMP_ConcreteSpecialPLUS)};
>
>   
>
> //
> ============================================================================
> =========================================
>
>   
>
> (SPECIAL CW SPECIAL) {-> MARK(TMP_ConcreteCw)};
>
>   
>
> (SPECIAL SW SPECIAL) {-> MARK(TMP_ConcreteSw)};
>
>   
>
> (SPECIAL CW+ SPECIAL) {-> MARK(TMP_ConcreteCwPLUS)};
>
>   
>
> (SPECIAL SW+ SPECIAL) {-> MARK(TMP_ConcreteSwPLUS)};
>
>   
>
> // throws an exception when adding a '?' after '(...)+'
>
> (SPECIAL (CW | SW)+ SPECIAL) {-> MARK(TMP_ConcreteSwCwComposedPLUS)};
>
>   
>
> (SPECIAL W+ SPECIAL) {-> MARK(TMP_GenericWordPLUS)};
>
>   
>
> //
> ============================================================================
> =========================================
>
>   
>
> (SPECIAL ANY SPECIAL) {-> MARK(TMP_GenericAny)};
>
>   
>
> // does not match anything
>
> (SPECIAL ANY+ SPECIAL) {-> MARK(TMP_GenericAnyPLUS)};
>
>   
>
> (SPECIAL ANY+? SPECIAL) {-> MARK(TMP_GenericAnyPLUS_Reluctant)};
>
>   
>
> // does not match anything
>
> (SPECIAL ANY* SPECIAL) {-> MARK(TMP_GenericAnySTAR)};
>
>   
>
> (SPECIAL ANY*? SPECIAL) {-> MARK(TMP_GenericAnySTAR_Reluctant)};
>
>   
>
> //
> ============================================================================
> =========================================
>
>   
>
> (SPECIAL ALL SPECIAL) {-> MARK(TMP_GenericAll)};
>
>   
>
> // does not match anything
>
> (SPECIAL ALL+ SPECIAL) {-> MARK(TMP_GenericAllPLUS)};
>
>   
>
> (SPECIAL ALL+? SPECIAL) {-> MARK(TMP_GenericAllPLUS_Reluctant)};
>
>   
>
> // does not match anything
>
> (SPECIAL ALL* SPECIAL) {-> MARK(TMP_GenericAllSTAR)};
>
>   
>
> (SPECIAL ALL*? SPECIAL) {-> MARK(TMP_GenericAllSTAR_Reluctant)};
>
>   
>
> //
> ============================================================================
> =========================================
>
>   
>
> (SPECIAL # SPECIAL) {-> MARK(TMP_GenericSharp)};
>
>   
>
>    _____
>
> Input file:
>
>   
>
> ( CAP CAP CAP sw CAP CAP Cw sw CAP Cw )
>
> ( sw Cw sw Cw )
>
> ( sw Cw <TAG> sw )
>
> ( sw sw )
>
> ( Cw Cw )
>
> ( CAP CAP )
>
> ( sw )
>
> (sw)
>
> (Cw)
>
> ( Cw )
>
> ( CAP )
>
> ( )
>
> ( $$$ )
>
>   
>
> 1 Cw $ Cw Cw $ 8
>
> ( Cw $ Cw Cw $ )
>
> ( Cw 5 Cw Cw 8 )
>
>   
>
>   
>
>    _____
>
> Log file:
>
>   
>
> !ENTRY org.eclipse.core.jobs 4 2 2013-12-13 15:56:10.403
>
> !MESSAGE An internal error occurred during: "Label Job".
>
> !STACK 0
>
> org.eclipse.swt.SWTException: Invalid thread access
>
>                  at org.eclipse.swt.SWT.error(SWT.java:4397)
>
>                  at org.eclipse.swt.SWT.error(SWT.java:4312)
>
>                  at org.eclipse.swt.SWT.error(SWT.java:4283)
>
>                  at org.eclipse.swt.widgets.Display.error(Display.java:1258)
>
>                  at
> org.eclipse.swt.widgets.Display.checkDevice(Display.java:764)
>
>                  at
> org.eclipse.swt.widgets.Display.disposeExec(Display.java:1203)
>
>                  at
> org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry.hookDisplay(
> ImageDescriptorRegistry.java:77)
>
>                  at
> org.eclipse.jdt.internal.ui.viewsupport.ImageDescriptorRegistry.<init>(Image
> DescriptorRegistry.java:40)
>
>                  at
> org.eclipse.jdt.internal.ui.JavaPlugin.internalGetImageDescriptorRegistry(Ja
> vaPlugin.java:954)
>
>                  at
> org.eclipse.jdt.internal.ui.JavaPlugin.getImageDescriptorRegistry(JavaPlugin
> .java:347)
>
>                  at
> org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getVariableImage(JDIM
> odelPresentation.java:914)
>
>                  at
> org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getImage(JDIModelPres
> entation.java:682)
>
>                  at
> org.eclipse.debug.internal.ui.LazyModelPresentation.getImage(LazyModelPresen
> tation.java:127)
>
>                  at
> org.eclipse.debug.internal.ui.DelegatingModelPresentation.getImage(Delegatin
> gModelPresentation.java:143)
>
>                  at
> org.eclipse.debug.internal.ui.views.launch.DebugElementHelper.getImageDescri
> ptor(DebugElementHelper.java:70)
>
>                  at
> org.eclipse.debug.internal.ui.model.elements.DebugElementLabelProvider.getIm
> ageDescriptor(DebugElementLabelProvider.java:72)
>
>                  at
> org.eclipse.debug.internal.ui.model.elements.VariableLabelProvider.getImageD
> escriptor(VariableLabelProvider.java:70)
>
>                  at
> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.getImageDe
> scriptor(ElementLabelProvider.java:289)
>
>                  at
> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.retrieveLa
> bel(ElementLabelProvider.java:216)
>
>                  at
> org.eclipse.jdt.internal.debug.ui.variables.JavaVariableLabelProvider.retrie
> veLabel(JavaVariableLabelProvider.java:183)
>
>                  at
> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelUpdat
> er.run(ElementLabelProvider.java:160)
>
>                  at
> org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelJob.r
> un(ElementLabelProvider.java:74)
>
>                  at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
>
>
>
> ---
> Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz ist aktiv.
> http://www.avast.com
>