shrldu, terry winograd

En los años setenta del siglo pasado, la tesis de Terry Winograd llamó la atención porque a diferencia de otros programas, supuestamente inteligentes, SHRLDU, su creación, podía entender el lenguaje natural, es decir, lo que hablamos y decimos los seres humanos. 

Winograd, estudiante en ese entonces en el Massachusetts Institute of Technology (MIT), implementó su software en MicroPlanner y LISP, en una DEC PDP-6 con una terminal gráfica DEC también. Posteriormente, en la Universidad de Utah le añadieron el micromundo de pirámides, esferas y bloques, de manera gráfica, que Winograd había creado para explorar sus ideas.

El nombre SHRDLU no significa nada en concreto, sino que está derivado de ETAOIN SHRDLU, que es la alineación de las letras en una máquina de linotipos, en orden descendente respecto la frecuencia de uso en inglés.

SHRDLU permite al usuario interactuar mediante frases simples de inglés. El usuario debe instruir a SHRDLU cómo mover los objetos del micromundo, que consiste, como ya comentamos, en pirámides, cubos, cajas, esferas y bloques. Este entorno fue llamado small blocks word (pequeño mundo de bloques). Lo que hizo único a SHRDLU fue que con la combinación de los conceptos anteriores se podía realizar una simulación de la comprensión computacional del lenguaje.

El entorno o mundo de bloques era lo suficientemente simple para poder ser descrito completamente (objetos, características y posiciones) con un conjunto reducido de palabras en inglés (unas 50). Nombres como bloque, cono, y pirámide, verbos como pon, mueve y deja, y adjetivos como pequeño, grande y rojo. Las combinaciones posibles de este lenguaje básico permitían al programa realizar lo que el usuario le ordenaba.

SHRDLU incluía una memoria básica de trabajo que contenía el contexto de la conversación. Por ejemplo, se le podía decir: “Pon el cono verde encima del bloque rojo”, y a continuación: “Toma el cono”. El cono que queremos debe significar el que nos hemos referido anteriormente y no cualquier otro que esté en el entorno. Esto debido a que SHRDLU debía buscar el contexto más próximo en el que hablamos del cono, lo que permitía en muchas ocasiones poner o no adjetivos adicionales. Por otra parte, se podía interrogar acerca del historial de acciones, por ejemplo: “Dime qué has tomado antes del cono”.

Terry Winograd, SHRLDU, MIT, lenguaje natural

A continuación se muestra, traducida desde el inglés, una parte de la famosa conversación entre SHRDLU y una persona anónima, un diálogo que ejemplifica el funcionamiento típico de SHRLDU. Extraído de Terry Winograd, Understanding Natural Language, Academic Press, Nueva York (1972).

  • Persona: Toma un bloque rojo grande.
  • SHRDLU: De acuerdo.
  • Persona: Coge la pirámide.
  • SHRDLU: No entiendo a qué pirámide se refiere.
  • Persona: Encuentra un bloque más alto que ese que estás sosteniendo y ponlo en la caja.
  • SHRDLU: Supongo que con “lo” se refiere al bloque que es más alto que éste que estoy sosteniendo.
  • SHRDLU: De acuerdo.
  • Persona: ¿Qué contiene la caja?
  • SHRDLU: La pirámide azul y el bloque azul.
  • Persona: ¿Qué sostiene a la pirámide?
  • SHRDLU: La caja.
  • Persona: ¿Cuántos bloques no están en la caja?
  • SHRDLU: Cuatro de ellos.
  • Persona: ¿Es al menos uno de ellos más pequeño que ese que te dije que tomaras?
  • SHRDLU: Sí, el cubo rojo
  • Persona: ¿Está sostenido?
  • SHRDLU: Sí, por la mesa.
  • Persona: ¿Puede la mesa tomar bloques?
  • SHRDLU: No
  • Persona: Apila dos pirámides.
  • SHRDLU: No puedo.
  • Persona: La pirámide azul es mía.
  • SHRDLU: Comprendo.
  • Persona: Gracias.
  • SHRDLU: De nada.

Curiosamente, SHRLDU no pasó de ser un experimento, porque por alguna razón, aplicarlo a otros fenómenos siempre fue una dificultad. No está muy clara la razón por la cual el sistema no evolucionó en otra cosa. Sin embargo, lo interesante es que demostró que las computadoras podrían entender el lenguaje natural y, por ende, interactuar en contextos específicos.

Actualmente hay más de una página donde está la historia y el código fuente de Winograd, así como el que otros han escrito para enriquecer el sistema. Vale la pena echarles un vistazo.

Fuente: SHRLDU.