Теперь слово опять за Виноградом:
Наша программа не работает, сначала разделяя предложение на части, затем проводя семантический анализ и затем давая логический ответ. Когда машина пытается понять предложение, эти три действия происходят одновременно. Как только начинает вырисовываться некая синтаксическая структура, тут же вызывается семантическая программа, чтобы проверить, есть ли в этой структуре смысл; ее ответ может направлять дальнейшее синтаксическое подразделение. Решая, имеет ли данная структура смысл, семантическая программа может прибегать к логическому анализу и задавать вопросы о реальном мире. Например, в секции 34 Диалога («расположи голубую пирамиду на кубике в коробке»), первым возможным делением было «голубая пирамида на кубике». В этот момент в действие вступает семантический анализ, который определяет, что подобное деление не соответствует реальной ситуации. После этого, программа синтаксическего разбора находит следующего кандидата: «голубая пирамида»; затем она выделяет группу «на кубике в коробке» как самостоятельную фразу, указывающую на расположение… Таким образом, разные типы анализа находятся в постоянном взаимодействии, и результаты одного из них влияют на результаты других.[79]
Очень интересно то, что в естественном языке синтаксис и семантика так глубоко переплетены. В предыдущей главе, обсуждая ускользающее понятие «формы», мы подразделили его на две категории: синтаксическая форма, котоорую можно обнаружить с помощью предсказуемо конечной разрешающей процедуры, и семантическая форма, которую таким образом обнаружить нельзя. Но здесь Виноград говорит нам, что, по крайней мере, когда слова «синтаксис» и «семантика» употребляются в их обычном значении, в естественном языке они сливаются друг с другом. Внешняя форма предложения — его состав в терминах элементарных знаков — не делится так четко на синтаксический и семантический аспекты. Это очень важный для лингвистики момент. Далее приводятся заключительные замечания Винограда о ШРДЛУ.
Давайте посмотрим, что делает система с простым описанием, например, «красный кубик, который поддерживает пирамиду». Это описание использует понятия БЛОК, КРАСНЫЙ, ПИРАМИДА, и РАВНОМЕРНЫЙ, каждое из которых является частью категоризации мира, лежащей в основе системы. Результат может быть представлен в виде блока-схемы, как на рис. 118. Обратите внимание, что это программа предназначена для нахождения предмета, совпадающего с данным описанием. Затем она будет включена в команду сделать нечто с данным предметом или в вопрос об этом предмете. Или же, если это описание будет частью предложения, оно станет частью программы, созданной для представления этого значения для его дальнейшего использования. Заметьте, что этот кусок программы также мог бы быть использован для проверки того, совпадает ли предмет с данным описанием, если бы первая команда НАЙТИ была заранее ограничена поисками нужного нам предмета.
С первого взгляда кажется, что у этой программы — слишком сложная структура, поскольку нам не нравится думать, что значение простой фразы может содержать петли, проверку условий перехода на другую ветвь и другие подобные детали. Чтобы решить эту проблему, нам необходим такой внутренний язык, в котором петли и проверки были бы простейшими элементами и в котором представление процессов было бы так же просто, как и их описание. Программа, представленная на рис. 118, на языке ПЛАННЕР выглядела бы примерно так:
(ЦЕЛЬ (Есть ? кубик X1))
(ЦЕЛЬ (Цвет ? X1 красный))
(ЦЕЛЬ (Равномерный ? X1))
(ЦЕЛЬ (Есть ? пирамида Х2))
(ЦЕЛЬ (Есть ? кубик X1))
(ЦЕЛЬ (? X1 поддерживает ?Х2))
Петли блока-схемы подразумеваются в структуре контроля возврата. Правильность описания оценивается путем следования вниз по списку до тех пор, пока какая-нибудь из целей не окажется невыполнимой; тогда программа автоматически отступает к тому моменту, когда она приняла последнее решение, и пробует другой путь. Решение может быть принято всякий раз, когда вводится новое название предмета или новая ПЕРЕМЕННАЯ (отмеченная префиксом «?»). Переменные используются для сопоставления с образцом. Если они уже обозначают некий предмет, программа сопоставления проверяет, выполнима ли цель для данного предмета. Если нет, то эта программа ищет все возможные предметы, для которых эта цель выполнима, выбирая один предмет и совершая последующие шаги до тех пор, пока ей не придется отступить. В таком случае она начинает работать со следующим подходящим предметом. Таким образом, неявным является даже различие между выбором и проверкой.[80]
При разработке этой программы было принято важное стратегическое решение: не переводить полностью с английского на ЛИСП, а только частично — на ПЛАННЕР. Таким образом, поскольку интерпретатор ПЛАННЕР сам написан на ЛИСПе, между языком высшего уровня (английским) и языком низшего уровня (машинным) был введен новый промежуточный уровень (ПЛАННЕР). После того, как фрагмент английского предложения переводится в программу на ПЛАННЕРе, эта программа может быть послана на интерпретер ПЛАННЕРа, освобождая высший уровень ШРДЛУ для работы над другими задачами.
Постоянно приходится решать следующие проблемы: сколько уровней должно быть у системы? Сколько и какой тип «интеллекта» надо располагать на каждом из этих уровней? Сегодня эти проблемы — одни их самых трудных в ИИ. Поскольку мы знаем так мало о настоящем разуме, нам очень трудно решить, какой уровень искусственной разумной системы должен выполнять ту или иную часть задачи.
Это позволяет вам лучше понять те проблемы, что стоят за предыдущим Диалогом. В следующей главе мы рассмотрим новые смелые идеи в области ИИ.
Рис. 118. Процедурное представление фразы «красный кубик, который поддерживает пирамиду». (Roger Schank and Kenneth Colby, «Computer Models of Thought and Language», стр. 172)
Контрафактус
Как-то субботним вечером Краб пригласил к себе нескольких друзей, чтобы посмотреть футбол по телевизору. Ахилл уже пришел, но Черепаха и ее приятель Ленивец запаздывают.
Ахилл: Не они ли это едут на странном одноколесном аппарате?
(Ленивец и Черепаха подъезжают, спрыгивают на землю и входят в дом)
Краб: Друзья мои, я так рад, что вы наконец здесь. Позвольте представить вам моего старого доброго товарища, Ленивца. Это Ахилл. С Черепахой, я думаю, вы все знакомы.
Ленивец: Я никогда раньше не встречал Бициклопа. Приятно с вами познакомиться, Ахилл. Я слышал много хорошего о Бициклопном роде.
Ахилл: Очень приятно. Могу ли я спросить вас, что это за элегантное средство передвижения, на котором вы прибыли?
Черепаха: Вы имеете в виду мой одноколесный тандем? Что же в нем элегантного? Просто машина, позволяющая двоим добраться от А до Б с одинаковой скоростью.
Ленивец: Он сделан той же компанией, которая производит мотоциклы «Зиг-зиг».
Ахилл: А, понятно. Для чего эта ручка?
Ленивец: Это переключатель скоростей.
Ахилл: Ага; и сколько же у этого аппарата скоростей?
Ленивец: Включая задний ход, одна. У большинства моделей скоростей меньше, но эта была сделана по спецзаказу.
Ахилл: Да, этот моно-тандем кажется отличной штукой… Кстати, м-р Краб, хотел вам сказать, что вчера вечером я получил неописуемое удовольствие от игры вашего оркестра.
Краб: Благодарю вас, Ахилл. А вы там не были, м-р Ленивец?
Ленивец: Нет, к сожалению, я не смог пойти. Я участвовал в смешанном одиночном турнире по пинг-пингу. Это было захватывающе интересно, моя команда разделила первое место сама с собой.