Articulo de referencia

SHRDLU

SHRDLU es un programa informático pionero en la comprensión del lenguaje natural, desarrollado por Terry Winograd en el MIT entre 1968 y 1970. En este programa, el usuario conve...

SHRDLU es un programa informático pionero en la comprensión del lenguaje natural, desarrollado por Terry Winograd en el MIT entre 1968 y 1970. En este programa, el usuario conversa con el ordenador, moviendo objetos, nombrando colecciones y consultando el estado de un " mundo de bloques " simplificado, esencialmente una caja virtual llena de diferentes bloques. [ 1 ]

SHRDLU fue escrito en Micro Planner y el lenguaje de programación Lisp en la computadora DEC PDP-6 y una terminal gráfica DEC . Posteriormente se realizaron ampliaciones en los laboratorios de gráficos por computadora de la Universidad de Utah , agregando una representación 3D completa del "mundo" de SHRDLU.

El nombre SHRDLU deriva de ETAOIN SHRDLU , la disposición de las teclas de las letras en una máquina Linotype , ordenadas en orden descendente según su frecuencia de uso en inglés.

Funcionalidad

SHRDLU es principalmente un analizador de lenguaje que permite la interacción del usuario mediante términos en inglés . El usuario le indica a SHRDLU que mueva diversos objetos en el "mundo de bloques", que contiene objetos básicos como bloques, conos y bolas. SHRDLU combinó cuatro ideas sencillas para hacer que la simulación de "comprensión" fuera más convincente.

Una de las razones es que el mundo de SHRDLU es tan simple que todo el conjunto de objetos y lugares se puede describir con tan solo 50 palabras: sustantivos como "bloque" y "cono", verbos como "colocar sobre" y "mover a", y adjetivos como "grande" y "azul". Las posibles combinaciones de estos elementos básicos del lenguaje son bastante simples.

SHRDLU también incluye una memoria básica para proporcionar contexto. Se le podría pedir a SHRDLU que "ponga el cono verde sobre el bloque rojo" y luego que "quite el cono"; "el cono" se entendería como el cono verde del que se acaba de hablar. SHRDLU puede buscar más atrás en las interacciones para encontrar el contexto adecuado en la mayoría de los casos cuando se proporcionan adjetivos adicionales. También se podrían hacer preguntas sobre el historial; por ejemplo, se podría preguntar "¿recogiste algo antes del cono?".

Un efecto secundario de esta memoria, y de las reglas originales con las que se suministró SHRDLU, es que el programa puede responder preguntas sobre qué era posible y qué no en el mundo. Por ejemplo, SHRDLU puede deducir que los bloques se podían apilar buscando ejemplos, pero también darse cuenta de que los triángulos no se podían apilar, después de haberlo intentado. El "mundo" contiene principios físicos básicos que hacen que los bloques se caigan, independientemente del analizador del lenguaje .

Finalmente, SHRDLU también puede recordar los nombres de los objetos o sus combinaciones. Por ejemplo, se podría decir "un campanario es un pequeño triángulo sobre un rectángulo alto"; SHRDLU podría entonces responder preguntas sobre campanarios en el mundo de los bloques y construir otros nuevos.

Este es un ejemplo de una sesión SHRDLU: [ 2 ]

