O problema a ser resolvido é um famoso problema de logica conhecido como Zebra Puzzle.
A sua primeira versão surgiu na Life International em 1962 da seguinte forma:
- Existem cinco casas.
- O Inglês vive na casa vermelha.
- O Espanhol tem um cachorro.
- Café é a bebida da casa verde.
- O Ucraniano bebe chá.
- A casa verde está à direita da casa marfim.
- O fumante de Old Gold tem caramujos de estimação.
- Cigarros Kools são consumidos na casa amarela.
- Leite é a bebida da casa do meio.
- O norueguês vive na primeira casa.
- O homem que fuma Chesterfields vive na casa vizinha do homem que tem uma raposa.
- Kools é o cigarro da casa vizinha à casa onde existe um cavalo.
- O fumante de Lucky Strike bebe suco de laranja.
- O Japonês fuma Parliaments.
- O Norueguês é vizinho da casa azul.
A partir dessa base de conhecimento iremos utilizar prolog para encontrar as repostas para seguinte pergunta .
- Quem bebe água?
- Quem é o dono da zebra?
Basta abrir um interpretador de prolog, como o swi-prolog, e importar a base de conhecimento.
- Para descobrir a resposta com a tabela de conhecimento completa, basta executar o seguinte comando:
?- casas(Casas).
- Para descobrir quem é o dono da zebra:
?- donoZebra(Quem).
- Para descobrir quem bebe água:
?- bebeAgua(Quem).