3. 3
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
TEMA 4.1
ENTORNO GRAFICO
DE VISUAL
EN PROLOG
https://www.visual-prolog.com/link/pe.php
5. 5
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
•Visual Prolog, es un entorno de desarrollo para Sistemas
Expertos, basado en programación lógica, utilizando el
mecanismo de encadenamiento hacia atrás, para realizar el
proceso de razonamiento.
•En Visual Prolog (VP), no es necesario programar el proceso de
razonamiento, ya que se encuentra preimplementado, por lo que
solo se debe alimentar al sistema de la experiencia, es decir, del
conocimiento del experto humano, para la construcción de la
Base de Conocimiento (BC) del Sistema Experto (SE) desarrollado
•VP, permite el desarrollo de aplicaciones tanto a nivel de consola
como de Interfaz Grafica (GUI)
6. 6
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Hemos usado ya la variable anónima, representada con un guion
bajo (_), que permite ignorar el valor capturado por el predicado
readChar(), ya que para el caso no es de interés (Freno)
7. 7
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Asimismo, se utilizo el
predicado corte(!) el
cual evita que el motor
de inferencia de VP
ejecute la otra
implementación del
predicado run (ya que
esta solo se debería
activar cuando la
primera implementación
run falle)
run() :- % Primer RUN
write(“Escriba un departamento: “),
Dpto=readLine(),
capital(Dpto, Capi),
write(“La capital de “, Dpto, “ es :“, Capi),
_=readChar(),
!.
run() :- % Segundo RUN
write(“Dpto no encontrado”),
_=readChar().
8. 8
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
EJEMPLO 6: Desarrollar una aplicación que muestre las capitales de
los departamentos de la Base de Conocimientos, enviando un mensaje
de culminación al terminar la lista
11. 11
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
El predicado “fail”
(opuesto de la
función corte “!”)
obliga a VP a
realizar
backtraking,
teniendo que
ejecutar todas las
implementaciones
de una regla en
particular
12. 12
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
El predicado “nondeterm” modifica la naturaleza
determinística que por defecto posee una regla de
conocimiento, es decir, cuando se declara una regla
de conocimiento, VP siempre espera que se
construyan por lo menos 2 implementaciones,
donde si la primera falla se ejecuta la siguiente. De
allí que cuando no se desea construir otra
implementación de una regla, se utiliza el
predicado “nondeterm”
13. 13
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
EJEMPLO 7: Desarrollar una aplicación ND que muestre las capitales
de los departamentos de la Base de Conocimientos, enviando un
mensaje de culminación al terminar la lista
16. 16
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Existen aun muchos elementos por analizar en lo
que respecta al modo consola pero, por cuestiones
de tiempo, vamos a iniciar lo que es nuestra
incursión en el modo grafico de este lenguaje, en
cumplimiento con lo establecido por la universidad
17. 17
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
TEMA 4.1
ENTORNO GRAFICO
DE VISUAL
EN PROLOG
https://www.visual-prolog.com/link/pe.php
19. 19
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Para utilizar el modo GUI (Interfaz Grafica de
Usuario) de VP, debemos al momento de crear un
nuevo programa elegir como tipo de proyecto MDI
(Multi Document Interface), luego dejamos que el
sistema cree la aplicación base normalmente
21. 21
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Podran darse cuenta que aparecen algunos
elementos nuevos:
• 2 carpetas:
• AboutDialog
• TaskWindow
• 2 líneas de código (taskWindow)
• New
• Show
22. 22
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Para personalizar el
menú de opciones
por defecto de VP
de la aplicación
creada, hacemos
doble click en el
archivo
TaskMenu.mnu
25. 25
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Accedemos a TaskWindow para comenzar a crear el código de
la opción &newtF7 y hacemos doble click en id_file_new
26. 26
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Se abrirá el archivo TaskWindow.pro el cual modificaremos tal
como se indica en la imagen
27. 27
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
No olvide añadir la librería stdIO en la clausula
open al principio del archivo, para evitar errores en
tiempo de ejecución
28. 28
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Para probarlo
iremos a:
FILE NEW
Debiendo aparecer
en la ventana de
mensajes:
HOLA MUNDO
31. 31
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Para personalizar el
menú vamos a
TaskWindow.win y
en el menú
contextual (botón
derecho)
seleccionamos
atributos
33. 33
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
APARIENCIA ORIGINAL DE LA
APLICACIÓN CONSTRUIDA
APARIENCIA DESPUES DE
ELIMINAR EL MENU DE PROYECTO
36. 36
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
LOS BOTONES DE MINIMIZAR Y
MAXIMIZAR HAN DESAPARECIDO, SE
MUESTRA EL SCROLL VERTICAL Y
HORIZONTAL E INICIA MAXIMIZADA
38. 38
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
Para que no aparezca la ventana de mensajes al inicio de la
aplicación, cambiar en TaskWindow.pro
44. 44
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
La aplicación ahora solo tiene los 2 menús deseados pero estos
aun no hacen nada
46. 46
Escuela Ingeniería Sistemas
SISTEMAS EXPERTOS
Prof.: LUIS ENRIQUE RIVAS (2020-2)
La aplicación ahora solo tiene los 2 menús deseados pero estos
aun no hacen nada
Teniendo en cuenta que un algoritmo es un método para resolver problemas, una vez analizado el mismo se precisa diseñar un algoritmo que indique claramente los pasos a seguir para resolverlo.