下面是一个简单的Turbo Prolog程序,用于描述亲属关系:
```
% 基本谓词:父亲和母亲
male(john).
male(bob).
male(tom).
male(jim).
female(kate).
female(ann).
female(lily).
female(lucy).
parent(john, bob).
parent(john, ann).
parent(bob, tom).
parent(bob, lily).
parent(tom, jim).
parent(tom, lucy).
parent(kate, bob).
parent(kate, ann).
parent(ann, tom).
parent(ann, lily).
parent(lily, jim).
parent(lily, lucy).
father(X, Y) :- male(X), parent(X, Y).
mother(X, Y) :- female(X), parent(X, Y).
% 亲属关系:祖父、祖母、兄弟、姐妹
grandfather(X, Y) :- male(X), parent(X, Z), parent(Z, Y).
grandmother(X, Y) :- female(X), parent(X, Z), parent(Z, Y).
brother(X, Y) :- male(X), parent(Z, X), parent(Z, Y), X \= Y.
sister(X, Y) :- female(X), parent(Z, X), parent(Z, Y), X \= Y.
% 其他亲属关系
uncle(X, Y) :- male(X), parent(Z, Y), brother(X, Z).
aunt(X, Y) :- female(X), parent(Z, Y), sister(X, Z).
cousin(X, Y) :- parent(Z, X), parent(W, Y), brother(Z, W), X \= Y.
```
然后,我们可以给出一些事实数据,建立一个小型演绎数据库:
```
male(john).
male(bob).
male(tom).
male(jim).
female(kate).
female(ann).
female(lily).
female(lucy).
parent(john, bob).
parent(john, ann).
parent(bob, tom).
parent(bob, lily).
parent(tom, jim).
parent(tom, lucy).
parent(kate, bob).
parent(kate, ann).
parent(ann, tom).
parent(ann, lily).
parent(lily, jim).
parent(lily, lucy).
% 查询亲属关系
grandfather(john, jim). % true
aunt(lily, jim). % false
cousin(jim, lucy). % true
```