我想创建一个Maven系统程序来做职业安全风险分析。我用CLIPS编写了这个程序。为了创建GUI并添加新的属性,我想用Python和clipspy和tkinter库重新编写。在这个程序中,根据用户的回答来决定和询问下一个问题。由于有很多问题,我需要定义更多的函数来Assert可以在其他defrule
函数中使用的事实。但是,当我在类或def函数中使用assert_fact
“函数时,我的下一个defrule
函数无法调用它。在这种情况下,我需要你的帮助关于如何使用Python类或def函数assert_fact
函数。你可以看到下面的一个例子:
olasılık = """ (deftemplate olasılık
(slot ad (type SYMBOL))
(slot deger (type NUMBER)))"""
env.build(olasılık)
def sonuç():
print("değer 1 dopru")
sr.assert_fact(ad=clips.Symbol("olasılık1"), deger=10)
def rule():
rule = """(defrule rule
(olasılık
(ad ?ad)(deger ?deger))
=>
(printout t " deneme yapıyorum. " ?ad " adıdır " (* 10 ?deger) crlf))"""
env.build(rule)
我希望在这段代码中使用defrule函数,但是没有。
1条答案
按热度按时间q8l4jmvw1#
我不完全清楚问题是什么,你也没有提供一个完整的工作例子,所以我希望这将回答问题。
你的主处理器是
clips.Environment
类,这个类的对象代表一个CLIPS引擎示例,允许定义或加载构造。事实由其模板定义,模板充当factory object。
因此,为了Assert一个事实,您需要检索它的模板对象并使用它Assert一个新的事实。
如果你想在Python函数中 Package Assert事实的逻辑,你可以做以下事情。
如果要泛化上述函数: