Sistema Inteligente de Codificación

McEQ, SIC, Clipper, Sistema Inteligente de Codificación

Este Sistema Inteligente de Codificación (SIC) estaba basado en un primer prototipo de EQ Sistemas Inteligentes para el Instituto Nacional de Estadística (INE) de apoyo a la codificación automática de enfermedades según el Código Internacional de Enfermedades (CIE).

Este hardcopy muestra la arquitectura interna de SIC, que estaba basada en un esquema de pizarra. A continuación se incluye la documentación de este sistema inteligente de codificación, que se ha dejado adrede tal y como se documentaba al inicio de la década de los 90, aunque, por supuesto, ya disponíamos de unos estupendos Macintoshs.

+--------------------------------------------------------------------+
| SIC: SISTEMA INTELIGENTE DE CODIFICACION.                          |
+--------------------------------------------------------------------+
| 1.- INTRODUCCION.                                                  |
+--------------------------------------------------------------------+

SIC es una aplicación de demostración, desarrollada por EQ Sistemas
Inteligentes.  Su objetivo es presentar cómo puede realizarse una
codificación automática de literales a partir de una información que
puede ser parcial y/o errónea.

La tarea de codificación de SIC consiste en asignar códigos a
literales, aún cuando estos literales contengan errores, utilicen
sinónimos o no correspondan totalmente con los literales originales.
Para ello SIC cuenta con la siguiente información:

  a) Uno o varios dicionarios con las palabras que se manejan en los
     literales (un vocabulario básico del dominio de aplicación).
     Sobre estos diccionarios SIC aplica diversos métodos de búsqueda
     especializados en encontrar palabras a pesar de sus posibles
     errores (de tecleo, ortografía, fallos en lecturas por medios
     ópticos, por errores en transmisión, etc.). A estos métodos se
     les denomina especialistas.

  b) Un diccionario de sinónimos, que proporciona, para cada palabra,
     uno o varios sinónimos dependiendo, como se verá, del modo de
     trabajo de SIC.

  c) La tabla original de codificación en la que a cada código se le
     asocia un literal.  Sobre ella SIC construye un diccionario
     canónico (normalizado) que le permite manejar los literales con
     independencia del contexto en el que trabaja la aplicación.

Esta versión de demostración de SIC proporciana tres funcionalidades
principales:

  a) Validación de palabras durante la entrada de datos.

  b) Codificación asistida, dado un literal se codifica y en caso de
     dudas (cuando existen varias soluciones posibles) se consulta con
     el usuario.

  c) Codificación automática de conjuntos de literales.

A estas tres funcionalidades se accede a través de las tres primeras
opciones menú principal de la aplicación y son las tres consecuencia
de la arquitectura interna de SIC.

En el ejemplo escogido para esta demostración se utiliza una versión,
parcial, del Código Internacional de Enfermedades (CIE), realizado por
la Organización Mundial de la Salud (OMS).  Esta codificación de
enfermedades se aplica para la codificación partes de defunción (cada
parte está formado por cuatro causas de muerte).
  

+--------------------------------------------------------------------+
| 2.- ARQUITECTURA.                                                  |
+--------------------------------------------------------------------+

SIC posee una arquitectura general, esto es, independiente del dominio
o área de aplicación.  Por tanto aunque esta demostración se realice
para la codificación de enfermedades puede ser transportable a otras
áreas como, por ejemplo, la codificación postal (nombres de calles,
nombres de municipios, etc.), la codificación de productos a partir de
sus descripciones, la localización de títulos de libros, etc.

Frente casos complejos de codificación, diccionarios de gran volumen o
retricciones de tiempo, esta arquitectura general debe especializarse
(incluyéndole información sobre el dominio y el contexto en el que se
realiza la codificación) para que proporcione los rendimientos que se
requieran.

 +------------------------------------------------------------------+
 |    +------++--------------++-----------------------------------+ |
 | +--+---+ES|| ARQUITECTURA ||  DICCIONARIOS ORTOGRAFICOS (Dio)  | |
 | |PARTES|==|+--------------+|+-----+ +-----+   +-----+   +-----+| |
 | |======|==|  +-------+     ||DIO 1| |DIO 2|...|DIO i|...|DIO n|| |
 | |======+--+  |PIZARRA|     ||=====| |=====|   |=====|   |=====|| |
 | +-+----+     +-+-+-+-+     |+--+--+ +--+--+   +--+--+   +--+--+| |
 | +-+-----+ +>-+=|=|=|=+-+   |Ind#############################---+ |
 | |FILTRO | |  +-+-+-+-+ |   | +-+-+  +-+-+  +-+-+  +-+-+  +-+-+ | |
 | +-+-----+ |  |=|=|=|=| +>--+ |DIR|  |INV|  |BID|  |FON|  |ORT| | |
 | +-+-----+ |  +-+-+-+-+<+   | +---+  +---+  +---+  +---+  +---+ | |
 | |SCANNER+-+  |=|=|=|=| +---+ CLASE DE LOS ESPECIALISTAS  (Esp) | |
 | +-------+    +-+-+-+-+     +-----------------------------------+ |
 | +-------+    |=|=|=|=|     +---------+   +-----+   +---+-------+ |
 | |SINONIM+-<--+-+-+-+-+ +>--+GRAMATICA+->-+CANON+->-+COD|LITERAL| |
 | | (Sin) +->--+=|=|=|=+-+   |CANONICA |   |=====|   |===|=======| |
 | |=======|    +-+-+-+-+     +---------+   +-----+   |===|=======| |
 | |=======|    |=|=|=|=+<--------S-O-L-U-C-I-O-N---<-+===|=======| |
 | +-------+    +-+-+-+-+                             +---+-------+ |
 +------------------------------------------------------------------+
                Figura: Arquitectura de SIC.

Pulsando la combinación de teclas [Alt-U], una vez dentro de la
aplicación SIC, puede accederse a un menú de utilidades una de cuyas
opciones es un semi-gráfico, con una versión simplificada de la
arquitectura interna de la aplicación SIC (ver figura anterior).

Esta arquitectura esta basada en un sencillo mecanismo de PIZARRA, con
un control semi-rígido.  Sobre esta pizarra, los diferentes métodos
especialistas (DIRecto, INVerso, BIDireccional, FONético, etc.) en
localización de palabras apuntan sus resultados, decidiendo la pizarra
quién o quienes de ellos dan soluciones más verosímiles.

En líneas generales el funcionamiento de SIC es el siguiente (se ha
destacado en mayúscula, en cada punto, una palabra clave que permite
identificar la fase de proceso en la figura de la arquitectura):

   a) En una primera fase los literales son filtrados eliminando
      posibles caracteres extra¤os y transformados, bien a mayúsculas
      o a minúsculas (FILTRO).

   b) Posteriormente cada literal es procesado, separando las posibles
      palabras (o tokens) que lo constituyen (SCANNER).

   c) Cada palabra es buscada en los diccionarios por toda una familia
      de especialistas. Dependiendo de si la palabra es directamente
      correcta o de si tiene muchos errores este proceso se demorará
      más o menos. La PIZARRA controla este proceso y su resultado es
      una gama de posibles literales, constituidos por variantes de
      palabras. En la decisión sobre que variantes de palabras se
      eligen influyen las opiniones, coincidentes o discrepantes, de
      los diferentes especialistas y la importancia relativa de cada
      uno de ellos.

   d) La gama de posibles literales es procesada con el diccionario de
      SINONIMOS, sustituyéndose cada palabra por su sinónimo o
      sinónimos principales.  Dependiendo de si para cada palabra
      existen uno o varios sinónimos, la gama de literales originales
      puede simplificarse o complicarse.

   e) Cada literal, resultado de la fase anterior es normalizado según
      una forma CANONICA, ello facilita su confrontación con la tabla
      original de codificación.

   f) Finalmente, cada literal canónico (CANON) es confrontado con una
      versión canónica de la tabla de codificación. Devolviéndose los
      resultados a la pizarra.

   g) Cuando la pizarra dispone de todas las posibles variantes
      (SOLUCIONES) de codificación decide:
      =) bien cual de ellas es la correcta,
      =) bien que no dispone de criterios suficientes para discernir
         entre varias (en este caso y en codificación asistida se pide
         ayuda al usuario) o
      =) bien que ninguna de las soluciones propuestas es
         suficientemente válida.
  

