SHRDLU

El diálogo siguiente está extraído del brillante libro de Douglas R. Hofstadter titulado Gödel, Escher, Bach, un Eterno y Grácil Bucle, donde a su vez aparece tomado de Terry Winograd, Understanding Natural Language, Academic Press, Nueva York (1972). Es un diálogo improvisado (es decir, que no sigue un guión preestablecido), entre un hombre y un programa de ordenador llamado SHRDLU. (En realidad es una traducción del diálogo original, en inglés.)

SHRDLU es capaz de dibujar en una pantalla un recinto tridimensional que consta de una mesa sobre la que se hallan situados bloques geométricos de diversas formas: cubos, prismas, pirámides, de distintos tamaños y colores, algunos macizos y otros vacíos a modo de caja. Hay también como un cable que cuelga, que el ordenador puede subir, bajar y mover y con el que puede coger bloques y llevarlos de un sitio a otro a modo de grúa.

Toma un bloque rojo grande.

De acuerdo.

SHRDLU responde "de acuerdo" cuando lleva a cabo una orden. Con el fin de tomar el bloque rojo tuvo que despejarlo encontrando un espacio para el verde y trasladando el verde a dicho espacio.

Coge la pirámide.

No entiendo a qué pirámide se refiere.

[Hay tres pirámides en escena y SHRDLU sabe que las expresiones que comienzan por "el" o "la" se refieren a un objeto específico que el hablante tiene en mente.]

Encuentra un bloque más alto que ese que estás sosteniendo y ponlo en la caja.

[SHRDLU tiene que resolver qué se quiere decir con "ese" y "lo", así como también tiene que hacer una deducción para decidir qué bloque está sosteniendo.]

Supongo que con "lo" se refiere al bloque que es más alto que éste que estoy sosteniendo.

[Había dos posibles interpretaciones para "lo": el seleccionado y "ese que estás sosteniendo". SHRDLU posee medios heurísticos para elegir entre ellos.]

De acuerdo.

[La mano de SHRDLU tiene que depositar el bloque rojo para tomar el azul, más alto.]

¿Qué contiene la caja?

La pirámide azul y el bloque azul.

¿Qué sostiene a la pirámide?

[Anteriormente SHRDLU respondió a "la pirámide" diciendo "No entiendo a qué pirámide se refiere". Ahora presupone que se refiere a la recién mencionada.]

La caja.

¿Cuántos bloques no están en la caja?

[Las negaciones tales como "no" y "ninguno" son tratadas tanto si aparecen en cláusulas como en expresiones nominales (tales como "ninguna caja").]

Cuatro de ellos.

¿Es al menos uno de ellos más pequeño que ese que te dije que tomaras?

[La frase "al menos uno de ellos" tiene que ser analizada para referirse de vuelta a la pregunta anterior, y "ese que… " también tiene que referirse a los bloques. Las expresiones nominales pueden contener números complicados tales como "por lo menos uno", "más de tres", "exactamente siete", etc. La memoria de eventos pasados es utilizada para decidir qué bloque es "ese que te dije que tomaras". Nótese la complicada estructura sintáctica en la que "ese" es en realidad el objeto de una frase encajada dos niveles más abajo. El analizador de SHRDLU incluye una gramática que trata esta clase de complejidades de un modo general.]

Sí, el cubo rojo.

¿Está sostenido?

Sí, por la mesa.

[SHRDLU tiene conocimientos heurísticos acerca de qué información es relevante para una persona que hace una pregunta aun si la persona no pide esa información especialmente.]

¿Puede la mesa tomar bloques?

No.

[Las reglas semánticas de SHRDLU incluyen el conocimiento de que "tomar" tiene que ser hecho por un objeto animado y de que la mesa no es animada.]

¿Puede un bloque sostener a una pirámide?

Sí.

[El sistema deductivo de SHRDLU encuentra un ejemplo, por lo cual sabe que esto es posible.]

¿Puede una pirámide sostener a una pirámide?

No sé.

[La pregunta tiene sentido, pero no hay ningún ejemplo a la vista. SHRDLU no tiene manera de ver los detalles de sus programas, aun cuando éstos definen en último término sus capacidades.]

Apila dos pirámides.

[SHRDLU prueba y falla.]

No puedo.

La pirámide azul es mía.

Entiendo.

[Toda la información acerca de colores, formas, tamaños y localizaciones de los objetos es conocida por SHRDLU desde el comienzo. La posesión permanece como una propiedad desconocida de los objetos acerca de la cual puede ser instruido. SHRDLU almacena esa información en su base de datos.]

