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.


Kauan


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.


Victor


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