问题标签 [pyclips]

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 回答
552 浏览

python - 在 PyClips 中传播剪辑错误消息

我发现使用 PyClips 开发非常困难,因为它似乎用通用的“语法错误”消息替换了 Clips 抛出的有用错误消息。这使得在使用 PyClips 时在大型代码库上进行调试非常费力并且几乎不可能。

考虑以下示例。我写了一个非常大的表达式,其中包含乘法运算符,但我错误地忘记添加第二个参数。PyClips 没有简单地告诉我缺少参数,而是告诉我存在语法错误。本来应该花 1 秒来纠正的事情,却花了 5 分钟来纠正,因为我在我的大表情中寻找错误,寻找错误。

这是一个精简版:

在 Clips 中,带有有用的错误消息:

在 PyClips 中,出现无用的错误消息:

如何让 PyC​​lips 告诉我 Clips 抛出的真正错误?

0 投票
3 回答
4797 浏览

python - 使用 pyclips 并将剪辑作为 python 模块导入

我正在使用 pyclips 来生成我系统的事实和规则。

但是当我写“导入剪辑”或“导入pyclips.clips”时,出现错误“”没有名为剪辑的模块“!

所以请让任何人帮助我正确导入?

只是我想说我将文件夹 pyclips 放入 c:/ 的 python 文件夹中的库文件夹中

0 投票
1 回答
1521 浏览

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

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

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

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

我究竟做错了什么?

0 投票
3 回答
460 浏览

python - 在 PyCLIPS 中注册 Python 方法的装饰器

我利用 PyCLIPS 将 CLIPS 集成到 Python 中。Python 方法在 CLIPS 中使用clips.RegisterPythonFunction(method, optional-name). 由于我要注册几个函数并且想保持代码清晰,所以我正在寻找一个装饰器来进行注册。

现在是这样完成的:

这就是我想做的事情:

它保留方法的编码并将它们注册在一个地方。

注意:我在多处理器设置中使用它,其中 CLIPS 进程在一个单独的进程中运行,如下所示:

0 投票
1 回答
1444 浏览

clips - 剪辑无限的事实

我正在开发一个专家系统,它将使用 PyClips 做出录取决定。但是,代码不断产生“内存不足”错误。我想我已经隔离了我的问题。我的 CLIPS 文件有问题。希望有人能看到我在这里做错了什么。这是代码的最简单版本....为了调试它,我进行了简化:所以这是我的模板,为了论证,只有一条规则:如果收到成绩单,则 app-complete属性被标记为 TRUE。

所以当我这样做时(assert (application (app-id 123) (transcript-received Yes))) ,我的事实是被添加的。当我点击运行时.... CLIPS 中的窗口开始被成千上万的事实超载... app-complete 属性看起来被标记为 TRUE,然而,事实只是不停地循环和循环。当事实太多时,我说的是100K之类的……然后CLIPS就退出了……知道我在这里做错了什么吗?我的语法以某种方式搞砸了?我的意图是让一个 sqlite 数据库能够从数据库中读取“事实”,以便系统能够做出决定......但我无法超越这个!

0 投票
1 回答
345 浏览

python - 导入 .clp 并添加事实

我正在使用 python 和 Clips 来解决一个问题,这就是我想要做的:

我正在寻找从 python 加载一个 .clp 文件并运行它。我还需要添加基于数据库的事实。所以 .clp 文件中会有规则,我正在使用

加载我的文件。我被困在如何将事实断言到剪辑中。我在剪辑中也有一个可变的最终结果,它将根据事实存储它所产生的内容。我需要把它带回 python 来运行其他代码。

谢谢

0 投票
1 回答
673 浏览

python - Fact loading very slow with PyCLIPS, while fast with CLIPS

I have a rule-based system with several 100Ks of facts, and I'm getting very poor performance with PyCLIPS just for loading the facts.

I've narrowed it down to a simple example with two templates and a single rule that joins them (and does nothing else):

Output:

So the second batch of 20K facts takes 14.6 seconds to load. Loading the same fact files from the CLIPS console is instantaneous. Checking different values of N reveals that the loading time is roughly proportional to sqr(N) (making this completely unusable for large numbers of facts).

Switching the order of operations, and defining the rule after loading the facts does not make things better (obviously the last operation is always the slow one).

Is anyone familiar with this issue? Am I using PyCLIPS in a wrong way?

I am running PyCLIPS v1.0.7.348 and CLIPS v6.3.

0 投票
2 回答
426 浏览

python - 在 Python 2.7.3 中将多行输出到文件

我目前正在使用 pyCLIPS 在 python 中编写程序。

clips 模块允许我简单地使用以下命令将多行输出打印到终端:clips.PrintFacts()

但是,我想将其输出到文件以保存结果。我正在使用以下代码:

第一个和第三个打印命令成功地将它们的字符串打印到文件中,但第二个和第四个打印命令仍然只将剪辑结果输出到终端。下面是一个输出示例:

=============

=============

clips.PrintFacts()部分从“f-0”开始,而clips.PrintRules()从“MAIN”开始。

提前致谢!

0 投票
1 回答
109 浏览

python - 将 pyCLIPS Fact-base 输出到文件

我正在使用 pyCLIPS,并且很好奇是否有办法将事实库的全部内容输出到一个新文件中以用于归档结果、使用当前结果分析过去的结果等?

提前致谢

0 投票
1 回答
229 浏览

python-2.7 - 在 PyClips 中显示变量的值

我一直在尝试在 PyClips 中打印变量的值,但没有成功。任何帮助将不胜感激。这是代码。

而不是“你是观察者”,而是打印“你是吗?名字”

任何帮助将不胜感激