Análise da Questão de Lógica de Predicados
A questão aborda a representação formal de sentenças naturais utilizando a sintaxe da Lógica de Predicados, especificamente a gramática comum em linguagens de programação lógica como Prolog.
Conceitos Fundamentais
Para responder corretamente, é necessário entender três pilares da representação lógica neste contexto:
- Predicados e Argumentos: Um predicado descreve uma relação. A sintaxe padrão é
nome_predicado(argumento1, argumento2, ...). A convenção geral é colocar o sujeito (quem realiza a ação) como o primeiro argumento e o objeto (quem sofre a ação) como o segundo.
- Para "Laura gosta de sorvete", a forma correta é:
gosta(laura, sorvete).
- Indicador de Consulta: Em sistemas de lógica interativa, para fazer uma pergunta ao sistema (uma query), utiliza-se o prefixo
?-. Isso sinaliza ao computador que se deseja saber se a expressão seguinte é verdadeira. - Operadores Lógicos: A frase original contém a conjunção "e" ("Laura gosta... e Carlos gosta..."). Em linguagens como Prolog, a vírgula
, é utilizada para representar a conjunção lógica (AND).
Análise das Alternativas
Vamos examinar cada opção baseada nas regras acima:
- Alternativa A:
? - gosta(sorvete, laura) e gosta(torta, carlos) - Incorreta. Embora inicie com
? -, ela inverte a ordem dos argumentos (sorvete, laura), sugerindo que "sorvete gosta de Laura", o que viola a lógica semântica padrão. Além disso, usa a palavra "e" explicitamente, o que é menos comum na sintaxe pura de Prolog (usa-se vírgula). - Alternativa B:
gosta(laura, sorvete), gosta(carlos, torta)? - Incorreta. Embora contenha os predicados corretos, falta o indicador de início de consulta
?-. O símbolo de interrogação no final não é o padrão para iniciar uma linha de comando nesta notação. - Alternativa C:
? - gosta(laura, sorvete), gosta(carlos, torta) - Correta.
- Inicia com
? - (indica pergunta). - Usa a ordem correta de argumentos:
gosta(sujeito, objeto). - Utiliza a vírgula
, para unir as duas condições, representando o "e" da frase original. - Alternativa D:
? - gosta(laura, sorvete) ou gosta(carlos, torta) - Incorreta. Utiliza o conectivo "ou", enquanto a frase original exige a conjunção "e".
- Alternativa E:
gosta(laura, sorvete), (carlos, torta)? - Incorreta. O segundo termo
(carlos, torta) não possui um predicado associado (falta a palavra "gosta").
Conclusão
A alternativa que traduz corretamente a estrutura lógica da frase "Será que Laura gosta de sorvete e Carlos gosta de torta?" é a que respeita a ordem sujeito-objeto, inicia a consulta com o prefixo adequado e utiliza a vírgula como operador de conjunção.
Alternativa C