De BMP Windows a ICO Unix

De BMP de 16 bits de Windows a ICO Unix y a BIF

El programa de conversión de Bitmaps (BMP) de 16 bits de Windows al formato ICO (de icono) de Unix lo comenzó a desarrollar Juan Ramón Miraz, al comienzo de los noventa, y la versión final que se adjunta en este post la terminé yo.

El formato ICO de Unix especifica un mapa de bits como una matriz de caracteres ASCII, donde cada letra se asocia con el color del pixel de su misma fila y columna. Hubo una época que los bitmaps de los botones de los interfaces de usuario yo lo pintaba así, utilizando el editor vi de Unix y letra a letra. Por ejemplo, asociaba la v al verde, la b al blanco, la r al rojo, etc., para que me fuera más fácil, e iba poniendo letras, una a una, hasta que el botón quedaba bien. Para mi era una gratificante labor artesanal.

A partir de este programa también desarrollé el que convierte del formato BMP al formato BIF, que era un formato propio mio, que utilizaba en combinación con Clipper.

Aunque ahora se podrían recompilar estos dos códigos fuente para las versiones de Windows de 64 bits, sigo utilizando los ejecutables originales de 16 bits. Antes estos ejecutables de 16 bits podían correr mediante emulación en Windows de 32 bits, pero ahora el Windows de 64 bits ya no emula al de 16 bits.

Para poder seguir ejecutando estas pequeñas joyas históricas, sin necesidad de recompilarlas (y más aun en aquellos casos en el que el compilador es también de 16 bits) utilizo el emulador de x86 con DOS de DOSBox que se publica con licencia GNU GPL y aceptan donaciones (yo se la di).

Aunque adjunto en PDF el código fuente completo de los 2 programas de conversión y un ejemplo del formato ICO generado con mi logotipo personal, pongo a continuación el ciclo fundamental de extracción de pixels de un Bitmap (BMP) de 16 colores. Como curiosidad, en esta época, por razones de normalización con el equipo de software con el que trabajaba, los corchetes { } están en la vertical del bloque de código y no dos caracteres antes como es mi costumbre habitual:


for (Y=0, YMax=Bmih.biHeight; Y < YMax; Y++)
  {
  fseek(Bmp, RowStart, SEEK_SET);
  for (X=0, XMax=Bmih.biWidth; X < XMax; X++)
    {
    Arg = fgetc(Bmp);
    H = (Arg >> 4) & 0x0F;  H = Color[H];
    L = Arg & 0x0F;         L = Color[L];
    X++;
    fprintf(Pix,"%c%c",(char)H,(char)L);
    }
  RowStart -= RowBytes;
  fprintf(Pix,"\n");
  fputc('.',stdout); fflush(stdout);
  }
  

Graduate Management Admission Test

En 1994 organice un curso, busqué al profesor estudié y me presenté al Graduate Management Admission Test (GMAT) de la Universidad de Princeton (Nueva Jersey), obteniendo una puntuación superior al percentil 80.

Este test es el que se requiere es Estados Unidos para cursar estudios económicos en las universidades y maestrias en dirección y administración de empresas.

  • «Graduate Management Admission Test», course and score above the 80th percentile, Princeton University, New Jersey, 1994.
  • «Graduate Management Admission Test», curso y evaluación por encima del percentil 80, Universidad de Princeton, Nueva Jersey, 1994.

Master de Ingeniería de Tráfico, DGT

Profesor de la asignatura «Panorámica del hardware», en el Master de Ingeniería de Tráfico, organizado por la Asociación para la Carretera, la Dirección General de Tráfico (DGT) y la Universidad Politécnica de Madrid (UPM). Impartido en la Escuela Universitaria de Ingeniería Técnica de Obras Públicas (UPM). Participé las dos ediciones de 1994 y 1995.

  • Teacher of «Hardware concepts», Master of Traffic Engineering, Directorate-General for Traffic, 2 editions, Madrid, 1994 & 1995.
  • Profesor de «Panorámica del hardware», Master de Ingeniería de Tráfico, Dirección General de Tráfico, 2 ediciones, Madrid, 1994 y 1995.

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.                                           |
+--------------------------------------------------------------------+
  

Herramienta TIRS, IBM

Profesor del curso «Desarrollo de sistemas basados en el conocimiento con la herramienta TIRS». Dos ediciones, la primera para El Corte Inglés y la segunda para el Instituto Nacional de Estadística (INE).

  • Teacher of «IBM Tirs Tool», National Statistics Institute & El Corte Ingles, 2 editions, Madrid, 1993.
  • Profesor de «Herramienta Tirs de IBM», Instituto Nacional de Estadística & El Corte Inglés, 2 ediciones, Madrid, 1993.

Sigart Bulletin, ACM Press

