Prolog 从一般情况推断

Prolog 从一般情况推断,prolog,logic-programming,Prolog,Logic Programming,我希望有人能帮助我。是否可能从与Prolog中的s0不同的情况中进行推断 我有一个像这样的s0(初始情况): isoven(oven). isoff(oven,s0). ison(X,do(a,S)):- a=switchOn(X),isoven(X); isOff(X,S),\+ a=swicthOff(X). (fluent inon) ?- ison(oven,S'). true. 如果我提示: ?- isOn(oven,s0). false. ?- ison(oven,do(sw

我希望有人能帮助我。是否可能从与Prolog中的
s0
不同的情况中进行推断

我有一个像这样的
s0
(初始情况):

isoven(oven).
isoff(oven,s0).
ison(X,do(a,S)):- a=switchOn(X),isoven(X); isOff(X,S),\+ a=swicthOff(X). (fluent inon)
?- ison(oven,S').
true. 
如果我提示:

?- isOn(oven,s0).
false.

?- ison(oven,do(swicth(oven)s0)).
true
如果存在像“save(do(swith(烤箱)s0))to S”这样的命令,以获得如下结果,那就太好了:

isoven(oven).
isoff(oven,s0).
ison(X,do(a,S)):- a=switchOn(X),isoven(X); isOff(X,S),\+ a=swicthOff(X). (fluent inon)
?- ison(oven,S').
true. 

Prolog不是魔术,您需要正确地实现。 看来你想用情境演算,网上有很多关于它的资料

此外:

这是毫无意义的,它总是失败。这里需要一个变量(第一个字母必须是大写)