clips

    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中的撤消命令將刪除CLIPS中的一個事實。 什麼是C代碼中的等效API。 clips.retract不工作

    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

    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回答

    我是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回答

    我在頂層使用constructs-to-c命令將我的結構轉換爲c代碼。直到現在我知道如何將這些源文件用作黑匣子。我認爲在這些文件中,CLIPS實現了RETE算法,對吧?我想知道如何理解名稱約定和這些文件的內容?我在參考手冊中沒有找到這方面的解釋。 This是我發現這一點的唯一解釋,但從第二點來看,我並不瞭解很多。不過,我對RETE算法有了很好的理解。 也有一些方法可視化RETE網絡CLIPS爲我的