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:

  1. Ana e Bruno são casados e gostam de vinho verde?
  2. Que bebida combina com salmão?
  3. 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.”

  1. Use Prolog para determinar tudo o que come o Silvester?
  2. 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:

  1. 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).
  1. 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).
  1. 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).

Entradas relacionadas: