Да)
Концептуальная проблема, стоящая перед системой, состоит в том, что у нее нет эксплицитного знания о том, кто чей дядя. Это знание имплицитно следует из других фактов, которые она знает. На механическом уровне то же самое будет значить вот что: в разделе «Долгосрочная память» нет метки uncle-of (дядя); там есть только метки sibling-of (брат/сестра) и parent-of (родитель). На концептуальном уровне нам нужно вывести знание о том, кто чей дядя, из знания о том, кто приходится кому родителем и братом/сестрой. На механическом уровне нам нужен демон, который сделает запись uncle-of (дядя), по обе стороны от которой будут нужные метки, обнаруженные в записях с элементами sibling-of (брат/сестра) и parent-of (родитель). На концептуальном уровне нам нужно выяснить, кто у нас родители, идентифицировать их братьев и сестер, потом выбрать из них лиц мужского пола. На механическом уровне нам нужен следующий демон, который сделает в области «Задачи» новые записи, запускающие соответствующие операции поиска в памяти:
IF: Goal = Q uncle-of Р
THEN: ADD GOAL
Find P’s Parents
Find Parents’ Siblings
Distinguish Uncles/Aunts
(ЕСЛИ: Задача = Q дядя PTO: ДОБАВИТЬ ЗАДАЧУ
Найти родителей Р
Найти братьев/сестер родителей
Различить дядь/теть)
Этот демон запускается записью uncle-of (дядя) в колонке «Задачи». В этой колонке действительно есть такая запись, поэтому демон начинает действовать и добавляет к этой колонке новые метки:
Необходим также элемент программы – еще один демон или дополнительный механизм внутри данного демона, который будет отвечать за Р и Q, то есть заменять ярлык Р списком конкретных ярлыков имен: Me (Я), Abel (Абель), Gordie (Горди) и т. д. Эти детали я здесь не привожу, чтобы не усложнять восприятие процесса.
Новые записи в колонке «Задачи» побуждают к действию других демонов. Один из них (на концептуальном уровне) ищет родителей системы, копируя (на механическом уровне) все записи, содержащие имена родителей, в раздел «Краткосрочная память» (если только там уже нет таких записей, конечно; это условие необходимо, чтобы демон не продолжал бессмысленно делать одну копию за другой, как ученик чародея):
IF: Goal = Find P’s Parents
Long-Term Memory = X parent-of P
Short-Term Memory ≠ X parent-of P
THEN: COPY TO Short-Term Memory
X parent-of P
ERASE GOAL
(ЕСЛИ: Задача = найти родителей P
Долгосрочная память = X родитель P
Краткосрочная память ≠ X родитель P
ТО: КОПИРОВАТЬ В КРАТКОСРОЧНУЮ ПАМЯТЬ
X родитель P
СТЕРЕТЬ ЗАДАЧУ)
Теперь наша доска объявлений выглядит следующим образом:
Теперь, когда мы знаем родителей, мы можем найти братьев и сестер родителей. На механическом уровне это означает, что теперь, когда имена родителей записаны в разделе «Краткосрочная память», может начинать работу демон, копирующий записи о братьях и сестрах родителей:
IF: Goal = Find Parents’ Siblings
Short-Term Memory = X parent-of Y
Long-Term Memory = Z sibling-of X
Short-Term Memory
Z sibling-of X
THEN: COPY TO Short-Term Memory
Z sibling-of X
ERASE