14
Sistema Experto: Orientación Vocacional Apreciado Rivera Jhefersown Estudiante Ing. Informática Universidad Nacional de Trujillo [email protected] Asesor: Arturo Díaz Pulido Resumen Implementaremos un sistema experto usando Prolog, cuyo objetivo será aconsejar a un usuario cliente sobre la mejor opción que puede tomar a la hora de elegir qué carrera estudiar. Para ello primero haremos una breve descripción sobre los temas a tratar en nuestro proyecto y luego desarrollaremos el SE en prolog. Términos generales Algoritmos, Diseño, Implementación Palabras Clave Prolog, sistema experto, orientación vocacional, preguntas 1. Introducción Los sistemas expertos son llamados así porque emulan el razonamiento de un experto en un dominio concreto, y en ocasiones son usados por éstos. Con los sistemas expertos se busca una mejor calidad y rapidez en las respuestas, dando así lugar a una mejora de la productividad del propio experto al usar este tipo de sistemas informáticos. Castillo Farfán George Estudiante Ing. Informática Universidad Nacional de Trujillo [email protected] 1.1 Usos de un SE Un sistema experto es muy eficaz cuando tiene que analizar una gran cantidad de información. Existen sistemas expertos para diagnosticar y depurar, los cuales formulan listas de preguntas con

Sistema Experto Orientacion Vocacional

Embed Size (px)

Citation preview

Sistema Experto: Orientación VocacionalApreciado Rivera Jhefersown

Estudiante Ing. InformáticaUniversidad Nacional de Trujillo

[email protected]

Asesor: Arturo Díaz Pulido

Resumen

Implementaremos un sistema experto usando Prolog, cuyo objetivo será aconsejar a un usuario cliente sobre la mejor opción que puede tomar a la hora de elegir qué carrera estudiar. Para ello primero haremos una breve descripción sobre los temas a tratar en nuestro proyecto y luego desarrollaremos el SE en prolog.

Términos generales Algoritmos, Diseño, Implementación

Palabras ClaveProlog, sistema experto, orientación vocacional, preguntas

1. Introducción

Los sistemas expertos son llamados así porque emulan el razonamiento de un experto en un dominio concreto, y en ocasiones son usados por éstos. Con los sistemas expertos se busca una mejor calidad y rapidez en las respuestas, dando así lugar a una mejora de la productividad del propio experto al usar este tipo de sistemas informáticos.

Castillo Farfán GeorgeEstudiante Ing. Informática

Universidad Nacional de [email protected]

1.1 Usos de un SE

Un sistema experto es muy eficaz cuando tiene que analizar una gran cantidad de información.

Existen sistemas expertos para diagnosticar y depurar, los cuales formulan listas de preguntas con las que obtienen los datos que son necesarios para llegar a una conclusión

Para organizar, existen diversos sistemas expertos que organizan los datos utilizando la información ingresada día a día y la forma en la que se acomoda.

Los sistemas expertos sobre meteorología y la inversión en bolsa son ejemplos de sistemas expertos que son buenos para predecir resultados a futuros a partir del conocimiento que tienen.

1.2 Arquitectura y funcionamiento de un sistema experto

1.2.1 Base de Conocimientos

Contiene el conocimiento especializado extraído del experto en el dominio. Una de las características más importantes es que la base de conocimientos es independiente del mecanismo de inferencia que se utiliza para resolver los problemas. De esta

forma se pueden añadir reglas nuevas, eliminar las antiguas o corregir errores en las existentes.

1.2.2 Base de datosEs una parte de la memoria del

ordenador que se utiliza para almacenar los datos recibidos inicialmente para la resolución de un problema.

1.2.3 Motor de inferenciasEs un programa que controla el

proceso de razonamiento que seguirá el sistema experto, es decir, modela el proceso de razonamiento humano.

1.2.4 Interfaz con el usuarioEs la que permite al usuario

describir el problema en el sistema experto. Interpreta sus preguntas, los comandos, la información ofrecida, etc. Y responde a los cuestionamientos dando explicaciones y justificaciones.

1.2.5 Modulo de explicaciónEstá diseñado para aclarar al

usuario la línea de razonamiento seguida en el proceso de inferencia.

1.2.6 Modulo de adquisiciónPermite que se puedan añadir,

eliminar o modificar elementos de conocimiento.

1.3 Ventajas e Inconvenientes de un Sistema Experto

