問題タブ [clips]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
247 参照

rule-engine - 事実からルールを作る。ルールベースのプログラミング

学習クリップ、構文は気にしませんが、事実からルールを導き出すのは難しいと感じています。ナレッジ ベースを考慮してルールを構築する方法に関するヒントはありますか? 重要な例はいいでしょう、ありがとう。

0 投票する
1 に答える
580 参照

clips - リストにインスタンスを追加するには?

CLIPS を使用していますが、空のリストにインスタンスを追加しようとすると問題が発生します。insert$ 関数を使用していますが、正しく動作していないようです。具体的なコードは次のとおりです。

?listaConvocatoriasAlumno には特定のクラスの複数のインスタンスが含まれており、これらのいくつかを別のリスト (この場合は ?listaConvocatoriasMismoCuadrimestre ) に追加したいと思います。ループの先頭は空です。

何か案が?

事前にどうもありがとうございました!

0 投票する
1 に答える
1091 参照

artificial-intelligence - deftemplate を使用して結果を CLIPS に保存するにはどうすればよいですか?

計算結果の一部を保存するためのテンプレートを作成しようとしていたので、初期化用にこれを作成しました。

そして、その構造を使用して値を保存しようとしていますが、多くのルールからアクセスできるようにする必要があるため、グローバルにすることにしました。だから私はこのような値を格納しようとしました:

?*tmpA* に初期値を設定し、それぞれに変更を割り当てたい (ここでは nota-media-total を割り当てます) ようにしたいのですが、「[PRNTUTIL2] 構文エラー: defrule の適切な構文を確認してください。」と表示されるので、何が間違っているのか、間違った道を進んでいるのかわからない。

0 投票する
1 に答える
3293 参照

clips - CLIPS using (not (a-fact $?)) が起動しない

not関数がパターン マッチングとどのように相互作用するかを理解するのに少し苦労しています。「そんな事実はない」というパターンマッチを書きたいと思います。

つまり、私が欲しいのは:

その後:

しかし、何らかの理由で、ここではうまくいきnotません。に置き換えnot(not (exists /*pattern*/))もうまくいかないようです。私が欠けているものや、そのようなルールで最大数を見つけることを実装する良い方法はありますか?

アップデート

私が発見した答えはこれです:notパターンは最初のものであってはなりません ((declare (salience 0))どちらも数えません)。したがって、次のコードは正しく機能します。

おじゃまします :(

0 投票する
1 に答える
1521 参照

python - PyClipsを使用して、Python関数を呼び出すためのルールアクティベーションを取得する方法

私はPyClipsを試していますが、Pythonと緊密に統合して、ルールがアクティブ化されたときにpython関数を呼び出すようにします。

これが私がこれまでに持っているものです:

ただし、「animal-is duck」という事実を主張すると、Python関数は呼び出されません。

私は何が間違っているのですか?

0 投票する
1 に答える
2545 参照

clips - 別のテンプレートと共通点のあるテンプレートの事実を見つける

プロジェクトに CLIPS を使用しています。

属性モデルを持つこのテンプレート A と、属性モデルを持つ別のテンプレート B を使用しています。

したがって、私が達成したいのは属性モデルに基づいており、テンプレート B のファクトと同じ属性モデル値を持つテンプレート A のファクトを返します。

このフォーマットを使ってみた

それは私に結果を与えますが、重複しているAとBの両方の結果を私に与えています..AまたはBのいずれかの重複しない値を返すようにするにはどうすればよいですか?

0 投票する
1 に答える
734 参照

clips - CLIPS 複数と

次のようなルールがあるとしましょう。

新しい「and」を追加するにはどうすればよいですか? ありがとうございました。

0 投票する
1 に答える
1219 参照

clips - クリップの簡単なルール

誰もがこれがなぜなのか考えていますか:

動かない?最初のルールを削除すると機能します。ありがとうございました。

0 投票する
1 に答える
2201 参照

clips - クリップのルールと機能

こんにちは、いくつか質問があります。

  1. クリップ内の関数内のファクトを変更できますか、または関数の呼び出しにパラメータとして渡さずにファクトを使用できますか?
  2. ルールで乱数を生成できますか?
  3. 特定のルールを別のルールで実行できますか?
  4. 関数内でパターンマッチングを行うことはできますか?
0 投票する
1 に答える
1070 参照

clips - CLIPS: Retrieving a fact and getting a pointer to it

I am working with CLIPS embedded in a C program, so I have to do everything by C function calls and can't use the CLIPS command line.

Let's say I have asserted a few facts like this:

Obviously I do not get (let alone retain) any pointers to my facts at this point. When I want to retract a fact later by using Retract(factPtr), I obviously need the pointer to the fact I want to retract. So, after the lines above, how would I find the fact (cauliflower 7) again and get a pointer to it?

Do I have to get the entire fact list by GetFactList([...]), loop through it and compare strings? If so, how would I do that in the multifield DATA_OBJECT this function returns? Or is there a better way?

I would be grateful for any ideas or even code examples.