Author: pkluegl
Date: Wed Nov 5 15:00:27 2014
New Revision: 1636886
URL: http://svn.apache.org/r1636886
Log:
UIMA-4079
- added parameter for experienced users, won't be added to documentation for now
- fixed skipping whitespaces in trie
- hotfix for table lookup
- added tests
Added:
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java
(with props)
uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/WSDictionaryTestList.txt
(with props)
uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/table2.csv
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.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/main/java/org/apache/uima/ruta/engine/RutaEngine.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/CSVTable.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/RutaTable.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/action/MarkFastTest.java
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/utils/twl/TWLConverterHandler.java
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java?rev=1636886&r1=1636885&r2=1636886&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
(original)
+++
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
Wed Nov 5 15:00:27 2014
@@ -47,6 +47,7 @@ import org.apache.uima.resource.metadata
import org.apache.uima.resource.metadata.TypeSystemDescription;
import org.apache.uima.ruta.action.AbstractRutaAction;
import org.apache.uima.ruta.condition.AbstractRutaCondition;
+import org.apache.uima.ruta.engine.RutaEngine;
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
import org.apache.uima.ruta.expression.list.ListExpression;
import org.apache.uima.ruta.expression.list.SimpleBooleanListExpression;
@@ -146,7 +147,7 @@ public class RutaEnvironment {
private Map<String, Object> initializedVariables;
private ResourceManager resourceManager;
-
+
public RutaEnvironment(RutaBlock owner) {
super();
this.owner = owner;
@@ -562,6 +563,10 @@ public class RutaEnvironment {
public RutaWordList getWordList(String list) {
RutaWordList result = wordLists.get(list);
+ Boolean dictRemoveWS = (Boolean)
owner.getContext().getConfigParameterValue(RutaEngine.PARAM_DICT_REMOVE_WS);
+ if(dictRemoveWS == null) {
+ dictRemoveWS = false;
+ }
if (result == null) {
if (list.endsWith("txt") || list.endsWith("mtwl")) {
ResourceLoader resourceLoader = new
RutaResourceLoader(getResourcePaths());
@@ -571,7 +576,7 @@ public class RutaEnvironment {
if (list.endsWith("mtwl")) {
wordLists.put(list, new MultiTreeWordList(resource));
} else {
- wordLists.put(list, new TreeWordList(resource));
+ wordLists.put(list, new TreeWordList(resource, dictRemoveWS));
}
} catch (IOException e) {
Logger.getLogger(this.getClass().getName()).log(Level.SEVERE,
@@ -774,7 +779,7 @@ public class RutaEnvironment {
RutaWordList wordList = getWordList(path);
return wordList;
} else if (clazz.equals(RutaWordList.class) && value instanceof String) {
- // TODO: ExtenralWordTableExpression will be ignored
+ // TODO: ExtenralWordListExpression will be ignored
RutaWordList list = getWordList((String) value);
return list;
} else if (clazz.equals(RutaTable.class) && value instanceof
LiteralWordTableExpression) {
@@ -878,4 +883,5 @@ public class RutaEnvironment {
public void setResourceManager(ResourceManager resourceManager) {
this.resourceManager = resourceManager;
}
+
}
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=1636886&r1=1636885&r2=1636886&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
Wed Nov 5 15:00:27 2014
@@ -80,7 +80,7 @@ public class MarkFastAction extends Abst
if (list != null) {
wl = list.getList(parent);
} else if (stringList != null) {
- wl = new TreeWordList(stringList.getList(parent, stream));
+ wl = new TreeWordList(stringList.getList(parent, stream), false);
}
if (wl instanceof TreeWordList) {
Collection<AnnotationFS> found = wl.find(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=1636886&r1=1636885&r2=1636886&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
Wed Nov 5 15:00:27 2014
@@ -98,7 +98,7 @@ public class MarkTableAction extends Abs
int maxIgnoreCharValue = maxIgnoreChar != null ?
maxIgnoreChar.getIntegerValue(
element.getParent(), null, stream) : 0;
- RutaWordList wordList = table.getWordList(index);
+ RutaWordList wordList = table.getWordList(index, element.getParent());
Collection<AnnotationFS> found = wordList.find(stream, ignoreCaseValue,
ignoreLengthValue,
ignoreCharValue.toCharArray(), maxIgnoreCharValue, true);
for (AnnotationFS annotationFS : found) {
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java?rev=1636886&r1=1636885&r2=1636886&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java
(original)
+++
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java
Wed Nov 5 15:00:27 2014
@@ -358,6 +358,14 @@ public class RutaEngine extends JCasAnno
@ConfigurationParameter(name = PARAM_STRICT_IMPORTS, mandatory = false,
defaultValue = "false")
private Boolean strictImports = false;
+
+ /**
+ * If this parameter is set to true, then whitespaces are removed when
dictionaries are loaded
+ */
+ public static final String PARAM_DICT_REMOVE_WS = "dictRemoveWS";
+
+ @ConfigurationParameter(name = PARAM_DICT_REMOVE_WS, mandatory = false,
defaultValue = "false")
+ private Boolean dictRemoveWS = false;
private UimaContext context;
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/CSVTable.java
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/CSVTable.java?rev=1636886&r1=1636885&r2=1636886&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/CSVTable.java
(original)
+++
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/CSVTable.java
Wed Nov 5 15:00:27 2014
@@ -30,6 +30,8 @@ import java.util.List;
import java.util.Map;
import java.util.Scanner;
+import org.apache.uima.ruta.RutaBlock;
+import org.apache.uima.ruta.engine.RutaEngine;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
@@ -80,11 +82,16 @@ public class CSVTable implements RutaTab
sc.close();
}
- public RutaWordList getWordList(int index) {
+ public RutaWordList getWordList(int index, RutaBlock parent) {
RutaWordList list = columnWordLists.get(index);
if (list == null) {
if (index > 0 && index <= tableData.get(0).size()) {
- list = new TreeWordList(getColumnData(index - 1));
+ Boolean dictRemoveWS = (Boolean)
parent.getContext().getConfigParameterValue(
+ RutaEngine.PARAM_DICT_REMOVE_WS);
+ if (dictRemoveWS == null) {
+ dictRemoveWS = false;
+ }
+ list = new TreeWordList(getColumnData(index - 1), dictRemoveWS);
columnWordLists.put(index, list);
}
}
@@ -116,6 +123,13 @@ public class CSVTable implements RutaTab
}
i++;
}
+ i = 0;
+ for (String string : columnData) {
+ if (string.toLowerCase().replaceAll("\\s",
"").equals(value.toLowerCase())) {
+ return tableData.get(i);
+ }
+ i++;
+ }
return new ArrayList<String>();
}
}
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/RutaTable.java
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/RutaTable.java?rev=1636886&r1=1636885&r2=1636886&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/RutaTable.java
(original)
+++
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/RutaTable.java
Wed Nov 5 15:00:27 2014
@@ -21,9 +21,11 @@ package org.apache.uima.ruta.resource;
import java.util.List;
+import org.apache.uima.ruta.RutaBlock;
+
public interface RutaTable {
- RutaWordList getWordList(int index);
+ RutaWordList getWordList(int index, RutaBlock parent);
String getEntry(int row, int column);
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java?rev=1636886&r1=1636885&r2=1636886&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java
(original)
+++
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java
Wed Nov 5 15:00:27 2014
@@ -37,7 +37,6 @@ import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.apache.uima.cas.FSIterator;
-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;
@@ -54,6 +53,8 @@ public class TreeWordList implements Rut
private String name;
+ private boolean dictRemoveWS = false;
+
/**
* Default constructor
*/
@@ -69,7 +70,8 @@ public class TreeWordList implements Rut
* @throws IllegalArgumentException
* When {@code resource.getFileName()} is null or does not end
with .txt or .twl.
*/
- public TreeWordList(Resource resource) throws IOException {
+ public TreeWordList(Resource resource, boolean dictRemoveWS) throws
IOException {
+ this.dictRemoveWS = dictRemoveWS;
final String name = resource.getFilename();
InputStream stream = null;
try {
@@ -98,8 +100,8 @@ public class TreeWordList implements Rut
* @param pathname
* path of the file to create a TextWordList from
*/
- public TreeWordList(String pathname) throws IOException {
- this(new FileSystemResource(pathname));
+ public TreeWordList(String pathname, boolean dictRemoveWS) throws
IOException {
+ this(new FileSystemResource(pathname), dictRemoveWS);
}
/**
@@ -108,7 +110,8 @@ public class TreeWordList implements Rut
* @param stream
* path of the file to create a TextWordList from
*/
- public TreeWordList(InputStream stream, String name) throws IOException {
+ public TreeWordList(InputStream stream, String name, boolean dictRemoveWS)
throws IOException {
+ this.dictRemoveWS = dictRemoveWS;
if (name.endsWith(".twl")) {
readXML(stream, "UTF-8");
}
@@ -118,9 +121,10 @@ public class TreeWordList implements Rut
this.name = new File(name).getName();
}
- public TreeWordList(List<String> data) {
+ public TreeWordList(List<String> data, boolean dictRemoveWS) {
buildNewTree(data);
name = "local";
+ this.dictRemoveWS = dictRemoveWS;
}
public void buildNewTree(List<String> data) {
@@ -172,6 +176,9 @@ public class TreeWordList implements Rut
// Create Nodes from all chars of the strings besides the last one
TextNode pointer = root;
for (Character each : s.toCharArray()) {
+ if(dictRemoveWS && Character.isWhitespace(each)) {
+ continue;
+ }
TextNode childNode = pointer.getChildNode(each);
if (childNode == null) {
childNode = new TextNode(each, false);
@@ -227,9 +234,18 @@ public class TreeWordList implements Rut
}
int next = ++index;
+ boolean result = false;
+
if (ignoreCase) {
TextNode childNodeL =
pointer.getChildNode(Character.toLowerCase(charAt));
TextNode childNodeU =
pointer.getChildNode(Character.toUpperCase(charAt));
+
+ TextNode wsNode = pointer.getChildNode(' ');
+ if(ignoreWS && wsNode != null) {
+ result |= recursiveContains(wsNode, text, --next, ignoreCase,
fragment, ignoreChars,
+ maxIgnoreChars, ignoreWS);
+ }
+
if (childNodeL == null && ignoreWS) {
childNodeL = skipWS(pointer, charAt);
}
@@ -237,27 +253,34 @@ public class TreeWordList implements Rut
childNodeU = skipWS(pointer, charAt);
}
if (charAtIgnored && childNodeL == null && childNodeU == null) {
- return recursiveContains(pointer, text, next, ignoreCase, fragment,
ignoreChars,
+ result |= recursiveContains(pointer, text, next, ignoreCase, fragment,
ignoreChars,
maxIgnoreChars, ignoreWS);
} else {
- return recursiveContains(childNodeL, text, next, ignoreCase, fragment,
ignoreChars,
+ result |= recursiveContains(childNodeL, text, next, ignoreCase,
fragment, ignoreChars,
maxIgnoreChars, ignoreWS)
| recursiveContains(childNodeU, text, next, ignoreCase,
fragment, ignoreChars,
maxIgnoreChars, ignoreWS);
}
} else {
+ TextNode wsNode = pointer.getChildNode(' ');
+ if(ignoreWS && wsNode != null) {
+ result |= recursiveContains(wsNode, text, --next, ignoreCase,
fragment, ignoreChars,
+ maxIgnoreChars, ignoreWS);
+ }
+
TextNode childNode = pointer.getChildNode(charAt);
if (childNode == null && ignoreWS) {
childNode = skipWS(pointer, charAt);
}
if (charAtIgnored && childNode == null) {
- return recursiveContains(pointer, text, next, ignoreCase, fragment,
ignoreChars,
+ result |= recursiveContains(pointer, text, next, ignoreCase, fragment,
ignoreChars,
maxIgnoreChars, ignoreWS);
} else {
- return recursiveContains(childNode, text, next, ignoreCase, fragment,
ignoreChars,
+ result |= recursiveContains(childNode, text, next, ignoreCase,
fragment, ignoreChars,
maxIgnoreChars, ignoreWS);
}
}
+ return result;
}
private TextNode skipWS(TextNode pointer, char charAt) {
Added:
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=1636886&view=auto
==============================================================================
---
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java
(added)
+++
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java
Wed Nov 5 15:00:27 2014
@@ -0,0 +1,223 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.ruta;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.uima.cas.CAS;
+import org.apache.uima.cas.FSIterator;
+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.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.junit.Test;
+
+public class WSDictionaryTest {
+
+ @Test
+ public void test() {
+ 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 += "Document{-> MARKFAST(T1,list)};";
+ CAS cas = null;
+ try {
+ cas = RutaTestUtils.getCAS(document);
+ Ruta.apply(cas, script);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ Type t = null;
+ AnnotationIndex<AnnotationFS> ai = null;
+ FSIterator<AnnotationFS> iterator = null;
+
+ t = RutaTestUtils.getTestType(cas, 1);
+ ai = cas.getAnnotationIndex(t);
+ assertEquals(9, ai.size());
+ iterator = ai.iterator();
+ assertEquals("Peter Kluegl", iterator.next().getCoveredText());
+ assertEquals("Marshall Schor", iterator.next().getCoveredText());
+ assertEquals("Joern Kottmann", iterator.next().getCoveredText());
+ assertEquals("PeterKluegl", iterator.next().getCoveredText());
+ assertEquals("MarshallSchor", iterator.next().getCoveredText());
+ assertEquals("JoernKottmann", iterator.next().getCoveredText());
+ assertEquals("Peter<x>Kluegl", iterator.next().getCoveredText());
+ assertEquals("Marshall<x>Schor", iterator.next().getCoveredText());
+ assertEquals("Joern<x>Kottmann", iterator.next().getCoveredText());
+ if (cas != null) {
+ cas.release();
+ }
+
+ }
+
+ @Test
+ public void testDictRemoveWS() {
+ 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 += "Document{-> MARKFAST(T1,list, true, 0, false)};";
+ CAS cas = null;
+ Map<String,Object> map = new HashMap<String, Object>();
+ map.put(RutaEngine.PARAM_DICT_REMOVE_WS, true);
+ try {
+ cas = RutaTestUtils.getCAS(document);
+ Ruta.apply(cas, script, map);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ Type t = null;
+ AnnotationIndex<AnnotationFS> ai = null;
+ FSIterator<AnnotationFS> iterator = null;
+
+ t = RutaTestUtils.getTestType(cas, 1);
+ ai = cas.getAnnotationIndex(t);
+ assertEquals(9, ai.size());
+ iterator = ai.iterator();
+ assertEquals("Peter Kluegl", iterator.next().getCoveredText());
+ assertEquals("Marshall Schor", iterator.next().getCoveredText());
+ assertEquals("Joern Kottmann", iterator.next().getCoveredText());
+ assertEquals("PeterKluegl", iterator.next().getCoveredText());
+ assertEquals("MarshallSchor", iterator.next().getCoveredText());
+ assertEquals("JoernKottmann", iterator.next().getCoveredText());
+ assertEquals("Peter<x>Kluegl", iterator.next().getCoveredText());
+ assertEquals("Marshall<x>Schor", iterator.next().getCoveredText());
+ assertEquals("Joern<x>Kottmann", iterator.next().getCoveredText());
+ if (cas != null) {
+ cas.release();
+ }
+
+ }
+
+ @Test
+ public void testTableWithWS() {
+ 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 = "WORDTABLE table = 'org/apache/uima/ruta/table2.csv';";
+ script += "Document{-> MARKTABLE(Struct, 1, table, true, 0, \"-.,\", 10,
\"name\" = 1, \"system\" = 2)};";
+
+ Map<String, String> complexTypes = new TreeMap<String, String>();
+ String typeName = "org.apache.uima.Struct";
+ complexTypes.put(typeName, "uima.tcas.Annotation");
+
+ Map<String, List<TestFeature>> features = new TreeMap<String,
List<TestFeature>>();
+ List<TestFeature> list = new ArrayList<RutaTestUtils.TestFeature>();
+ features.put(typeName, list);
+ String fn1 = "name";
+ 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);
+ Ruta.apply(cas, script);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ Type t = null;
+ AnnotationIndex<AnnotationFS> ai = null;
+ FSIterator<AnnotationFS> iterator = null;
+ AnnotationFS next = null;
+ String v1 = null;
+ String v2 = null;
+ t = cas.getTypeSystem().getType(typeName);
+ Feature f1 = t.getFeatureByBaseName(fn1);
+ Feature f2 = t.getFeatureByBaseName(fn2);
+ ai = cas.getAnnotationIndex(t);
+
+ assertEquals(9, ai.size());
+ iterator = ai.iterator();
+
+ next = iterator.next();
+ v1 = next.getStringValue(f1);
+ v2 = next.getStringValue(f2);
+ assertEquals("Peter Kluegl", v1);
+ assertEquals("UIMA Ruta", v2);
+
+ next = iterator.next();
+ v1 = next.getStringValue(f1);
+ v2 = next.getStringValue(f2);
+ assertEquals("Marshall Schor", v1);
+ assertEquals("UIMA Core", v2);
+
+ next = iterator.next();
+ v1 = next.getStringValue(f1);
+ v2 = next.getStringValue(f2);
+ assertEquals("Joern Kottmann", v1);
+ assertEquals("CAS Editor", v2);
+
+ next = iterator.next();
+ v1 = next.getStringValue(f1);
+ v2 = next.getStringValue(f2);
+ assertEquals("Peter Kluegl", v1);
+ assertEquals("UIMA Ruta", v2);
+
+ next = iterator.next();
+ v1 = next.getStringValue(f1);
+ v2 = next.getStringValue(f2);
+ assertEquals("Marshall Schor", v1);
+ assertEquals("UIMA Core", v2);
+
+ next = iterator.next();
+ v1 = next.getStringValue(f1);
+ v2 = next.getStringValue(f2);
+ assertEquals("Joern Kottmann", v1);
+ assertEquals("CAS Editor", v2);
+
+ next = iterator.next();
+ v1 = next.getStringValue(f1);
+ v2 = next.getStringValue(f2);
+ assertEquals("Peter Kluegl", v1);
+ assertEquals("UIMA Ruta", v2);
+
+ next = iterator.next();
+ v1 = next.getStringValue(f1);
+ v2 = next.getStringValue(f2);
+ assertEquals("Marshall Schor", v1);
+ assertEquals("UIMA Core", v2);
+
+ next = iterator.next();
+ v1 = next.getStringValue(f1);
+ v2 = next.getStringValue(f2);
+ assertEquals("Joern Kottmann", v1);
+ assertEquals("CAS Editor", v2);
+
+ if (cas != null) {
+ cas.release();
+ }
+
+ }
+
+}
Propchange:
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/action/MarkFastTest.java
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/action/MarkFastTest.java?rev=1636886&r1=1636885&r2=1636886&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/action/MarkFastTest.java
(original)
+++
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/action/MarkFastTest.java
Wed Nov 5 15:00:27 2014
@@ -63,11 +63,9 @@ public class MarkFastTest {
t = RutaTestUtils.getTestType(cas, 3);
ai = cas.getAnnotationIndex(t);
- assertEquals(3, ai.size());
iterator = ai.iterator();
- assertEquals("1 0 0", iterator.next().getCoveredText());
+ assertEquals(1, ai.size());
assertEquals("100", iterator.next().getCoveredText());
- assertEquals("2 0 0", iterator.next().getCoveredText());
t = RutaTestUtils.getTestType(cas, 4);
ai = cas.getAnnotationIndex(t);
Added:
uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/WSDictionaryTestList.txt
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/WSDictionaryTestList.txt?rev=1636886&view=auto
==============================================================================
---
uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/WSDictionaryTestList.txt
(added)
+++
uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/WSDictionaryTestList.txt
Wed Nov 5 15:00:27 2014
@@ -0,0 +1,6 @@
+Peter Kluegl
+Marshall Schor
+Joern Kottmann
+PeterKottmann
+MarshallSchmidt
+JoernKluegl
\ No newline at end of file
Propchange:
uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/WSDictionaryTestList.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/table2.csv
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/table2.csv?rev=1636886&view=auto
==============================================================================
---
uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/table2.csv
(added)
+++
uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/table2.csv
Wed Nov 5 15:00:27 2014
@@ -0,0 +1,3 @@
+Peter Kluegl;UIMA Ruta
+Marshall Schor;UIMA Core
+Joern Kottmann;CAS Editor
\ No newline at end of file
Modified:
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/utils/twl/TWLConverterHandler.java
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/utils/twl/TWLConverterHandler.java?rev=1636886&r1=1636885&r2=1636886&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/utils/twl/TWLConverterHandler.java
(original)
+++
uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/utils/twl/TWLConverterHandler.java
Wed Nov 5 15:00:27 2014
@@ -76,7 +76,7 @@ public class TWLConverterHandler impleme
String path = file.getRawLocation().toString();
TreeWordList list;
try {
- list = new TreeWordList(path);
+ list = new TreeWordList(path, false);
} catch (IOException e) {
RutaAddonsPlugin.error(e);
return Status.CANCEL_STATUS;