Введение

Planner (часто встречается в публикациях как "PLANNER", хотя это не акроним) — язык программирования, разработанный Карлом Хьюитом в MIT и впервые опубликованный в 1969 году. Первоначально были реализованы такие подмножества, как Micro Planner и Pico Planner, а затем, по сути, весь язык был реализован в виде Popler Джулианом Дэвисом в Эдинбургском университете на языке программирования POP 2. Производные, такие как QA4, Conniver, QLISP и Ether (см. метафору научного сообщества), являлись важными инструментами в исследованиях в области искусственного интеллекта в 1970-х годах и оказали влияние на коммерческие разработки, такие как среда разработки систем, основанных на знаниях (KEE) и инструмент автоматизированного рассуждения (ART).

Процедуральный подход против логического подхода

Две основные парадигмы для построения семантических программных систем были процедурной и логической. Процедурная парадигма наиболее ярко проявилась в Lisp, который отличался рекурсивными процедурами, работающими со списочными структурами. Логическая парадигма была воплощена в системах, основанных на едином методе доказательства с использованием разрешения. Согласно логической парадигме, использование процедурных знаний считалось некорректным.

Внедрение микропланера

Подмножество под названием Micro Planner было реализовано Джерри Сассманом, Юджином Чарняком и Терри Виноградом и использовалось в программе понимания естественного языка Винограда SHRDLU, в работе по пониманию историй Юджина Чарняка, в работе Торна Маккарти по правовому рассуждению и в ряде других проектов. Это вызвало большой интерес в области ИИ. Это также вызвало споры, поскольку предлагало альтернативу логическому подходу, который являлся одной из основных парадигм ИИ. В SRI International Джефф Рулифсон, Ян Дерксен и Ричард Уолдингер разработали QA4, который основывался на конструкциях Planner и внедрил контекстный механизм для обеспечения модульности выражений в базе данных. Эрл Сасердоти и Рене Ребо разработали QLISP, расширение QA4, встроенное в INTERLISP, обеспечивающее рассуждения, подобные Planner, встроенные в процедурный язык и разработанные в его богатой программной среде. QLISP использовался Ричардом Уолдингером и Карлом Левитом для верификации программ, Эрлом Сакердоти для планирования и мониторинга выполнения, Жаном Клодом Латомбе для автоматизированного проектирования, Нахумом Дершовицем для синтеза программ, Ричардом Фиксом для дедуктивного поиска и Стивеном Коулсом для ранней экспертной системы, которая помогала использовать эконометрическую модель. Компьютеры были дорогими. Они имели только один медленный процессор, а их память была очень мала по сравнению с сегодняшней. Поэтому в Planner были приняты некоторые меры для повышения эффективности, в том числе следующие:

Для экономии времени и памяти был принят метод обратного отслеживания, позволяющий работать и хранить только одну возможность за раз при исследовании альтернатив. Для экономии места и времени было принято предположение об уникальности имен, согласно которому разные имена относятся к разным объектам. Например, такие имена, как Пекин (предыдущее название столицы КНР) и Бэйцзин (современная транслитерация названия столицы КНР), считались относящимися к разным объектам. Предположение о закрытом мире могло быть реализовано путем условной проверки на исчерпывающий провал попытки доказать цель. Позже эта возможность получила вводящее в заблуждение название «отрицание как отказ», поскольку для цели можно было сказать: «если исчерпывающая попытка достижения терпит неудачу, то утверждать».