【发布时间】:2021-08-10 18:57:04
【问题描述】:
嗨(很可能是 Peter),我很难弄清楚如何对我的 RUTA 项目进行参数化。
首先我有几个脚本可以制作某种链:
- 项目形容词.ruta
- Project Anatomy.ruta(包含“SCRIPT Adjectives;”和“Document{->CALL(Adjectives)};”)
- Project Anamnesis.ruta(包含“SCRIPT Anatomy;”和“Document{->CALL(Anatomy)};”)
对于结果我称之为:
File specFile = new File("C:/.../.../pipelines/AnamnesisEngine.xml");
String path = new File(specFile.toURI()).getParentFile().getAbsolutePath();
AnalysisEngineDescription desc = null;
String[] VarNames = {"Name1", "Name2"};
String[] VarValues = {"Value1", "Value2"};
try {
desc = AnalysisEngineFactory.createEngineDescriptionFromPath(
specFile.getAbsolutePath(), RutaEngine.PARAM_SCRIPT_PATHS, path+"/script",
RutaEngine.PARAM_DESCRIPTOR_PATHS, path+"/descriptor",
RutaEngine.PARAM_RESOURCE_PATHS,path+"/resources",
RutaEngine.PARAM_VAR_NAMES, VarNames,
RutaEngine.PARAM_VAR_VALUES, VarValues); ..... End so on (Those parameters (VarNames and VarValues) are filled from query, but that is not so important right now)
一切正常,我得到了不错的 JSON 输出。但现在我遇到了这些参数(VarNames、VarValues)的问题,我无法弄清楚。
当我在脚本 Anamnesis.ruta 中做这样的事情时
STRING Name1;
Anamnesis{->SETFEATURE("Lemma",Name1)};
一切正常,我可以在输出中看到 Anamnesis 注释的引理设置为 Value1... 但是,我还需要在 Adjectives.ruta 和 Anatomy.ruta 项目中处理这些变量。我怀疑这些项目是由它们自己的描述符(AdjectivesEngine.xml 和 AnatomyEngine.xml)控制的。有没有办法为这些项目设置参数并在从 AnamnesisEngine.xml 创建 ae 时使用它们?
当我尝试将其添加到 Anatomy.ruta 时(并再次调用 AnamnesisEngine.xml)
STRING Name1;
Anatomy{->SETFEATURE("Lemma",Name1)};
输出中根本没有引理。哪种是有道理的,但我希望整个链条可以由 AnamnesisEngine.xml 控制,而前两个项目能够“找到”、分配和使用这些变量......好吧我错了......
请问实现这一目标的最佳方法是什么?
【问题讨论】:
-
你的答案是正确的。这些参数可用于在根脚本中设置变量值。解决问题的最佳方法是将注释器拆分为一个聚合,因为值注入不适用于导入的脚本。