Referencia de mi tesis doctoral en el número 1, del volumen 4, de la revista Sigart Bulletin, de ACM Press. Edición al cuidado de W. Lewis Johnson, USC, Information Sciences Institute, California, USA.

  • Doctoral thesis referenced in the «Sigart Bulletin», volume 4, issue 1, ACM Press, Information Sciences Institute, California, January of 1993.
  • Tesis doctoral referenciada en el «Sigart Bulletin», volumen 4, número 1, ACM Press, Information Sciences Institute, California, enero de 1993.

Equiparación de perfiles de personalidad

Capitanía General de la Región Militar Centro

Colaborador del trabajo «PCCP: Una aplicación de la ingeniería del conocimiento para la evaluación de cuestionarios de personalidad de las Fuerzas Armadas», bajo la dirección de Miguel Ángel Núñez del Centro Regional de Psicología (CREPSI) durante mi servicio militar (este fue uno de los trabajos que realicé dentro de las áreas de las aplicaciones a la psicología militar y de la captura óptica de datos).

Este trabajo galardonado con el 2º Premio de Investigación en Psicología Militar «General González del Pino», del Ministerio de Defensa en 1992 (BOE número 282, del martes 24 noviembre 1992, Resolución 421/39369/1992, de 18 de noviembre, de la Secretaria de Estado de Administración Militar, por la que se otorga el Premio de Investigación Psicológica «General González del Pino»).

Resumen: Para dicha aplicación desarrollé el módulo de equiparación de patrones de perfiles de personalidad de los individuos a evaluar con los individuos ya evaluados y clasificados en un banco de datos histórico. Los nuevos individuos podían entrar a formar parte de este banco de datos tras su evaluación, clasificación y seguimiento, con lo que se producía un enriquecimiento constante del banco de datos inicial. La equiparación se realizaba a través de la definición de una medida de distancia entre todos los atributos de la personalidad que medía la aplicación y los de los individuos registrados en el banco de datos. Para optar al premio, también participé en la redacción de la parte de la memoria correspondiente a este módulo de equiparación de perfiles de personalidad.

  • Collaborator of Miguel Angel Núñez, «Application of the knowledge engineering for the evaluation of personality questionnaires», Awarded with the second prize in military psychology research, Ministry of Defence, Madrid, 1992.
  • Colaborador de Miguel Ángel Núñez, «Aplicación de la ingeniería del conocimiento para la evaluación de cuestionarios de personalidad», Galardonado con el 2º premio en investigación en psicología militar, Ministerio de Defensa, Madrid, 1992.

PhD, Inteligencia Artificial, UPM

Ministerio de Educacion, Teseo, Antonio Salmerón
  • Doctor Cum Laude in Artificial Intelligence, Technical University of Madrid, thesis advisor José Cuena, 2+3 years, 1986-1988, 1989-1992.
  • Doctor Cum Laude en Inteligencia Artificial, Universidad Politécnica de Madrid, director de la tesis José Cuena, 2+3 años, 1986-1988, 1989-1992.
Universidad Politécnica de Madrid, Tesis, Antonio Salmerón

Cuerpo Superior de Técnicos en TI

Apartado de restricciones del temario de la oposición

Temario de la oposición al Cuerpo Superior de Técnicos en Tecnologías de la Información.

Inicialmente se hizo un sólo tema coordinado por Francisco López Crespo, luego se ampliaron a cuatro temas (coordinados por mí) y, a partir de ahí, el contenido de estos módulos fue reutilizado por los organismos encargados del temario de forma independiente a los autores iniciales.

Estos autores iniciales fueron, por orden alfabético: Manuel Alonso González, María Jesús Díaz García, Ana García Serrano, Martín Molina González, Eduardo Izquierdo Lázaro, Sascha Ossowski y Antonio Salmerón.

Tengo conocimiento de, al menos, cuatro ediciones, cuya historia describo a continuación, aunque es posible que haya habido muchas más.

Cuatro ediciones:

  1. Coautor del tema 15, Inteligencia Artificial y Sistemas Expertos, coordinado por Francisco López Crespo, Ministerio para las Administraciones Públicas (MAP), Madrid 1992.
  2. Coautor y coordinador técnico de los temas 24, 25, 26 y 27 del nuevo temario de 1996, también para el Ministerio para las Administraciones Públicas (MAP).
  3. En la edición de 2002, los temas anteriores, se volvieron a editar con los números 19, 20, 21 y 22, siguiendo el orden de la convocatoria del Boletín Oficial del Estado (BOE) 215 de 2002/09/07, en una edición que corrió a cargo de la Asociación Profesional del Cuerpo Superior de Sistemas y Tecnologías de la Información de la Administración del Estado (ASTIC).
  4. Finalmente en 2009, esto temas, se refundieron en el tema 65, «Gestión del conocimiento: Representación del conocimiento. Sistemas expertos. Herramientas», del segundo volumen de la edición de ASTIC.
  • Coauthor and technical coordinator of «Modules of artificial intelligence & experts systems», Ministry of Public Administration, 4 editions, Madrid, 1992, 1996, 2002 & 2009.
  • Coautor y coordinador técnico de «Módulos de inteligencia artificial y sistemas expertos», Ministerio para las Administraciones Públicas, 4 ediciones, Madrid, 1992, 1996, 2002 y 2009.

