Hoy os traigo una interesante exclusiva. Si cuando hablaba de Ultra Compressor II o AIN, pretendía homenajear unas de las herramientas de compresión que me marcaron, incluyendo comentarios e indagaciones acerca de su historia y autoría; algo parecido a lo que hice con Blink, sólo que en este caso, de una manera mucho más sencilla, pues conocía el autor. Era yo.

Desde finales de los años 80, y hasta bien entrados los años 90, disfruté enormemente con el programa conversacional Herbie, lo que ahora se llaman bot conversacionales. Hacía tiempo que tenía pensado escribirle un articulo, e incluso había decompilado el ejecutable para DOS, intentando aportar algo de claridad al asunto. Sin embargo, lo fui dejando pasar, hasta que como hace a menudo, Bianamaran me picó con sus temáticas.

Esta vez, opté por probar a decompilar la versión para Windows de 16 bit, que estaba escrita en VB 3. Sabéis que hasta VB 5, el código generado no era nativo, sino p-code, así que tenía más posibilidades de éxito. De hecho lo conseguí fácilmente usando DoDi’s VB Discompiler. Ciertamente se perdían los nombres de variables, funciones, y comentarios, pero el resultado fue bueno, manteniendo hasta los Debug.Print. Con una sobredosis de motivación, me puse a buscar sobre los orígenes del Programa conversacional Herbie. Desgraciadamente, es harto difícil inclusive poderlo descargar. Pero debí tener suerte, y algunas pistas me llevaron a quien podría ser su autor: Rafael García González, y que seguía ubicado en Avilés (Asturias), como cuando desarrolló Herbie.

El presente artículo por tanto, mezcla las declaraciones del propio Rafael (Falo), al que públicamente le agradezco su tiempo, y naturalmente agradezco también el que hubiera creado a Herbie. Pero por otro lado, añade mis sensaciones y recuerdos de la época.

La primera versión de Herbie, fue la 1.0, lanzada en 1985 para el Sinclair ZX Spectrum, y publicada por el propio autor que contaba con 18 años. La firmaba como Rafael García. En aquellos tiempos colaboraba con un algunas de revistas en casette (Enter Spectrum, Video Spectrum y Video Amstrad), bajo el sello Software Editores entre otros. La idea le surgió tras la lectura sobre uno de los pocos libros que en la época hablaban de inteligencia artificial, probablemente de la editorial Anaya.

Estaba escrito en BASIC, y posteriormente compilado. Aparecieron tantos compiladores para Spectrum en aquella época, que ni el propio Rafael recuerda cual de todos ellos utilizó en esa versión.

Aunque en aquellos años, yo también era usuario de Spectrum, nunca llegué a probar esa versión de Herbie. Probándola ahora, se le ven algunas de las virtudes que luego tendrían las versiones siguientes.

Puedes descargar esta versión aquí (16 Kb. en formato ZIP).

En 1986, pasaría al mundo del PC, empezando la reescritura de Herbie con Microsoft BASIC Compiler 1.0 / QuickBASIC 1.0 (1985). El popular compilador de BASIC de Microsoft. Paulatinamente lo iría mejorando hasta terminar con Herbie 3.2 (1987). Todas estas versiones, venían firmadas como: THOR (Tecnología Hispana de Ordenadores), e indicaban la autoría de Rafael García González. Como curiosidad que iríamos viendo a lo largo del tiempo, se indicaba el teléfono (985) 56-04-37.

La razón de poner el teléfono de contacto, era poder lograr cierta notoriedad, y conseguir el desarrollo de nuevos proyectos, pues al fin y al cabo, Herbie no daba dinero. Sin embargo ello no impidió que la gente llamase a ese número, para resolver dudas acerca de Herbie.

Esta versión me llegó con los típicos intercambios de disquetes aproximadamente en 1989, lo cual no está nada mal para un viaje desde Asturias a Catalunya. En esa época, se hablaba de inteligencia artificial y redes neuronales, pero desde un punto tan filosófico, que sólo quedaba clara la idea. Lo más concreto que recuerdo era el Juego de la Vida, publicado por primera vez en 1970. Tendrían que pasar unos cuantos años más, hasta que oyera hablar de Eliza. Reconozco que pasé muchas horas hablando con él, ahora diríamos interactuando, porque si algo lo caracterizaba, era su cercanía. A diferencia de otros intentos que vi posteriormente, tenía algunos grados de aleatoriedad y pequeños detalles que hacía que fuera algo más imprevisible, y por tanto pareciera más real.

