问题标签 [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 - 使用 (not (a-fact $?)) 的 CLIPS 不会触发

我在理解该not函数如何与模式匹配交互方面有点困难。我想写一个“这样的事实不存在”的模式匹配。

即,我想要的是:

接着:

但由于某种原因not,这里对我不起作用。替换似乎也不起作用not(not (exists /*pattern*/))有什么我遗漏的东西和/或一种很好的方法来实现用这样的规则找到最高数字吗?

更新

我刚刚发现的答案是:not模式不应该是第一个((declare (salience 0))也不计数)。因此,以下代码可以正常工作:

抱歉打扰了:(

0 投票
1 回答
1521 浏览

python - 如何使用 PyClips 激活规则以调用 python 函数

我正在试验PyClips,我想将它与 Python 紧密集成,以便在激活规则时调用 Python 函数。

这是我到目前为止所拥有的:

但是,当我断言“动物是鸭子”这一事实时,我的 python 函数没有被调用:

我究竟做错了什么?

0 投票
1 回答
2545 浏览

clips - 查找与另一个模板有共同点的模板的事实

我正在为一个项目使用 CLIPS。

我正在使用这个模板 A,它有一个属性模型和另一个模板 B,它也有一个属性模型。

所以我想要实现的是基于属性模型,返回模板A的那些事实,这些事实与模板B中的事实具有相同的属性模型值。

我尝试使用这种格式

它确实给了我结果,但它给了我重复的 A 和 B 的结果。我如何使它返回非重复值,无论是 A 还是 B?

0 投票
1 回答
734 浏览

clips - CLIPS 多个和

假设我有这样的规则:

如何添加新的“和”?谢谢你。

0 投票
1 回答
1219 浏览

clips - 剪辑简单规则

有没有人知道为什么会这样:

不管用?当我删除第一条规则时,它起作用了。谢谢你。

0 投票
1 回答
2201 浏览

clips - 剪辑规则和功能

你好,我有几个问题:

  1. 我可以在剪辑中修改函数中的事实,还是可以使用事实而不将其作为函数调用的参数。
  2. 我可以在规则中生成随机数吗?
  3. 我可以在另一个规则中执行某个规则吗?
  4. 我可以在函数中进行模式匹配吗?
0 投票
1 回答
1070 浏览

clips - CLIPS:检索事实并获得指向它的指针

我正在使用嵌入在 C 程序中的 CLIPS,因此我必须通过 C 函数调用来完成所有操作,并且不能使用 CLIPS 命令行。

假设我已经断言了一些这样的事实:

显然,此时我没有得到(更不用说保留)任何指向我的事实的指针。当我想稍后通过使用来撤回一个事实时Retract(factPtr),我显然需要指向我想要撤回的事实的指针。那么,在上述几行之后,我将如何(cauliflower 7)再次找到事实并获得指向它的指针?

我是否必须通过 获取整个事实列表GetFactList([...]),遍历它并比较字符串?如果是这样,我将如何在DATA_OBJECT这个函数返回的多字段中做到这一点?或者,还有更好的方法?

我将不胜感激任何想法甚至代码示例。