You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2017/07/02 10:05:21 UTC

svn commit: r1800553 - in /uima/ruta/trunk/ruta-core/src: main/java/org/apache/uima/ruta/expression/ main/java/org/apache/uima/ruta/verbalize/ test/java/org/apache/uima/ruta/verbalizer/ test/resources/org/apache/uima/ruta/

Author: pkluegl
Date: Sun Jul  2 10:05:21 2017
New Revision: 1800553

URL: http://svn.apache.org/viewvc?rev=1800553&view=rev
Log:
UIMA-5399
- fixed varbalization
- added test

Added:
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/RutaVerbalizerTest.java   (with props)
    uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/Verbalize.ruta
Modified:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/RutaVerbalizer.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ScriptVerbalizerTest.java

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java?rev=1800553&r1=1800552&r2=1800553&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java Sun Jul  2 10:05:21 2017
@@ -304,7 +304,12 @@ public class ExpressionFactory {
   public MatchReference createMatchReference(Token refToken) {
     return createMatchReference(refToken, null, null);
   }
-
+  
+  public MatchReference createMatchReference(String reference) {
+    return createMatchReference(reference, null, null);
+  }
+  
+  
   public MatchReference createMatchReference(Token matchToken, Token comparatorToken,
           IRutaExpression argument) {
     String match = matchToken.getText();
@@ -312,10 +317,15 @@ public class ExpressionFactory {
     if (comparatorToken != null) {
       comparator = comparatorToken.getText();
     }
+    return createMatchReference(match, comparator, argument);
+  }
+  
+  public MatchReference createMatchReference(String matchString, String comparatorString,
+          IRutaExpression argument) {
     if (typeUsage != null) {
-      addPossibleTypeMentions(match);
+      addPossibleTypeMentions(matchString);
     }
-    return new MatchReference(match, comparator, argument);
+    return new MatchReference(matchString, comparatorString, argument);
   }
 
   public MatchReference createMatchReference(ITypeExpression expression) {

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java?rev=1800553&r1=1800552&r2=1800553&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java Sun Jul  2 10:05:21 2017
@@ -213,4 +213,12 @@ public class MatchReference extends Ruta
     return features;
   }
 
+  public IRutaExpression getArgument() {
+    return argument;
+  }
+
+  public String getComparator() {
+    return comparator;
+  }
+
 }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java?rev=1800553&r1=1800552&r2=1800553&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ExpressionVerbalizer.java Sun Jul  2 10:05:21 2017
@@ -21,6 +21,8 @@ package org.apache.uima.ruta.verbalize;
 
 import java.util.Iterator;
 
+import org.apache.commons.lang3.StringUtils;
+import org.apache.uima.cas.CAS;
 import org.apache.uima.ruta.expression.AnnotationTypeExpression;
 import org.apache.uima.ruta.expression.IRutaExpression;
 import org.apache.uima.ruta.expression.MatchReference;
@@ -299,7 +301,19 @@ public class ExpressionVerbalizer {
   }
   
   public String verbalize(MatchReference expression) {
-    return expression.getMatch();
+    String match = expression.getMatch();
+    if(match == null) {
+      String string = expression.toString();
+      if(StringUtils.equals(string, CAS.TYPE_NAME_DOCUMENT_ANNOTATION)) {
+        return "Document";
+      } else {
+        return string;
+      }
+    }
+    if(expression.getArgument() != null) {
+     return  match + expression.getComparator() + verbalizer.verbalize(expression.getArgument());
+    }
+    return match;
   }
   
   public String verbalize(AnnotationTypeExpression expression) {

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/RutaVerbalizer.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/RutaVerbalizer.java?rev=1800553&r1=1800552&r2=1800553&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/RutaVerbalizer.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/RutaVerbalizer.java Sun Jul  2 10:05:21 2017
@@ -75,10 +75,10 @@ public class RutaVerbalizer {
       return conditionVerbalizer.verbalize((AbstractRutaCondition) element);
     } else if (element instanceof IRutaExpression) {
       return expressionVerbalizer.verbalize((RutaExpression) element);
-    } else if (element instanceof RutaElement) {
-      return scriptVerbalizer.verbalize((RutaElement) element);
     } else if (element instanceof RutaBlock) {
       return verbalize((RutaBlock) element, false);
+    } else if (element instanceof RutaElement) {
+      return scriptVerbalizer.verbalize((RutaElement) element);
     } else {
       return element.getClass().getSimpleName();
     }

Added: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/RutaVerbalizerTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/RutaVerbalizerTest.java?rev=1800553&view=auto
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/RutaVerbalizerTest.java (added)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/RutaVerbalizerTest.java Sun Jul  2 10:05:21 2017
@@ -0,0 +1,56 @@
+/*
+ * 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.verbalizer;
+
+import java.util.List;
+
+import org.apache.commons.lang3.reflect.FieldUtils;
+import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
+import org.apache.uima.ruta.RutaModule;
+import org.apache.uima.ruta.RutaStatement;
+import org.apache.uima.ruta.block.ForEachBlock;
+import org.apache.uima.ruta.block.RutaScriptBlock;
+import org.apache.uima.ruta.engine.RutaEngine;
+import org.apache.uima.ruta.verbalize.RutaVerbalizer;
+import org.junit.Assert;
+import org.junit.Test;
+
+
+public class RutaVerbalizerTest {
+  
+  @Test
+  public void testSimpleScriptVerbalization() throws Exception{
+    
+    AnalysisEngine analysisEngine = AnalysisEngineFactory.createEngine(RutaEngine.class, RutaEngine.PARAM_MAIN_SCRIPT, "org.apache.uima.ruta.Verbalize");
+    RutaEngine rutaEngine = (RutaEngine) FieldUtils.readField(analysisEngine, "mAnalysisComponent", true);
+    RutaModule module = (RutaModule) FieldUtils.readField(rutaEngine, "script", true);
+    RutaVerbalizer verbalizer = new RutaVerbalizer();
+    Assert.assertNull(verbalizer.verbalize(module));
+    Assert.assertEquals("BLOCK(Verbalize) Document;", verbalizer.verbalize(module.getRootBlock()));
+    List<RutaStatement> elements = module.getRootBlock().getElements();
+    Assert.assertEquals("Document{->CALL(Additional)};", verbalizer.verbalize(elements.get(1)));
+    Assert.assertEquals("CW.ct==\"A\"{->TruePositive};", verbalizer.verbalize(elements.get(2)));
+    RutaScriptBlock block = (RutaScriptBlock) elements.get(3);
+    Assert.assertEquals("BLOCK(block) CW;", verbalizer.verbalize(block));
+    ForEachBlock foreach = (ForEachBlock) elements.get(4);
+    Assert.assertEquals("FOREACH(sw) SW;", verbalizer.verbalize(foreach));
+  }
+}

Propchange: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/RutaVerbalizerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ScriptVerbalizerTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ScriptVerbalizerTest.java?rev=1800553&r1=1800552&r2=1800553&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ScriptVerbalizerTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ScriptVerbalizerTest.java Sun Jul  2 10:05:21 2017
@@ -67,9 +67,5 @@ public class ScriptVerbalizerTest {
     Ruta.removeDebugInformation(jcas);
   }
   
-  @Test
-  public void testScriptBlockVerbalization() throws Exception{
-    
-  }
   
 }

Added: uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/Verbalize.ruta
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/Verbalize.ruta?rev=1800553&view=auto
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/Verbalize.ruta (added)
+++ uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/Verbalize.ruta Sun Jul  2 10:05:21 2017
@@ -0,0 +1,12 @@
+PACKAGE org.apache.uima.ruta;
+SCRIPT org.apache.uima.ruta.Additional;
+CALL(Additional);
+CW.ct=="A"{-> TruePositive};
+
+BLOCK(block) CW{}{
+    SW;
+}
+
+FOREACH(sw) SW{}{
+    sw.ct=="a";
+}