Representação de Conhecimento em Prolog: Exemplos Práticos
Classificado em Língua e literatura
Escrito em em português com um tamanho de 3,99 KB
1. Representação de Conhecimento – Comidas e Bebidas
Escreva frases em Prolog que representem o seguinte conhecimento:
- peru, frango, salmão, solha, cerveja, vinho verde, vinho maduro, Ana, António, Barbara, Bruno
- gosta, casado, combina
Escreva as seguintes questões em Prolog:
- Ana e Bruno são casados e gostam de vinho verde?
- Que bebida combina com salmão?
- Que comidas combinam com vinho verde?
Base de Factos e Regras Propostas:
gosta(bruno,peru).
gosta(bruno,frango).
gosta(ana,milho_verde).
gosta(ana,peru).
casado(ana,bruno).
casado(barbara,antonio).
combina(peru,cerveja).
combina(peru,vinho_maduro).
combina(salmão,cerveja).
combina(salmão,peru).
combina(frango,cerveja).
combina(peru,vinho_verde).
combina(vinho_verde, salmão).
bebida(vinho_verde).
bebida(vinho_maduro).
bebida(cerveja).
comida(salmão).
comida(peru).
Questões em Prolog:
a) casado(ana,bruno),gosta(ana,milho_verde),gosta(bruno,milho_verde).
b) (combina(X,salmão);combina(salmão,X)),bebida(X).
c) (combina(X,vinho_verde);combina(vinho_verde,X)),comida(X).
2. Representação de Conhecimento – Tweety e Silvester
Traduza as seguintes frases para Prolog:
“Tweety é um pássaro. Goldie é um peixe. Molie é uma minhoca. Pássaros gostam de minhocas. Gatos gostam de peixes. Gatos gostam de pássaros. Amigos gostam uns dos outros. O meu gato é meu amigo. O meu gato come tudo o que gosta. O meu gato chama-se Silvester.”
- Use Prolog para determinar tudo o que come o Silvester?
- A resposta é razoável? Se não for, verifique se o problema está na especificação original ou na sua tradução para Prolog, corrija e execute novamente.
Base de Factos e Regras Propostas:
eh_um(tweety,passaro).
eh_um(goldie,peixe).
eh_um(molie,minhoca).
eh_um(silvester,gato).
gosta(passaro,minhoca).
gosta(gato,peixe).
gosta(gato,passaro).
gosta(gato,luiz).
comida(peixe).
comida(passaro).
amigo(X,Y):- gosta(X,Y).
come(X,Y):- eh_um(X,Z),gosta(Z,Y),comida(Y).
Questões em Prolog:
a) come(silvester,X).
Considerações para a Questão b):
Para a questão b), que pede para verificar a razoabilidade da resposta e corrigir se necessário, o documento original apresenta uma repetição de factos e regras. Mantendo o conteúdo original, estas são as declarações fornecidas para análise:
b)
comida(peixe).
comida(passaro).
come(X,Y):- eh_um(X,Z),gosta(Z,Y),comida(Y).
3. Representação de Conhecimento – Alunos e Professores
Considere a seguinte base de factos exemplo:
Base de Factos:
aluno(joao, paradigmas).
aluno(maria, paradigmas).
aluno(joel, lab2).
aluno(joel, estruturas).
frequenta(joao, feup).
frequenta(maria, feup).
frequenta(joel, ist).
professor(carlos, paradigmas).
professor(ana_paula, estruturas).
professor(pedro, lab2).
funcionario(pedro, ist).
funcionario(ana_paula, feup).
funcionario(carlos, feup).
Escreva as seguintes regras em Prolog:
- Quem são os alunos do professor X?
Regra e Questão Propostas:
aluno_professor(X,Z):-aluno(X,Y),professor(Z,Y).
aluno_professor(X,carlos).
- Quem são as pessoas da universidade X? (alunos ou docentes)
Regra e Questão Propostas:
pessoa(Y,X):- frequenta(Y,X);funcionario(Y,X).
pessoa(X,feup).
- Quem é colega de quem? Se aluno: é colega se for colega de disciplina ou colega de curso ou colega de universidade. Se professor: se for professor da mesma universidade.
Regra e Questão Propostas:
colega(X,Y):- (aluno(X,Z),aluno(Y,Z),X\=Y);(funcionario(X,K),funcionario(Y,K),X\=K).
colega(maria,X).