+--------------------------------------------------------------------+
| 3.- CONFIGURACION.                                                 |
+--------------------------------------------------------------------+

Desde el mismo menú anterior ([Alt-U]) se puede acceder a una ventana
de configuración de esta versión de SIC, cuyas opciones son:

  a) Test en partes (S/N): Que permite decir si se desea o no realizar
     una verificación de palabras durante la entrada de datos.

  b) Control de pizarra (S/N):  Si se pone a "S" esta versión de SIC
     muestra, en cada paso de codificación, sus resultados
     intermedios.  Ello permite entender su funcionamiento interno.

  c) Modo de funcionamiento respecto a los sinónimos. SIC posee 2
     modos de trabajo (no modificable):

     =) Relación Palabras N:1 Principal (Sinónimos sencillos).
     =) Relación Palabras N:M Principal (Sinónimos complejos).

     Esto es:

     =) Si se dá el caso que en cada familia de sinónimos, todos
        con el mismo significado, puede escogerse, siempre, una sóla
        palabra principal representante de todos (relación N:1).

     =) O si por el contrario, una palabra puede tener varios
        sinónimos, con diferentes significados, dependiendo del
        contexto en el que se utilice (relación N:M).

     El diccionario de sinónimos de esta versión de SIC pertenecen a
     al segundo caso.

  d) Sonido (en décimas de segundo):  Si se pone un entero superior a
     cero SIC generará un pitido en cada fase de codificación.
     Permite, por tanto, controlar, de forma aproximada, la duración
     de las diferentes fases de codificación.

  e) Filtros de palabras y de códigos que facilitan a SIC la taréa de
     aceptar o rechazar palabras parecidas o códigos parecidos.  El
     comportamiento de SIC es muy dependiente de estos dos parámetros.

     =) Valores muy altos, cercanos a la unidad, harán que SIC tenga
        un comportamiento muy estricto, dando gran seguridad a su
        codificación, pero por el contrario rechazando algunos
        literales por pocas de diferencias.

     =) Valores muy bajos, cercanos al cero, harán que SIC tenga un
        comportamiento muy flexible, encontrando posibles soluciones
        para casi todo, pero generando, a menudo, excesivas variantes.

     Dependiendo del contexto de aplicación y de las restricciones que
     deban cumplirse deberán ajustarse dichos parámetros.  Por
     ejemplo, en un mismo dominio, para la verificación en entrada
     debe utilizarse un filtro de palabras más bajo que el que se
     utilizaría para la codificación asistida.
  

+--------------------------------------------------------------------+
| 4.- INSTALACION Y ARRANQUE.                                        |
+--------------------------------------------------------------------+

Cree un subdirectorio en su disco duro, por ejemplo, de nombre SIC.

C:\> MKDIR SIC

Copie el contenido del disco de distribución en el subdirectorio
subdirectorio anterior.

C:\> COPY A:*.* SIC

Ejecute el fichero SICDemo.Bat.

C:\> CD SIC
C:\> SICDEMO

Todo ello puede realizarse, directamente con el programa Instala.Bat

C:\> A:INSTALAR A: C:

SIC puede ejecutarse directamente sobre el disco flexible de
distribución, pero los tiempos de respuesta pueden ser desesperantes.