Time to market e ingeniería concurrente, HP

Con el título «Time to market e ingeniería concurrente», fue una conferencia sobre técnicas avanzadas de diseño y manufacturación industrial para Structural Dynamics Research Corporation (SDRC) y Hewlett-Packard, con dos ediciones una en Madrid y otra en Barcelona, 1992.

  • Lecturer in «Time to market & concurrent engineering», Structural Dynamics Research Corporation & Hewlett-Packard, 2 editions, Madrid & Barcelona, 1992.
  • Conferenciante en «Time to market e ingeniería concurrente», Structural Dynamics Research Corporation & Hewlett-Packard, 2 ediciones, Madrid y Barcelona, 1992.

Arquitecturas de 2ª generación de diagnóstico

Ponencia titulada «Arquitecturas de segunda generación para el diagnóstico profundo en instalaciones industriales», dentro del curso sobre Técnicas Avanzadas de la Inteligencia Artificial, de la Universidad de Extremadura (UNEX) en 1992.

Pertenece al conjunto de ponencias realizadas ya cerca, y en el marco, de la presentación de mi tesis doctoral. Cada ponencia representaba un paso adelante en el refino de las ideas de la tesis.

  • Speaker on «2nd generation architectures for the deep diagnosis in industrial plants», Universidad de Extremadura, Caceres, 1992.
  • Ponente en «Arquitecturas de 2ª generación para el diagnóstico profundo en instalaciones industriales», Universidad de Extremadura, Cáceres, 1992.

Centro Superior de Investigaciones Científicas

Presentación científica titulada «Arquitecturas de segunda generación para el diagnóstico profundo en instalaciones industriales», realizada en el Centro Superior de Investigaciones Científicas (CSIC), en Madrid el 24 de octubre de 1991, en la IV Reunión Técnica de la Asociación Española Para la Inteligencia Artificial (AEPIA).

El artículo, escrito con mi director de tesis José Cuena, que da soporte a esta presentación científica está publicado en las Actas de la IV Reunión Técnica de la AEPIA, en la sección IV de «Arquitecturas Avanzadas», de las páginas 351 a 365.

Es una de las presentaciones de la que guardo más grato recuerdo, tal vez por el entorno del salón de actos del CSIC, por la presencia de mi director de tesis José Cuena (que fue Presidente AEPIA de 1983 a este año 1991) y por la de Felisa Verdejo (directora del Departamento de Lenguajes y Sistemas Informáticos de la UNED y del grupo de investigación Procesamiento del Lenguaje Natural), sentada junto a él y que luego formaría parte de mi tribunal de tesis.

El mosaico de la portada de las Actas, que combina en verdes el logotipo de la AEPIA, y su versión en grises del Programa de mano de la reunión es una creación mía realizada con un Apple Macintosh. Este mosaico también fue utilizado para la V Conferencia de la AEPIA en 1993 pero en naranjas.

  • Coauthor of «2nd generation architectures for the deep diagnosis in industrial plants», Papers of the 4th Technical Meeting of the AEPIA, Scientific Research Council, Madrid, 1991.
  • Coautor de «Arquitecturas de 2ª generación para el diagnóstico profundo en instalaciones industriales», Actas de la IV Reunión Técnica de la AEPIA, Centro Superior de Investigaciones Científicas, Madrid, 1991.

Representación en restricciones

Ponente de la conferencia titulada «Representación en restricciones de conocimiento profundo sobre instalaciones industriales», centrada en la «Programación con restricciones». La ponencia está basada en artículo del mismo nombre, escrito con José Cuena, que se publicó en las actas de las jornadas de Programación Declarativa, Universidad de Málaga, Málaga, celebrada del 2 al 4 de octubre de 1991.

  • Coauthor of «Constraint programming», Papers of the Declarative Programming Symposium, Malaga University, Malaga, October of 1991.
  • Coautor de «Programación con restricciones», Actas de las Jornadas de Programación Declarativa, Universidad de Málaga, Málaga, octubre de 1991.

Limites para la definicion de una inteligencia artificial

Capítulo 13 del temario del curso de «Sistemas expertos en la empresa» impartido durante 5 ediciones de 1991 a 1995. Escribí varios capítulos de este temario y a este, el más corto con diferencia, le he tenido siempre especial cariño.

