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 2015/06/24 18:15:23 UTC
svn commit: r1687322 - in
/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize:
ExpressionVerbalizer.java ScriptVerbalizer.java
Author: pkluegl
Date: Wed Jun 24 16:15:22 2015
New Revision: 1687322
URL: http://svn.apache.org/r1687322
Log:
UIMA-4473
- fixed explanation of action-only rules
- fixed explanation of generic feature expressions
Modified:
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/ScriptVerbalizer.java
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=1687322&r1=1687321&r2=1687322&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 Wed Jun 24 16:15:22 2015
@@ -74,7 +74,9 @@ public class ExpressionVerbalizer {
}
public String verbalize(IRutaExpression expression) {
- if (expression instanceof TypeExpression) {
+ if (expression instanceof GenericFeatureExpression) {
+ return verbalize(((GenericFeatureExpression) expression).getFeatureExpression());
+ } else if (expression instanceof TypeExpression) {
return verbalize((TypeExpression) expression);
} else if (expression instanceof IBooleanExpression) {
return verbalize((IBooleanExpression) expression);
@@ -94,8 +96,6 @@ public class ExpressionVerbalizer {
return verbalize((IStringExpression) expression);
} else if (expression instanceof MatchReference) {
return verbalize((MatchReference) expression);
- } else if (expression instanceof GenericFeatureExpression) {
- return verbalize(((GenericFeatureExpression) expression).getFeatureExpression());
}
return expression.getClass().getSimpleName();
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ScriptVerbalizer.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ScriptVerbalizer.java?rev=1687322&r1=1687321&r2=1687322&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ScriptVerbalizer.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ScriptVerbalizer.java Wed Jun 24 16:15:22 2015
@@ -30,6 +30,8 @@ import org.apache.uima.ruta.RutaStatemen
import org.apache.uima.ruta.action.AbstractRutaAction;
import org.apache.uima.ruta.condition.AbstractRutaCondition;
import org.apache.uima.ruta.expression.IRutaExpression;
+import org.apache.uima.ruta.expression.MatchReference;
+import org.apache.uima.ruta.expression.RutaExpression;
import org.apache.uima.ruta.expression.number.INumberExpression;
import org.apache.uima.ruta.expression.string.IStringExpression;
import org.apache.uima.ruta.expression.type.TypeExpression;
@@ -41,6 +43,7 @@ import org.apache.uima.ruta.rule.RuleEle
import org.apache.uima.ruta.rule.RutaMatcher;
import org.apache.uima.ruta.rule.RutaRule;
import org.apache.uima.ruta.rule.RutaRuleElement;
+import org.apache.uima.ruta.rule.RutaTypeMatcher;
import org.apache.uima.ruta.rule.WildCardRuleElement;
import org.apache.uima.ruta.rule.quantifier.MinMaxGreedy;
import org.apache.uima.ruta.rule.quantifier.MinMaxReluctant;
@@ -62,7 +65,7 @@ public class ScriptVerbalizer {
private static final String THEN = " -> ";
private static final String THEN2 = " <- ";
-
+
private RutaVerbalizer verbalizer;
public ScriptVerbalizer(RutaVerbalizer verbalizer) {
@@ -76,7 +79,7 @@ public class ScriptVerbalizer {
List<RutaStatement> elements = block.getElements();
String name = block.getName();
result.append("BLOCK");
- if(name != null) {
+ if (name != null) {
result.append("(");
result.append(name);
result.append(")");
@@ -116,15 +119,34 @@ public class ScriptVerbalizer {
List<AbstractRutaAction> actions = re.getActions();
RuleElementQuantifier quantifier = re.getQuantifier();
StringBuilder result = new StringBuilder();
- if(re.isStartAnchor()) {
+ if (re.isStartAnchor()) {
result.append("@");
}
- if(re instanceof ConjunctRulesRuleElement) {
+ if (re instanceof ConjunctRulesRuleElement) {
result.append(verbalizeConjunct((ConjunctRulesRuleElement) re));
} else if (re instanceof ComposedRuleElement) {
result.append(verbalizeComposed((ComposedRuleElement) re));
} else if (re instanceof RutaRuleElement) {
RutaRuleElement tmre = (RutaRuleElement) re;
+ RutaMatcher matcher = tmre.getMatcher();
+ // action-only rule
+ if (matcher instanceof RutaTypeMatcher) {
+ RutaExpression expression = ((RutaTypeMatcher) matcher).getExpression();
+ if (expression instanceof MatchReference) {
+ MatchReference mr = (MatchReference) expression;
+ if (mr.getMatch() == null) {
+ Iterator<AbstractRutaAction> ait = actions.iterator();
+ while (ait.hasNext()) {
+ AbstractRutaAction each = ait.next();
+ result.append(verbalizer.verbalize(each));
+ if (ait.hasNext()) {
+ result.append(",");
+ }
+ }
+ return result.toString();
+ }
+ }
+ }
result.append(verbalizeMatcher(tmre));
} else if (re instanceof WildCardRuleElement) {
result.append("#");
@@ -154,10 +176,10 @@ public class ScriptVerbalizer {
}
result.append(CBCLOSE);
}
- if(re instanceof AbstractRuleElement) {
+ if (re instanceof AbstractRuleElement) {
AbstractRuleElement are = (AbstractRuleElement) re;
List<RutaStatement> inlinedConditionRules = are.getInlinedConditionRules();
- if(inlinedConditionRules != null && !inlinedConditionRules.isEmpty()) {
+ if (inlinedConditionRules != null && !inlinedConditionRules.isEmpty()) {
result.append(THEN2);
result.append(CBOPEN);
for (RutaStatement rutaStatement : inlinedConditionRules) {
@@ -166,7 +188,7 @@ public class ScriptVerbalizer {
}
}
List<RutaStatement> inlinedActionRules = are.getInlinedActionRules();
- if(inlinedConditionRules != null && !inlinedActionRules.isEmpty()) {
+ if (inlinedConditionRules != null && !inlinedActionRules.isEmpty()) {
result.append(THEN);
result.append(CBOPEN);
for (RutaStatement rutaStatement : inlinedActionRules) {
@@ -197,8 +219,8 @@ public class ScriptVerbalizer {
result.append("(");
String sep = " ";
Boolean conjunct = cre.getConjunct();
- if(conjunct != null) {
- if(conjunct) {
+ if (conjunct != null) {
+ if (conjunct) {
sep = " & ";
} else {
sep = " | ";