1.3.1 Ventajas Con el uso de un SE se logran

soluciones más fiables gracias al tratamiento automático de los datos.

Un SE mejor la calidad y confiabilidad al resolver y decidir los problemas más rápidamente.

El uso de un SE permite de muchas maneras el ahorrar tiempo y dinero.

Aunque desaparezca el especialista en ciertos temas, el SE puede almacenar y difundir sus valiosos conocimientos.

Tienen flexibilidad, modularidad, modificabilidad y legibilidad.

1.3.2 Inconvenientes

Su elevado costo de desarrollo No utilizan razonamiento por

analogía. No pueden decidir

inmediatamente algo que aún no ha estudiado.

La complejidad a la hora de representar el conocimiento humano debido a que están limitadas a tratar problemas teniendo información aún incompleta.

1.4 Prolog

1.4.1 Introducción a PrologProlog es un lenguaje de

programación creado para representar y utilizar el conocimiento que se tiene sobre un determinado dominio. Más exactamente, el dominio es un conjunto de objetos y el conocimiento se representa por un conjunto de relaciones que describen las propiedades de los objetos y sus interrelaciones. Un conjunto de reglas que describa estas propiedades y estas relaciones es un programa PROLOG. Una definición más accesible para el usuario común sería:

Prolog es un lenguaje de programación que es usado para resolver problemas

que envuelven objetos y las relaciones entre ellos.

Su definición basada en la lógica formal, permite ejecutar estatutos que no son otra cosa que oraciones de un lenguaje lógico elemental particular de cláusulas. Prolog por su naturaleza muestra una habilidad para describir gramáticas, en particular gramáticas libres de contexto.

ESTRUCTURAUn programa Prolog está formado por una secuencia de enunciados (cláusulas): hechos, reglas y variables.

Lo anterior se detalla a continuación

HechosExpresan relaciones entre objetos.Supongamos que queremos expresar el hecho de que "un coche tiene ruedas". Este hecho, consta de dos objetos, "coche" y "ruedas", y de una relación llamada "tiene".

La forma de representarlo en PROLOG es:

tiene(coche,ruedas).

Algunas características de los hechos son:

Los nombres de objetos y relaciones deben comenzar con una letra minúscula.

Primero se escribe la relación, y luego los objetos separados por comas y encerrados entre paréntesis.

Al final de un hecho debe ir el carácter "." (punto).

El orden de los objetos dentro de la relación es arbitrario, pero debemos ser coherentes a lo largo de la base de hechos.

Reglas

Las reglas se utilizan en Prolog para significar que un hecho depende de uno o más hechos. Es la representación de las implicaciones lógicas del tipo p ---> q (p implica q).

Algunas características son:

Una regla consiste en una cabeza y un cuerpo, unidos por el signo " :- ".

La cabeza esta formada por un único hecho.

El cuerpo puede ser uno o más hechos (conjunción de hechos), separados por una coma (","), que actúa como el "y" lógico.

Las reglas finalizan con un punto (".").

VariablesRepresentan objetos que el mismo PROLOG determina. Una variable puede estar instanciada o no instanciada. Esta instanciada cuando existe un objeto representado por una variable. De este modo, cuando preguntamos “Un coche tiene X ?,”

Prolog busca en los hechos cosas que tiene un coche y respondería:

X = ruedas. Instanciando la variable X con el objeto ruedas.

Los nombres de variables comienzan siempre por una letra mayúscula.

Como ya nombramos las cláusulas haremos el siguiente razonamiento lógico:

tiempo(lluvioso) ----> suelo(mojado)

suelo(mojado)

Que el suelo esté mojado, es una condición suficiente de que el tiempo sea lluvioso, pero no necesaria. Por lo tanto, a partir de ese hecho, no podemos deducir que esté lloviendo (pueden haber regado las calles). La representación correcta en Prolog, sería:

suelo(mojado) :- tiempo(lluvioso).

suelo(mojado).

Cabe señalar que la regla esta "al revés". Esto es así por el mecanismo de deducción hacia atrás que emplea Prolog.

1.4.2 Características de Prolog Basado en lógica y programación

declarativa Produce estilo de programación

orientado a metas No se especifica ‘cómo’ debe

hacerse, sino ‘qué’ debe lograrse(alto nivel)

El programador se concentra más en el conocimiento que en los algoritmos

2. Orientación Vocacional

2.1 Planteamiento y Diseño