Poseo todos los bloques que no son rojos, pero no poseo nada que sostenga a una pirámide.

Entiendo.

[El resultado de entender estas oraciones es la creación de nuevos procedimientos dentro de SHRDLU para deducir si el hablante posee algo.]

¿Poseo la caja?

No.

[La caja sostiene cualquier cosa que contenga, incluyendo una pirámide.]

¿Poseo algo en la caja?

Sí, dos cosas: el bloque azul y la pirámide azul.

¿Apilarías, por favor, los dos bloques rojos y un cubo verde o bien una pirámide?

De acuerdo.

[Las conjunciones lógicas tales como "y", "o", "o bien", etc. son tratadas tanto en la gramática como en la semántica. Una orden es ejecutada aun cuando tenga el aspecto de una pregunta. La orden es llevada a cabo mediante la siguiente serie de pasos: SHRDLU pone un cubo verde sobre el bloque rojo grande (elige el cubo verde que originalmente estaba sobre el rojo y que no tiene nada encima), luego quita la pirámide pequeña ubicada sobre el cubo rojo pequeño, de manera que puede usar este cubo para completar la pila del modo especificado].

¿Qué cubo está asentado sobre la mesa?

El verde grande que sostiene a la pirámide roja.

[Comúnmente SHRDLU estaría satisfecho con llamarlo "un cubo verde grande", pero como la pregunta era "qué cubo", ha sido más específico al nombrarlo. Cuenta con procedimientos para usar sustantivos sustitutos y pronombres para darle mayor naturalidad al discurso].

¿Hay un bloque grande detrás de la pirámide?

Sí, tres de ellos: uno rojo grande, un cubo verde grande y el azul.

Pon uno pequeño sobre el cubo verde que sostiene a una pirámide.

["Uno pequeño" tiene que contrastar con la frase anterior "un bloque grande", por lo cual esto significa "un bloque pequeño".]

De acuerdo.

Pon la pirámide más pequeñita encima de él.

[Palabras como "pequeñita" no están en el diccionario de SHRDLU, pero son interpretadas a partir de su raíz, como "pequeña". SHRDLU compara los tamaños de todas las pirámides para llevar a cabo la acción.]

De acuerdo.

¿Cuántas cosas hay encima de los cubos verdes?

No estoy seguro de qué quiere decir con "encima de" en la expresión "encima de los cubos verdes". ¿Quiere decir

  1. Directamente sobre la superficie,
  2. En cualquier parte encima de ellos?

[En la oración anterior, la expresión "encima de" fue interpretada sin problemas, porque el contexto dejaba claro a qué se refería. En ésta, la heurística para eliminar la ambigüedad no da con una definición tajante, de modo que SHRDLU tuvo que pedir más información. Las paráfrasis fueron incluidas con las definiciones del diccionario de "encima". Una petición como ésta también puede ocurrir cuando el significado de un pronombre tal como "lo" o "ellos" no está claro].

¿Habías tocado alguna pirámide antes de que pusieras la verde sobre el cubo pequeño?

Sí, la verde.

[SHRDLU deduce a partir de su memoria a qué evento se refiere y puede relacionarlo temporalmente con otros eventos. El análisis incluye complejas conjugaciones temporales de grupos verbales, y hay facilidades especiales para mantener el rastro de las diversas formas de los verbos irregulares (en inglés) como "haber".]

¿Cuándo la tomaste?

Mientras estaba apilando el cubo rojo, un bloque rojo grande y uno verde.

[Se describe un tiempo nombrando el objetivo principal sobre el que se trabaja.]

¿Por qué?

[SHRDLU recuerda oraciones inmediatamente anteriores para entender preguntas como ésta y las siguientes.]

Para deshacerme de ella.

[Manteniendo el rastro de partes seleccionadas del árbol original de subobjetivos, SHRDLU logra un cierto entendimiento de sus propios motivos.]

¿Por qué hiciste eso?

Para despejar el cubo rojo.

["Eso" se refiere a la acción mencionada en la última respuesta de SHRDLU.]

¿Por qué despejaste ese cubo?

[Aquí "ese" significa el recién mencionado.]

Para ponerlo sobre un cubo verde grande.

¿Por qué hiciste eso?

Para apilar el cubo rojo, un bloque rojo grande y un cubo verde grande.

¿Por qué hiciste eso?