Precisamente Herbie, me inspiró para comenzar el desarrollo de mi propia versión. Usaba un interfaz de ventanas en modo texto, y estaba escrita en Turbo BASIC. Pretendía mejorar los puntos débiles que experimentalmente había descubierto en Herbie. Principalmente mejorar las conjugaciones verbales, y el manejo de sinónimos. Caía en un error que veremos más adelante, y era usar dos ventanas, una para el histórico de conversación del usuario (paciente), y otro de la máquina (terapeuta). La idea es que fuera una especie de psicólogo, una idea, que luego sería explotada por Dr. Abuse. Se convirtió en uno de tantos proyectos donde la complejidad estimada va aumentando a medida que programamos, y nunca estuvo acabado. De modo que sin una alternativa mejor, seguí usando Herbie hasta bien entrada la década de 1990. En honor a Herbie, hay que admitir, que aunque parezca que su programación requiere solamente la búsqueda de subcadenas y poco más, en realidad para ser eficaz, debe disponer de ciertas capacidades de análisis sintáctico, incluyendo verbos, y pronombres.

Los puntos fuertes de Herbie, eran muchos. En primer lugar era multiusuario, es decir, mantenía las conversaciones en archivos diferentes. Pero lo más sorprendente es que era capaz de aprender, ya que las conversaciones del usuario, una vez procesadas, pasaban a formar parte de la base de datos de Herbie. Entonces bastaba la típica secuencia: “Un coche es un vehículo de cuatro ruedas”, para que luego al preguntar “Que es un coche?”, el programa nos respondiera que “Un coche es un vehículo de cuatro ruedas”.

Con casi 30 años de antigüedad, este aprendizaje es algo, que ni siquiera vemos en software más reciente como Alizia o Eliza de DeixiLabs, o que tampoco era tan sofisticado en el que iba a ser el sucesor de Herbie, Dr. Abuse (1992-2001) de Juan José Boronat Cortés y Vicente Barres Fabado.

Tienes disponible para descargar esta versión aquí (63 Kb. en formato ZIP).

Tendrían que transcurrir 9 años, hasta llegar a Herbie 4.0 (1996), una reescritura completa para Windows de 16 bits (3.x) en Visual BASIC 3 (1993). En realidad, tras dar por concluida la versión para DOS, no estaba planteado nada más. Pero de la noche a la mañana, le apeteció lanzarla, y se puso a ello. Ofrecía un moderno sistema con dos cuadros de texto (uno para Herbie y otro para el humano). Un enfoque que parece muy lógico en un entorno gráfico como Windows, pero que causaba que se perdiera el histórico de la conversación que sí nos ofrecía una interfaz estilo terminal, o con sólo un cuadro de texto.

Ofrecía una ventana principal de menos de 400 píxels de ancho, pensada para no molestar en aquellas pantallas de 14 pulgadas y resolución VGA (640×480) de la época. No era redimensionable, algo que en Visual BASIC resultaría tedioso de implementar hasta bastantes años después. Contaba con un rudimentario botón de información, que directamente abría el archivo LEEME.TXT usando Notepad. Dicho archivo de texto, incluía además los datos postales del autor:

Rafael García González
C/López Ocaña, 1 – 2ºB
33400 Avilés, ASTURIAS
ESPAÑA
Tfno. (98) 556 22 85

A diferencia de las versiones DOS, ésta versión para Windows, se indicaba como versión de prueba en el título de la ventana. Y como a muchos otros nos ocurrió, no quedaba claro lo que ello implicaba. Había que visualizar el archivo LEEME, para saber que “Si quieres ser usuario registrado, envíame 2000 pts. junto con tu nombre y dirección.”, pero sin aclarar los beneficios que ello representaba, o quién debería registrarse. Al final, casi nadie contribuyó económicamente, siendo un proyecto más de esos que se hacen por puro amor al arte.

Era la moda de los entornos gráficos, pero visto en retrospectiva, una versión 4, para DOS, usando VBDOS (Visual BASIC for DOS), hubiera sido una actualización más prudente y funcional.

Te dejo esta versión aquí (247 Kb. en formato ZIP), y con el permiso del propio Rafael, también el código fuente descompilado que comentaba al principio, pues los fuentes originales, como es habitual, seguramente existen, pero hay que buscarlos, y en caso de encontrarlos, sanearlos. Aquí (15 Kb. en formato ZIP).

Para terminar con Herbie, sólo comentaros que daba por sentado que su nombre venía del VW del mismo nombre, que con su inteligencia, había protagonizado tantas películas de Disney entre 1968 y 1980. De algún modo, ambos son muy parecidos. Ha tenido que ser el propio Rafael el que me indicara mi error. La inspiración vino del robot RB-34 en el cuento ¡Embustero! incluido en Yo, robot de Isaac Asimov. Un robot, con la capacidad de leer el pensamiento humano.

En cuanto a Rafael García, sigue haciendo su vida en Avilés, dedicándose al desarrollo de software de gestión, y la programación a medida desde Logical ETR, antes Soportes Lógicos, Programas Integradores De Aplicaciones (Progiciels).

Sigue fiel al BASIC de Microsoft, con Ergofa (Facturación y gestión comercial) y Enol (Contabilidad), programados en Visual BASIC, esta vez la versión 6.