1. La idea es realizar un test de orientación vocacional que nos sugiera algunas alternativas de carreras universitarias a elegir de acuerdo a las características demandadas por cada usuario. Para realizar este diseño hemos partido de un diagrama en árbol en que cada nodo tiene una pregunta para responder y eso se imprimirá en pantalla para que el cliente pueda responder y de

acuerdo a lo que él responda, es decir, dependiendo de la opción que él tome, el árbol decidirá hacia donde ir y de qué forma recorrer por los nodos.

El cliente tendrá por cada pregunta, dos opciones de SI o NO para elegir y habrá restricciones cuando elija dos opciones que no concuerden, por ejemplo: Si escoge que es hombre, no puede elegir que es mujer.

2.2 Implementación

esrespuesta('si').

esrespuesta('no').

% AREA I: ARTE Y CREATIVIDAD.

espregunta('Ilustrar, dibujar y animar digitalmente',X):-esrespuesta(X).

espregunta('Tocar un instrumento y componer música',X):-esrespuesta(X).

espregunta('Diseñar logotipos y portadas de una revista',X):-esrespuesta(X).

espregunta('Pintar, hacer esculturas, ilustrar libros de arte, etcétera',X):-esrespuesta(X).

espregunta('Prepararse para ser modelo profesional',X):-esrespuesta(X).

espregunta('Diseñar juegos interactivos electrónicos para computadora',X):-esrespuesta(X).

espregunta('Redactar guiones y libretos para un programa de televisión',X):-esrespuesta(X).

espregunta('Crear campañas publicitarias',X):-esrespuesta(X).

%% AREA II: CIENCIAS SOCIALES.

espregunta('Realizar excavaciones para descubrir restos del pasado',X):-esrespuesta(X).

espregunta('Organizar eventos y atender a sus asistentes',X):-esrespuesta(X).

espregunta('Defender a clientes individuales o empresas en juicios de diferente naturaleza',X):-esrespuesta(X).

espregunta('Investigar las causas y efectos de los trastornos emocionales',X):-esrespuesta(X).

espregunta('Escribir artículos periodísticos, cuentos, novelas y otros',X):-esrespuesta(X).

espregunta('Estudiar la diversidad cultural en el ámbito rural y urbano',X):-esrespuesta(X).

espregunta('Gestionar y evaluar convenios internacionales de cooperación para el desarrollo social',X):-esrespuesta(X).

%% AREA III: ECONOMICA, ADMINISTRATIVA Y FINANCIERA.

espregunta('Seleccionar, capacitar y motivar al personal de una organización/empresa',X):- esrespuesta(X).

espregunta('Planificar cuáles son las metas de una organización pública o privada a mediano y largo plazo',X):- esrespuesta(X).

espregunta('Controlar ingresos y egresos de fondos y presentar el balance final de una institución',X):- esrespuesta(X).

espregunta('Hacer propuestas y formular estrategias para aprovechar las relaciones económicas entre dos países',X):- esrespuesta(X).

espregunta('Elaborar campañas para introducir un nuevo producto al mercado',X):- esrespuesta(X).

espregunta('Supervisar las ventas de un centro comercial',X):- esrespuesta(X).

espregunta('Aconsejar a las personas sobre planes de ahorro e inversiones',X):- esrespuesta(X).

espregunta('Tener un negocio propio de tipo comercial',X):- esrespuesta(X).

espregunta('Organizar un plan de distribución y venta de un gran almacén',X):- esrespuesta(X).

%% AREA IV: CIENCIA Y TECONOLOGIA.

espregunta('Diseñar programas de computación y explorar nuevas aplicaciones tecnológicas para uso del internet',X):-esrespuesta(X).

espregunta('Resolver problemas de cálculo para construir un puente',X):-esrespuesta(X).

espregunta('Diseñar y planificar la producción masiva de artículos',X):-esrespuesta(X).

espregunta('Concebir planos para viviendas, edificios y ciudadelas',X):-esrespuesta(X).

espregunta('Investigar y probar nuevos productos farmacéuticos',X):-esrespuesta(X).

espregunta('Diseñar máquinas que puedan simular actividades humanas',X):-esrespuesta(X).

espregunta('Elaborar mapas, planos e imágenes para el estudio y análisis de datos geográficos',X):-esrespuesta(X).

%% AREA V: CIENCIAS ECOLOGICAS, BIOLOGICAS Y DE SALUD.

