You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by vm...@apache.org on 2019/04/01 13:56:58 UTC
svn commit: r1856732 - in /uima/ruta/trunk/ruta-core/src:
main/java/org/apache/uima/ruta/action/ test/java/org/apache/uima/ruta/
test/java/org/apache/uima/ruta/expression/resource/
Author: vmorari
Date: Mon Apr 1 13:56:58 2019
New Revision: 1856732
URL: http://svn.apache.org/viewvc?rev=1856732&view=rev
Log:
UIMA-6001: applied additional patch for UIMA-5752
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/resource/WordListStringExpressionTest.java
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java?rev=1856732&r1=1856731&r2=1856732&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java Mon Apr 1 13:56:58 2019
@@ -26,6 +26,7 @@ import org.apache.uima.cas.Type;
import org.apache.uima.cas.text.AnnotationFS;
import org.apache.uima.jcas.tcas.Annotation;
import org.apache.uima.ruta.RutaStream;
+import org.apache.uima.ruta.engine.RutaEngine;
import org.apache.uima.ruta.expression.number.INumberExpression;
import org.apache.uima.ruta.expression.type.ITypeExpression;
import org.apache.uima.ruta.rule.MatchContext;
@@ -63,6 +64,15 @@ public abstract class AbstractMarkAction
return super.toString() + "," + type.getClass().getSimpleName();
}
+ boolean getDictWSParamValue(MatchContext context) {
+ Object configParameterValue = context.getParent().getContext()
+ .getConfigParameterValue(RutaEngine.PARAM_DICT_REMOVE_WS);
+ if (configParameterValue instanceof Boolean) {
+ return (Boolean) configParameterValue;
+ }
+ return false;
+ }
+
protected List<Integer> getIndexList(MatchContext context, List<INumberExpression> list,
RutaStream stream) {
RuleElement element = context.getElement();
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java?rev=1856732&r1=1856731&r2=1856732&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java Mon Apr 1 13:56:58 2019
@@ -57,7 +57,7 @@ public class MarkFastAction extends Abst
this.ignore = ignore == null ? new SimpleBooleanExpression(false) : ignore;
this.ignoreLength = ignoreLength == null ? new SimpleNumberExpression(Integer.valueOf(0))
: ignoreLength;
- this.ignoreWS = ignoreWS == null ? new SimpleBooleanExpression(true) : ignoreWS;
+ this.ignoreWS = ignoreWS;
}
public MarkFastAction(ITypeExpression type, AbstractStringListExpression list, IBooleanExpression ignore,
@@ -67,7 +67,7 @@ public class MarkFastAction extends Abst
this.ignore = ignore == null ? new SimpleBooleanExpression(false) : ignore;
this.ignoreLength = ignoreLength == null ? new SimpleNumberExpression(Integer.valueOf(0))
: ignoreLength;
- this.ignoreWS = ignoreWS == null ? new SimpleBooleanExpression(true) : ignoreWS;
+ this.ignoreWS = ignoreWS;
}
@Override
@@ -75,19 +75,22 @@ public class MarkFastAction extends Abst
RuleMatch match = context.getRuleMatch();
RuleElement element = context.getElement();
List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
+
+ boolean ignoreWSValue = ignoreWS != null ? ignoreWS.getBooleanValue(context, stream) : getDictWSParamValue(context);
+
for (AnnotationFS annotationFS : matchedAnnotationsOf) {
RutaStream windowStream = stream.getWindowStream(annotationFS, annotationFS.getType());
RutaWordList wl = null;
if (list != null) {
wl = list.getList(context, stream);
} else if (stringList != null) {
- wl = new TreeWordList(stringList.getList(context, stream), false);
+ wl = new TreeWordList(stringList.getList(context, stream), ignoreWSValue);
}
if (wl instanceof TreeWordList) {
Collection<AnnotationFS> found = wl.find(windowStream,
ignore.getBooleanValue(context, stream),
ignoreLength.getIntegerValue(context, stream), null, 0,
- ignoreWS.getBooleanValue(context, stream));
+ ignoreWSValue);
for (AnnotationFS annotation : found) {
createAnnotation(annotation, context, windowStream);
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java?rev=1856732&r1=1856731&r2=1856732&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java Mon Apr 1 13:56:58 2019
@@ -34,7 +34,6 @@ import org.apache.uima.cas.text.Annotati
import org.apache.uima.jcas.cas.TOP;
import org.apache.uima.jcas.tcas.Annotation;
import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.engine.RutaEngine;
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
import org.apache.uima.ruta.expression.number.INumberExpression;
import org.apache.uima.ruta.expression.resource.WordTableExpression;
@@ -47,7 +46,7 @@ import org.apache.uima.ruta.rule.RuleEle
import org.apache.uima.ruta.rule.RuleMatch;
import org.apache.uima.ruta.visitor.InferenceCrowd;
-public class MarkTableAction extends AbstractRutaAction {
+public class MarkTableAction extends AbstractMarkAction {
private final ITypeExpression typeExpr;
@@ -71,7 +70,7 @@ public class MarkTableAction extends Abs
WordTableExpression tableExpr, Map<IStringExpression, INumberExpression> featureMap,
IBooleanExpression ignoreCase, INumberExpression ignoreLength,
IStringExpression ignoreChar, INumberExpression maxIgnoreChar) {
- super();
+ super(typeExpr);
this.typeExpr = typeExpr;
this.indexExpr = indexExpr;
this.tableExpr = tableExpr;
@@ -150,15 +149,6 @@ public class MarkTableAction extends Abs
}
}
- private boolean getDictWSParamValue(MatchContext context) {
- Object configParameterValue = context.getParent().getContext()
- .getConfigParameterValue(RutaEngine.PARAM_DICT_REMOVE_WS);
- if (configParameterValue instanceof Boolean) {
- return (Boolean) configParameterValue;
- }
- return false;
- }
-
private void fillFeatures(TOP structure, Map<String, Integer> map, AnnotationFS annotationFS,
RuleElement element, List<String> row, RutaStream stream) {
List<?> featuresList = structure.getType().getFeatures();
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java?rev=1856732&r1=1856731&r2=1856732&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java Mon Apr 1 13:56:58 2019
@@ -20,7 +20,9 @@
package org.apache.uima.ruta;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -33,28 +35,26 @@ import org.apache.uima.cas.Feature;
import org.apache.uima.cas.Type;
import org.apache.uima.cas.text.AnnotationFS;
import org.apache.uima.cas.text.AnnotationIndex;
+import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.ruta.engine.Ruta;
import org.apache.uima.ruta.engine.RutaEngine;
import org.apache.uima.ruta.engine.RutaTestUtils;
import org.apache.uima.ruta.engine.RutaTestUtils.TestFeature;
+import org.apache.uima.util.InvalidXMLException;
import org.junit.Test;
+import org.xml.sax.SAXException;
public class WSDictionaryTest {
@Test
- public void test() {
+ public void test() throws SAXException, ResourceInitializationException, InvalidXMLException, IOException {
String document = "Peter Kluegl, Marshall Schor, Joern Kottmann\n";
document += "PeterKluegl, MarshallSchor, JoernKottmann\n";
document += "Peter<x>Kluegl, Marshall<x>Schor, Joern<x>Kottmann\n";
String script = "WORDLIST list = 'org/apache/uima/ruta/WSDictionaryTestList.txt';";
script += "MARKFAST(T1, list);";
- CAS cas = null;
- try {
- cas = RutaTestUtils.getCAS(document);
- Ruta.apply(cas, script);
- } catch (Exception e) {
- e.printStackTrace();
- }
+
+ CAS cas = executeAnalysis(RutaTestUtils.getCAS(document), script);
RutaTestUtils.assertAnnotationsEquals(cas, 1, 9, "Peter Kluegl", "Marshall Schor",
"Joern Kottmann", "PeterKluegl", "MarshallSchor", "JoernKottmann", "Peter<x>Kluegl",
@@ -71,10 +71,7 @@ public class WSDictionaryTest {
String script = "WORDLIST list = 'org/apache/uima/ruta/WSDictionaryTestList.txt';";
script += "MARKFAST(T1, list, true, 0, false);";
- Map<String, Object> map = new HashMap<>();
- map.put(RutaEngine.PARAM_DICT_REMOVE_WS, true);
- CAS cas = RutaTestUtils.getCAS(document);
- Ruta.apply(cas, script, map);
+ CAS cas = executeAnalysis(RutaTestUtils.getCAS(document), script);
RutaTestUtils.assertAnnotationsEquals(cas, 1, 9, "Peter Kluegl", "Marshall Schor",
"Joern Kottmann", "PeterKluegl", "MarshallSchor", "JoernKottmann", "Peter<x>Kluegl",
@@ -84,7 +81,7 @@ public class WSDictionaryTest {
}
@Test
- public void testTableWithWS() {
+ public void testTableWithWS() throws ResourceInitializationException, IOException, InvalidXMLException, SAXException {
String document = "Peter Kluegl, Marshall Schor, Joern Kottmann\n";
document += "PeterKluegl, MarshallSchor, JoernKottmann\n";
document += "Peter<x>Kluegl, Marshall<x>Schor, Joern<x>Kottmann\n";
@@ -102,15 +99,8 @@ public class WSDictionaryTest {
list.add(new TestFeature(fn1, "", "uima.cas.String"));
String fn2 = "system";
list.add(new TestFeature(fn2, "", "uima.cas.String"));
- CAS cas = null;
- try {
- cas = RutaTestUtils.getCAS(document, complexTypes, features);
- Map<String, Object> map = new HashMap<>();
- map.put(RutaEngine.PARAM_DICT_REMOVE_WS, true);
- Ruta.apply(cas, script, map);
- } catch (Exception e) {
- e.printStackTrace();
- }
+
+ CAS cas = executeAnalysis(RutaTestUtils.getCAS(document, complexTypes, features), script);
Type t = null;
AnnotationIndex<AnnotationFS> ai = null;
@@ -182,4 +172,16 @@ public class WSDictionaryTest {
cas.release();
}
+
+ private CAS executeAnalysis(CAS cas, String script) {
+ try {
+ Map<String, Object> map = new HashMap<>();
+ map.put(RutaEngine.PARAM_DICT_REMOVE_WS, true);
+ Ruta.apply(cas, script, map);
+ } catch (Exception e) {
+ fail("Failed to execute analysis engine. Reason: " + e.getMessage());
+ }
+ return cas;
+ }
+
}
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/resource/WordListStringExpressionTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/resource/WordListStringExpressionTest.java?rev=1856732&r1=1856731&r2=1856732&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/resource/WordListStringExpressionTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/resource/WordListStringExpressionTest.java Mon Apr 1 13:56:58 2019
@@ -19,10 +19,21 @@
package org.apache.uima.ruta.expression.resource;
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.cas.CAS;
+import org.apache.uima.resource.ResourceConfigurationException;
+import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.ruta.engine.Ruta;
+import org.apache.uima.ruta.engine.RutaEngine;
import org.apache.uima.ruta.engine.RutaTestUtils;
+import org.apache.uima.util.InvalidXMLException;
import org.junit.Test;
+import org.xml.sax.SAXException;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.Map;
public class WordListStringExpressionTest {
@@ -34,9 +45,8 @@ public class WordListStringExpressionTes
String script="STRING s = \"org/apache/uima/ruta/action/\";\n";
script +="WORDLIST wl = s + \"MarkFastTestList.txt\";\n";
script +="MARKFAST(T1,wl);\n";
-
- CAS cas = RutaTestUtils.getCAS(document);
- Ruta.apply(cas, script);
+
+ CAS cas = executeAnalysis(document, script);
RutaTestUtils.assertAnnotationsEquals(cas, 1, 2, "1 0 0", "2 0 0");
@@ -51,12 +61,23 @@ public class WordListStringExpressionTes
script +="WORDLIST wl = s + \"MarkFastTestList.txt\";\n";
script +="MARKFAST(T1,wl);\n";
script +="}\n";
-
- CAS cas = RutaTestUtils.getCAS(document);
- Ruta.apply(cas, script);
+
+ CAS cas = executeAnalysis(document, script);
RutaTestUtils.assertAnnotationsEquals(cas, 1, 2, "1 0 0", "2 0 0");
}
-
+
+ private CAS executeAnalysis(String document, String script)
+ throws ResourceInitializationException, IOException, InvalidXMLException, ResourceConfigurationException, AnalysisEngineProcessException, URISyntaxException, SAXException {
+
+ Map<String, Object> paramMap = new HashMap<>();
+ paramMap.put(RutaEngine.PARAM_DICT_REMOVE_WS, true);
+
+ CAS cas = RutaTestUtils.getCAS(document);
+ Ruta.apply(cas, script, paramMap);
+
+ return cas;
+ }
+
}