Está en la página 1de 7

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA

FACULTAD DE ING. MINAS, GELOGIA Y CIVIL


ESCUELA DE FORMACIN PROFESIONAL DE INGENIERA DE SISTEMAS

POGRAMACIN EN PROLOG
--------------------------------------------------------------------------------------------------------------------------Docente del curso: ING KAREN CARRION DOMINGUEZ

LABORATORIO 01
PROGRAMACIN LGICA
OBJETIVOS
Es captar el conocimiento del experto y traducirlo en un conjunto de reglas que el sistema
experto lo entender y de este modo simulamos el conocimiento que posee el experto en
determinada rea.
El principal objetivo es hacer que la maquina solucione problemas casi con la misma
habilidad que lo hace un ser humano.
INTRODUCCION
Prolog es un lenguaje de programacin declarativo basado en la lgica de primer orden,
particularmente en una restriccin de la forma clausal de la lgica. Fue desarrollado por Alain
Colmerauer en 1972 en la Universidad de Marseille, Francia. Usa como regla de inferencia el
principio de resolucin propuesto por Robinson en 1965. La representacin del dominio se
realiza a travs de hechos y reglas.
Prolog es un lenguaje de programacin diseado para representar y utilizar el conocimiento que
se tiene sobre un determinado dominio. Los programas en Prolog responden preguntas sobre el
tema del cual tienen conocimiento.
Forma parte de lo que se conoce como programacin declarativa. En lenguajes tradicionales se
indica como resolver un problema, en la programacin lgica se establecen hechos reales y
reglas para as no saber como resolver el problema, sino que hacer para resolverlo.
La popularidad de este lenguaje se debe a su capacidad de deduccin y adems es un lenguaje
fcil de usar por su semntica.

------------------------------------------------------------------------------------------------------------------------------------------------------------

SISTEMAS EXPERTOS

II-524

-1-

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA


FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERA DE SISTEMAS

POGRAMACIN EN PROLOG
--------------------------------------------------------------------------------------------------------------------------Docente del curso: ING KAREN CARRION DOMINGUEZ

DESCRIPCIN
Prolog es un lenguaje de programacin simple, pero poderoso. Se basa en nociones
matemticas de relaciones de inferencia. Es un lenguaje declarativo e interpretado, esto quiere
decir que el lenguaje se usa para representar conocimientos sobre un determinado dominio y
las relaciones entre objetos de ese dominio. Un programa en Prolog consiste de una base de
datos de relaciones lgicas y detalles que se cumplen para la aplicacin. Dicha base de datos no
tiene una estructura impuesta, ni un procedimiento o clase principal. Los datos y relaciones de
un programa en Prolog se escriben en un nico archivo, el cual es consultado por el programa
cuando se le hace una pregunta.
Escribir un programa en Prolog consiste en declarar el conocimiento disponible acerca de los
objetos, adems de sus relaciones y sus reglas. Si existe ms de una solucin, Prolog hace
backtracking para encontrar soluciones distintas. El propio sistema es el que deduce las
respuestas a las preguntas que se le plantean, dichas respuestas las deduce del conocimiento
obtenido por elconjunto de reglas dadas. La estructura de un programa en Prolog es lgica y
directa.
ESTRUCTURA DE UN PROGRAMA EN PROLOG
La sintaxis Prolog incluye:
Hechos: es un hecho del lenguaje cotidiano. En lenguaje normal, una proposicin puede ser
hace calor.
Reglas: las capacidades del programa. Estas son consultadas al hacer una consulta para
verificar su validez o invalidez.
Variables: Representan objetos que el mismo Prolog determina. Una variable puede estar
instanciada o no instanciada.
Consultas: es la accin de hacerle una pregunta al programa sobre la informacin contenida
en la base de datos. Una pregunta sencilla podra ser: ?- 'Hace Calor'. Una respuesta podra ser:
si, caso contrario de acuerdo a la informacin, responde: no.

------------------------------------------------------------------------------------------------------------------------------------------------------------

SISTEMAS EXPERTOS

II-524

-2-

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA


FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERA DE SISTEMAS

