-
Notifications
You must be signed in to change notification settings - Fork 2
/
ficha1_BB.pl
62 lines (39 loc) · 1.75 KB
/
ficha1_BB.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
%--------------------------------- - - - - - - - - - - - - - - -
% Inteligência Artificial MIEI /3 LEI/3
%--------------------------------- - - - - - - - - - - - - - - -
% Base de Conhecimento com informacao genealogica.
filho( joao,jose ).
%filho( jose,manuel ).
filho( carlos,jose ).
pai( paulo,jose ).
pai( paulo,maria ).
avo( antonio,paulo ).
neto( nuno,ana ).
sexo( masculino,joao ).
sexo( masculino,jose ).
sexo( feminino,maria ).
sexo( feminino,joana ).
%--------------------------------- - - - - - - - - - - - - - - -
% Extensao do predicado filho: Filho,Pai -> {V,F}
filho( F,P ) :- pai( P,F ).
%--------------------------------- - - - - - - - - - - - - - - -
% Extensao do predicado pai: Pai,Filho -> {V,F}
%pai( P,F ) :- filho( F,P ).
%--------------------------------- - - - - - - - - - - - - - - -
% Extensao do predicado avo: Avo,Neto -> {V,F}
avo( A,N ) :- filho( N,X ),
filho( X,A ).
%neto( N,A ) :- pai( X,N ), pai( A,X ).
%tetraneto( N,T ) :- descendente( N,T,4 ).
%--------------------------------- - - - - - - - - - - - - - - -
% Extensao do predicado bisavo: Bisavo,Bisneto -> {V,F}
bisavo( B,N ) :- descendente( N,B,3 ).
trisavo( T,N ) :- descendente( N,T,4 ).
%--------------------------------- - - - - - - - - - - - - - - -
% Extensao do predicado descendente: Descendente,Ascendente -> {V,F}
descendente( D,A ) :- filho( D,A ).
descendente( D,A ) :- filho( D,X ), descendente( X,A ).
%--------------------------------- - - - - - - - - - - - - - - -
% Extensao do predicado descendente: Descendente,Ascendente,Grau -> {V,F}
descendente(X,Y,1) :- filho(X,Y).
descendente(X,Y,N) :- filho(X,Z), G is N-1, descendente(Z,Y,G).