% Fatos.
homer.
marge.
bart.
lisa.
maggie.
mona.
jacqueline.
patty.
abraham.
clancy.
hugo.
louise.
herb.
mulher(marge).
mulher(maggie).
mulher(lisa).
mulher(mona).
mulher(jacqueline).
mulher(selma).
mulher(patty).
mulher(louise).
homem(homer).
homem(bart).
homem(abraham).
homem(clancy).
homem(hugo).
homem(herb).
homem(clancy).
progenitor(homer,bart).
progenitor(homer,lisa).
progenitor(homer,maggie).
progenitor(marge,bart).
progenitor(marge,lisa).
progenitor(marge,maggie).
progenitor(abraham, homer).
progenitor(mona, homer).
progenitor(clancy, marge).
progenitor(clancy, patty).
progenitor(clancy, selma).
progenitor(jacqueline, marge).
progenitor(jacqueline, patty).
progenitor(jacqueline, selma).
progenitor(abraham, herb).
progenitor(herb, hugo).
progenitor(louise, hugo).
% Regras
pai(A,B) :- homem(A), progenitor(A,B).
mãe(A,B) :- mulher(A), progenitor(A,B).
é_pai(A) :- pai(A,_).
é_mãe(A) :- mãe(A,_).
filho(A,B):- homem(A), progenitor(B,A).
filha(A,B):- mulher(A), progenitor(B,A).
irmaos(X,Y) :-
progenitor(Z,X),
progenitor(Z,Y),
X\=Y.
irmao_completos(A,B) :-
pai(P,A), pai(P,B),
mãe(M,A), mãe(M,B),
A\=B.
tio(T,A) :-
homem(T),
irmaos(T,X), progenitor(X,A).
tia(T,A) :-
mulher(T),
irmaos(T,X), progenitor(X,A).
primo(A,B) :-
homem(A),
progenitor(X,A),
progenitor(Y,B),
irmaos(X,Y).
prima(A,B) :-
mulher(A),
progenitor(X,A),
progenitor(Y,B),
irmaos(X,Y).
avô(A,B) :- pai(A,X), pai(X,B).
avó(A,B) :- pai(A,X), pai(X,B).
Referências:
[…] » FamÃlia Simpsons em Prolog Blog do Silveira: Porque até pra fazer programa você tem que estuda… Ah, minhas aulas de IA! (tags: prolog) […]
Opa rapa, onde posso rodar esse código, eu estou querendo aprender PROLOG!
Gracias man, me sirvio muchisimo. Saludes desde Colombia.
Clancy é mulher e homem ao mesmo tempo? em http://pt.simpsons.wikia.com/wiki/Clancy_Bouvier diz que é só homem
Obrigado pela correção Rafael. Eu atualizei esse programa para refletir que Clancy é um homem.