导入.clp并添加事实

2024-06-28 18:53:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python和Clips来解决一个问题,下面是我要做的:

我希望从python加载一个.clp文件并运行它。我还需要根据数据库添加事实。所以.clp文件中会有规则,我正在使用

clips.Load("myfile.clp")

加载我的文件。我被困在如何在片段中断言事实。我也有一个可变的结局剪辑,将存储什么,它出来的基础上的事实。我需要把它带回python来运行其他代码。在

谢谢


Tags: 文件代码数据库规则剪辑load断言myfile
1条回答
网友
1楼 · 发布于 2024-06-28 18:53:56

我想你用的是PyCLIPS。在

import clips

def clips_callable(f):
    def wf(*args, **kwargs):
        if f(*args, **kwargs):
            return clips.Symbol("TRUE")
        else:
            return clips.Symbol("FALSE")
    clips.RegisterPythonFunction(wf, f.__name__)

@clips_callable
def pyprint(s):
    print s
    print "".join(map(str, s))


clips.Load("test.clp")
clips.Reset()
clips.Run()

# assert a fact.
a = clips.Assert("(order (part-id p1) (quantity 20))")
clips.Run()

test.clp看起来像:

^{pr2}$

我还附带了@clips_callable装饰器,这使得从clips调用python函数变得非常容易。在

相关问题 更多 >