Si en el momento de ejecución de SIC y tras pulsar el [Intro]
correspondiente, pulsa la tecla [Del] (Suprimir) entra en un menú de
autoconfiguración del interfaz de usuario de la aplicación SIC.  Desde
este menú se puede modificar algunas de las caracteristicas del
interfaz de usuario de SIC.

De este menú se sale con la tecla escape [Esc].  Si algunas de las
opciones de este menú le da errores, NO SE PREOCUPE, está buscando
Pixmaps o configuraciones del entorno de desarrollo McEQ sobre el que
está construido SIC y que no se distribuyen junto a él.
  

+--------------------------------------------------------------------+
| 5.- CONTACTO.                                                      |
+--------------------------------------------------------------------+

Para cualquier cuestión o consulta no dude en ponerse en contacto con
nosotros:

                                 EQ Sistemas Inteligentes

+--------------------------------------------------------------------+
| GRACIAS POR SU ATENCION.                                           |
+--------------------------------------------------------------------+
  

EQ Sistemas Inteligentes, fundación y clientes

Miembro fundador de EQ Sistemas Inteligentes, S.L., 1991-95, empresa del área de la inteligencia artifical y del proceso avanzado de la información.

De entre los proyectos que desarrollamos en EQ Sistemas Inteligentes se podrían destacar:

  • Sistema experto de ayuda a la explotación para el Banco de España.
  • Elaboración del modelo informativo de Productos Bituminosos SA, PROBISA.
  • Sistema de planificación automática de rutas para obras para el Metro de Madrid.
  • Sistema de apoyo a la codificación automática de enfermedades, según el Código Internacional de Enfermedades, para el Instituto Nacional de Estadística INE.
  • Sistema de soporte a la presupuestación jerárquina para el Schindler Group.
  • Sistema de información sobre las posibilidades de construcción de un enlace fijo por el Estrecho de Gibraltar para la Sociedad Española de Estudios para la Comunicación Fija a través del Estrecho de Gibraltar SA, SECEGSA.

Además de otros servicios, cursos de formación y proyectos para entidades y empresas como la Comunidad de Madrid, Alcaltel o El Corte Inglés.

  • From 1991 (startup of the company) to 1995: Specialized in the development of knowledge-based systems for clients such as Alcatel, National Bank of Spain, National Statistics Institute, Madrid Underground Transport, El Corte Inglés, Schindler, PROBISA, etc.
  • Desde su creación en 1991 a 1995: Empresa especializada en el desarrollo de sistemas basados en el conocimiento con clientes como Alcatel, Banco de España, INE (Instituto Nacional de Estadística), Metro de Madrid, El Corte Inglés, Schindler, PROBISA, etc.

EQ Sistemas Inteligentes, entorno software

McEQ, agenda, Clipper, EQ Sistemas Inteligentes

Este hardcopy, capturado en 2015, muestra la pantalla de entrada de una aplicación de agenda comercial, que se desarrolló en 1993 por EQ Sistemas Inteligentes gracias a un entorno propio de desarrollo denominado McEQ, basado en Clipper y dBase.

Lo que realmente muestra la imagen del hardcopy es una aplicación de 16 bits de 1993, ejecutándose en 2015 sobre un computador de 64 bits, con sistema operativo Linux Mint, sobre el que VMWare virtualiza una máquina Windows 7 ultimate, sobre la que corre un DOSBox version 0.74 que emula DOS de Microsoft de 32 bits, que todavía era capaz de ejecutar aplicaciones de 16 bits.

  • Developement environment: Operating systems: HP-UX and Windows; Databases: dBase, Oracle and Informix; Languages: Clipper, C with OSF/Motif and DeCon (knowledge declaration).
  • Entorno software: Sistemas operativos: HP-UX y Windows; Bases de datos: dBase, Oracle e Informix; Lenguajes: Clipper, C y OSF/Motif y DeCon (declaración del conocimiento).