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
[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.]