私はPyClipsを試していますが、Pythonと緊密に統合して、ルールがアクティブ化されたときにpython関数を呼び出すようにします。
これが私がこれまでに持っているものです:
import clips
def addf(a, b):
return a + b
clips.RegisterPythonFunction(addf)
clips.Build("""
(defrule duck
(animal-is duck)
=>
(assert (sound-is quack))
(printout t "it’s a duck" crlf))
(python-call addf 40 2 )
""")
ただし、「animal-is duck」という事実を主張すると、Python関数は呼び出されません。
>>> clips.Assert("(animal-is duck)")
<Fact 'f-0': fact object at 0x7fe4cb323720>
>>> clips.Run()
0
私は何が間違っているのですか?