【问题标题】:Find-all-facts function returns "Unable to find deftemplate XXX", after i have introduced modules在我引入模块后,Find-all-facts 函数返回“无法找到 deftemplate XXX”
【发布时间】:2019-04-14 10:56:28
【问题描述】:

我更改了我的专家系统核心以使用命名模块。

现在当我调用find-all-facts 函数时,它总是返回

"Unable to find deftemplate 'XXX'".

例如,我的查询如下所示:

(find-all-facts ((?f PlannerGoal )) TRUE)

PlannerGoal deftemplate 位于 PLANNING 模块中。

我也尝试过:

(find-all-facts ((?f PLANNING::PlannerGoal )) TRUE)

但没有任何改变。我在(运行)命令发出后运行这个函数。

好像有什么不懂?

谢谢!

【问题讨论】:

    标签: clips


    【解决方案1】:

    最可能的解释是您正在执行 find-all-all-facts 命令的当前模块没有导入 PlannerGoal deftemplate。

             CLIPS (6.31 4/1/19)
    CLIPS> (defmodule PLANNING (export ?ALL))
    CLIPS> (deftemplate PlannerGoal (slot id))
    CLIPS> (defmodule MAIN (import PLANNING ?ALL))
    CLIPS> (assert (PlannerGoal (id 1)))
    <Fact-1>
    CLIPS> (assert (PlannerGoal (id 2)))
    <Fact-2>
    CLIPS> (find-all-facts ((?f PlannerGoal)) TRUE)
    (<Fact-1> <Fact-2>)
    CLIPS> (defmodule EMPTY)
    CLIPS> (find-all-facts ((?f PlannerGoal)) TRUE)
    [PRNTUTIL1] Unable to find deftemplate PlannerGoal.
    CLIPS> (focus PLANNING)
    TRUE
    CLIPS> (find-all-facts ((?f PlannerGoal)) TRUE)
    (<Fact-1> <Fact-2>)
    CLIPS> (get-current-module)
    PLANNING
    CLIPS> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-31
      • 2023-03-16
      • 2020-09-28
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      相关资源
      最近更新 更多