I am using CLIPS 6.4 IDE for debugging purposes. I started developing my expert system based on "salience" property of rules, to change rules priority.
I think that the best practice is to change this behaviors and move rules with different "salience" level to different named modules.
When I use "salience" I can easily debug my program by using IDE (i.e. reset, run and step buttons).
In "Fact Browser" it is possible to see all currently active facts, but when i use named modules I can see nothing (see picture below):
On the other hand "Agenda browser" works pretty good:
So debugging application without seeing currently active facts is troublesome, is it possible to fix it?
P.S.: I am running CLIPS IDE 6.4 on Windows 10 , x64 Thank you!
Here's example code that doesn't properly display the facts:
(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))
Here's example code that does:
(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)
The starting index of the selected module is incorrectly set to 1 rather than 0, so in the case where the module associated with that index does not have any facts in scope, the browser does not correctly display facts when other modules are selected.
You can correct this issue by deleting the initial setting for the SelectedIndex in the EntityBrowser.xaml file. These lines:
<DataGrid x:Name="moduleDataGridView" ... SelectedIndex="1" ...>
<DataGrid x:Name="entityDataGridView" ... SelectedIndex="1" ...>
<DataGrid x:Name="slotDataGridView" ... SelectedIndex="1" ...>
should be changed to
<DataGrid x:Name="moduleDataGridView" ... ...>
<DataGrid x:Name="entityDataGridView" ... ...>
<DataGrid x:Name="slotDataGridView" ... ...>