Prolog部分规则匹配

Prolog部分规则匹配,prolog,Prolog,是否可以在prolog中部分匹配规则 a-b:-kc,KD。 a e:-kg,k d 所以我知道这是真的。是否有可能获得b&e?我终于做了我想做的事情,它是这样的swi_序言,其中rule是要检查的规则的名称 true_check([_,H,B]):- call(H)->true;B=..L,true_check(L). true_check([B]) :- call(B)->true;false. possible(Rule):- current_predi

是否可以在prolog中部分匹配规则

a-b:-kc,KD。 a e:-kg,k d


所以我知道这是真的。是否有可能获得b&e?

我终于做了我想做的事情,它是这样的swi_序言,其中rule是要检查的规则的名称

true_check([_,H,B]):-
    call(H)->true;B=..L,true_check(L).
true_check([B]) :-
    call(B)->true;false.

possible(Rule):-
   current_predicate(rule,Head),
   clause(Head,B),
   B=..I,
   true_check(I),
   Head=..[_,Rule].

不太清楚你在问什么。例如,如果你要求推导ab,假设kd为真,但kc为假,你就不能用你展示的规则。不过,您可以创建一个规则的元解释程序来确定这一点。@lower这正是我想要的;|好吧,那我猜prolog不是最好的选择我没说prolog不是最好的选择;您可以在Prolog.hmm中编写一个规则验证器,另一种方法呢?是否可以获取所有规则及其右侧元素,并检查其中一个是否为真?