如何在 pyswip 中使用 retract/retractall 和 assertz
How to use retract/retractall along side assertz in pyswip
我面临缓冲事实问题,其中来自先前查询的 assertz(facts) 在后续查询中也保留在缓冲区中。
我发现 retract 从数据库中删除了事实,但仍然无法弄清楚如何在 python(/pyswip) 中使用它们。
任何示例或参考都非常有用。
代码片段:
self.prolog_question_identify = Prolog()
self.prolog_question_identify.consult(subject_object.pro")
for linking in self.post_script_link_list:
linkage = self.outObj.createLinkage(linking,len(link.links)) #UDF in preprocess_link_output
self.prolog_question_identify.assertz(linkage)
是的,retract 可以帮助您从数据库中删除事实。
for p in self.prolog_question_identify.query("retract(linkage(_,_,_)),fail"):
print
在 linkage
中,您可以给出要清除的任何值。
我面临缓冲事实问题,其中来自先前查询的 assertz(facts) 在后续查询中也保留在缓冲区中。
我发现 retract 从数据库中删除了事实,但仍然无法弄清楚如何在 python(/pyswip) 中使用它们。
任何示例或参考都非常有用。
代码片段:
self.prolog_question_identify = Prolog()
self.prolog_question_identify.consult(subject_object.pro")
for linking in self.post_script_link_list:
linkage = self.outObj.createLinkage(linking,len(link.links)) #UDF in preprocess_link_output
self.prolog_question_identify.assertz(linkage)
是的,retract 可以帮助您从数据库中删除事实。
for p in self.prolog_question_identify.query("retract(linkage(_,_,_)),fail"):
print
在 linkage
中,您可以给出要清除的任何值。