【发布时间】:2016-11-17 21:10:20
【问题描述】:
我有一个序言文件,它用给定的背景事实对给定的谓词 bongard(A, X) 进行分类。 规则片段:
bongard(A,[neg]) :- triangle(A,C), \+ in(A,C,D), !.
bongard(A,[neg]) :- \+ triangle(A,C), !.
...
我正在像这样执行这个程序:swipl -s file.pl -g "bongard(a, X), write(X)",以获得这个谓词的分类。
现在我还想知道哪个规则触发并实际限制了变量。有什么巧妙的方法可以做到这一点吗?现在我需要为具有 n 个规则的原始 prolog 文件保留额外的 n 个文件。 File1 有第一条规则,file2 有前两条规则。你明白了。这样,如果 File2 对规则进行分类,我知道第二条规则被触发。
有没有人对此有更好的建议?
编辑:给谓词一个唯一的数字“bongard(A,X,nr)”怎么样,然后我可以同时写入(X)和写入(Nr),这样我就知道触发了哪个谓词?
【问题讨论】:
-
“邦加德”是什么意思?
-
请提供MCVE