既存のRUTAプロジェクトにカスタム条件を追加する方法始まりましたが、頑張ってください
質問
カスタムuima RUTAルール条件を追加したい。私はEclipseで既存のUIMA RUTAプロジェクトを持っています。これまでのところ、基本的な注釈スタブを使用して同じプロジェクト内のソースファイルを作成しました:
package mynamespace.extensions;
[imports]
public class MyNewCondition extends AbstractRutaCondition {
private final String para1;
public MyNewCondition(String para1) {
super();
this.para1 = para1;
}
@Override
public EvaluatedCondition eval(AnnotationFS annotation,
RuleElement element, RutaStream stream, InferenceCrowd crowd) {
// TODO Auto-generated method stub
if (para1 == "hfoo")
return new EvaluatedCondition(this, true);
else
return new EvaluatedCondition(this, false);
}
public String getPara() {
return para1;
}
}
.
ファイルはターゲット/クラス/ ...フォルダにコンパイルしますが、RUTAスクリプトを作成すると、
DECLARE Test;
SW{MyNewCondition("foo") -> MARK(Test)};
.
... Eclipseは、「MyNewCondition」が定義されていないと私に実行していると私に実行すると、次のようになります。「40行目のエラー」( ":実行可能な代替手段が見つかりませんでした"コンソールに何をする必要があると思いますさらにインポートしますがわかりません。私はGitHubリポジトリ内の拡張子例プロジェクトから作業しようとしましたが、スクリプトファイルにそれ以上のインポートが含まれていないが、関連するXML記述子ファイルはさらに認識されません。 。しかし、これらが自動的に生成されるので、これが私が変化するべきなものであるかどうかわからないか、それとも他のものです。
私はまた、Eclipseのビルド・パスオプションを介して2番目のプロジェクトから同じ新しい条件型をインポートしようとしましたが、あちこちにも運がありません。
誰かが助けてくれる?ありがとう。
解決
UIMA RUTA Workbenchで解決される新しい条件を追加するための少なくとも3つのクラスが必要です。
- あなたの質問のような状態の実装
- IrutaconditionExtensionの実装。エンジンへの状態実装を提供する
- uima ruta tokench の条件を提供するIIDeConditionExtensionの実装
-
ExampleCondition.java
は、日付 を評価する新しい状態の実装を提供します。
-
ExampleConditionExtension.java
は、分析エンジンの拡張を提供します。条件の名前を知っていますが、その実装はその条件の新しいインスタンスを作成でき、説明コンポーネントの条件を言語的に言語的にします。 -
ExampleConditionIDEExtension
は、エディタの構文チェックと構文着色のキーワードを提供します。 -
plugin.xml
ワークベンチの拡張子を定義します。<extension point="org.apache.uima.ruta.ide.conditionExtension"> <condition class="org.apache.uima.ruta.example.extensions.ExampleConditionIDEExtension" engine="org.apache.uima.ruta.example.extensions.ExampleConditionExtension"> </condition> </extension>
条件自体には、言語に追加する必要がある機能のみが含まれています。分析エンジンは、「(」が見つかりませんでした。時々改善されるべきである。分析エンジンは、言語に対するすべての既知の拡張機能をリストする構成パラメータadditionalExtensions
を提供する。 UIMA RUTA Workbenchを使用していません。このパラメータにIrutaconditionExtensionの実装を追加する必要があります。IIDeConditionExtensionの実装は、構文チェック、構文の強調表示などであるUIMA RUTAワークベンチに必要な機能を提供します。さらに、ワークベンチを有効にします。正しい記述子を生成するために。それはそれぞれのパラメータにIrutaconditionExtensionの実装を追加します。ワークベンチでインストールされているEclipseプラグインで実装されるのは、WorkbenchでインストールされているEclipseプラグインで実装されます。 。拡張ポイントがあり、それを拡張する必要がありますIrutaconditionExtensionとIIDeConditionExtensionの両方の実装を知っています。
すべての可能な言語要素を実装するプロジェクトの例を示します。このプロジェクトには、分析エンジンの実装とuima RUTAワークベンチの実装が含まれており、したがってEclipseプラグイン(POMファイルを気にしています)。
ExampleCondition Condition Extensionについては、3つの重要なスポット/クラスがあります。
UIMA RUTAワークベンチを使用しない場合、またはUIMAパイプラインでルールを適用したい場合は、ExampleCondition
とExampleConditionExtension
のみを必要とし、uima Ruta Analysis Engine(ディスクリプタ)のorg.apache.uima.ruta.example.extensions.ExampleConditionExtension
パラメータにadditionalExtensions
を追加する必要があります。
同じワークスペース内のJavaプロジェクトを使用した新しい条件の追加はまだテストされていませんが、少なくともEclipseの拡張ポイントメカニズムを使用して拡張を含めることで、少なくともワークベンチのサポートが欠落しています。