小编Upe*_*ona的帖子

使用 Prolog 在帧中实现推理的代码问题

这是从 Ivan Bratko 的书“Prolog Programming for人工智能 - 第 3 版 - 第 377 页”中获取的代码示例。它非常适合查询?-value(kiwi, active_at, night)。通过给出结果为true。

但它也给出了true查询的结果?- value(kiwi, active_at, daylight).,它应该是false.

我应该如何修改它,或者我错过了什么?

%--------Define frames
bird(a_kind_of, animal).
bird(active_at, daylight).

albatross(a_kind_of, bird).
albatross(colour, black).
albatross(size, 10).

kiwi(a_kind_of, bird).
kiwi(active_at, night).
kiwi(colour, brown).
kiwi(size, 24).

albert(instance_of, albatross).
albert(size, 10).

%--------Inference in Frames
value(Frame, Slot, Value):-
    Query =.. [Frame, Slot, Value],
    call(Query), !.     %Value is directly retrieved
value(Frame, Slot, Value):-
    parent(Frame, ParentName),
    value(ParentName, Slot, Value). …
Run Code Online (Sandbox Code Playgroud)

prolog

5
推荐指数
1
解决办法
199
查看次数

标签 统计

prolog ×1