Porque usted me lo pidió.

[SHRDLU recuerda lo que hizo, no cómo fue expresada la petición.]

¿Cómo lo hiciste?

["Lo" se refiere a la acción mencionada en la última pregunta y no en la respuesta.]

Poniendo un bloque rojo grande sobre la mesa; soltándolo entonces; poniendo luego un cubo verde grande sobre él; soltando ese cubo entonces; poniendo luego el cubo rojo sobre ese cubo, soltando ese cubo entonces.

[Ésta es una descripción de los subobjetivos de más alto nivel usados para alcanzar el objetivo.]

¿Cuántos objetos tocaste mientras estuviste haciéndolo?

[Las referencias temporales pueden denotar un tiempo largo usando palabras como "mientras".]

Cuatro de ellos.

¿Qué sostenía el cubo rojo antes de que empezaras a despejarlo?

La pirámide verde.

[Mediante el recuerdo de lo que ha movido, es posible deducir cosas relativas a estados previos de la escena. Se pueden usar complejas cláusulas incluidas una dentro de otra, como "antes de que empezaras a despejarlo".]

Había cinco bloques a la izquierda de la caja entonces.

["Entonces" debe referirse a al instante de tiempo mencionado en la última oración.]

No, sólo cuatro de ellos: el cubo rojo, los dos cubos verdes grandes y un bloque rojo grande.

[Anteriormente en el diálogo, la información acerca de "poseer" fue aceptada al pie de la letra. Pero SHRDLU sabe que cuenta con información completa acerca de las propiedades básicas de los objetos, incluyendo localización. Verifica todos los enunciados acerca de ellos para ver si está de acuerdo o en desacuerdo.

Pon la pirámide azul sobre el bloque en la caja.

[Esto es sintácticamente ambiguo, pero es entendido sin ambigüedad, ya que el análisis correspondiente "pon la pirámide azul que está sobre el bloque dentro de la caja" no tiene sentido en la presente escena, mientras que "pon la pirámide azul sobre el bloque que está en la caja" sí lo tiene.]

De acuerdo.

¿Hay algo más grande que todas las pirámides, pero no tan ancho como la cosa que lo sostiene?

[SHRDLU entiende cuantificadores tales como "todos", "cualquier", "algunos", etc. y estructuras tales como "más grande que", "tan ancho como", etc. Aquí "lo" se refiere a un grupo de sustantivos dentro de la misma oración, pero dos niveles más arriba en el árbol de análisis.]

Sí, el bloque azul.

Haz un campanario.

Lo siento, no conozco la palabra "campanario".

[SHRDLU se detiene inmediatamente cuando ve una palabra que no conoce.]

Un "campanario" es una pila que contiene dos cubos verdes y una pirámide.

[Las comillas indican que se está definiendo una nueva palabra. La palabra se agrega al diccionario de SHRDLU en una forma compatible con todas las palabras que ya conoce.]

Entiendo.

¿Hay algún campanario ahora?

No.

[La nueva definición es usada como una descripción para reconocer campanarios.]

Construye uno.

De acuerdo.

[La descripción dada en la definición es suficiente para deducir un plan para construir nuevos objetos así como para reconocerlos. La palabra "uno" se refiere a "campanario", y el plan es llevado a cabo. Primero, uno de los cubos verdes grandes es despejado quitando el cubo rojo y dos pirámides. Luego los dos cubos verdes y la pirámide roja alta son apilados de acuerdo con la descripción].

Llama al bloque más grande "superbloque".

De acuerdo.

[Se puede dar nombre a los objetos.]

¿Has tomado el superbloque desde que empezamos?

Sí.

¿Por qué lo dejaste caer?

Con "lo" presumo que se refiere al superbloque. No puedo explicar un evento inexistente.

[No hay registro en la memoria de SHRDLU de haber dejado caer el bloque. Las rutinas de respuesta tienen verificaciones especiales para este tipo de "pregunta falaz" que presupone cosas que no son.]

¿Hay algo a la derecha de la pirámide roja?

Sí. Cuatro cosas: la caja, el cubo rojo, la pirámide azul y el bloque llamado superbloque.

[Una vez un objeto tiene un nombre, éste es usado para ayudar a identificarlo en las respuestas.]

Gracias.

¡De nada!

[La gramática de SHRDLU está formulada como un procedimiento que brinda a SHRDLU la capacidad de aplicar tipos de interpretación especial para diversas locuciones idiomáticas.]

REGRESAR