Author: pkluegl
Date: Mon Aug 12 14:25:24 2013
New Revision: 1513146
URL: http://svn.apache.org/r1513146
Log:
UIMA-3184
- added parameter for EXEC action, extended grammars and verbalizer
- implemented functionality with a ugly hotfix, needs a better solution
Added:
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/output/
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/output/
Modified:
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/HtmlConverterPSpan.java
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ActionFactory.java
Modified:
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
URL:
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
---
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
(original)
+++
uima/sandbox/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
Mon Aug 12 14:25:24 2013
@@ -1577,8 +1577,8 @@ actionConfigure returns [AbstractRutaAct
actionExec returns [AbstractRutaAction action = null]
:
- EXEC LPAREN ns = dottedIdentifier (COMMA tl = typeListExpression)? RPAREN
- {action = ActionFactory.createExecAction(ns, tl, $blockDeclaration::env);}
+ EXEC LPAREN ((stringExpression)=> view = stringExpression COMMA)? ns =
dottedIdentifier (COMMA tl = typeListExpression)? RPAREN
+ {action = ActionFactory.createExecAction(ns, tl, view,
$blockDeclaration::env);}
;
actionAssign returns [AbstractRutaAction action = null]
Modified:
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
---
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
(original)
+++
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
Mon Aug 12 14:25:24 2013
@@ -191,8 +191,8 @@ public class ActionFactory {
return new TrieAction(list, map, ignoreCase, ignoreLength, edit, distance,
ignoreChar);
}
- public static AbstractRutaAction createExecAction(String ns,
TypeListExpression tl, RutaBlock env) {
- return new ExecAction(ns, tl);
+ public static AbstractRutaAction createExecAction(String ns,
TypeListExpression tl, StringExpression view, RutaBlock env) {
+ return new ExecAction(ns, tl, view);
}
public static AbstractRutaAction createMarkTableAction(TypeExpression
structure,
Modified:
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
---
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
(original)
+++
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
Mon Aug 12 14:25:24 2013
@@ -27,34 +27,43 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import org.apache.uima.UIMAFramework;
import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.analysis_engine.AnalysisEngineDescription;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.analysis_engine.metadata.AnalysisEngineMetaData;
import org.apache.uima.cas.CAS;
import org.apache.uima.cas.Type;
import org.apache.uima.cas.text.AnnotationFS;
import org.apache.uima.cas.text.AnnotationIndex;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaModule;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.ScriptApply;
import org.apache.uima.ruta.expression.list.TypeListExpression;
+import org.apache.uima.ruta.expression.string.StringExpression;
import org.apache.uima.ruta.rule.RuleElement;
import org.apache.uima.ruta.rule.RuleMatch;
import org.apache.uima.ruta.type.RutaBasic;
import org.apache.uima.ruta.visitor.InferenceCrowd;
+import org.apache.uima.util.XMLInputSource;
public class ExecAction extends CallAction {
private TypeListExpression typeList;
+ private StringExpression view;
+
public ExecAction(String namespace) {
super(namespace);
}
- public ExecAction(String ns, TypeListExpression tl) {
+ public ExecAction(String ns, TypeListExpression tl, StringExpression view) {
this(ns);
this.typeList = tl;
+ this.view = view;
}
@Override
@@ -74,9 +83,27 @@ public class ExecAction extends CallActi
RuleElement element, RutaStream stream) throws
ResourceInitializationException,
AnalysisEngineProcessException {
CAS cas = stream.getCas();
+ if (view != null) {
+ String viewName = view.getStringValue(element.getParent(), match,
element, stream);
+ if (!viewName.equals(CAS.NAME_DEFAULT_SOFA)) {
+ cas = cas.getView(viewName);
+ AnalysisEngineMetaData metaData =
targetEngine.getAnalysisEngineMetaData();
+ try {
+ String sourceUrlString = metaData.getSourceUrlString();
+ if(sourceUrlString != null) {
+ AnalysisEngineDescription aed = (AnalysisEngineDescription)
UIMAFramework.getXMLParser().parseResourceSpecifier(new
XMLInputSource(sourceUrlString));
+ AnalysisEngine createEngine = AnalysisEngineFactory.createEngine(
+ aed, viewName);
+ targetEngine = createEngine;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
targetEngine.process(cas);
- if (typeList != null) {
+ if (typeList != null && view == null) {
List<Type> list = typeList.getList(element.getParent(), stream);
for (Type type : list) {
Map<RutaBasic, Collection<AnnotationFS>> map = new HashMap<RutaBasic,
Collection<AnnotationFS>>();
@@ -107,4 +134,12 @@ public class ExecAction extends CallActi
return typeList;
}
+ public StringExpression getView() {
+ return view;
+ }
+
+ public void setView(StringExpression view) {
+ this.view = view;
+ }
+
}
Modified:
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/HtmlConverterPSpan.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/HtmlConverterPSpan.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
---
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/HtmlConverterPSpan.java
(original)
+++
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/HtmlConverterPSpan.java
Mon Aug 12 14:25:24 2013
@@ -86,7 +86,7 @@ public class HtmlConverterPSpan implemen
@Override
public String toString() {
- String shortTxt = this.txt.length() > 10 ? this.txt.substring(0, 10) +
"..." : this.txt;
+ String shortTxt = this.txt.length() > 100 ? this.txt.substring(0, 100) +
"..." : this.txt;
return String.format("[%d-%d : %s]", begin, end, shortTxt);
}
}
\ No newline at end of file
Modified:
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
---
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
(original)
+++
uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/verbalize/ActionVerbalizer.java
Mon Aug 12 14:25:24 2013
@@ -175,7 +175,8 @@ public class ActionVerbalizer {
ExecAction a = (ExecAction) action;
TypeListExpression typeList = a.getTypeList();
String types = typeList == null ? "" : ", " +
verbalizer.verbalize(typeList);
- return name + a.getNamespace() + types + ")";
+ String view = a.getView() == null ? "" :
verbalizer.verbalize(a.getView()) + ", ";
+ return name + view + a.getNamespace() + types + ")";
} else if (action instanceof CallAction) {
CallAction a = (CallAction) action;
return name + a.getNamespace() + ")";
Modified:
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
---
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
(original)
+++
uima/sandbox/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
Mon Aug 12 14:25:24 2013
@@ -171,9 +171,9 @@ public class ActionVerbalizerTest {
assertEquals("DYNAMICANCHORING(true, 4, numVar)", s);
// EXEC
- a = new ExecAction(var, typeListExpr);
+ a = new ExecAction(var, typeListExpr, stringExpr);
s = v.verbalize(a);
- assertEquals("EXEC(anyVar, {Type1, typeVar})", s);
+ assertEquals("EXEC(\"string\", anyVar, {Type1, typeVar})", s);
// FILL
a = new FillAction(typeExpr1, stringExprMap);
Modified:
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
URL:
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
---
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
(original)
+++
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
Mon Aug 12 14:25:24 2013
@@ -1686,10 +1686,12 @@ String string = "";
:
name = EXEC lp = LPAREN
{ action = ActionFactory.createCallAction(name,
StatementFactory.createEmtpyComponentReference(lp));}
+ (view = stringExpression COMMA)?
+ { if(view != null) {action = ActionFactory.createCallAction(name, ns,
null, view);}}
ns = dottedComponentReference
- { if(ns != null) {action = ActionFactory.createCallAction(name, ns,
null);}}
+ { if(ns != null) {action = ActionFactory.createCallAction(name, ns,
null, view);}}
(COMMA tl = typeListExpression)?
- { if(ns != null) {action = ActionFactory.createCallAction(name, ns,
tl);}}
+ { if(ns != null) {action = ActionFactory.createCallAction(name, ns, tl,
view);}}
RPAREN
;
Modified:
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ActionFactory.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ActionFactory.java?rev=1513146&r1=1513145&r2=1513146&view=diff
==============================================================================
---
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ActionFactory.java
(original)
+++
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ActionFactory.java
Mon Aug 12 14:25:24 2013
@@ -92,8 +92,8 @@ public class ActionFactory extends Abstr
return createAction(callToken, ref);
}
- public static RutaAction createCallAction(Token callToken,
ComponentReference ref, Expression list) {
- return createAction(callToken, ref, list);
+ public static RutaAction createCallAction(Token callToken,
ComponentReference ref, Expression list, Expression view) {
+ return createAction(callToken, ref, list, view);
}
public static RutaAction createStructureAction(Token type, Expression
structure,