Sistemas expertos

Solo disponible en BuenasTareas
  • Páginas : 12 (2852 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de diciembre de 2010
Leer documento completo
Vista previa del texto
Guía de Uso Básico de Prolog
1. Prolog es un lenguaje conversacional
Al contrario que la mayoría de los lenguajes de programación, Prolog es un lenguaje conversacional; es decir, el sistema Prolog mantiene un diálogo continuo con el programador desde el inicio de la sesión hasta el final de la misma. Este diálogo toma generalmente la forma de un interrogatorio, a lo largo del cual elprogramador planteará preguntas al sistema Prolog. Por su parte, el sistema Prolog responderá cada una de las preguntas formuladas por el programador en la medida en que esto sea posible. Prolog le indica al programador que está esperando a que éste le formule una pregunta mostrando en pantalla el siguiente símbolo
?-

Tras este símbolo, el programador puede teclear una pregunta (terminada en un punto) ypulsar el retorno de carro. Con ello, el programador solicita al sistema Prolog que responda a la pregunta recién formulada. Una vez procesada la pregunta el sistema Prolog mostrará en pantalla la respuesta correspondiente. Por ejemplo, si queremos preguntar a Prolog si 5 es igual a 2+3 podemos teclear la pregunta
?- 5 is 2+3. Yes

Después de pulsar el retorno de carro, Prolog comprobará queefectivamente 2 y 3 suman 5 y, por lo tanto, responderá afirmativamente (Yes). Prolog puede dar también respuestas negativas a las preguntas
?- 1 is 1+1. No

Es importante recordar que todas las preguntas formuladas a Prolog deben terminar en un punto. Si se olvida incluir el punto, por más veces que se presione retorno de carro, Prolog considerará que la pregunta no está formulada en sutotalidad y, por lo tanto, seguirá esperando a que se termine de formular la pregunta. Por ejemplo, si olvidamos teclear el punto en la pregunta
?- 5 is 2+3 |

Prolog mostrará el símbolo |, indicando que está esperando a que se termine de formular la pregunta, para lo que basta teclear un punto seguido de un retorno de carro
?- 5 is 2+3 |. Yes

También es posible que cometamos algún error alteclear una pregunta. Como veremos más Guía de Uso Básico de Prolog / 1

adelante, las preguntas son realmente términos Prolog y deben ajustarse a una sintaxis formal concreta. Si la pregunta en cuestión no es un término Prolog correcto, habremos cometido un error sintáctico. Afortunadamente, Prolog es capaz de detectar tales errores y nos avisará que no entiende la pregunta formulada. Por ejemplo,si al formular la pregunta anterior olvidamos teclear el operador de suma (+)
?- 5 is 2 3. ERROR: Syntax error: Operator expected ERROR: 5 is 2 ERROR: ** here ** ERROR: 3 .

el sistema Prolog nos advierte de que hay un error sintáctico (syntax error), mostrando la pregunta recién formulada y el punto en que se encuentra el error (** here **).

2. Base de conocimiento de Prolog
Para respondera las preguntas formuladas por el programador, Prolog consulta una base de conocimiento. Al iniciar una sesión Prolog, esta base de conocimiento almacena un conocimiento básico que incluye, entre otras cosas, conceptos y definiciones de la aritmética de los números naturales. Este conocimiento permite a Prolog responder correctamente las siguientes preguntas:
?- 5 is 2+3. Yes ?- 1 is 1+1. NoObviamente, Prolog no es capaz de responder cualquier pregunta que le formulemos. Por ejemplo, si le preguntamos a Prolog si el pato Lucas es un pato
?- esPato(lucas). ERROR Undefined predicate `esPato/1'

Prolog nos responderá que no sabe determinar si algo es o no un pato, pues su base de conocimiento no incluye información acerca de los patos. Formalmente, lo que ocurre es que el predicadológico ‘esPato/1’ no está definido (undefined predicate). A lo largo de la conversación mantenida con el programador, Prolog no sólo es capaz de responder a ciertas preguntas que se le formulen, sino que es también capaz de aprender sobre aquello que no sabe. Durante la sesión, es posible ampliar esta base de conocimiento añadiendo definiciones de conceptos sobre los que Prolog no sabe nada (como...
tracking img