Persona: Coge un bloque rojo grande.
Ordenador: OK.
Persona: Sujeta la pirámide.
Computadora: NO ENTIENDO A QUÉ PIRÁMIDE TE REFIERES.
Persona (cambiando de opinión): Busca un bloque que sea más alto que el que tienes en la mano y mételo en la caja.
Computadora: CON "ESO", SUPONGO QUE TE REFIERES AL BLOQUE QUE ES MÁS ALTO QUE EL QUE ESTOY SOSTENIENDO.
Ordenador: OK.
Persona: ¿Qué contiene la caja?
Ordenador: LA PIRÁMIDE AZUL Y EL BLOQUE AZUL.
Persona: ¿De qué está sostenida la pirámide?
Computadora: LA CAJA.
Persona: ¿Cuántos bloques no están en la caja?
Computadora: CUATRO DE ELLOS.
Persona: ¿Al menos uno de ellos es más estrecho que el que te dije que cogieras?
Computadora: SÍ, EL CUBO ROJO.
Persona: ¿Es compatible?
Computadora: SÍ, JUNTO A LA MESA.
Persona: ¿Puede la mesa recoger bloques?
Computadora: NO.
Persona: ¿Puede una pirámide sostenerse sobre un bloque?
Computadora: SÍ.
Persona: ¿Puede una pirámide sostener otra pirámide?
Computadora: NO LO SÉ.
Persona: Apila dos pirámides.
Computadora: NO PUEDO.
Persona: ¿Podrías apilar los dos bloques rojos y un cubo verde o una pirámide?
Ordenador: OK.
Persona: ¿Qué cubo está sobre la mesa?
Ordenador: EL GRANDE VERDE QUE SOSTIENE LA PIRÁMIDE ROJA.
Persona: ¿Hay un gran bloque detrás de una pirámide?
Computadora: SÍ, TRES DE ELLOS: UNO ROJO GRANDE, UN CUBO VERDE GRANDE Y EL AZUL.
Persona: Coloca una pequeña sobre el cubo verde que sostiene una pirámide.
Ordenador: OK.
Persona: Pon la pirámide más pequeña encima.
Ordenador: OK.
Persona: ¿Acaso la cosa más pequeña que sostiene la pirámide más alta sostiene algo verde?
Computadora: SÍ, LA PIRÁMIDE VERDE.
Persona: ¿De qué color es?
Computadora: CON "ESO", SUPONGO QUE TE REFIERES A LA COSA MÁS CORTA QUE SOPORTA LA PIRÁMIDE MÁS ALTA.
Computadora: ROJO
Persona: ¿Cuántas cosas hay encima de los cubos verdes?
Computadora: NO ESTOY SEGURO DE QUÉ QUIERE DECIR CON "ENCIMA DE" EN LA FRASE "ENCIMA DE LOS CUBOS VERDES".
¿QUIERES DECIR:
1 - DIRECTAMENTE SOBRE LA SUPERFICIE
2 - ¿EN ALGÚN LUGAR ENCIMA DE  ?
Persona: 2
Computadora: TRES DE ELLOS.
Persona: ¿Habías tocado alguna pirámide antes de poner la verde sobre el cubo pequeño?
Computadora: SÍ, LA VERDE.
Persona: ¿Cuándo lo recogiste?
Computadora: MIENTRAS APILABA EL CUBO ROJO, UN GRAN BLOQUE ROJO Y UN GRAN CUBO VERDE.
Persona: ¿Por qué?
Computadora: PARA DESHACERSE DE ELLA.
Persona: ¿Por qué hiciste eso?
Computadora: PARA LIMPIAR EL CUBO ROJO.
Persona: ¿Por qué quitaste ese cubo?
Computadora: COLOCARLO SOBRE UN CUBO VERDE GRANDE.
Persona: ¿Por qué hiciste eso?
Computadora: APILAR EL CUBO ROJO, UN BLOQUE ROJO GRANDE Y UN CUBO VERDE GRANDE.
Persona: ¿Por qué hiciste eso?
Computadora: PORQUE USTED ME LO PIDIÓ.
Persona: ¿Cómo lo hiciste?
Computadora: COLOCAR UN GRAN BLOQUE ROJO SOBRE LA MESA  ; LUEGO SOLTARLO  ; LUEGO COLOCAR UN GRAN CUBO VERDE SOBRE ÉL  ; LUEGO SOLTAR ESE CUBO  ; LUEGO COLOCAR EL CUBO ROJO SOBRE ESE CUBO; LUEGO SOLTAR ESE CUBO.
Persona: ¿Cuántos objetos tocaste mientras lo hacías?
Computadora: CUATRO DE ELLOS.
Persona: ¿Qué sostenía el cubo rojo antes de que empezaras a limpiarlo?
Computadora: LA PIRÁMIDE VERDE.
Persona: Había cinco manzanas a la izquierda de la caja en ese momento.
Computadora: NO, SOLO CUATRO DE ELLOS: EL CUBO ROJO, DOS CUBOS VERDES GRANDES Y UN BLOQUE ROJO GRANDE.
Persona: Coloca la pirámide azul sobre el bloque en la caja.
Ordenador: OK.
Persona: ¿Existe algo que sea más grande que cualquier pirámide pero que no sea tan ancho como lo que la sostiene?
Computadora: SÍ, EL BLOQUE AZUL.
Persona: ¿Hace un campanario?
Computadora (interrumpiendo): LO SIENTO, NO CONOZCO LA PALABRA "STEEPLE".
Persona: Un "campanario" es una pila que contiene dos cubos verdes y una pirámide.
Computadora: ENTIENDO.
Persona: ¿Hay algún campanario ahora?
Computadora: NO.
Persona: Construye uno.
Ordenador: OK.
Persona: Llama al bloque más grande "superbloque".
Ordenador: OK.
Persona: ¿Has aprendido Superblock desde que empezamos?
Computadora: SÍ.
Persona: ¿Por qué se te cayó?
Computadora: CON "ESO", SUPONGO QUE TE REFIERES AL SUPERBLOQUE.
NO PUEDO EXPLICAR UN EVENTO INEXISTENTE.
Persona: ¿Hay algo a la derecha de la pirámide roja?
Computadora: SÍ, CUATRO COSAS: LA CAJA, EL CUBO ROJO, LA PIRÁMIDE AZUL Y EL BLOQUE LLAMADO SUPERBLOQUE
Persona: Gracias.
Computadora: ¡DE NADA!

