Sei sulla pagina 1di 10

Sistema Experto: Orientacin Vocacional

Apreciado Rivera Jhefersown


Estudiante Ing. Informtica
Universidad Nacional de Trujillo
jhefersito-tlv@hotmail.com


Asesor: Arturo Daz Pulido
Resumen
Implementaremos un sistema experto
usando Prolog, cuyo objetivo ser aconsejar a
un usuario cliente sobre la mejor opcin que
puede tomar a la hora de elegir qu carrera
estudiar. Para ello primero haremos una
breve descripcin sobre los temas a tratar en
nuestro proyecto y luego desarrollaremos el
SE en prolog.
Trminos generales Algoritmos, Diseo,
Implementacin
Palabras Clave
Prolog, sistema experto, orientacin
vocacional, preguntas

1. Introduccin
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
informticos.



Castillo Farfn George
Estudiante Ing. Informtica
Universidad Nacional de Trujillo
gek94@hotmail.com


1.1 Usos de un SE
Un sistema experto es muy eficaz
cuando tiene que analizar una gran
cantidad de informacin.
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 conclusin
Para organizar, existen diversos
sistemas expertos que organizan los
datos utilizando la informacin
ingresada da a da y la forma en la que
se acomoda.
Los sistemas expertos sobre
meteorologa y la inversin 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 extrado del experto en el
dominio. Una de las caractersticas ms
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 aadir
reglas nuevas, eliminar las antiguas o corregir
errores en las existentes.


1.2.2 Base de datos
Es una parte de la memoria del
ordenador que se utiliza para almacenar los
datos recibidos inicialmente para la resolucin
de un problema.

1.2.3 Motor de inferencias
Es 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 usuario
Es la que permite al usuario describir el
problema en el sistema experto. Interpreta
sus preguntas, los comandos, la informacin
ofrecida, etc. Y responde a los
cuestionamientos dando explicaciones y
justificaciones.

1.2.5 Modulo de explicacin
Est diseado para aclarar al usuario la
lnea de razonamiento seguida en el proceso
de inferencia.

1.2.6 Modulo de adquisicin
Permite que se puedan aadir,
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 ms fiables gracias al
tratamiento automtico de los datos.
Un SE mejor la calidad y confiabilidad
al resolver y decidir los problemas ms
rpidamente.
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 analoga.
No pueden decidir inmediatamente
algo que an no ha estudiado.
La complejidad a la hora de
representar el conocimiento humano
debido a que estn limitadas a tratar
problemas teniendo informacin an
incompleta.
1.4 Prolog
1.4.1 Introduccin a Prolog
Prolog es un lenguaje de programacin
creado para representar y utilizar el
conocimiento que se tiene sobre un
determinado dominio. Ms 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 definicin ms
accesible para el usuario comn sera:

Prolog es un lenguaje de programacin que es
usado para resolver problemas que envuelven
objetos y las relaciones entre ellos.

Su definicin basada en la lgica formal,
permite ejecutar estatutos que no son otra
cosa que oraciones de un lenguaje lgico
elemental particular de clusulas. Prolog por
su naturaleza muestra una habilidad para
describir gramticas, en particular gramticas
libres de contexto.

ESTRUCTURA
Un programa Prolog est formado por una
secuencia de enunciados (clusulas): hechos,
reglas y variables.

Lo anterior se detalla a continuacin

Hechos
Expresan 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 relacin llamada "tiene".

La forma de representarlo en PROLOG es:

tiene(coche,ruedas).

Algunas caractersticas de los hechos son:

Los nombres de objetos y relaciones
deben comenzar con una letra
minscula.
Primero se escribe la relacin, y luego
los objetos separados por comas y
encerrados entre parntesis.
Al final de un hecho debe ir el carcter
"." (punto).
El orden de los objetos dentro de la
relacin 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 ms hechos.
Es la representacin de las implicaciones
lgicas del tipo p ---> q (p implica q).

Algunas caractersticas 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 ms hechos
(conjuncin de hechos), separados por
una coma (","), que acta como el "y"
lgico.
Las reglas finalizan con un punto (".").





Variables
Representan 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 respondera:

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

