2

基本的なルール エンジンを取得できるコンポーネントがあるかどうかを確認したいと思います。エンジンは、TRUE または FALSE のいずれかを返す基本的な論理ルールとなるルール文字列を取り込むことができる必要があります。入力用の文字列マップと比較用の文字列マップを受け取る必要があります。

例 1 :

I want to check if the Object is of type "Apple"
The text rule would say "OBJECT_TYPE=="FRUIT" & FRUIT_TYPE=="Apple""
If Input is MAP1 ==> { (OBJECT_TYPE->FRUIT),(FRUIT_TYPE->Apple) }
        MAP2 ==> NULL 
Output should be TRUE

If Input is MAP1 ==> { (OBJECT_TYPE->FRUIT),(FRUIT_TYPE->Orange) }
        MAP2 ==> NULL 
Output should be FALSE

例 2 :

I want to check if the Object is of type "Apple" and group with size
The text rule would say "OBJECT_TYPE=="FRUIT" & FRUIT_TYPE=="Apple""
If Input is MAP1 ==> { (OBJECT_TYPE->FRUIT),(FRUIT_TYPE->Apple), (SIZE->BIG) }
        MAP2 ==> {(SIZE==BIG)}
Output should be TRUE

If Input is MAP1 ==> { (OBJECT_TYPE->FRUIT),(FRUIT_TYPE->Apple), (SIZE->SMALL) }
        MAP2 ==> {(SIZE==BIG)}
Output should be FALSE

アイデアは、論理規則に従って 2 つのマップを比較し、TRUE または FALSE を返すことです。また、ルールで weight > 50 などの算術ロジックをサポートする必要があるため、入力マップで同じチェックを行う必要があります。システムの出力は、TRUE、FALSE、INPUT MAP Not fully populated、Error in Rule などです。

一部のオープンソースがこのタイプの機能をすでに提供しているかどうかは誰にもわかりませんか?

4

1 に答える 1

0

多分答えはノーです。あなたの状況はあまりにも具体的であるため、おそらくオーウェン コンポーネントを作成する必要があります。私の経験では、文法パーサーを作成できます。boost.spirti はおそらく良いパートナーです。

于 2013-08-21T10:11:46.587 に答える