2016-06-13 11 views
1

До сих пор я запускал скрипты ruta из проекта maven, создавая AnalysisEngine и CAS и обрабатывая движок. Для этого я поместил все скрипты и файлы дескрипторов (Engine & TypeSystem) в папку scr/main/resources проекта maven.Как запустить внешние скрипты ruta из проекта maven без размещения сценария или его системы типов в пути к классам?

Теперь я хочу поместить скрипты и файлы TypeSystem во внешний путь и динамически передать путь к моему java-коду, который запускает скрипты. Можно ли это сделать? Если да, то как?

Я просто поместил файлы (скрипт & дескриптор) во внешний путь и передал новый путь для создания экземпляра AnalysisEngine, как показано ниже;

final AnalysisEngine engine = AnalysisEngineFactory.createEngine("home/admin/Desktop/TEST_ScriptFolder/com/textjuicer/ruta/date/Dazzle_ChapRef_UpdatedEngine"); 

Ошибка

org.apache.uima.util.InvalidXMLException: импорт не может быть решена. Ни один файл с именем «home/admin/Desktop/TEST_ScriptFolder/com/textjuicer/ruta/date/Dazzle_ChapRef_UpdatedEngine.xml» не был найден в пути к пути или пути к данным. (Descriptor:) at org.apache.uima.resource.metadata.impl.Import_impl.findAbsoluteUrl (Import_impl.java:117) at org.apache.uima.fit.factory.AnalysisEngineFactory.createEngineDescription (AnalysisEngineFactory.java:869) на org.apache.uima.fit.factory.AnalysisEngineFactory.createEngine (AnalysisEngineFactory.java:107) в com.textjuicer.ruta.date.ArtifactAnnotator.getAllAnnotations (ArtifactAnnotator.java:93) в ApplyingStyle.XmiTransformer.parseXMI (XmiTransformer.java:33) на ApplyingStyle.ApplyStyle.applyStyleOnDocx (ApplyStyle.java:76)

ответ

1

Есть два слоя:

  1. RutaEngine нужно найти скрипты/ресурсы/дескрипторы
  2. UIMA должны быть в состоянии разрешить импорт дескрипторов

Поиска ресурсов в Руте имеет два этапа, он ищет их в абсолютных путях к указанным в параметрах конфигурации. Если ресурс не найден, он ищет его в пути к классам. Так вам необходимо установить параметры конфигурации: скрипты расположены в scriptPaths, дескрипторы - descriptorPaths; список слов - resourcePaths. Дополнительную информацию см. На странице documentation.

Проблемы с импортом в дескрипторах можно решить, установив datapath в UIMA ResourceManager или изменив импорт на «местоположение» вместо «name». Дантапт может использоваться в качестве замены для класса. В описании Ruta используется импорт по местоположению, если он указан в его ruta-maven-plugin.

ОТКАЗ: Я разработчик UIMA Ruta

+0

Спасибо! Можно ли установить переменную (путь) вместо жесткого кодирования пути в файле движка? Потому что я хочу получить путь динамически (java) и передать его в файл движка. Есть ли способ сделать это прямо? –

+0

Или ... возможно ли получить текущий путь из файла движка и установить его так же, как путь к сценарию, путь к ресурсу и путь дескриптора? –

+0

Вы всегда можете программно переконфигурировать механизм анализа (изменение значений параметров).Если описание механизма анализа было основано на дескрипторе xml, то оно хранит также его исходный url. –