Los nombres de variables comienzan siempre
por una letra mayscula.

Como ya nombramos las clusulas haremos el
siguiente razonamiento lgico:

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

suelo(mojado)

Que el suelo est mojado, es una condicin
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
representacin correcta en Prolog, sera:

suelo(mojado) :- tiempo(lluvioso).

suelo(mojado).

Cabe sealar que la regla esta "al revs". Esto
es as por el mecanismo de deduccin hacia
atrs que emplea Prolog.

1.4.2 Caractersticas de Prolog
Basado en lgica y programacin
declarativa
Produce estilo de programacin
orientado a metas
No se especifica cmo debe hacerse,
sino qu debe lograrse(alto nivel)
El programador se concentra ms en el
conocimiento que en los algoritmos

2. Orientacin Vocacional
2.1 Planteamiento y Diseo
1. La idea es realizar un test de
orientacin vocacional que nos sugiera
algunas alternativas de carreras universitarias
a elegir de acuerdo a las caractersticas
demandadas por cada usuario. Para realizar
este diseo 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 opcin 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 Implementacin
esrespuesta('si').
esrespuesta('no').
% AREA I: ARTE Y CREATIVIDAD.
espregunta('Ilustrar, dibujar y animar digitalmente',X):-
esrespuesta(X).
espregunta('Tocar un instrumento y componer msica',X):-
esrespuesta(X).
espregunta('Disear logotipos y portadas de una revista',X):-
esrespuesta(X).
espregunta('Pintar, hacer esculturas, ilustrar libros de arte,
etctera',X):-esrespuesta(X).
espregunta('Prepararse para ser modelo profesional',X):-
esrespuesta(X).
espregunta('Disear juegos interactivos electrnicos para
computadora',X):-esrespuesta(X).
espregunta('Redactar guiones y libretos para un programa de
televisin',X):-esrespuesta(X).
espregunta('Crear campaas 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 artculos periodsticos, 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
cooperacin para el desarrollo social',X):-esrespuesta(X).

%% AREA III: ECONOMICA, ADMINISTRATIVA Y FINANCIERA.
espregunta('Seleccionar, capacitar y motivar al personal de
una organizacin/empresa',X):- esrespuesta(X).
espregunta('Planificar cules son las metas de una
organizacin pblica o privada a mediano y largo plazo',X):-
esrespuesta(X).
espregunta('Controlar ingresos y egresos de fondos y
presentar el balance final de una institucin',X):-
esrespuesta(X).
espregunta('Hacer propuestas y formular estrategias para
aprovechar las relaciones econmicas entre dos pases',X):-
esrespuesta(X).
espregunta('Elaborar campaas 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 distribucin y venta de un
gran almacn',X):- esrespuesta(X).

%% AREA IV: CIENCIA Y TECONOLOGIA.
espregunta('Disear programas de computacin y explorar
nuevas aplicaciones tecnolgicas para uso del internet',X):-
esrespuesta(X).
espregunta('Resolver problemas de clculo para construir un
puente',X):-esrespuesta(X).
espregunta('Disear y planificar la produccin masiva de
artculos',X):-esrespuesta(X).
espregunta('Concebir planos para viviendas, edificios y
ciudadelas',X):-esrespuesta(X).
espregunta('Investigar y probar nuevos productos
farmacuticos',X):-esrespuesta(X).
espregunta('Disear mquinas que puedan simular
actividades humanas',X):-esrespuesta(X).
espregunta('Elaborar mapas, planos e imgenes para el
estudio y anlisis de datos geogrficos',X):-esrespuesta(X).

%% AREA V: CIENCIAS ECOLOGICAS, BIOLOGICAS Y DE SALUD.
espregunta('Criar, cuidar y tratar animales domsticos y de
campo',X):-esrespuesta(X).
espregunta('Investigar sobre reas verdes, medio ambiente y
cambios climticos',X):-esrespuesta(X).
espregunta('Disear cursos para ensear 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 fsicas, problemas de lenguaje,
etctera',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('Disear programas de computacin y
explorar nuevas aplicaciones tecnolgicas para uso del
internet')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('Criar, cuidar y tratar animales
domsticos y de campo')),
send_list(Pre2,append,[si , no]),
new(Pre3,menu('Investigar sobre reas verdes, medio
ambiente y cambios climticos')),
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 organizacin/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 clculo para
construir un puente')),
send_list(Pre7,append,[si , no]),
new(Pre8,menu('Disear cursos para ensear a la gente
sobre temas de salud e higiene')),
send_list(Pre8,append,[si , no]),
new(Pre9,menu('Tocar un instrumento y componer
msica')),
send_list(Pre9,append,[si , no]),
new(Pre10,menu('Planificar cules son las metas de una
organizacin pblica o privada a mediano y largo plazo')),
send_list(Pre10,append,[si , no]),
new(Pre11,menu('Disear y planificar la produccin
masiva de artculos')),
send_list(Pre11,append,[si , no]),
new(Pre12,menu('Disear 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 institucin')),
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
farmacuticos')),
send_list(Pre18,append,[si , no]),
new(Pre19,menu('Hacer propuestas y formular
estrategias para aprovechar las relaciones econmicas entre
dos pases')),
send_list(Pre19,append,[si , no]),
new(Pre20,menu('Pintar, hacer esculturas, ilustrar libros
de arte, etctera')),
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,d
estroy)))),

new(B,button(siguiente,message(@prolog,areaI,Pre1?selecti
on,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?selec
tion,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
msica',P9),P9='si',
espregunta('Disear logotipos y portadas de una
revista',P12),P12='si',
espregunta('Pintar, hacer esculturas, ilustrar libros de arte,
etctera',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: Econmica, Administrativa y Financiera
areaI(_,_,_,_,P5,_,_,_,_,P10,_,_,_,_,P15,_,_,_,P19,_):-
espregunta('Seleccionar, capacitar y motivar al personal de
una organizacin/empresa',P5),P5='si',
espregunta('Planificar cules son las metas de una
organizacin pblica o privada a mediano y largo
plazo',P10),P10='si',
espregunta('Controlar ingresos y egresos de fondos y
presentar el balance final de una institucin',P15),P15='si',
espregunta('Hacer propuestas y formular estrategias para
aprovechar las relaciones econmicas entre dos
pases',P19),P19='si',
pf3('C:/Programa/imagen3.jpg','Econmica, Administrativa y
Financiera','C:/Programa/pinnaspist.bmp').

%% AREA IV: Ciencia y Tecnologa
areaI(P1,_,_,_,_,_,P7,_,_,_,P11,_,_,_,_,_,_,P18,_,_):-
espregunta('Disear programas de computacin y explorar
nuevas aplicaciones tecnolgicas para uso del
internet',P1),P1='si',
espregunta('Resolver problemas de clculo para construir un
puente',P7),P7='si',
espregunta('Disear y planificar la produccin masiva de
artculos',P11),P11='si',
espregunta('Concebir planos para viviendas, edificios y
ciudadelas',P17),P17='si',
espregunta('Investigar y probar nuevos productos
farmacuticos',P18),P18='si',
pf3('C:/Programa/imagen4.jpg','Ciencia y
Tecnologa','C:/Programa/pinnaspist.bmp').

%% AREA V: Ciencias Ecolgicas, Biolgicas y de Salud
areaI(_,P2,P3,_,_,_,_,P8,_,_,_,_,_,P14,_,P16,_,_,_,_):-
espregunta('Criar, cuidar y tratar animales domsticos y de
campo',P2),P2='si',
espregunta('Investigar sobre reas verdes, medio ambiente y
cambios climticos',P3),P3='si',
espregunta('Disear cursos para ensear 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 Ecolgicas,
Biolgicas 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. Ejecucin




4. Referencias bibliogrficas
http://www.monografias.com/trabajos16/sist
emas-expertos/sistemas-expertos.shtml
http://www.redcientifica.com/doc/doc19990
8210001.html
http://es.wikipedia.org/wiki/Prolog
http://es.wikipedia.org/wiki/Sistema_experto
http://artemisa.unicauca.edu.co/~lgarreta/ele
nguajes/classes/logical/apuntes05lp-
prolog.pdf

Potrebbero piacerti anche