La lógica fue uno de los primeros formalismos usados por los investigadores de IA para representar estructuras de conocimiento en ordenadores digitales. El propósito de usar la lógica como medio de representación de conocimiento es aportar una notación que sea lo suficientemente versátil para cubrir los conceptos deseados y al mismo tiempo sea capaz de soportar procesos deductivos.
John McCarthy (1968) fue uno de los primeros investigadores en abogar por el uso de la lógica para la representación del conocimiento. En sus propias palabras un programa
( ) has common sense if it automatically deduces for itself a sufficiently wide class of immediate consequences of anything it is told and what it already knows.
(McCarthy 1968:15)
Un formalismo de representación basado en la lógica permite expresar muchos tipos de generalizaciones, incluso sin disponer de una descripción completa de la situación. El uso de la deducción también permite efectuar consultas lógicamente complejas a una base de conocimiento que contenga dichas generalizaciones, incluso cuando una consulta no pueda ser evaluada directamente (Cohen & Feigenbaum 1982).
Los lenguajes lógicos son declarativos, como opuestos a los lenguajes procedimentales. En un lenguaje de programación lógica típico, de los que Prolog es sin duda el mejor representante, cada aserción o sentencia expresa una proposición que puede ser representada por una fórmula lógica. Las proposiciones son hechos o reglas. Nuevos hechos pueden ser evaluados frente a otros hechos existentes dados por verdaderos. Las reglas matemáticas de la lógica que pueden reducir sentencias textuales a representaciones simbólicas existen desde hace mucho tiempo, aunque tan sólo desde 1965 contamos con el denominado principio de resolución, que mostraba cómo estas representaciones podían ser integradas en un ordenador digital para su análisis. El software que utiliza el principio de resolución trabaja con cláusulas lógicas, y utiliza la unificación21 para intentar identificar las partes derecha e izquierda de las cláusulas de una forma lógica, investigando los valores de la variable que permitirá una identificación correcta.
No cabe duda de que este tipo de representación sería deseable en un sistema de información que pretenda analizar lenguaje natural. Especialmente, nos interesaría un sistema de deducción lógica que fuese capaz de gestionar razonamiento no-monotónico. Los razonamientos de la lógica clásica son monótonicos, es decir, una vez se ha aceptado un postulado, dicho postulado no puede ser contradicho por otro más tarde. Sin embargo, la no-monotonicidad es un aspecto clave en el razonamiento humano, y por tanto un gran problema en la IA. La idea principal en los formalismos lógicos que intentan hacer frente a este tipo de situaciones es organizar el conocimiento jerárquicamente, de forma que la cadena de razonamientos que lleva a una determinada conclusión puede ser recuperada fácilmente.
La necesidad de razonamiento no-monotónico en el análisis del lenguaje natural es evidente, y muchos de los formalismos gramaticales actuales lo han tratado de incorporar (GPSG, LFG, HPSG). Los sistemas de KR basados en redes IS-A y marcos, que estudiaremos a continuación también necesitan este tipo de razonamiento. El tipo de estructuración del léxico que nos proponemos también se puede beneficiar enormemente de este tipo de razonamiento. En general, cualquier teoría gramatical altamente lexicalizada, requiere de mecanismos no-monótonicos para la correcta implementación de mecanismos de herencia (Bouma 1992). Si la herencia es monotónica, no podríamos especificar excepciones a la recepción de propiedades heredadas de niveles superiores en una jerarquía, ya sea de conceptos ontológicos como la que nosotros proponemos o de objetos léxicos,
No nos extenderemos en los mecanismos lógicos que facilitan este tipo de razonamiento porque no es el objeto del presente trabajo. Lo que nos interesa en realidad es la implementación que de ellos hacen los esquemas de representación que vamos a estudiar en el siguiente apartado.
Para resumir el papel de la lógica con respecto a la representación del conocimiento, presentamos el siguiente modelo (Hodgson 1991:26):
Existe un lenguaje L, de expresiones bien formadas, que son las oraciones del lenguaje, con las que se expresan aseveraciones sobre el mundo, de tal forma que este lenguaje es el que "representa" el conocimiento sobre el mundo. La representación específica viene dada por un marco (semántico), que es una colección de valores de verdad para los predicados del lenguaje aplicados a un conjunto determinado de variables. El marco debe respetar los axiomas de la lógica. Las conclusiones se deben extraer en base a las reglas de inferencia de la lógica seleccionada como la mejor para modelar la situación.
La siguiente cita de Montague (1974:222) resume bien su idea sobre el papel de la lógica en el análisis del lenguaje natural:
There is in my opinion no important theoretical difference between natural languages and the artificial languages of logicians; indeed, I consider it possible to comprehend the syntax and semantics of both kinds of language within a single, natural and mathematically precise theory.
La importancia real que tiene la lógica es que, como veremos a continuación, todos los sistemas de representación del conocimiento, sin excepción, hacen uso de ella para garantizar la coherencia interna de sus estructuras de datos. Las palabras de Webber (1986:46), pueden resumir el papel de la lógica en el campo del procesamiento del lenguaje natural:
(...) logic is the tool of choice in a wide range of efforts aimed at extending the scope and quality of natural-language interactions with machines. Why this is true seems clear: logic is our best tool for reasoning, and reasoning is needed in both analyzing and generating purposeful utterances.
NOTAS
Anterior I Siguiente I Índice capítulo 4 I Índice General