SHRDLU

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

SHRDLU — ранняя программа понимания естественного языка, разработанная Терри Виноградом в MIT в 19681970 годах. Она была написана на языках Micro Planner и Лисп на компьютере DEC PDP-6 и использовала графический терминал DEC. Впоследствии в лаборатории компьютерной графики в университете штата Юта была внесена возможность полноценной трёхмерной отрисовки «мира» SHRDLU.

Название SHRDLU образовано от ETAOIN SHRDLU — расположения алфавитных клавиш на линотипах в соответствии с убыванием частоты появления букв в английском языке. Кроме того, Этаоин Шрдлу — имя разумного линотипа в одноимённом фантастическом рассказе Фредерика Брауна.

Функциональность[править | править исходный текст]

Пользователь общался с программой SHRDLU с помощью обычных выражений английского языка. По его приказу SHRDLU перемещала простые объекты в упрощенном «мире блоков»: кубики, конусы, шары и так далее. Уникальной SHRDLU стала благодаря комбинации четырёх простых идей, взаимодействие которых сделало видимость «понимания» программой пользователя гораздо более убедительной.

Одна из этих идей состоит в том, что мир SHRDLU был настолько прост, что полный набор объектов и локаций мог быть описан, наверное, не более чем пятьюдесятью различными словами — существительными, такими как «блок» или «конус», глаголами, такими как «помести на» или «перемести в», и прилагательными, такими как «большой» или «синий». Всевозможные комбинации этих базовых блоков языка были элементарны, и программа, в известной степени успешно, понимала то, что имел в виду пользователь.

SHRDLU также включала простейшую память для поддержания контекста общения. Человек может попросить SHRDLU: «Положи зелёный конус на красный блок» и затем «сними конус». Будет снят тот «конус» о котором говорили чуть ранее. Если даны дополнительные прилагательные, в большинстве случаев SHRDLU сможет искать более старые утверждения, чтобы найти надлежащий контекст. Человек также может задавать вопросы об истории действий, например может спросить: «Ты поднимала что-нибудь до того, как поднять конус?»

Побочным эффектом этой памяти и всех исходных правил, с которыми поставлялась SHRDLU, является способность программы отвечать на вопросы о том, что было возможно в мире, а что нет. Например, SHRDLU могла понять, что блоки можно складывать один на другой, посмотрев на примеры, а также рассудить, что треугольники не могут быть сложены после того, как попытается сделать это сама. «Мир» содержал простейшую физику для того, чтобы блоки могли падать или стоять, вне зависимости от парсера языка.

Наконец, SHRDLU могла запоминать названия, данные объектам, и расположение этих объектов. Например, человек мог сказать: «Шпиль — это небольшой треугольник над высоким прямоугольником», и после этого SHRDLU могла отвечать на вопросы о шпилях в своем мире блоков, а также создавать новые.

Пример[править | править исходный текст]

Вот пример, взятый из знаменитой демонстрации SHRDLU:

Person: Pick up a big red block.
Computer: OK.
Person: Grasp the pyramid.
Computer: I don't understand which pyramid you mean.
Person (changing their mind): Find a block which is taller than the one you are holding and put it into the box.
Computer: By "it", I assume you mean the block which is taller than the one I am holding.
Computer: OK.
Person: What does the box contain?
Computer: The blue pyramid and the blue block.
Person: What is the pyramid supported by?
Computer: The box.
Person: How many blocks are not in the box?
Computer: Four of them.
Person: Is at least one of them narrower than the one which I told you to pick up?
Computer: Yes, the red cube.
etc.

Перевод примера на русский:

Человек: Подними большой красный блок.
Компьютер: OK.
Человек: Возьми пирамиду.
Компьютер: Я не понимаю, какую пирамиду Вы имеете в виду.
Человек (передумав): Найди блок, который выше того, который ты держишь, и положи его в ящик.
Компьютер: Под «ним», полагаю, вы имели ввиду блок, который выше того, что я держу.
Компьютер: OK.
Человек: Что содержится в ящике?
Компьютер: Синяя пирамида и синий блок.
Человек: Чем поддерживается пирамида?
Компьютер: Ящиком.
Человек: Сколько блоков не в ящике?
Компьютер: Четыре.
Человек: Есть ли среди них хотя бы один более узкий, чем тот, что я сказал тебе поднять?
Компьютер: Да, красный куб.
и т. д.

Результаты[править | править исходный текст]

Результатом стала чрезвычайно успешная демонстрация искусственного интеллекта. Это вселило в других исследователей ИИ излишний оптимизм, который, однако, вскоре иссяк, после того, как более поздние системы пытались справиться с реалистичными ситуациями, в которых проявлялась неопределенность и сложность реального мира. Продолжение работы в направлении, открытом SHRDLU, склонялось к увеличению объёма информации, которой оперировала программа, что привело к таким работам, как Cyc.

После того как это произошло, Виноград отстранился от SHRDLU и ИИ, считая, что SHRDLU является тупиковой областью исследований. Он отошёл от первоначальных, механистическо-рациональных представлений и обратился к философии, герменевтике и феноменологии Хайдеггера,[1] после чего переключился на проблематику человеко-машинного интерфейса.[2]

См. также[править | править исходный текст]

Ссылки[править | править исходный текст]

  • SHRDLU — Страница Терри Винограда, посвященная SHRDLU, содержит исходные тексты.
  • Разговор с SHRDLU  — содержит прокомментированную версию приведённого выше примера разговора с SHRDLU.
  • Воскрешение SHRDLU — переписанные версии SHRDLU, включая версию на Java3D.

Литература[править | править исходный текст]

  • Procedures as a Representation for Data in a Computer Program for Understanding Natural Language. MIT AI Technical Report 235, Февраль 1971
  1. Dillon, A. (1990) A Review of Winograd and Flores — Understanding Computers and Cognition, Hypermedia, 2(1), 71-74
  2. Terry Winograd and Carlos F. Flores. Understanding Computers and Cognition: A New Foundation for Design. Ablex Pub. Corp., Norwood, NJ, 1986.