Consecuencias

SHRDLU fue considerado una demostración extraordinariamente exitosa de inteligencia artificial (IA). Esto generó un optimismo desmedido entre otros investigadores de IA , que pronto se desvaneció cuando sistemas posteriores intentaron abordar situaciones con un nivel de ambigüedad y complejidad más realista. Los esfuerzos subsiguientes del tipo SHRDLU, como Cyc , se han centrado en proporcionar al programa mucha más información para que pueda extraer conclusiones.

En una entrevista de 1991, Winograd dijo acerca de SHRDLU: [ 3 ]

[...] el famoso diálogo con SHRDLU donde podías coger un bloque, y demás, lo trabajé con mucho cuidado, línea por línea. Si te sentabas frente a él y le hacías una pregunta que no estaba en el diálogo, había alguna probabilidad de que la respondiera. Es decir, si se parecía razonablemente a una de las preguntas que estaban ahí en forma y contenido, probablemente la entendería. Pero no hubo ningún intento de llevarlo al punto en que realmente pudieras dárselo a alguien y que pudiera usarlo para mover bloques. Y no había ninguna presión para eso en absoluto. La presión era para algo que se pudiera demostrar. Tomemos un ejemplo reciente, el Media Lab de Negroponte , donde en lugar de " perecer o publicar " es "demostrar o morir". Creo que eso es un problema. Creo que la IA sufrió mucho por eso, porque llevó a " aldeas Potemkin ", cosas que, por lo que realmente hicieron en la demostración parecían buenas, pero cuando mirabas detrás de eso no había suficiente estructura para que realmente funcionara de manera más general.

Aunque no fue desarrollado intencionalmente como tal, SHRDLU se considera el primer ejemplo formal conocido de ficción interactiva , ya que el usuario interactúa con comandos simples para mover objetos en un entorno virtual, aunque carece de la narrativa distintiva que normalmente está presente en el género de la ficción interactiva. El juego Colossal Cave Adventure de 1976-1977 se considera ampliamente la primera obra verdadera de ficción interactiva. [ 4 ]

Véase también

Referencias

  1. Winograd, Terry (2004-10-20). "Procedimientos como representación de datos en un programa informático para la comprensión del lenguaje natural" . DSpace@MIT Home . Recuperado el 26 de marzo de 2025 .
  2. "SHRDLU" . Grupo de Interacción Humano-Computadora (HCI) de Stanford .
  3. "Entrevista de historia oral con Terry Allen Winograd" . Instituto Charles Babbage. 11 de diciembre de 1991. hdl : 11299/107717 .
  4. Montfort, Nick (2003). Twisty Little Passages: An Approach To Interactive Fiction . Cambridge: The MIT Press. pp. 84–85 . ISBN  0-262-13436-5.{{cite book}}: CS1 mantenimiento: ubicación del editor ( enlace )

Lecturas adicionales

  • Winograd, Terry (24 de agosto de 1970). "Procedimientos como representación de datos en un programa informático para la comprensión del lenguaje natural" (PDF) . Informe técnico 235 del MIT AI. Archivado (PDF) del original el 3 de octubre de 2020.
  • Winograd, Terry (enero de 1972). "Comprender el lenguaje natural". Psicología Cognitiva . 3 (1): 1– 191. doi : 10.1016/0010-0285(72)90002-3 .
  • Winograd, Terry (2001). "SHRDLU" . Archivado del original el 17 de agosto de 2020.– Página de SHRDLU de Terry Winograd, incluye código fuente
  • (Desconocido) (22/08/2013). "Resurrección de SHRDLU" . Archivado del original el 17/11/2017.- Versiones reescritas de SHRDLU, incluyendo una versión para Java3D.
  • La primera replicación completa del diálogo SHRDLU (junio de 2023) como aplicación del sistema experimental basado en Go NLI-GO .
  • Winograd, Terry (2003). "Cómo SHRDLU obtuvo su nombre" .Archivado del original el 19 de junio de 2025.
Obtenido de " https://en.wikipedia.org/w/index.php?title=SHRDLU&oldid=1363075922 "