Выбрать главу

Одна из интересных черт ШРДЛУ, противоречащая стереотипу компьютеров как машин, щелкающих числа подобно орешкам, это то, что, как указывает Виноград, эта система «не принимает чисел в их цифровой форме и умеет считать только до десяти».[78] Несмотря на всю математику, лежащую в ее основе, ШРДЛУ — математический неуч! Как и мадам Мура Вейник, ШРДЛУ ничего не знает о составляющих ее низших уровнях. Ее знания, в основном, процедурные (см. в особенности замечание д-ра Тире-Рвинога в секции 11 предыдущего диалога).

Интересно сравнить процедурные знания, заключенные в ШРДЛУ, со знаниями моей создающей предложения программы. Все синтаксические познания моей программы процедурно включались в Увеличенные Схемы Переходов, написанные на языке АЛГОЛ; но семантические познания — информация о принадлежности к тому или иному семантическому классу — были статичны: они содержались в коротком списке цифр после каждого слова. Там было, правда, несколько служебных слов, таких как «to have», «to be» и тому подобное, которые были полностью представлены в процедурном виде в АЛГОЛе, но это было исключением. С другой стороны, в ШРДЛУ все слова были представлены в программах. Это показывает, что несмотря на то, что теоретически программы эквивалентны данным, на практике выбор способа представления знаний влечет за собой серьезные последствия.

Синтаксис и семантика

Теперь слово опять за Виноградом:

Наша программа не работает, сначала разделяя предложение на части, затем проводя семантический анализ и затем давая логический ответ. Когда машина пытается понять предложение, эти три действия происходят одновременно. Как только начинает вырисовываться некая синтаксическая структура, тут же вызывается семантическая программа, чтобы проверить, есть ли в этой структуре смысл; ее ответ может направлять дальнейшее синтаксическое подразделение. Решая, имеет ли данная структура смысл, семантическая программа может прибегать к логическому анализу и задавать вопросы о реальном мире. Например, в секции 34 Диалога («расположи голубую пирамиду на кубике в коробке»), первым возможным делением было «голубая пирамида на кубике». В этот момент в действие вступает семантический анализ, который определяет, что подобное деление не соответствует реальной ситуации. После этого, программа синтаксическего разбора находит следующего кандидата: «голубая пирамида»; затем она выделяет группу «на кубике в коробке» как самостоятельную фразу, указывающую на расположение… Таким образом, разные типы анализа находятся в постоянном взаимодействии, и результаты одного из них влияют на результаты других.[79]

Очень интересно то, что в естественном языке синтаксис и семантика так глубоко переплетены. В предыдущей главе, обсуждая ускользающее понятие «формы», мы подразделили его на две категории: синтаксическая форма, котоорую можно обнаружить с помощью предсказуемо конечной разрешающей процедуры, и семантическая форма, которую таким образом обнаружить нельзя. Но здесь Виноград говорит нам, что, по крайней мере, когда слова «синтаксис» и «семантика» употребляются в их обычном значении, в естественном языке они сливаются друг с другом. Внешняя форма предложения — его состав в терминах элементарных знаков — не делится так четко на синтаксический и семантический аспекты. Это очень важный для лингвистики момент. Далее приводятся заключительные замечания Винограда о ШРДЛУ.

Давайте посмотрим, что делает система с простым описанием, например, «красный кубик, который поддерживает пирамиду». Это описание использует понятия БЛОК, КРАСНЫЙ, ПИРАМИДА, и РАВНОМЕРНЫЙ, каждое из которых является частью категоризации мира, лежащей в основе системы. Результат может быть представлен в виде блока-схемы, как на рис. 118. Обратите внимание, что это программа предназначена для нахождения предмета, совпадающего с данным описанием. Затем она будет включена в команду сделать нечто с данным предметом или в вопрос об этом предмете. Или же, если это описание будет частью предложения, оно станет частью программы, созданной для представления этого значения для его дальнейшего использования. Заметьте, что этот кусок программы также мог бы быть использован для проверки того, совпадает ли предмет с данным описанием, если бы первая команда НАЙТИ была заранее ограничена поисками нужного нам предмета.

С первого взгляда кажется, что у этой программы — слишком сложная структура, поскольку нам не нравится думать, что значение простой фразы может содержать петли, проверку условий перехода на другую ветвь и другие подобные детали. Чтобы решить эту проблему, нам необходим такой внутренний язык, в котором петли и проверки были бы простейшими элементами и в котором представление процессов было бы так же просто, как и их описание. Программа, представленная на рис. 118, на языке ПЛАННЕР выглядела бы примерно так:

(ЦЕЛЬ (Есть ? кубик X1))

(ЦЕЛЬ (Цвет ? X1 красный))

(ЦЕЛЬ (Равномерный ? X1))

(ЦЕЛЬ (Есть ? пирамида Х2))

(ЦЕЛЬ (Есть ? кубик X1))

(ЦЕЛЬ (? X1 поддерживает ?Х2))

Петли блока-схемы подразумеваются в структуре контроля возврата. Правильность описания оценивается путем следования вниз по списку до тех пор, пока какая-нибудь из целей не окажется невыполнимой; тогда программа автоматически отступает к тому моменту, когда она приняла последнее решение, и пробует другой путь. Решение может быть принято всякий раз, когда вводится новое название предмета или новая ПЕРЕМЕННАЯ (отмеченная префиксом «?»). Переменные используются для сопоставления с образцом. Если они уже обозначают некий предмет, программа сопоставления проверяет, выполнима ли цель для данного предмета. Если нет, то эта программа ищет все возможные предметы, для которых эта цель выполнима, выбирая один предмет и совершая последующие шаги до тех пор, пока ей не придется отступить. В таком случае она начинает работать со следующим подходящим предметом. Таким образом, неявным является даже различие между выбором и проверкой.[80]

При разработке этой программы было принято важное стратегическое решение: не переводить полностью с английского на ЛИСП, а только частично — на ПЛАННЕР. Таким образом, поскольку интерпретатор ПЛАННЕР сам написан на ЛИСПе, между языком высшего уровня (английским) и языком низшего уровня (машинным) был введен новый промежуточный уровень (ПЛАННЕР). После того, как фрагмент английского предложения переводится в программу на ПЛАННЕРе, эта программа может быть послана на интерпретер ПЛАННЕРа, освобождая высший уровень ШРДЛУ для работы над другими задачами.

Постоянно приходится решать следующие проблемы: сколько уровней должно быть у системы? Сколько и какой тип «интеллекта» надо располагать на каждом из этих уровней? Сегодня эти проблемы — одни их самых трудных в ИИ. Поскольку мы знаем так мало о настоящем разуме, нам очень трудно решить, какой уровень искусственной разумной системы должен выполнять ту или иную часть задачи.

Это позволяет вам лучше понять те проблемы, что стоят за предыдущим Диалогом. В следующей главе мы рассмотрим новые смелые идеи в области ИИ.

вернуться

78

Terry Winograd, «Understanding Natural Language», стр. 69.

вернуться

79

Winograd «A Procedural Model» стр. 182-3.

вернуться

80

Там же, стр. 171-2.