Prolog逻辑查询

时间:2014-07-08 13:06:24

标签: prolog

有一个包含以下内容的数据库:

likes(mary,food).
likes(mary,wine).
likes(john,wine).
likes(john,mary).

是否可以从上面的信息推断是否"约翰喜欢玛丽喜欢的所有东西。使用Prolog。如果是,怎么样?

1 个答案:

答案 0 :(得分:1)

除非我误解了这个问题,否则并不难。一种方法是说明显的:

mary_and_john_like_all_the_same_things :-
  setof( J , likes(john,J) , Likes ) ,
  setof( M , likes(mary,M) , Likes )
  .