Akinator - Exemplo com Prolog





Base de Conhecimento


genitor(nivaldo, glaucio).
genitor(laura, glaucio).
genitor(silas, angelica).
genitor(maria, angelica).
genitor(glaucio, lucas).
genitor(angelica, lucas).
masculino(nivaldo).
masculino(silas).
masculino(glaucio).
masculino(lucas).
feminino(laura).
feminino(maria).
feminino(angelica).
pet(lucas, zorro).
animal(zorro, cachorro).
idade(nivaldo, 82).
idade(laura, 72).
idade(silas, 84).
idade(maria, 65).
idade(lucas, 16).




Exemplos de Comandos


Alguns comandos no Prolog para explorar esta base de conhecimento:


1. Quais são os homens na família que possuem filhos?
?- masculino(X), genitor(X, Y).
X = nivaldo,
Y = glaucio ;
X = silas,
Y = angelica ;
X = glaucio,
Y = lucas ;

2. Quem são as filhas da família?
?- feminino(X), genitor(Z, X).
X = angelica,
Z = silas ;
X = angelica,
Z = maria.

3. Quais são as mulheres com mais de 30 anos?
?- feminino(X), idade(X, Y), Y > 30.
X = laura,
Y = 72 ;
X = maria,
Y = 65 ;

4. Quais são os netos?
?- genitor(X, Y), genitor(Y, Z).
X = nivaldo,
Y = glaucio,
Z = lucas ;
X = silas,
Y = angelica,
Z = lucas ;
X = maria,
Y = angelica,
Z = lucas ;

5. Quais são meus irmãos?
?- genitor(X, lucas),genitor(X,Y).
X = glaucio,
Y = lucas ;
X = angelica,
Y = lucas.