Akinator - Exemplo com Prolog

Base de Conhecimento

sexo(diego,masculino).
sexo(rebeca,feminino).
sexo(isabela,feminino).
sexo(raquel,feminino).
sexo(gabriel,masculino).
sexo(karlos,masculino).
sexo(lucas,masculino).
sexo(highlander,masculino).
sexo(emilly,feminino).
sexo(nycolas,masculino).
sexo(danilo,masculino).
sexo(kauan,masculino).
sexo(sebanias,masculino).
sexo(victor,masculino).
local(diego,janela).
local(rebeca,janela).
local(isabela,janela).
local(raquel,janela).
local(gabriel,centro).
local(lucas,centro).
local(karlos,centro).
local(highlander,centro).
local(emilly,corredor).
local(nycolas,corredor).
local(sebanias,corredor).
local(danilo,corredor).
local(kauan,corredor).
local(victor,corredor).
usaoculos(diego,nao).
usaoculos(rebeca,nao).
usaoculos(isabela,sim).
usaoculos(raquel,nao).
usaoculos(gabriel,sim).
usaoculos(karlos,sim).
usaoculos(highlander,sim).
usaoculos(emilly,sim).
usaoculos(nycolas,nao).
usaoculos(sebanias,nao).
usaoculos(victor,nao).
usacabelo(diego,curto).
usacabelo(rebeca,longo).
usacabelo(isabela,longo).
usacabelo(raquel,longo).
usacabelo(gabriel,curto).
usacabelo(karlos,curto).
usacabelo(highlander,longo).
usacabelo(lucas,curto).
usacabelo(emilly,longo).
usacabelo(nycolas,curto).
usacabelo(sebanias,curto).
usacabelo(danilo,curto).
usacabelo(victor,curto).
estuda(diego,nao).
estuda(rebeca,sim).
estuda(isabela,sim).
estuda(raquel,nao).
estuda(gabriel,sim).
estuda(lucas,sim).
estuda(highlander,nao).
estuda(emilly,sim).
estuda(nycolas,sim).
estuda(sebanias,nao).
estuda(danilo,sim).
estuda(kauan,sim).
estuda(victor,nao).
idade(diego,20).
idade(rebeca,17).
idade(isabela,17).
idade(raquel,23).
idade(gabriel,17).
idade(karlos,17).
idade(lucas,16).
idade(highlander,22).
idade(emilly,16).
idade(nycolas,16).
idade(sebanias,20).
idade(danilo,16).
idade(kauan,17).
idade(victor,17).
bigode(diego).
bigode(gabriel).
bigode(sebanias).

Exemplos de Comandos

Alguns comandos no Prolog para explorar esta base de conhecimento:

DIEGO

sexo(X,masculino),local(X,janela).



REBECA

sexo(X, feminino),local(X, janela), usaoculos(X, nao),estuda(X, sim).



ISABELA

sexo(X, feminino),local(X, janela), usaoculos(X, sim).



RAQUEL

sexo(X, feminino),local(X, janela), usaoculos(X, nao),estuda(X, nao).



LUCAS

sexo(X, masculino), local(X, centro), idade(X, Y), Y<17.



GABRIEL

sexo(X, masculino), local(X, centro), bigode(X).



KARLOS

sexo(X, masculino), local(X, centro), idade(X, Y), Y>16, not(bigode(X)).



HIGHLANDER

sexo(X, masculino), local(X, centro), usacabelo(X, longo).



EMILLY

sexo(X, feminino), local(X, corredor).



NYCOLAS

sexo(X, masculino), local(X, corredor), estuda(X, sim), idade(X, Y), Y<17.



SEBANIAS

sexo(X, masculino), local(X, corredor), bigode(X).



DANILO

sexo(X, masculino), local(X, corredor), estuda(X, sim), idade(X, Y), Y<17.



KAUAN

sexo(X, masculino), local(X, corredor), estuda(X, sim), idade(X, Y), Y=17.



VICTOR

sexo(X, masculino), local(X, corredor), estuda(X, nao), idade(X, Y), Y=17.