2 つの言語間で同様の機能を翻訳する場合は、翻訳を行うプログラムを作成するか、できれば検索と置換を grep 式で使用することができます。プログラムが非常に単純でない限り、翻訳をチェックして微調整するかなりの作業を行う必要があります (これには、両方の言語の実用的な知識が必要です)。たとえば、以下のコードは IRL (JRules) から CLIPS に変換されたルールです。
私は ruleML で使用できるツールに詳しくありませんが、部分的な変換でも実行できるツールがあれば、それを使用して開始する価値があります。
when
{
Phase ( name == "match" ) ;
Rank ( ?p : value; process == "yes" );
Technique ( name == "Hidden-Single"; rank == ?p ) ;
Possible ( ?v : value; ?r : row; ?pid : id );
not Possible ( value == ?v; row == ?r; id != ?pid ) ;
Possible ( ?v2: value; value != ?v; row == ?r; id == ?pid ) ;
not Impossible ( id == ?pid; value == ?v2; rank == ?p ) ;
}
then
{
insert Impossible() { id = ?pid; value = ?v2; rank = ?p; reason = "Hidden Single"; }
}
(defrule hidden-single-row
(phase match)
(rank (value ?p) (process yes))
(technique (name Hidden-Single) (rank ?p))
(possible (value ?v) (row ?r) (id ?id))
(not (possible (value ?v) (row ?r) (id ~?id)))
(possible (value ?v2&~?v) (row ?r) (id ?id))
(not (impossible (id ?id) (value ?v2) (rank ?p)))
=>
(assert (impossible (id ?id) (value ?v2) (rank ?p) (reason "Hidden Single"))))