clips

    0热度

    1回答

    我有一个简单的虚拟示例。我有一个道具模板来存储来自不同服务器的参数及其值。属性值可以是字符串或数字(整型或浮点型)。目前,从系统读取属性的“收集器”会生成列值为String的事实。 (deftemplate prop (slot serverid) (slot name) (slot value)) (assert (prop (serverid "ppn45r07vm_0") (name "e

    1热度

    1回答

    我试图在嵌入式应用程序CLIPS中断言新事实。 我尝试了两种方法: - 第一个使用断言,如高级编程指南中第74页中的示例所示。 - 第二种方法是使用断言字符串。 我尝试了单独的方式,也尝试了两种方式。 我正在使用RUN_TIME模块。我的代码输出正确的结构(defrules和deftemplates),但新的事实没有被声明。只有最初的事实存在。我不知道为什么! 这里是我的代码: #include

    0热度

    1回答

    我有像(Student (Name x) (Age y))这样的模板。我可以检查一个使用以下命名Name插槽的所有事实得到Name值: EnvGetFactList(theEnv, &factlist, NULL); if (GetType(factlist) == MULTIFIELD) { end = GetDOEnd(factlist); multifieldPtr

    0热度

    1回答

    我想将包含符号的变量与许多值进行比较,以便如果它们中的任何一个匹配变量,CE就会得到满足。下面是一个小例子: (defrule compare-students ?x <- (Student (FirstName ?n)) (or (eq ?n John) (eq ?n Beter) (eq ?n Sarah)) => (modify ?x (SecondN

    0热度

    1回答

    我是CLIPS的新手,我无法弄清楚为什么我的代码无法运行。其实我没有犯错误,但是当我按下跑步时,事实不会改变,目标也不会发现。该项目是我们有2瓶。 A容量为3,B为容量2.目标是A有0,B有1.我们可以用这些规则来做到这一点:fillA,fillB,emptyA,emptyB,moveAB,moveBA。 以下是我的代码。有人可以帮忙吗?谢谢! (deffacts problem (na

    0热度

    1回答

    我想用在LHS约束变量来声明一个规则的显着性,以便与事实数据库中定义的更严格的时间限制,优先规则。我想下面应该工作: (set-salience-evaluation when-activated) (deffunction testsal (?a ?b) (integer (+ ?a ?b))) (defrule testr (declare (salience (testsal

    0热度

    1回答

    EnvAssert和EnvAssertString之间的功能有什么不同? 我试图用两个断言事实,但是当我使用EnvAssertString断言事实时激活相关规则,并且在我使用EnvAssert断言事实时未激活! 这是我在constructs.clp文件定义: (deftemplate Safety (slot SafetyStatus (type SYMBOL) (default Tru

    0热度

    1回答

    CLIPS中的撤消命令将删除CLIPS中的一个事实。 什么是C代码中的等效API。 clips.retract不工作

    0热度

    1回答

    我在顶层使用constructs-to-c命令将我的结构转换为c代码。直到现在我知道如何将这些源文件用作黑匣子。我认为在这些文件中,CLIPS实现了RETE算法,对吧?我想知道如何理解名称约定和这些文件的内容?我在参考手册中没有找到这方面的解释。 This是我发现这一点的唯一解释,但从第二点来看,我并不了解很多。不过,我对RETE算法有了很好的理解。 也有一些方法可视化RETE网络CLIPS为我的

    0热度

    1回答

    是否有任何可能将CLIPS中的每个多插槽与其他不同事实匹配?我有一个简短的示例规则: (stn-action (id ?id) (name lock-position) (state pending) (cond-actions) (opts ?r ?action ?to)) (stn-action (id ?other-id) (name lock-position) (stat