Exemplo de Base de Conhecimento

Neste exemplo, vamos criar uma base de conhecimento simples para representar uma árvore genealógica familiar, onde temos fatos e regras para definir as relações de parentesco.
genitor(afonso, gabriel).
genitor(afonso, eduardo).
genitor(afonso, emanuel).
genitor(geane, gabriel).
genitor(geane, eduardo).
genitor(geane, emanuel).
genitor(emanuel, fernanda).
genitor(maria, fernanda).
masculino(afonso).
masculino(gabriel).
masculino(eduardo).
masculino(emanuel).
pet(gabriel, apollo).
pet(eduardo, bob).
animal(apollo, cachorro).
animal(bob, cachorro).
idade(afonso, 39).
idade(geane, 37).
idade(gabriel, 17).
idade(anna, 16).
idade(eduardo, 20).
idade(emanuel, 26).
idade(maria, 24).
idade(fernanda, 2).
- Quais são os homens na família que possuem filhos?
- Quem são as filhas da família?
- Quais são as mulheres com mais de 30 anos?
- Quais são os netos?
- Quais são meus irmãos?
Respostas
?- masculino(X), genitor(X, Y).
X = afonso,
Y = gabriel ;
X = afonso,
Y = eduardo ;
X = afonso,
Y = emanuel ;
X = emanuel,
Y = fernanda.
?- feminino(X), genitor(Z, X).
X = fernanda,
Z = emanuel ;
X = fernanda,
Z = maria ;
?- feminino(X), idade(X,Y), Y>30.
X = maria,
Y = 34.
?- genitor(X,Y), genitor(Y,Z).
X = afonso,
Y = emanuel,
Z = fernanda .
?- genitor(X, gabriel), genitor(X,Y).
X = afonso,
Y = gabriel ;
X = afonso,
Y = eduardo ;
X = afonso,
Y = emanuel ;
X = geane,
Y = gabriel ;
X = geane,
Y = eduardo ;
X = geane,
Y = emanuel.