SISTEMAS EVOLUTIVOS BASADOS EN CONOCIMIENTO

 

Fernando Galindo Soria

Instituto Politécnico Nacional

México

26 de Septiembre de 1994

INTRODUCCIÓN

 

Los Sistemas Basados en Conocimiento son unas de las herramientas mas generales que existen, ya que por ejemplo un Sistema de Biblioteca Automatizada, un Sistema Experto o un Sistema Manejador de  Base de Datos se pueden ver como casos particulares de este tipo de sistemas, sin embargo lo común es que se construyan este tipo de sistemas particulares y no se ataque el caso general, por lo que, en este trabajo mostraremos como se puede construir una herramienta general para manejo de conocimiento soportado por un Sistema Evolutivo[1][2].

 

Como primer punto partimos de que en un Sistema Basado en Conocimiento, se cuenta con diferentes mecanismos para representarlo y manejarlo, incluyendo:

 

         . directorios de datos.

         . archivos de datos.

         . bases de datos.

         . bases de conocimientos.

         . conjuntos de reglas de inferencia.

 

Y dependiendo del tipo de sistema, los medios de manejo de conocimiento se pueden integrar de diferentes formas, por ejemplo:

 

         . en los sistemas de base de datos es común encontrar un directorio de          datos interrelacionado con la base de datos.

 

         . los sistemas expertos o de toma de decisiones integran al menos una          base de conocimientos y un conjunto de reglas de inferencias.

 

         . los sistemas de biblioteca automatizada están formados al menos por          una combinación de bancos de información (donde están almacenados          los documentos) y directorios de datos (que permiten accesar          directamente a elementos específicos de los bancos de información).

 

1.- ARQUITECTURA DE SISTEMAS EVOLUTIVOS BASADOS EN CONOCIMIENTO

 

La forma como se interrelacionan entre si los elementos también depende de la aplicación, formando diferentes tipos de arquitectura, en particular en este  trabajo partiremos de  una arquitectura por capas, en la cual se tienen los diferentes componentes de un sistema basado en conocimiento colocados en capas relacionadas entre si, de tal manera  que una capa sirve para accesar o localizar conocimientos de otras, como se ve en la siguiente figura:

 

 

Reglas de Inferencia

problemas

 

Base de Conocimientos

 

Realidad 

Directorio de Datos

soluciones

 

 Bancos de Información   Base de  datos

 

 

Archivos

 

 

Como se observa, el sistema esta formado por un conjunto de mecanismos de representación de conocimiento relacionados entre si  y un conjunto de mecanismos de percepción y actuación que permiten interactuar con el sistema y mantener actualizada su información.

 

Sin embargo la arquitectura no es tan simple ya que un problema muy grave de este tipo de sistemas se presenta en la adquisición, mantenimiento y explotación del conocimiento, ya que llega un momento en que el volumen de datos a manejar hace extremadamente complejo su tratamiento a mano.

 

Por lo que, en este trabajo se plantea que el proceso de adquisición del conocimiento se debe realizar en forma automatizada, se propone la integración de un conjunto de herramienta evolutivas orientadas a la adquisición y mantenimiento del sistema basado en conocimiento y en los siguientes puntos se describirá como se puede construir un Sistema Evolutivo  Basado en Conocimiento y bajo una arquitectura por capas.

 

2.- GENERACIÓN AUTOMÁTICA DEL DIRECTORIO DE DATOS

 

Por ejemplo la creación del directorio de datos en forma manual puede terminar siendo un proceso muy tedioso, ya que, cada palabra clave en el directorio se necesita ubicar en los bancos de información para detectar en que párrafos se presenta, de tal forma que cuando un usuario pregunte por esa palabra el sistema le indique en que párrafos se encuentra.

 

Realizar lo anterior a mano puede ser un proceso aburrido e impractico, por lo que desde hace muchos años se han desarrollado herramientas que construyen los  directorios en forma automatizada.

 

Por ejemplo durante los años 70's en El Colegio de México se inicio el proyecto del Diccionario del Español en México donde se propuso hacer un diccionario con todas las palabra que utilizan los hispanohablantes en México, para realizar este proyecto se analizaron varios millones de documentos buscando las diferentes palabras y sus significado.

 

