gpt4 book ai didi

prolog - 我如何向我提供 Prolog 提问

转载 作者:行者123 更新时间:2023-12-05 02:24:34 26 4
gpt4 key购买 nike

假设我们有这样的序言知识库:

guilty(X) :-
commits(X,Y),
crime(Y).
crime(murder).
crime(theft)

当我问这个问题时:

?- guilty(john)

我希望 Prolog 能问我这样的问题:

is commits(john, murder) ?

然后我回答

is commits(john, theft) ?

如果我回答 Prolog 说

**yes**

我怎样才能做出这样的东西?

谢谢..

最佳答案

您需要一个改进的证明引擎,当遇到未知事实时向用户查询。

用一些通用性来做它可能是一项有趣的任务,Google for metainterpreter Prolog,如果你对这个论点感兴趣,第一个链接为你提供了有值(value)的页面 A Couple of Meta-interpreters in Prolog由 Markus Triska 撰写,您可以在此处了解更多信息。

对于你的问题,一条规则就足够了

commits(Person, Crime) :-
crime(Crime),
format('is ~w ?', [commits(Person, Crime)]),
read(yes).

测试:

?- guilty(john).
is commits(john,murder) ?no.
is commits(john,theft) ?yes.
true.

注意 read/1 需要一个点来终止输入。

关于prolog - 我如何向我提供 Prolog 提问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com