% 定义事实(Facts)
% 父母关系
parent(john, jim).
parent(john, ann).
parent(sue, jim).
parent(sue, ann).
% 性别关系
male(john).
female(sue).
male(jim).
female(ann).
% 定义规则(Rules)
% 兄弟姐妹关系
sibling(X, Y) :- parent(Z, X), parent(Z, Y), X \= Y.
% 儿女关系
child(X, Y) :- parent(Y, X).
% 祖父母关系
grandparent(X, Z) :- parent(X, Y), parent(Y, Z).
% 查询(Queries)
% 查询ann和jim是否是兄弟姐妹
?- sibling(ann, jim).
% 查询sue是否是john的儿女
?- child(sue, john).
% 查询john是否是ann的祖父
?- grandparent(john, ann).
在这个例子中,我们定义了一些家庭关系的事实(Facts),如父母关系、性别关系等。然后,我们定义了一些逻辑规则(Rules),如兄弟姐妹关系、儿女关系、祖父母关系等。最后,通过查询(Queries)来测试这些规则。
例如,查询 sibling(ann, jim) 将返回 true,因为 ann 和 jim 是兄弟姐妹。查询 child(sue, john) 也将返回 true,因为 sue 是 john 的儿女。而查询 grandparent(john, ann) 将返回 false,因为 john 不是 ann 的祖父。
这个例子展示了逻辑编程如何通过定义关系和规则,以及使用查询来获取结果。在实际应用中,逻辑编程可以用于构建专家系统、知识表示、自然语言处理等领域。
转载请注明出处:http://www.pingtaimeng.com/article/detail/12013/AI人工智能