espregunta('Criar, cuidar y tratar animales domésticos y de campo',X):-esrespuesta(X).

espregunta('Investigar sobre áreas verdes, medio ambiente y cambios climáticos',X):-esrespuesta(X).

espregunta('Diseñar cursos para enseñar a la gente sobre temas de salud e higiene',X):-esrespuesta(X).

espregunta('Atender la salud de personas enfermas',X):-esrespuesta(X).

espregunta('Hacer experimentos con plantas (frutas, árboles, flores)',X):-esrespuesta(X).

espregunta('Examinar y tratar los problemas visuales',X):-esrespuesta(X).

espregunta('Atender y realizar ejercicios a personas que tienen limitaciones físicas, problemas de lenguaje, etcétera',X):-esrespuesta(X).

espregunta('Realizar el control de calidad de los alimentos',X):-esrespuesta(X).

%PRINCIPAL

espregunta('es hombre ?',X):-esrespuesta(X).

espregunta('es mujer ?',X):-esrespuesta(X).

main:-

new(D,dialog('ORIENTACION VOCACIONAL')),

send(D,size,size(560,340)),

send(D,colour,colour(red)),

send(D, append, new(Menu, menu_bar)),

send(Menu, append, new(Iniciar, popup(iniciar))),

send(Menu, append, new(Ayuda, popup(ayuda))),

send_list(Iniciar, append,

[ menu_item(iniciar, message(@prolog,pp))

]),

send_list(Ayuda, append,

[ menu_item(autores, message(@display, inform, 'Jhefersown Apreciado Rivera - George Castillo Farfan'))

]),

mostrar('C:/Programa/inicio.jpg',D,Menu),

send(D,open,point(200,200)).

halt.qsave_program('c:/ejecutable.exe', [stand_alone(true), goal(main)]).

%% FUNCION PARA MOSTRAR LA IMAGEN

mostrar(V,D,M):- new(I, image(V)),

new(B, bitmap(I)),

new(F2, figure),

send(F2, display, B),

new(D1, device),

send(D1, display, F2),

send(D, display, D1),

send(D1,below(M)).

%% VENTANA DE INICIO, PREGUNTA SI ES HOMBRE O MUJER.

pp:-new(D,dialog('PREGUNTAS')),

new(Pre1,menu('es hombre ?')),

send_list(Pre1,append,[si , no]),

new(Pre2,menu('es mujer ?')),

send_list(Pre2,append,[si,no]),

send(D,append(Pre1)),

send(D,append,Pre2),

new(B,button(siguiente,and(message(@prolog,principal,Pre1?selection,Pre2?selection),message(D,destroy)))),

send(D,append,B),

send(D,default_button,siguiente),

send(D,open,point(350,350)).

%% PRINCIPAL

principal(P1,P2):-

espregunta('es hombre ?',P1),P1='si',

espregunta('es mujer ?',P2),P2='no',

pho.

principal(P1,P2):-

espregunta('es hombre ?',P1),P1='no',

espregunta('es mujer ?',P2),P2='si',

pho.

principal(_,_):-new(D,dialog('ERROR')),

new(L,label(l,'DEBES ELEGIR SOLO UNA OPCION',font('times','roman',16))),

send(D,append,L),

send(D,open,point(350,350)).

pho:-new(D,dialog('PREGUNTAS')),

new(Pre1,menu('Diseñar programas de computación y explorar nuevas aplicaciones tecnológicas para uso del internet')),

send_list(Pre1,append,[si , no]),

new(Pre2,menu('Criar, cuidar y tratar animales domésticos y de campo')),

send_list(Pre2,append,[si , no]),

new(Pre3,menu('Investigar sobre áreas verdes, medio ambiente y cambios climáticos')),

send_list(Pre3,append,[si , no]),

new(Pre4,menu('Ilustrar, dibujar y animar digitalmente')),

send_list(Pre4,append,[si , no]),

new(Pre5,menu('Seleccionar, capacitar y motivar al personal de una organización/empresa')),

send_list(Pre5,append,[si , no]),

new(Pre6,menu('Realizar excavaciones para descubrir restos del pasado')),

send_list(Pre6,append,[si , no]),

new(Pre7,menu('Resolver problemas de cálculo para construir un puente')),

send_list(Pre7,append,[si , no]),

new(Pre8,menu('Diseñar cursos para enseñar a la gente sobre temas de salud e higiene')),