Definitivamente este proyecto no se hubiera podido realizar manualmente, ya que la cantidad de información a tratar era enorme, por lo que se construyo, bajo la dirección del Ing. José Cen Zubieta un sistema de apoyo automatizado, al cual se le daban como entrada los documentos a analizar y el sistema generaba para cada palabra la lista de los párrafos donde aparecía esa palabra, de tal forma que los lingüista podían estudiar el uso de cada palabra en diferentes contextos y de ahí le asociaban su significado.

 

Basados en la idea anterior se puede construir una herramienta que analice los documentos almacenados en el banco de información y a partir de ahí la primera capa del sistema evolutivo toma los datos del banco y construye el directorio de datos, indicando para cada palabra clave la localización de los párrafos donde aparece.

 

3.- GENERACIÓN AUTOMÁTICA DE LA B. DE CONOCIMIENTOS

 

No solo la creación del directorio de datos puede ser un problema oneroso, también la creación y mantenimiento de los otros componentes del sistema puede llegar a ser muy pesado para  realizarse a mano, por lo que, como siguiente capa del sistema se integrara un mecanismo que permita la construcción automática de la Base de Conocimiento.

 

La Base de Conocimiento es uno de los componentes mas importantes de un sistema basado en conocimiento, ya que permite representar las interrelaciones entre las diferentes palabra claves y su significado.

 

Existen varios mecanismos para representar el conocimiento, pero uno de los mas usados son las redes semánticas, donde una  red  semántica esta formada por hechos o reglas de la forma objeto relación objeto (o r o), por ejemplo a partir de la oración: Juan es hermano de Pedro

 

se detecta que Juan es un objeto, es hermano de es una relación y Pedro es otro objeto por lo que de esta oración se obtienen directamente los componentes de una red semántica.

 

Por lo común los documentos no vienen divididos en párrafos de la forma oro, por ejemplo si observa este articulo se dará cuenta que existen pocas oraciones donde directamente aparezca un objeto seguido de una relación y de otro objeto, por lo que si se quiere construir la  red semántica a partir de las oraciones presentes en un documento se requiere de un análisis mas profundo, esto fue lo que realizo Jesús Olivares en su tesis de licenciatura "Sistemas Evolutivos para Representación de Conocimiento" desarrollada en la UPIICSA del IPN [3], donde planteo un mecanismo evolutivo para construir un base de conocimientos basada en una Red Semántica  Aumentada (Que almacena datos, imagen y sonido).

 

La idea de Jesús consistió basicamente en aplicar una serie de técnicas de Inferencia Gramatical basadas en la distribución lingüística [3][4], para transformar una oración compuesta de múltiples elementos en un conjunto de oraciones semanticamente equivalentes a la original, donde cada oración final es de la forma oro, por lo que, son fácilmente representadas con una red semántica.

 

Por ejemplo en la oración:

 

Juan estudia en el poli, trabaja en el INEGI y vive en Lindavista.

 

se tienen varios hechos pero sin embargo no son directamente representables mediante una red semántica, por lo que se le aplicara la distribución lingüística, por facilidad representaremos los elementos de la oración mediante letras y números, de tal manera que se note directamente cuales son los objetos, cuales las relaciones y cuales los separadores:

 

Juan                  es un objeto        o0

estudia en el      es una relación     r1

poli                   es un objeto        o1

,                        es un separador    +

trabaja en el       es  una relación    r2

INEGI               es un objeto        o2

y                       es un separador    +

vive en              es una relación     r3

Lindavista        es un objeto         o3

 

de donde la oración queda representada como:

 

o0 ( r1o1 + r2o2 + r3o3 )

 

El paréntesis que esta después de o0 refleja que tiene relación con todos los demás elementos de la oración (En la tesis de Elsa Berruecos[6] se presenta un método para encontrar en forma automática la dependencia entre los diferentes elementos de una oración).

 

si se toma la oración y  se le aplica la operación de distribución del álgebra queda:

 

o0 ( r1o1 + r2o2 + r3o3 ) = o0r1o1 + o0r2o2 +  o0r3o3

 

y si sustituimos el significado de los diferentes elementos tenemos que:

 

o0r1o1      Juan estudia en el poli

 +              ,

o0r2o2      Juan trabaja en el INEGI

+               y

o0r3o3      Juan vive en Lindavista.

 

o sea que a partir de una oración compleja se obtuvieron tres oraciones simples del tipo oro que mantienen el significado de la oración original y que son directamente representables en una red semántica.

 

4.-GENERACIÓN AUTOMÁTICA DE LAS REGLAS DE INFERENCIA

 

