Композициональность, как ни странно, представляет большие сложности для коннектоплазмы. Все напрашивающиеся для решения проблемы методы оказываются недостаточными. Предположим, что мы отвели по одному узлу для каждого сочетания одного концепта и одной роли. Допустим, один узел будет означать «ребенок ест», а другой – «слизняк съеден», или, допустим, один узел будет означать «ребенок выполняет действие», а другой – «слизняк является объектом действия». Это позволит значительно сократить число комбинаций – но лишь за счет новой неопределенности относительно того, кто совершил какое действие и над кем. Мысль «Ребенок съел курицу, когда пудель съел слизняка» будет невозможно отличить от мысли «Ребенок съел слизняка, когда пудель съел курицу». Проблема в том, что блок «ребенок ест» не содержит информации о том, что ребенок съел, а блок «слизняк съеден» не содержит информации о том, кто его съел.
Шагом в правильном направлении будет встроить в систему способность различать концепты (ребенок, слизняк и др.) и роли, которые они выполняют (деятель, объект действия и т. д.). Допустим, мы создадим отдельные фонды узлов – один для роли деятеля, а другой для роли объекта действия. Чтобы представить суждение, каждый фонд узлов дополняется шаблоном для выполняющего роль в данный момент концепта, поступающим из отдельного раздела памяти. Если бы мы соединили каждый узел с соседними узлами, мы бы получили автоассоциатор для суждений, способный немного работать с комбинаторными мыслями. Мы бы могли хранить в готовом виде суждение «ребенок съел слизняка»; в этом случае, получая любые два компонента в форме вопроса (скажем, «ребенок» и «слизняк» в форме вопроса «Каково отношение между ребенком и слизняком?»), система дополняла бы шаблон, включив узлы, соответствующие третьему компоненту (в данном случае «съел»).
Ведь так? Увы, нет. Рассмотрим такие мысли:
Baby same-as baby. (Ребенок то-же-самое-что ребенок.)
Baby different-from slug. (Ребенок отличное-от слизняк.)
Slug different-from baby. (Слизняк отличное-от ребенок.)
Slug same-as slug. (Слизняк то-же-самое-что слизняк.)
Никакое сочетание весов связей, при котором элемент «ребенок» в первой ячейке и элемент «то-же-самое-что» в средней ячейке активизируют элемент «ребенок» в третьей ячейке, а элемент «ребенок» и «отличное-от» активизируют элемент «слизняк», а элемент «слизняк» и элемент «отличное от» включают элемент «ребенок», не позволит элементам «слизняк» и «то-же-самое-что» активизировать элемент «слизняк». Это все та же самая проблема «исключающего ИЛИ», только в другом обличье. Если связи, соединяющие элементы «ребенок» и «ребенок» и элементы «то-же-самое-что» и «ребенок» сильны, они активизируют элемент «ребенок» в ответ на «ребенок то-же-самое-что____» (что хорошо), однако они включат элемент «ребенок» и в ответ на «ребенок отличное-от – ____» (что плохо), и в ответ на «слизняк то-же-самое-что____» (что тоже плохо). Можно как угодно жонглировать весами связей, но вы никогда не найдете такой вариант, который будет работать для всех четырех предложений. Любой человек безошибочно поймет все четыре предложения, следовательно, человеческий мозг представляет суждения в более замысловатой форме, чем совокупность связей концепта с концептом или концепта с ролью. Мозгу нужна репрезентация для самого суждения. В нашем примере модели нужен дополнительный уровень – более конкретно, уровень, на котором суждение было бы представлено полностью, независимо от концептов и их ролей в суждении
[125].
Рисунок внизу показывает в упрощенной форме разработанную Джеффри Хинтоном модель, которая позволяет справиться с предложениями.
Узлы в модуле «суждений» активизируются произвольным образом, получается что-то вроде серийных номеров, которыми помечаются полноценные мысли. Этот модуль функционирует как сверхструктура, благодаря которой концепты в каждом суждении остаются каждый в своей ячейке. Обратите внимание, как точно архитектура этой сети воспроизводит стандартный, напоминающий естественный язык, мыслекод! Выдвигались и другие версии композициональных сетей, которые не так очевидно имитируют естественный язык, но все они непременно включали в себя специальные компоненты, которые задуманы для того, чтобы отделять концепты от их ролей, и для того, чтобы правильно увязывать каждый концепт с его ролью. Чтобы сеть могла выполнять функции, свойственные мышлению, нужно вернуть в нее такие компоненты логики, как предикат, аргумент и суждение; одних только ассоциаций явно недостаточно
[126].
* * *
Еще одна замечательная способность мышления, которую вы, возможно, даже никогда не осознавали, называется квантификацией или присваиванием значения переменным. Она представляет собой сочетание первой проблемы – различения индивидных объектов – и второй – композициональности. Ведь предметом наших композициональных мыслей, в конце концов, часто бывают индивидные объекты, и очень важно, каким образом эти индивидные объекты связаны с разными элементами мысли. Мысль о том, что какой-то определенный ребенок съел какого-то определенного слизняка, отличается от мысли о том, что какой-то определенный ребенок ест слизняков в принципе, или о том, что все дети вообще едят слизняков. Существует целая плеяда анекдотов, основанных на том, что слушатель не распознает это различие. «В США каждые сорок пять секунд кто-то получает травму головы» – «О, боже! Не повезло этому кому-то!» Когда мы слышим фразу «Хильдегард хочет выйти замуж за мускулистого мужчину», мы не можем знать наверняка, есть ли у нее уже кто-то подобный на примете или она просто регулярно ходит в спортзал в надежде найти кого-нибудь. Авраам Линкольн сказал: «Можно некоторое время дурачить всех людей; можно даже дурачить некоторых людей все время; но нельзя дурачить все время всех людей». Без способности квантификации мы едва бы поняли, что он сказал.
В этих примерах у нас есть несколько предложений или несколько прочтений двусмысленного предложения, в которых одни и те же концепты играют одни и те же роли, однако в результате получаются очень разные идеи. Привязать концепты к их ролям недостаточно. Специалисты по логике фиксируют эти различия с помощью переменных и кванторов. Переменная – это символ-заполнитель вроде х или у, который обозначает одну и ту же сущность в разных суждениях или в разных частях одного суждения. Квантор – это символ, который может выражать отношения «Существует определенный х, который…» и «Несмотря на х, справедливо утверждение, что…». Мысль может быть выражена суждением, состоящим из символов, которые обозначают концепты, роли, кванторы и переменные, расположенные в строго определенном порядке с использованием скобок. Сравним, к примеру: «Каждые сорок пять секунд {существует X [который получает травму]}» и «Существует X {который каждые сорок пять секунд [получает травму]}». Наш мыслекод должен иметь механизм, который делал бы что-то вроде этого, но пока у нас нет ни малейшего понятия, как это можно осуществить в рамках ассоциативной сети.