send_list(Pre8,append,[si , no]),

new(Pre9,menu('Tocar un instrumento y componer música')),

send_list(Pre9,append,[si , no]),

new(Pre10,menu('Planificar cuáles son las metas de una organización pública o privada a mediano y largo plazo')),

send_list(Pre10,append,[si , no]),

new(Pre11,menu('Diseñar y planificar la producción masiva de artículos')),

send_list(Pre11,append,[si , no]),

new(Pre12,menu('Diseñar logotipos y portadas de una revista')),

send_list(Pre12,append,[si , no]),

new(Pre13,menu('Organizar eventos y atender a sus asistentes')),

send_list(Pre13,append,[si , no]),

new(Pre14,menu('Atender la salud de personas enfermas')),

send_list(Pre14,append,[si , no]),

new(Pre15,menu('Controlar ingresos y egresos de fondos y presentar el balance final de una institución')),

send_list(Pre15,append,[si , no]),

new(Pre16,menu('Hacer experimentos con plantas (frutas, árboles, flores)')),

send_list(Pre16,append,[si , no]),

new(Pre17,menu('Concebir planos para viviendas, edificios y ciudadelas')),

send_list(Pre17,append,[si , no]),

new(Pre18,menu('Investigar y probar nuevos productos farmacéuticos')),

send_list(Pre18,append,[si , no]),

new(Pre19,menu('Hacer propuestas y formular estrategias para aprovechar las relaciones económicas entre dos países')),

send_list(Pre19,append,[si , no]),

new(Pre20,menu('Pintar, hacer esculturas, ilustrar libros de arte, etcétera')),

send_list(Pre20,append,[si , no]),

send(D,append(Pre1)),

send(D,append,Pre2),

send(D,append,Pre3),

send(D,append,Pre4),

send(D,append,Pre5),

send(D,append,Pre6),

send(D,append,Pre7),

send(D,append,Pre8),

send(D,append,Pre9),

send(D,append,Pre10),

send(D,append,Pre11),

send(D,append,Pre12),

send(D,append,Pre13),

send(D,append,Pre14),

send(D,append,Pre15),

send(D,append,Pre16),

send(D,append,Pre17),

send(D,append,Pre18),

send(D,append,Pre19),

send(D,append,Pre20),

new(B1,button(atras,and(message(@prolog,pp),message(D,destroy)))),

new(B,button(siguiente,message(@prolog,areaI,Pre1?selection,Pre2?selection,Pre3?selection,

Pre4?selection,Pre5?selection,Pre6?selection,Pre7?selection,Pre8?selection,Pre9?selection,Pre10?selection,

Pre11?selection,Pre12?selection,Pre13?selection,Pre14?selection,Pre15?selection,Pre16?selection,Pre17?selection,

Pre18?selection,Pre19?selection,Pre20?selection))),

send(D,append,B1),

send(D,append,B),

send(D,open,point(300,300)).

%% AREA I: ARTE Y CREATIVIDAD.

areaI(_,_,_,P4,_,_,_,_,P9,_,_,P12,_,_,_,_,_,_,_,P20):-

espregunta('Ilustrar, dibujar y animar digitalmente',P4),P4='si',

espregunta('Tocar un instrumento y componer música',P9),P9='si',

espregunta('Diseñar logotipos y portadas de una revista',P12),P12='si',

espregunta('Pintar, hacer esculturas, ilustrar libros de arte, etcétera',P20),P20='si',

pf3('C:/Programa/imagen1.jpg','ARTE Y CREATIVIDAD','C:/Programa/pinnaspist.bmp').

%% AREA II: CIENCIAS SOCIALES

areaI(_,_,_,_,_,P6,_,_,_,_,_,_,P13,_,_,_,_,_,_,_):-

espregunta('Realizar excavaciones para descubrir restos del pasado',P6),P6='si',

espregunta('Organizar eventos y atender a sus asistentes',P13),P13='si',

pf3('C:/Programa/Imagen2.jpg','CIENCIAS SOCIALES','C:/Programa/pinnaspist.bmp').

%% AREA III: Económica, Administrativa y Financiera

areaI(_,_,_,_,P5,_,_,_,_,P10,_,_,_,_,P15,_,_,_,P19,_):-

espregunta('Seleccionar, capacitar y motivar al personal de una organización/empresa',P5),P5='si',

espregunta('Planificar cuáles son las metas de una organización pública o privada a mediano y largo plazo',P10),P10='si',