POGRAMACIN EN PROLOG
--------------------------------------------------------------------------------------------------------------------------Docente del curso: ING KAREN CARRION DOMINGUEZ

Instalacion Swi prolog

Ejecutar el w32pl5617:

------------------------------------------------------------------------------------------------------------------------------------------------------------

SISTEMAS EXPERTOS

II-524

-3-

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA


FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERA DE SISTEMAS

POGRAMACIN EN PROLOG
--------------------------------------------------------------------------------------------------------------------------Docente del curso: ING KAREN CARRION DOMINGUEZ
Indicar la ruta de instalacin

Instalar

------------------------------------------------------------------------------------------------------------------------------------------------------------

SISTEMAS EXPERTOS

II-524

-4-

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA


FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERA DE SISTEMAS

POGRAMACIN EN PROLOG
--------------------------------------------------------------------------------------------------------------------------Docente del curso: ING KAREN CARRION DOMINGUEZ

BASE DE CONOCIMIENTO DE PROLOG


Al contrario que la mayora de los lenguajes de programacin, Prolog es un lenguaje
conversacional; es decir, el sistema Prolog mantiene un dilogo continuo con el programador
desde el inicio de la sesin hasta el final de la misma. Este dilogo toma generalmente la forma
de un interrogatorio, a lo largo del cual el programador 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 smbolo
?Tras este smbolo, el programador puede teclear una pregunta (terminada en un punto) y
pulsar el retorno de carro. Con ello, el programador solicita al sistema Prolog que responda a la
pregunta recin 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
Despus de pulsar el retorno de carro, Prolog comprobar que efectivamente 2 y 3 suman 5 y,
por lo tanto, responder afirmativamente (Yes). Prolog puede dar tambin respuestas negativas
a las preguntas
?- 1 is 1+1.
No

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'
------------------------------------------------------------------------------------------------------------------------------------------------------------

SISTEMAS EXPERTOS

II-524

-2-

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA


FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERA DE SISTEMAS

POGRAMACIN EN PROLOG
--------------------------------------------------------------------------------------------------------------------------Docente del curso: ING KAREN CARRION DOMINGUEZ

PREDICADOS SOBRE DIRECTORIOS Y FICHEROS


El predicado pwd/0.
El predicado pwd imprime el directorio de trabajo actual. Por ejemplo, si nuestro directorio de
trabajo es c:\prolog\marisol (en notacin MS-DOS), al preguntar a Prolog por el directorio
actual obtenemos
?- pwd.
c:/prolog/marisol
es decir, el directorio actual en notacin Prolog.
El predicado ls/0.
El predicado ls lista el contenido del directorio de trabajo actual (es equivalente al comando
MS-DOS dir). Por ejemplo, si el directorio actual contiene los ficheros 'patos.pl' y 'familia.pl' al
ejecutar ls obtenemos
?- ls.
patos.pl familia.pl
El predicado cd/1.
Finalmente, es posible cambiar el directorio actual mediante el predicado cd (equivalente al
comando MS-DOS cd). El nombre del nuevo directorio debe ser una ruta (absoluta o relativa)
en
notacin Prolog, encerrada entre comillas simples. Por ejemplo
?- cd('../pablo').
establecer c:\prolog\pablo como nuevo directorio de trabajo, mientras que
?- cd('c:/prolog/karen').
Reestablece c:/prolog/karen como directorio de trabajo.

------------------------------------------------------------------------------------------------------------------------------------------------------------

SISTEMAS EXPERTOS

II-524

-3-

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA


FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERA DE SISTEMAS

POGRAMACIN EN PROLOG
--------------------------------------------------------------------------------------------------------------------------Docente del curso: ING KAREN CARRION DOMINGUEZ

CREACIN, EJECUCIN, MODIFICACIN Y CONSULTA DE PROGRAMAS PROLOG

Podemos expresar este conocimiento en Prolog mediante 3 hechos (verdades incondicionales)


tal y como sigue:

------------------------------------------------------------------------------------------------------------------------------------------------------------

SISTEMAS EXPERTOS

II-524

-4-

También podría gustarte