Limites para la Definicion de una IA, páginas 1 y 2

Este capítulo analiza los límites de la inteligencia artificial (IA) en el contexto del procesamiento de información. Tras una revisión de los sistemas cognitivos en los capítulos anteriores, surge la pregunta: ¿Hasta dónde puede avanzar la IA y cuáles son las fronteras de las soluciones que ofrece?

Limites para la Definicion de una IA, páginas 3 y 4

En el ámbito de la ingeniería del software, los límites de la inteligencia artificial están intrínsecamente vinculados a los de la propia ingeniería. Este capítulo aborda cómo la IA, en su esfuerzo por servir y resolver problemas humanos, adopta y adapta los esquemas de razonamiento humano, y explora también el potencial de incorporar esquemas de otras inteligencias, como la de la naturaleza, ejemplificada en los algoritmos genéticos.

Limites para la Definicion de una IA, páginas 5 y 6

En este capítulo se establecían 3 límites, que afectan a la Inteligencia Artificial, al software, a las máquinas de proceso de la información y, por supuesto, a los humanos. A estos 3 límites se les denomina:

  • Límite de lo universal.
  • Límite de lo humano.
  • Límite de lo físico.

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).

Sistemas expertos en la empresa

Profesor y coordinador técnico master de «Sistemas expertos en la empresa», impartido durante 5 ediciones de 620 horas cada una. Organizado por la Comunidad Autónoma de Madrid, Consejería de Educación, Instituto Madrileño de Formación (IMAF). Fue impartido primero en la Universidad Carlos III de Leganés, curso 1990-91. Posteriormente en el Centro de Enseñanza de las Tecnologías de la Información (CETICAM) de Carabanchel, cursos 1991-1992, 1992-1993, 1993-1994 y 1994-1995.

Fui profesor de las asignaturas Conceptos básicos de informática, Conceptos fundamentales de Inteligencia Artificial, Diseño y construcción de sistemas expertos. Profesor de los laboratorios de lenguaje C, lenguaje Lisp, lenguaje Clipper y de proyectos de fin de master. En los tres últimas ediciones fui coordinador técnico del master.

  • Technical coordinator & teacher of «Master in commercial expert systems», IMAF, Community of Madrid, 5 annual editions of 620 hours each, Madrid, 1991-1995.
  • Coordinador técnico y profesor de «Sistemas expertos en la empresa», IMAF, Comunidad de Madrid, 5 ediciones anuales de 620 horas, Madrid, 1991-1995.

Referencia en The 1991 AI Directory

Referenciado en «The 1991 AI Directory: The Directory of the Artificial Intelligence Industry», en la página 69, directorio editado por American Association for Artificial Intelligence (AAAI, Menlo Park, California), Association for Computing Machinery Special Interest Group on Artificial Intelligence (ACM-SIGART), Canadian Society for Computational Studies of Intelligence (CSCSI) y Sociedad Mexicana de Inteligencia Artificial (SMIA) en 1991.

  • Referenced in «The 1991 AI Directory: The Directory of the Artificial Intelligence Industry», page 69, AAAI, ACM-SIGART, CSCSI y SMIA, California, 1991.
  • Referenciado en «El Directorio de la IA, 1991: El Directorio de la Industria de la Inteligencia Artificial», página 69, AAAI, ACM-SIGART, CSCSI y SMIA, California, 1991.

IA y sistemas basados en el conocimiento

Conferencia titulada «Inteligencia artificial y sistemas basados en el conocimiento», en la Facultad de Ciencias Físicas y Matemáticas de la Universidad Complutense de Madrid.

  • Lecturer in «Artificial intelligence & knowledge based systems», Complutense University, Madrid, 1991.
  • Conferenciante en «Inteligencia artificial y sistemas basados en el conocimiento», Universidad Complutense, Madrid, 1991.

Servicio militar en psicología

Capitanía General de la Región Militar Centro

Disfruté del servicio militar en el Centro de Psicología (CREPSI) de la Capitanía General de la Región Militar Centro, en Madrid, del año 1989 al año 90.

Tuve la suerte de poder colaborar en la organización informática del gabinete de selección y lectura óptica de datos (OMR, Optical Mark Reading ~ Optical Mark Recognition) en el diseño de las librerías básicas de desarrollo de aplicaciones de selección y psicología y en el desarrollo de un sistema de ayuda al diagnóstico de trastornos de la personalidad basado en el conocimiento.

  • Developer of systems for electronic capture (OMR, Optical Mark Reader) and reporting and diagnostic for a military psychology centre, Ministry of Defence Madrid, 1989-1990.
  • Desarrollador de sistemas de captura electrónica (OMR, lectura óptica de marcas) y de generación de informes y diagnósticos para un centro de psicología militar, Ministerio de Defensa, Madrid, 1989-1990.