问题标签 [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.
rule-engine - 从事实中形成规则。基于规则的编程
学习剪辑,虽然我不介意语法,但我发现很难从事实中得出规则。是否有关于如何在给定知识库的情况下构建规则的提示?一个不平凡的例子会很好,谢谢。
clips - 如何在列表中添加实例?
我正在使用 CLIPS,但在尝试在空列表中添加实例时遇到了麻烦。我正在使用 insert$ 函数,但似乎无法正常工作。具体代码是这样的:
?listaConvocatoriasAlumno 包含某个类的多个实例,我想将其中的一些添加到另一个列表中(在这种情况下是 ?listaConvocatoriasMismoCuadrimestre),该列表在循环的开头是空的。
任何想法?
非常感谢您!
artificial-intelligence - 如何使用 deftemplate 将结果存储在 CLIPS 中?
我试图构建一个模板来存储我计算的一些结果,所以我做了这个用于初始化:
然后我尝试使用该结构来存储值,但我需要它可以从许多规则中访问,所以我决定将它设为全局。所以我尝试存储这样的值:
因为我希望 ?*tmpA* 具有初始值,然后为每个值分配修改(这里我分配 nota-media-total),但它显示“[PRNTUTIL2] 语法错误:检查 defrule 的适当语法。”,所以我不知道出了什么问题,或者我是否走错了路。
clips - 使用 (not (a-fact $?)) 的 CLIPS 不会触发
我在理解该not
函数如何与模式匹配交互方面有点困难。我想写一个“这样的事实不存在”的模式匹配。
即,我想要的是:
接着:
但由于某种原因not
,这里对我不起作用。替换似乎也不起作用not
。(not (exists /*pattern*/))
有什么我遗漏的东西和/或一种很好的方法来实现用这样的规则找到最高数字吗?
更新
我刚刚发现的答案是:not
模式不应该是第一个((declare (salience 0))
也不计数)。因此,以下代码可以正常工作:
抱歉打扰了:(
python - 如何使用 PyClips 激活规则以调用 python 函数
我正在试验PyClips,我想将它与 Python 紧密集成,以便在激活规则时调用 Python 函数。
这是我到目前为止所拥有的:
但是,当我断言“动物是鸭子”这一事实时,我的 python 函数没有被调用:
我究竟做错了什么?
clips - 查找与另一个模板有共同点的模板的事实
我正在为一个项目使用 CLIPS。
我正在使用这个模板 A,它有一个属性模型和另一个模板 B,它也有一个属性模型。
所以我想要实现的是基于属性模型,返回模板A的那些事实,这些事实与模板B中的事实具有相同的属性模型值。
我尝试使用这种格式
它确实给了我结果,但它给了我重复的 A 和 B 的结果。我如何使它返回非重复值,无论是 A 还是 B?
clips - CLIPS 多个和
假设我有这样的规则:
如何添加新的“和”?谢谢你。
clips - 剪辑简单规则
有没有人知道为什么会这样:
不管用?当我删除第一条规则时,它起作用了。谢谢你。
clips - 剪辑规则和功能
你好,我有几个问题:
- 我可以在剪辑中修改函数中的事实,还是可以使用事实而不将其作为函数调用的参数。
- 我可以在规则中生成随机数吗?
- 我可以在另一个规则中执行某个规则吗?
- 我可以在函数中进行模式匹配吗?
clips - CLIPS:检索事实并获得指向它的指针
我正在使用嵌入在 C 程序中的 CLIPS,因此我必须通过 C 函数调用来完成所有操作,并且不能使用 CLIPS 命令行。
假设我已经断言了一些这样的事实:
显然,此时我没有得到(更不用说保留)任何指向我的事实的指针。当我想稍后通过使用来撤回一个事实时Retract(factPtr)
,我显然需要指向我想要撤回的事实的指针。那么,在上述几行之后,我将如何(cauliflower 7)
再次找到事实并获得指向它的指针?
我是否必须通过 获取整个事实列表GetFactList([...])
,遍历它并比较字符串?如果是这样,我将如何在DATA_OBJECT
这个函数返回的多字段中做到这一点?或者,还有更好的方法?
我将不胜感激任何想法甚至代码示例。