剪辑6.4 IDE潜在错误。不显示所选模块的事实

时间:2019-04-08 09:27:39

标签: clips

我将CLIPS 6.4 IDE用于调试目的。我开始根据规则的“显着性”属性开发专家系统,以更改规则的优先级。

我认为最佳实践是更改此行为,并将具有不同“显着性”级别的规则移至不同的命名模块。

当我使用“显着性”时,我可以使用IDE轻松调试程序(即,重置,运行和步进按钮)。

在“事实浏览器”中,可以看到所有当前活动的事实,但是当我使用命名模块时,我什么都看不到(见下图):

facts browser

另一方面,“议程浏览器”的效果很好:

agenda browser

因此调试应用程序而没有看到当前活动的事实很麻烦,是否可以修复它?

P.S .:我正在Windows 10(x64)上运行CLIPS IDE 6.4 谢谢!

1 个答案:

答案 0 :(得分:1)

以下示例代码无法正确显示事实:

(defmodule MAIN (export ?ALL))
(deftemplate point (slot x) (slot y))
(deffacts points (point (x 1) (y 2)) (point (x 3) (y 4)))
(defmodule ENTITIES)
(defmodule PLANNING (import MAIN ?ALL))

下面是执行以下操作的示例代码:

(defmodule MAIN (export ?ALL))
(deftemplate point (slot x) (slot y))
(deffacts points (point (x 1) (y 2)) (point (x 3) (y 4)))
(defmodule ENTITIES (import MAIN ?ALL))
(defmodule PLANNING)

所选模块的起始索引错误地设置为1而不是0,因此,与该索引关联的模块在范围内没有任何事实时,选择其他模块时浏览器将无法正确显示事实

您可以通过删除EntityBrowser.xaml文件中SelectedIndex的初始设置来纠正此问题。这些行:

<DataGrid x:Name="moduleDataGridView" ... SelectedIndex="1" ...>

<DataGrid x:Name="entityDataGridView" ... SelectedIndex="1" ...>

<DataGrid x:Name="slotDataGridView" ... SelectedIndex="1" ...>

应更改为

<DataGrid x:Name="moduleDataGridView" ... ...>

<DataGrid x:Name="entityDataGridView" ... ...>

<DataGrid x:Name="slotDataGridView" ... ...>