Ageni
/*
Maquina de inferencia c/base de datos dinamica para sistema experto
Programada por C. Reynoso, febrero de 1988 - Revision dic/1990
Incluye inferencias aproximadas, seguimiento de casos sin solución,
omisión de reglas excluyentes, tratamiento de similitudes
explicación de hipótesis y consulta por menúes.
*/
% Definir stack=1500
diagnostics
nowarnings
nobreak
code = 3310 % contrace 5600
DOMAINS
Historia = Rnumero*
Rnumero, Bnumero, FNO = INTEGER
Factor = REAL
Categoria = SYMBOL
archivo_datos = string
file = maniobra
slist = string*
numlista = integer*
include "tdoms.pro"
include "tpreds.pro"
include "menu.pro"
include "longmenx.pro"
DATABASE - principal
archivo_datos(archivo_datos)
asunto(string)
cons(Categoria,STRING)
cond(Bnumero,STRING)
excluyentes(integerlist)regla(Rnumero,Categoria,Categoria,integerlist)
similares(integerlist)
DATABASE - maniobra
confianza(Bnumero,real)
e(string,integerlist)
grama(string)
interm(Bnumero,STRING)
no(Bnumero)
posible(Bnumero,Factor)
preframe(integer,string)
si(Bnumero)
reglalimbo(Rnumero,Categoria,Categoria,integerlist)
tabla(integer,Categoria)
toggle
yacaso(integer,Categoria)
yanum(integer)
yasim(Categoria)
database -setup
v(integer,integer,integer)
predicates
/* Comandos, heurísticas y procedimientos */
abducciones(Categoria)
actual(integer)
actualiza
alarma
asertsim(Bnumero)
borrar
bucle(string,string,integer,Categoria)
buclecons(string,string,Categoria,Categoria)
calculo(integerlist,Factor,Real)
carga_conoc
chance
ciclalarma(integer)
compara(string,string,string,integer,Categoria)comparacons(string,string,string,Categoria,Categoria)
comparar(integer)
componer(integerlist)
condiciones(integer)
correcto(string)
cuestion(integer,string)
derivaciones(Categoria)
desc
dev(integer,string)
elegida(integer,string)
errocons
esclista(integerlist)
evalrespu(integer,Categoria)
evaluar(real,string)
expresion(string)
frames
frase(string)
hacelis(integer,integerlist)
helper
imagen
imposible
imprimeingresa(Categoria)
insert(integer,integerlist,integerlist)
interrogatorio
limpieza
listafinal
longlista(integerlist,integer)
loop
memoria(Categoria,integerlist)
miembro(integer,integerlist)
miembresp(integer,integerlist)
ok
parecidos(Categoria)
precomparar
preframes(integer)
preframes_2
pregunta_inicial(string)
procedimiento
proceso(integer)
proselec(integer,Categoria)
proselesp(integer,Categoria)prosetup(integer)
purificar(Bnumero)
raya(integer)
recomparcial
recomponer
relacionadas
relaciones
reverse(integerlist,integerlist)
reverse1(integerlist,integerlist,integerlist)
rutoken(string)
rusubtoken(string)
ruconsetoken(string)
rucontoken(string)
432
setup
sintagma(integer,string)
sintesis(Categoria)
subraya(integer)
superconjuntos(Categoria)
tokenizar
totalizar(real)
vacio
makewindow(9,O,P," Mensajes",19,8,4,65),
v(13,Q,R),
makewindow(13,Q,R," Help (PgUp, PgDn, Ctl+PgDn, Ctl+PgUp,
Ctl+F3=Search, Esc=Quit) ",1,1,22,78),
procedimiento.
clauses
/* Interface usuario */
/* Mecanismos de inferencia */
abduccion(Historia,Categoria)
dudas(Categoria)
generar_respuesta(Historia,Rnumero,STRING,Bnumero,INTEGER)
incertidumbres(Categoria)
inpq(Historia,Rnumero,Bnumero,STRING)
notest(Bnumero)verificacion(Rnumero,Historia,integerlist)
/* Explicaciones */
mostrar_cond(Bnumero,string)
mostrar_condiciones(integerlist,string)
mostrar_regla(Rnumero,string)
pregunta(Categoria,integer,integer,Categoria)
sub_cat(Categoria,Categoria,Categoria)
trayectoria(Historia,string)
/* Actualizar el conocimiento */
edicion
guarda_basecon
leercondl( integerlist )
obten_rnumero(Rnumero,Rnumero)obten_bnumero(Bnumero,Bnumero)
obt_condic(Bnumero,STRING)
salva(integer)
salvar_s(integer,string,archivo_datos)
goal
trace(off),
consult("setup.dbx", setup),
v(1,A,B),
makewindow(1,A,B,
" Sistema experto con base dinámica - (c) C.Reynoso 1990",
0,0,24,80),
v(2,C,D),
makewindow(2,C,D," Explicaciones ",10,1,13,78),
v(3,E,F),
makewindow(3,E,F,
" Actualización de Conocimientos (Esc:fin - ?:help) ",
1,1,22,78),
v(5,G,H),...
Regístrate para leer el documento completo.