UD SHELL Versión 2.0. - Universidad de Manizales
UD SHELL Versión 2.0. - Universidad de Manizales
UD SHELL Versión 2.0. - Universidad de Manizales
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />
Herramienta software para la construcción<br />
<strong>de</strong> sistemas basados en el conocimiento0<br />
– <strong>UD</strong> <strong>SHELL</strong> <strong>Versión</strong> <strong>2.0.</strong><br />
Victor Fermín Cerón Baquero 1 - Yamile Montero Salas 2<br />
Resumen<br />
El presente artículo muestra el proceso <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> la Herramienta<br />
Software para la Construcción <strong>de</strong> Sistemas Basados en el Conocimiento <strong>UD</strong><br />
Shell versión <strong>2.0.</strong>; software que permite el apoyo en la toma <strong>de</strong> <strong>de</strong>cisiones en<br />
cualquier área <strong>de</strong>l conocimiento. El propósito fundamental es ofrecer una<br />
herramienta para el <strong>de</strong>sarrollo <strong>de</strong> sistemas expertos y sistemas basados en el<br />
conocimiento utilizando como forma <strong>de</strong> representación <strong>de</strong>l conocimiento los<br />
Sistemas <strong>de</strong> Producción. En su primera parte, se muestra la justificación <strong>de</strong>l<br />
<strong>de</strong>sarrollo, luego se hace un recuento <strong>de</strong> sus principales características. En<br />
tercer lugar, se muestran diferentes pruebas con las cuales se indican los<br />
resultados obtenidos.<br />
Palabras clave: Métodos <strong>de</strong> Inferencia, Sistemas Basados en el<br />
Conocimiento, Representación <strong>de</strong>l Conocimiento, Sistemas <strong>de</strong> Producción,<br />
Incertidumbre.<br />
I. INTRODUCCIÓN<br />
La toma <strong>de</strong> <strong>de</strong>cisiones es un proceso en el cual se plantean diferentes<br />
puntos <strong>de</strong> vista y posibles alternativas <strong>de</strong> solución a <strong>de</strong>terminada<br />
problemática, es por tanto uno <strong>de</strong> los mayores problemas que aqueja a las<br />
diferentes empresas; en muchas ocasiones quienes toman éstas <strong>de</strong>cisiones<br />
en ocasiones carecen <strong>de</strong> información y sobre todo <strong>de</strong> experiencia y<br />
conocimiento, <strong>de</strong>bido a que no se cuenta con el recurso humano suficiente ni<br />
capacitado; en otros casos una <strong>de</strong>cisión <strong>de</strong>be ser tomada por diferentes<br />
expertos en el área en cuestión, para po<strong>de</strong>r plantear soluciones viables. Lo<br />
anterior, ocasiona que las <strong>de</strong>cisiones tomadas no sean completamente<br />
acertadas.<br />
Con el fin <strong>de</strong> <strong>de</strong>sarrollar una herramienta para apoyar la toma <strong>de</strong> <strong>de</strong>cisiones,<br />
se <strong>de</strong>sarrolló <strong>UD</strong> Shell, el cual minimiza el tiempo <strong>de</strong> búsqueda <strong>de</strong> una<br />
solución y proporciona una mayor fiabilidad a ésta. Entre sus características<br />
principales están: la construcción <strong>de</strong> Bases <strong>de</strong> Conocimiento (BC) a partir <strong>de</strong><br />
Sistemas <strong>de</strong> Producción, la inferencia se realiza a partir dos métodos<br />
1 Tecnólogo en Sistematización <strong>de</strong> Datos, <strong>Universidad</strong> Distrital Francisco José <strong>de</strong> Caldas.<br />
2<br />
Tecnólogo en Sistematización <strong>de</strong> Datos, <strong>Universidad</strong> Distrital Francisco José <strong>de</strong> Caldas. E-mail:<br />
yamilemon@yahoo.com<br />
VENTANA INFORMÁTICA No. 12 – <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005 – pp 97-110
- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />
(inferencia orientada por datos e inferencia orientada por objetivos), otra<br />
característica a <strong>de</strong>stacar es la implementación <strong>de</strong> manejo <strong>de</strong> incertidumbre y<br />
metaconocimiento.<br />
La aplicabilidad <strong>de</strong> <strong>UD</strong> Shell pue<strong>de</strong> ser vista en dos contextos: la utilización<br />
por parte <strong>de</strong> expertos y su uso en la aca<strong>de</strong>mia. En el campo académico su<br />
<strong>de</strong>sarrollo se justifica en virtud a la posibilidad <strong>de</strong> sustentar la explicación<br />
teórica <strong>de</strong> clases como Inteligencia Artificial con un producto en el que se<br />
pue<strong>de</strong> experimentar y mostrar resultados. La utilidad <strong>de</strong> la herramienta es<br />
relativa a la necesidad <strong>de</strong>l campo en que se quiera trabajar, se pue<strong>de</strong>n<br />
encargar <strong>de</strong>: toma <strong>de</strong> <strong>de</strong>cisiones, configuración <strong>de</strong> equipos <strong>de</strong>pendiendo <strong>de</strong><br />
unos componentes existentes y las restricciones <strong>de</strong> cada caso, diagnostico y<br />
tratamiento <strong>de</strong> enfermeda<strong>de</strong>s o averías, interpretación y análisis <strong>de</strong> datos,<br />
monitorización <strong>de</strong> procesos industriales, planificación <strong>de</strong> fases y recursos,<br />
entre otros.<br />
II. Desarrollo <strong>de</strong> la herramienta<br />
El área en la que se enmarca el presente <strong>de</strong>sarrollo es la Ingeniería <strong>de</strong><br />
Software y la Inteligencia Artificial; aun cuando el propósito <strong>de</strong> esta última en<br />
los Sistemas Basados en el Conocimiento / Sistemas Expertos no es nuevo y<br />
ha sido <strong>de</strong> gran aceptación en empresas <strong>de</strong> países como Japón, parte <strong>de</strong><br />
Europa, Estados Unidos, México entre otras; a nivel Latinoamericano <strong>de</strong>s<strong>de</strong><br />
mediados <strong>de</strong> los años 90 se ha estado imponiendo la ten<strong>de</strong>ncia al <strong>de</strong>sarrollo<br />
<strong>de</strong> Shells, los cuales poseen diferentes características en cuanto a método<br />
<strong>de</strong> inferencia, manejo <strong>de</strong> incertidumbre y diseño <strong>de</strong> bases <strong>de</strong> conocimiento<br />
(proceso <strong>de</strong> actualización, representación <strong>de</strong>l conocimiento, etc.).<br />
A. ¿Por qué <strong>UD</strong>-Shell?<br />
El problema central al crear bases <strong>de</strong> conocimiento es el tiempo que se gasta<br />
al codificar reglas, ya sea por la forma como se <strong>de</strong>ben estructurar o por que<br />
al tener que actualizar Bases <strong>de</strong> Conocimiento se <strong>de</strong>be reorganizar el<br />
esquema jerárquico para obtener mejores resultados. Los Shell actuales<br />
permiten actualizar y/o visualizar solamente una base <strong>de</strong> conocimiento,<br />
proceso por el cual el comparar resultados o el transmitir reglas <strong>de</strong> una base<br />
<strong>de</strong> conocimiento a otra es sencillamente imposible. Otro factor importante es<br />
el manejo <strong>de</strong> información incompleta o aproximada, el tratamiento <strong>de</strong> la<br />
incertidumbre constituye uno <strong>de</strong> los campos fundamentales <strong>de</strong> la Inteligencia<br />
Artificial, sin embargo pocos Shells cuentan con métodos que permitan tratar<br />
con el manejo <strong>de</strong> incertidumbre, ya sea con el método probabilístico clásico,<br />
re<strong>de</strong>s bayesianas o factores <strong>de</strong> certeza.<br />
La Herramienta Software para la Construcción <strong>de</strong> Sistemas Basados en el<br />
Conocimiento <strong>UD</strong> Shell <strong>Versión</strong> 2.0 utiliza como método <strong>de</strong> representación<br />
<strong>de</strong>l conocimiento los Sistemas <strong>de</strong> Producción, junto con sus dos métodos <strong>de</strong><br />
2
CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />
inferencia (enca<strong>de</strong>namiento hacia a<strong>de</strong>lante y enca<strong>de</strong>namiento hacia atrás)<br />
los cuáles simulan la inducción y <strong>de</strong>ducción <strong>de</strong>l razonamiento humano.<br />
B. ¿Cómo se Desarrolló?<br />
Se utilizó la metodología <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> software orientada a objetos P<strong>UD</strong><br />
Plan Unificado <strong>de</strong> Desarrollo usando notación UML (Lenguaje <strong>de</strong> Mo<strong>de</strong>lado<br />
Unificado) tanto para su mo<strong>de</strong>lo lógico como para su mo<strong>de</strong>lo físico. En el<br />
mo<strong>de</strong>lo lógico se especifica el comportamiento <strong>de</strong>l sistema (<strong>de</strong>sarrollo y<br />
ejecución <strong>de</strong> las bases <strong>de</strong> conocimiento creadas con la Herramienta Software<br />
para la Construcción <strong>de</strong> Sistemas Basados en el Conocimiento <strong>UD</strong> Shell<br />
<strong>Versión</strong> <strong>2.0.</strong>), y en el mo<strong>de</strong>lo físico se <strong>de</strong>finen las clases y sus relaciones,<br />
colaboración entre objetos; mediante el uso <strong>de</strong> diagramas <strong>de</strong> clases,<br />
diagramas <strong>de</strong> secuencia, diagramas <strong>de</strong> activida<strong>de</strong>s. Como lenguaje <strong>de</strong><br />
programación se utilizó Java 2, por ser multiplataforma y un lenguaje<br />
universal.<br />
Mediante el uso <strong>de</strong> factores <strong>de</strong> certeza se busca manejar la incertidumbre<br />
propia <strong>de</strong> los expertos para obtener resultados más confiables, haciendo que<br />
cada regla sea capaz <strong>de</strong> asociar cierta información y combinarla localmente a<br />
medida que se enca<strong>de</strong>nen las reglas. Al hacer que <strong>UD</strong> Shell utilice<br />
metaconocimiento se busca que el sistema proporcione un mecanismo <strong>de</strong><br />
revisión en la construcción <strong>de</strong> las reglas para obtener como resultado bases<br />
<strong>de</strong> conocimiento libres <strong>de</strong> fallas tanto sintácticas como lógicas. A<strong>de</strong>más,<br />
proporciona una explicación más completa para que el usuario pueda saber<br />
verda<strong>de</strong>ramente qué condujo a la herramienta a dar la solución. Asimismo, el<br />
software verifica qué reglas no son usadas constantemente y solicita al<br />
usuario una revisión en su estructura.<br />
Las principales características con que cuenta <strong>UD</strong> Shell son:<br />
Factores De Certeza:<br />
El tratamiento <strong>de</strong> la incertidumbre constituye uno <strong>de</strong> los campos<br />
fundamentales <strong>de</strong> la Inteligencia Artificial, pues afecta en mayor o menor<br />
medida a todos los <strong>de</strong>más. En situaciones reales, no siempre es posible<br />
contar con toda la información, inclusive la información disponible pue<strong>de</strong> ser<br />
incorrecta, incompleta o cambiar muy rápidamente. En particular, una <strong>de</strong> las<br />
propieda<strong>de</strong>s esenciales <strong>de</strong> los sistemas expertos, y a la vez una <strong>de</strong> las más<br />
complejas, es el tratamiento <strong>de</strong> la incertidumbre; en <strong>UD</strong> Shell se hace por<br />
medio <strong>de</strong> factores <strong>de</strong> certeza (método también utilizado por MYCIN).<br />
Llamado por algunos autores como factores <strong>de</strong> certidumbre, surgió ante la<br />
necesidad <strong>de</strong> que fuese capaz <strong>de</strong> representar y razonar con la incertidumbre<br />
expresada por los expertos, se necesitaba un mo<strong>de</strong>lo <strong>de</strong> tratamiento <strong>de</strong> la<br />
incertidumbre capaz <strong>de</strong> asociar cierta información a cada regla y combinar<br />
localmente esa información a medida que se enca<strong>de</strong>nasen las reglas.<br />
3
- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />
III. Manejo <strong>de</strong> ecuaciones<br />
En vista <strong>de</strong> que el conocimiento no sólo se representa simbólicamente, se<br />
hizo necesaria la implementación <strong>de</strong> las operaciones: adición, sustracción,<br />
multiplicación, división, módulo y potenciación. A<strong>de</strong>más el uso <strong>de</strong><br />
operaciones lógicas: >, >=,
CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />
IV. Módulo <strong>de</strong> presentación<br />
Look And Feel<br />
Buscando un entorno en don<strong>de</strong> el usuario final se encuentre trabajando a<br />
gusto se le permite cambiar la interfaz <strong>de</strong> <strong>UD</strong> Shell a diferentes estilos y / o<br />
colores, éstas pue<strong>de</strong>n escogerse <strong>de</strong> tres plataformas conocidas, la que trae<br />
Java por <strong>de</strong>fecto, la clásica <strong>de</strong> Windows o la interfaz <strong>de</strong> Unix.<br />
A. Arquitectura <strong>de</strong> un Sistema Basado en el Conocimiento (SBC)<br />
La arquitectura <strong>de</strong> un Sistema Basado en el Conocimiento refleja <strong>de</strong> alguna<br />
manera la estructura cognitiva y los procesos humanos. Ver la Figura 1. La<br />
primera parte <strong>de</strong> esta arquitectura es la memoria <strong>de</strong> largo plazo, en don<strong>de</strong><br />
guarda los hechos (Base <strong>de</strong> Hechos) y los conocimientos (Base <strong>de</strong><br />
Conocimientos) acerca <strong>de</strong>l dominio en el que tiene experiencia.<br />
SISTEMA BASADO EN CONOCIMIENTO<br />
BASE DE HECHOS<br />
MOTOR DE INFERENCIA<br />
UNIDADES DE ENTRADA / SALIDA<br />
BASE DE<br />
CONOCIMIENTO<br />
USUARIO PROGRAMAS<br />
EXTERNOS<br />
EXPERTO<br />
Figura 1. Arquitectura <strong>de</strong> un Sistema Basado en el Conocimiento<br />
La segunda parte es el sistema que realiza la función <strong>de</strong> razonamiento para<br />
resolver problemas (Motor <strong>de</strong> Inferencia). La tercera parte la conforman las<br />
unida<strong>de</strong>s <strong>de</strong> entrada y salida que permiten la comunicación entre el sistema y<br />
su entorno (subsistema <strong>de</strong> usuario, explicación y adquisición <strong>de</strong>l<br />
conocimiento). Adicionalmente algunos SBC pue<strong>de</strong>n contener otras<br />
herramientas <strong>de</strong> apoyo.<br />
5
- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />
A continuación se <strong>de</strong>scriben las principales características <strong>de</strong> estas<br />
unida<strong>de</strong>s:<br />
• Base <strong>de</strong> Conocimientos (BC). Es el componente más importante <strong>de</strong>l<br />
SBC. Contiene el conocimiento sobre el dominio en el cual se especializa.<br />
El conocimiento tiene que estar representado en la forma que resulte más<br />
a<strong>de</strong>cuada para el dominio <strong>de</strong> su competencia (Re<strong>de</strong>s Semánticas,<br />
Sistemas <strong>de</strong> Producción, Lógica <strong>de</strong> Predicados y Frames). Una base <strong>de</strong><br />
conocimientos <strong>de</strong>be ser coherente, rápida, modular, fácil <strong>de</strong> <strong>de</strong>sarrollar y<br />
mantener.<br />
• Base <strong>de</strong> Hechos (BH). Es el conjunto <strong>de</strong> información que no varía <strong>de</strong><br />
una sentencia a otra. Los hechos se diferencian <strong>de</strong> los datos en el sentido<br />
que los hechos forman parte <strong>de</strong>l SBC, mientras que los datos, al po<strong>de</strong>r<br />
variar <strong>de</strong> una solución a otra, conviene agruparlos en archivos externos al<br />
SBC.<br />
Algunos autores no consi<strong>de</strong>ran a la base <strong>de</strong> hechos en forma<br />
in<strong>de</strong>pendiente. Los conocimientos y los hechos pue<strong>de</strong>n aparecer<br />
conjuntamente en una sola base, la <strong>de</strong> conocimientos.<br />
• El Motor <strong>de</strong> inferencia (MI). Junto con la BC, constituye el núcleo <strong>de</strong>l<br />
SBC. Contiene los algoritmos con los cuales selecciona, <strong>de</strong>ci<strong>de</strong>, interpreta<br />
y aplica el conocimiento <strong>de</strong> la base <strong>de</strong> conocimientos sobre la base <strong>de</strong><br />
hechos con el fin <strong>de</strong> obtener la solución buscada. Un mecanismo <strong>de</strong><br />
inferencia <strong>de</strong>be ser in<strong>de</strong>pendiente <strong>de</strong>l conocimiento y <strong>de</strong> los hechos. Está<br />
caracterizado por:<br />
El lenguaje en que ha sido escrito.<br />
La velocidad <strong>de</strong> trabajo: Inferencias/segundo.<br />
Las estrategias <strong>de</strong> búsqueda <strong>de</strong> soluciones:<br />
No Or<strong>de</strong>nada: aleatoria, heurística.<br />
Or<strong>de</strong>nada: enca<strong>de</strong>namiento hacia a<strong>de</strong>lante (guiado por los<br />
datos, <strong>de</strong>ductivo), enca<strong>de</strong>namiento hacia atrás (guiado por<br />
los objetivos, inductivo).<br />
La forma en que elige el conocimiento.<br />
La posibilidad <strong>de</strong> incorporar metaconocimiento.<br />
El método que utiliza para la evaluación <strong>de</strong>l conocimiento<br />
incompleto o incierto.<br />
El intérprete <strong>de</strong> reglas se encarga <strong>de</strong> seleccionar aquéllas reglas cuya<br />
condición se satisfaga, pue<strong>de</strong> establecer si se satisface o no una condición<br />
consultando en la BH o preguntando al usuario. Cuando encuentra una regla<br />
cuya parte <strong>de</strong> condición se satisface la dispara ejecutando la parte <strong>de</strong> acción<br />
<strong>de</strong> la regla que pue<strong>de</strong> significar cosas distintas: añadir algo a la base <strong>de</strong><br />
hechos, hacer una sugerencia al usuario o consultar otro conjunto <strong>de</strong> reglas.<br />
6
CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />
• Subsistema <strong>de</strong> usuario: Permite <strong>de</strong>scribir el problema al SBC, consta <strong>de</strong><br />
menús y gráficos para realizar un diálogo en forma sencilla.<br />
• Subsistema <strong>de</strong> explicación: Proporciona al usuario una justificación <strong>de</strong>l<br />
razonamiento realizado por el motor <strong>de</strong> inferencia, y pue<strong>de</strong> ser <strong>de</strong> dos<br />
tipos:<br />
Explicación <strong>de</strong> tipo why (por qué): cada vez que el usuario pi<strong>de</strong> al<br />
sistema la verdad o la falsedad <strong>de</strong> un hecho, éste pue<strong>de</strong> preguntar<br />
por qué le hace esa pregunta. La respuesta <strong>de</strong>l sistema será<br />
explicar la regla que quiere aplicar para lo cual necesita comprobar<br />
el hecho.<br />
Explicación <strong>de</strong> tipo how (cómo): cada vez que el sistema llega a<br />
una conclusión el usuario pue<strong>de</strong> preguntarle cómo ha llegado a<br />
ella. El sistema respon<strong>de</strong> mostrando el enca<strong>de</strong>namiento <strong>de</strong> reglas<br />
que se ha producido para llegar a la conclusión.<br />
• Subsistema <strong>de</strong> adquisición <strong>de</strong>l conocimiento: Permite actualizar los<br />
datos en la base <strong>de</strong> conocimientos, pue<strong>de</strong> darse <strong>de</strong> las siguientes formas:<br />
Actualización manual <strong>de</strong> conocimientos, en este caso el Ingeniero<br />
Conocimiento es quién interpreta la información dada por un<br />
experto para realizar la posterior actualización.<br />
La segunda forma es cuando el experto en el área ingresa<br />
directamente el conocimiento revisado sin la ayuda <strong>de</strong> un Ingeniero<br />
Conocimiento.<br />
B. ¿Cómo Funciona?<br />
La interfaz con el usuario <strong>de</strong> <strong>UD</strong> Shell esta diseñada a base <strong>de</strong> ventanas, lo<br />
que permite que el usuario tenga una buena comunicación con el sistema y a<br />
su vez un fácil <strong>de</strong>splazamiento ya que, se permite el manejo con mouse o<br />
teclado.<br />
<strong>UD</strong> Shell permite dos tipos <strong>de</strong> usuario para el trabajo en las Bases <strong>de</strong><br />
Conocimiento, como son "Experto" e "Ingeniero <strong>de</strong> Conocimiento". En el<br />
modo Ingeniero <strong>de</strong> Conocimiento se tiene control total <strong>de</strong> la Base <strong>de</strong><br />
Conocimiento (actualización, inferencia, cambio <strong>de</strong> clave, <strong>de</strong>sarrollo <strong>de</strong><br />
interfaz <strong>de</strong> presentación, realizar copias <strong>de</strong> seguridad, etc), mientras que el<br />
modo Experto no tiene acceso a la actualización <strong>de</strong> la Base <strong>de</strong> Conocimiento<br />
sino sólo al proceso <strong>de</strong> inferencia.<br />
El entorno <strong>de</strong> <strong>UD</strong> Shell consta <strong>de</strong> una ventana con:<br />
• Una barra <strong>de</strong> menús y sus respectivos submenús.<br />
7
• Una barra <strong>de</strong> herramientas.<br />
• Una ficha con 3 páginas.<br />
• Una barra <strong>de</strong> estado.<br />
- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />
Figura 2. Entorno <strong>de</strong> <strong>UD</strong> Shell.<br />
El conocimiento en <strong>UD</strong> Shell se representa tomando como base los Sistemas<br />
<strong>de</strong> Producción, ya que estos proporcionan una estructura que facilita la<br />
<strong>de</strong>scripción y ejecución <strong>de</strong> un proceso <strong>de</strong> búsqueda y representación. De<br />
aquí parten las Reglas <strong>de</strong> Producción, y por tanto su implementación a <strong>UD</strong><br />
Shell, ya que su simplicidad y similitud con el razonamiento humano han<br />
contribuido para su popularidad en diferentes dominios.<br />
Las reglas representan el conocimiento, utilizando un formato SI......<br />
ENTONCES, es <strong>de</strong>cir tienen 2 partes:<br />
• La parte SI, que es el antece<strong>de</strong>nte, premisa o condición.<br />
• La parte ENTONCES que es el consecuente, conclusión, acción o<br />
respuesta.<br />
Para agregar una regla primero se <strong>de</strong>be crear una hipótesis, como se<br />
muestra a continuación:<br />
8
CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />
Figura 3. Agregar regla<br />
La tabla <strong>de</strong> los posibles valores <strong>de</strong>l factor <strong>de</strong> certeza es la siguiente, se<br />
muestra al dar click en el botón valores <strong>de</strong>l cuadro <strong>de</strong> dialogo nueva regla.<br />
Figura 4. Valores posibles <strong>de</strong>l Factor <strong>de</strong> Certeza<br />
Para crear una nueva condición, don<strong>de</strong> se incorporará toda la información<br />
pertinente a la condición, como lo es su atributo, valor, <strong>de</strong>scripción (opcional),<br />
operador matemático, operador lógico que permitirá unir las condiciones<br />
cuando hay más <strong>de</strong> una en una regla, a<strong>de</strong>más posee dos botones Agregar y<br />
Borrar condición.<br />
Figura 5. Agregar condición<br />
9
- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />
El proceso <strong>de</strong> inferencia consiste en la utilización <strong>de</strong>l dominio que esta<br />
almacenado en la Base <strong>de</strong> Conocimiento y el que el usuario facilita, para<br />
generar nuevo conocimiento, es <strong>de</strong>cir, con la información que se encuentra<br />
en la Base <strong>de</strong> Conocimiento y la suministrada por el usuario. Se pue<strong>de</strong> iniciar<br />
un proceso <strong>de</strong> búsqueda <strong>de</strong> soluciones empleando uno <strong>de</strong> los dos métodos<br />
<strong>de</strong> inferencia que <strong>UD</strong> Shell proporciona, como lo son el enca<strong>de</strong>namiento<br />
hacia a<strong>de</strong>lante y el enca<strong>de</strong>namiento hacia atrás. Si el usuario no brinda la<br />
información necesaria para este proceso <strong>de</strong> inferencia, difícilmente se podrán<br />
encontrar soluciones.<br />
El proceso <strong>de</strong> inferencia por medio <strong>de</strong>l enca<strong>de</strong>namiento hacia a<strong>de</strong>lante, parte<br />
<strong>de</strong> la información que el usuario suministra, es <strong>de</strong>cir está orientado por los<br />
datos. Esta información se introduce en la base <strong>de</strong> hechos y a partir <strong>de</strong> dicha<br />
información, <strong>UD</strong> Shell comienza a <strong>de</strong>ducir qué nuevos hechos se pue<strong>de</strong>n<br />
agregar a la base <strong>de</strong> hechos, teniendo en cuenta que una regla se pue<strong>de</strong><br />
disparar si todas sus condiciones se cumplen. Si hay reglas que se pue<strong>de</strong>n<br />
disparar, su parte conclusión se agrega a la base <strong>de</strong> hechos como un nuevo<br />
hecho.<br />
Este proceso en <strong>UD</strong> Shell se realiza así: primero se selecciona<br />
Enca<strong>de</strong>namiento a<strong>de</strong>lante <strong>de</strong>l menú Inferencia, inmediatamente <strong>UD</strong> Shell<br />
visualiza el panel <strong>de</strong> enca<strong>de</strong>namiento hacia a<strong>de</strong>lante.<br />
Figura 6. Panel enca<strong>de</strong>namiento hacia a<strong>de</strong>lante<br />
El proceso <strong>de</strong> inferencia por medio <strong>de</strong>l enca<strong>de</strong>namiento hacia atrás, parte <strong>de</strong><br />
los objetivos, es <strong>de</strong>cir, parte <strong>de</strong> una hipótesis. Se intenta verificar si la<br />
hipótesis sugerida se satisface o no. <strong>UD</strong> Shell examina que reglas se pue<strong>de</strong>n<br />
disparar para concluir que la hipótesis es cierta.<br />
Este método <strong>de</strong> inferencia tiene una gran ventaja y es que solicita<br />
únicamente la información necesaria para ejecutar las reglas que estén<br />
relacionadas con la hipótesis seleccionada.<br />
10
CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />
En <strong>UD</strong> Shell, este método <strong>de</strong> inferencia inicia visualizando el panel <strong>de</strong><br />
enca<strong>de</strong>namiento hacia atrás, que contiene una lista con todas las hipótesis<br />
<strong>de</strong> las reglas existentes y un botón llamado "Inferir" que es el encargado <strong>de</strong><br />
iniciar el proceso <strong>de</strong> inferencia hacia atrás.<br />
Figura 7. Panel enca<strong>de</strong>namiento hacia atrás<br />
C. Resultados<br />
<strong>UD</strong> Shell es una herramienta multiplataforma <strong>de</strong> propósito general puesto<br />
que se pue<strong>de</strong> usar en cualquier dominio <strong>de</strong>l conocimiento, admite la<br />
manipulación <strong>de</strong> múltiples bases <strong>de</strong> conocimiento, mejorando no sólo la<br />
representación <strong>de</strong>l conocimiento sino que también disminuyendo la<br />
complejidad y el tiempo <strong>de</strong> creación <strong>de</strong> las mismas. Presenta una interfaz<br />
amigable con el usuario con el fin <strong>de</strong> ponerlo en un ambiente <strong>de</strong> trabajo<br />
cómodo y <strong>de</strong> fácil manejo, posibilitando que el experto brin<strong>de</strong> información<br />
adicional sobre la base <strong>de</strong> conocimiento in<strong>de</strong>pendiente <strong>de</strong> la justificación <strong>de</strong><br />
las reglas ingresadas. A<strong>de</strong>más la herramienta permite reutilizar bases <strong>de</strong><br />
conocimiento existentes mediante el uso <strong>de</strong> importar, cortar, copiar y pegar.<br />
Posee un buen manejo <strong>de</strong> seguridad restringiendo el acceso a usuarios no<br />
<strong>de</strong>seados, realizando auto guardado según un intervalo <strong>de</strong> tiempo<br />
seleccionado por el usuario, por otra parte tiene la opción <strong>de</strong> realizar copias<br />
<strong>de</strong> seguridad en caso <strong>de</strong> fallas en el suministro eléctrico, bloqueo <strong>de</strong>l<br />
sistema. El usuario pue<strong>de</strong> seleccionar una apariencia según el Sistema<br />
Operativo instalado proporcionando una interfaz más amigable. Una<br />
particularidad a <strong>de</strong>stacar es el uso <strong>de</strong> dos métodos <strong>de</strong> inferencia<br />
(enca<strong>de</strong>namiento hacia a<strong>de</strong>lante y enca<strong>de</strong>namiento hacia atrás, mientras que<br />
otros shells (Microexpert, Emycin, Esbac, etc.) solo implementan uno.<br />
La herramienta muestra una lista <strong>de</strong> las reglas ejecutadas para llegar a<br />
cumplir un objetivo, a<strong>de</strong>más muestra porque se ejecuto una regla.<br />
<strong>UD</strong> Shell ha servido <strong>de</strong> ayuda para las <strong>Universidad</strong>es (Distrital, Nacional,<br />
Uniboyacá, La Salle, Fundación Universitaria Konrad Lorenz y<br />
11
- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />
Cundinamarca) en la enseñanza <strong>de</strong> parte <strong>de</strong>l contenido <strong>de</strong>l área <strong>de</strong><br />
Inteligencia Artificial siendo actualmente utilizada por más <strong>de</strong> 250 personas.<br />
A<strong>de</strong>más estamos <strong>de</strong>sarrollando un programa alternativo a los que<br />
actualmente se están realizando en Colombia.<br />
<strong>UD</strong> Shell se presento a la comunidad académica por medio <strong>de</strong> conferencias<br />
realizadas a los estudiantes <strong>de</strong> Inteligencia Artificial <strong>de</strong> la <strong>Universidad</strong> Distrital<br />
y en un concurso <strong>de</strong> software a nivel <strong>de</strong> la facultad obtuvo el primer puesto,<br />
a<strong>de</strong>más se presentó en el “Premio Nacional a la Innovación en Tecnologías<br />
<strong>de</strong> la Información y las Comunicaciones – 2003”, realizado por ETB y la<br />
<strong>Universidad</strong> Nacional <strong>de</strong> Colombia. También en el I Congreso Binacional <strong>de</strong><br />
Tecnologías Informáticas UFPS, que se llevó a cabo en Cúcuta <strong>de</strong>l 29 <strong>de</strong><br />
septiembre al 2 <strong>de</strong> octubre <strong>de</strong> 2004.<br />
V. Conclusiones<br />
• Los Sistemas Expertos y los Sistemas Basados en el Conocimiento son<br />
importantes en toda área <strong>de</strong>l conocimiento, tanto para la enseñanza <strong>de</strong> la<br />
inteligencia artificial como para la toma <strong>de</strong> <strong>de</strong>cisiones en las finanzas, la<br />
medicina, los estándares <strong>de</strong> calidad, etc. Es por esto que se hace<br />
necesario el <strong>de</strong>sarrollo <strong>de</strong> shells que proporcionen herramientas para la<br />
construcción <strong>de</strong> bases <strong>de</strong> conocimiento libres <strong>de</strong> fallas.<br />
• <strong>UD</strong> Shell es una herramienta <strong>de</strong> <strong>de</strong>sarrollo fácil <strong>de</strong> manejar y enten<strong>de</strong>r,<br />
por lo tanto pue<strong>de</strong> ser utilizada por cualquier persona interesada en la<br />
construcción <strong>de</strong> Sistemas Expertos y Sistemas Basados en el<br />
Conocimiento en cualquier dominio.<br />
• Con el manejo <strong>de</strong> incertidumbre se hace más fácil el manejo <strong>de</strong><br />
información parcial, incompleta, errónea, imprecisa dándole a los<br />
Sistemas Basados en el Conocimiento la habilidad <strong>de</strong> manipular<br />
información menos específica.<br />
• El metaconocimiento brinda la posibilidad <strong>de</strong> construir reglas <strong>de</strong> una<br />
forma correcta sin caer en errores <strong>de</strong> diseño, a<strong>de</strong>más <strong>de</strong> brindar una<br />
mejor explicación al momento <strong>de</strong> inferir.<br />
• Una característica que hace diferente a <strong>UD</strong> Shell <strong>de</strong> otras herramientas<br />
en la utilización <strong>de</strong> dos métodos <strong>de</strong> inferencia como lo son el<br />
enca<strong>de</strong>namiento hacia a<strong>de</strong>lante y el enca<strong>de</strong>namiento hacia atrás.<br />
• A pesar <strong>de</strong> las ventajas que presenta esta solución, en nuestro país el<br />
<strong>de</strong>sarrollo <strong>de</strong> Shells no se ha masificado, <strong>de</strong>bido a las i<strong>de</strong>as erróneas <strong>de</strong><br />
altos gastos en equipos e infraestructura para su implementación,<br />
a<strong>de</strong>más se cree carecer <strong>de</strong> personal que domine este tipo <strong>de</strong> tecnologías;<br />
12
CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />
por esto, es fundamental realizar investigaciones que <strong>de</strong>n cómo resultado<br />
herramientas que permitan popularizar este tipo <strong>de</strong> software.<br />
Referencias<br />
[1] Dankel, Douglas D. (1993). The Engineering Of Knowledge-Based<br />
Systems. Theory And Practice. Editorial Prentice Hall, New Jersey.<br />
[2] Giarratano, Joseph. (2001). Sistemas Expertos Principios y<br />
Programación. International Thomson Editores, México.<br />
[3] McClure, Carma L. (1993). CASE La Automatización <strong>de</strong>l Software.<br />
Editorial Addison - Wesley Iberoamericana.<br />
[4] Nixford, Siemens. (1991). Sistemas Expertos. Parte 2: Experiencia <strong>de</strong> la<br />
Práctica. Editorial Marcombo S.A., España.<br />
[5] Puerta, José Miguel. (1998). Sistemas Expertos Probabilísticos. Ediciones<br />
<strong>de</strong> la <strong>Universidad</strong> <strong>de</strong> Castilla, La Mancha.<br />
[6] Rolston, David W. (2003). Inteligencia Artificial y Sistemas Expertos.<br />
Editorial McGraw-Hill. Bogotá, Colombia.<br />
13