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,