El conjunto de reglas de inferencia es otro de los componentes básicos de un Sistema Basado en Conocimiento y nuevamente su generación manual puede ser muy tediosa por lo que nos basaremos en un trabajo desarrollado junto con Javier Ortiz en el CENIDET de Cuernavaca [5] para la generación automatizada de reglas de inferencia. Para lo  cual partiremos que en general una regla de inferencia es un regla de la forma:

 

 Si  A entonces B

 

O sea que si se cumple  A  entonces B es cierto, donde A en general es un conjunto de condiciones o síntomas sobre un problema y B en general se puede ver como una acción o conjunto de acciones que se ejecutan si se cumple A, en particular B es el diagnostico y tratamiento asociado con los síntomas de A.

 

Para encontrar las reglas de inferencia a partir de un documento se toma del documento un párrafo donde se presente un conjunto de síntomas asociados con  un diagnostico y con  un conjunto de tratamientos, se sustituye cada elemento por una representación interna donde se indica si un elemento es síntoma, diagnostico o tratamiento e ignorando los elemento que no tengan significado por lo que al final queda una representación de la forma:

 

s1s2s3....sn  d t1t2...tm

 

esto se  realiza para todos los párrafos del documento y al final se cuenta con un conjunto de reglas como:

 

s1s2s3....sn  d1  t1

sm..........sx  d2  t2

      |      |      |

      |      |      |

sy...........sz  dz  tz

 

Ahora bien asociada con la distribución lingüística se encuentra otra operación algebraica conocida como factorización lingüística y que es inversa de la distribución o sea que si factorizamos o0 de la oración

 

o0r1o1 + o0r2o2 + o0r3o3   nos queda   o0 ( r1o1 + r2o2 + r3o3 )

 

Lo interesante es que si mediante la distribución se pueden encontrar los componentes de la base de conocimientos, mediante la Factorización Lingüística se pueden encontrar las  reglas de inferencia del sistema basado en conocimiento, ya que solo se necesitan tomar las reglas encontradas anteriormente, verlas como una expresión algebraica y factorizar los elementos comunes, de tal manera que los síntomas comunes a varios diagnósticos quedan juntos  y los síntomas particulares de un diagnostico quedan asociados con el.

 

CONCLUSIÓN

 

Como se puede ver en este documento partimos de que se cuenta con un banco de información al que se le aplican técnicas evolutivas para construir el Directorio de Datos, la Base de Conocimiento y el conjunto de Reglas de Inferencia.

 

Lo maravilloso de este enfoque es que a partir de la misma fuente de información se pueden encontrar diferentes niveles de representación de conocimiento y lo que se esta realizando es un dialogo con el interior del Banco de Información para encontrar reglas y conocimiento que se encuentra inmerso en las fuentes de información y que por lo común se pierden.

 

Con este trabajo se quiere mostrar que en los bancos de información se tiene una gran cantidad de información oculta, que solo es necesario construir herramientas capaces de realizar procesos de dialogo con los almacenes de información y estos mecanismos son capaces de encontrar una gran cantidad de información inmersa y que hasta el momento no se aprovecha por no contar con las herramientas adecuadas, pero principalmente por desconocimiento de que estamos sentados sobre  una mina de información y no sabemos aprovecharla o siquiera que existe.

 

BIBLIOGRAFÍA

 

1.- Sistemas Evolutivos: Nuevo Paradigma de la Informática.

     Fernando Galindo Soria.

     Memorias de la XVII Conferencia Latinoamericana de Informática

     Caracas, Venezuela. Julio, 1991.

 

2.- Sistemas Evolutivos.

     Fernando Galindo Soria.

     Boletín de Política Informática; INEGI-SPP.

     México, Septiembre de 1986.

 

3.- Sistema Evolutivo para Representación de Conocimiento.

     Jesús Olivares Ceja.

     UPIICSA-IPN.

 

4.- Algunas Propiedades Matemáticas de los Sistemas Lingüísticos.

     Fernando Galindo Soria.

     Memorias del Simposium Nacional de Computación.

     México, Noviembre de 1992.

 

5.- Sistemas Evolutivos Constructores de Sistemas Expertos.

     Javier Ortiz Hernández, Fernando Galindo Soria.

     Cenidet-DGIT, UPIICSA-IPN.

      Cuernavaca, Mor. 1988.

 

6.- Sistema Evolutivo Generador de Esquemas Lógicos de Bases de Datos

      Elsa Berruecos Rodríguez.

      UPIICSA-IPN

      México, 1990.