espregunta('Controlar ingresos y egresos de fondos y presentar el balance final de una institución',P15),P15='si',

espregunta('Hacer propuestas y formular estrategias para aprovechar las relaciones económicas entre dos países',P19),P19='si',

pf3('C:/Programa/imagen3.jpg','Económica, Administrativa y Financiera','C:/Programa/pinnaspist.bmp').

%% AREA IV: Ciencia y Tecnología

areaI(P1,_,_,_,_,_,P7,_,_,_,P11,_,_,_,_,_,_,P18,_,_):-

espregunta('Diseñar programas de computación y explorar nuevas aplicaciones tecnológicas para uso del internet',P1),P1='si',

espregunta('Resolver problemas de cálculo para construir un puente',P7),P7='si',

espregunta('Diseñar y planificar la producción masiva de artículos',P11),P11='si',

espregunta('Concebir planos para viviendas, edificios y ciudadelas',P17),P17='si',

espregunta('Investigar y probar nuevos productos farmacéuticos',P18),P18='si',

pf3('C:/Programa/imagen4.jpg','Ciencia y Tecnología','C:/Programa/pinnaspist.bmp').

%% AREA V: Ciencias Ecológicas, Biológicas y de Salud

areaI(_,P2,P3,_,_,_,_,P8,_,_,_,_,_,P14,_,P16,_,_,_,_):-

espregunta('Criar, cuidar y tratar animales domésticos y de campo',P2),P2='si',

espregunta('Investigar sobre áreas verdes, medio ambiente y cambios climáticos',P3),P3='si',

espregunta('Diseñar cursos para enseñar a la gente sobre temas de salud e higiene',P8),P8='si',

espregunta('Atender la salud de personas enfermas',P14),P14='si',

espregunta('Hacer experimentos con plantas (frutas, árboles, flores)',P16),P16='si',

pf3('C:/Programa/imagen5.jpg','Ciencias Ecológicas, Biológicas y de Salud','C:/Programa/pinnaspist.bmp').

areaI(_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_):-new(D,dialog('ERROR')),

new(L,label(l,'NO SE PUEDE DEFINIR EL RESULTADO DEL TEST DE ORIENTACION VOCACIONAL',font('times','roman',16))),

send(D,append,L),

send(D,open,point(350,350)).

image(X):-new(D,dialog('PLAGA')),

mostrar1(X,D),

% new(B,label(salir,message(D,destroy))),

%send(D,append,B),

send(D,open).

mostrar1(V,D):- new(I, image(V)),

new(B, bitmap(I)),

new(F2, figure),

send(F2, display, B),

new(D1, device),

send(D1, display, F2),

send(D, display, D1).

pf3(X,Y,Z):-new(D,dialog('RESULTADOS TEST ORIENTACION VOCACIONAL')),

mostrar2(X,D,20,30),

new(L,label(n,'')),

send(D, append(label(n,''))),

send(D, append(label(n,'RECOMENDACION DE AREA DE VOCACION: '))),

send(D, append(label(n,Y))),

send(D,append,L),

%mostrar2(_,D,20,350),

send(D,open).

f3(X,Y):-new(F,frame('IMAGEN DE LA PLAGA')),

send(F,append(new(F1,browser))),

mostrar(X,F1),

send(new(D,dialog),below(F1)),

send(D, append(label(n,''))),

send(D, append(label(n,''))),

send(D, append(label(n,Y))),

send(F,open,point(300,300)).

mostrar(V,D):- new(I, image(V)),

new(B, bitmap(I)),

new(F2, figure),

send(F2, display, B),

new(D1, device),

send(D1, display, F2),

send(D, display, D1).

mostrar2(V,D,X,Y):- new(I, image(V)),

new(B, bitmap(I)),

new(F2, figure),

send(F2, display, B),

new(D1, device),

send(D1, display, F2),

send(D, display, D1),

send(D,display,D1,point(X,Y)).

3. Ejecución

4. Referencias bibliográficas

http://www.monografias.com/trabajos16/sistemas-expertos/sistemas-expertos.shtml

http://www.redcientifica.com/doc/doc199908210001.html

http://es.wikipedia.org/wiki/Prolog

http://es.wikipedia.org/wiki/Sistema_experto

http://artemisa.unicauca.edu.co/~lgarreta/elenguajes/classes/logical/apuntes05lp-prolog.pdf