ГЛАВА 4.
Символические
вычисления
Прежде чем
приступить в обсуждению специализированных языков представления знаний, остановимся
на более общей теме языков программирования задач искусственного интеллекта.
В этой главе мы не задавались целью научить читателя пользоваться определенным
языком, а стремились познакомить с некоторыми темами, касающимися представления
и управления, которые имеют отношение к программной реализации экспертных систем.
Интересно отметить, что широко распространившийся в современной практике создания
программного обеспечения объектно-ориентированный подход к анализу и разработке
должен привести к определенному сближению методик решения проблем, предполагающих
использование идей искусственного интеллекта и не предполагающих такового. Кроме
того, представление приложения как совокупности взаимодействующих относительно
автономных модулей очень близко к подходу, реализуемому методами искусственного
интеллекта. По мере того как все больше специалистов отдают предпочтение такому
образу мышления, средства, используемые для решения обычных задач и задач искусственного
интеллекта, будут становиться все более близкими.
В этой главе
читатель найдет:
Специализированные
языки, объектно-ориентированный подход и программные инструментальные средства,
предназначенные для построения экспертных систем, мы подробно рассмотрим в главах
5, 7 и 17. В этой же главе мы в первую очередь сосредоточим внимание на концепциях
программирования и структурах, существенно влияющих на конструирование экспертных
систем. Детали реализации и специфические приемы будут рассмотрены в соответствующих
разделах других глав в контексте конкретных систем (главы 11-16).
Одна из причин,
по которой мы уделяем такое внимание языку LISP в этой главе, состоит в том,
что многие языки, появившиеся на свет после него, имеют синтаксис, очень близкий
синтаксису LISP (в частности, это относится к языку CLIPS), и включают очень
много языковых конструкций, заимствованных из LISP. Однако при построении экспертных
систем иногда используются языки, существенно отличающиеся от LISP, например
PROLOG, которому будет уделено особое внимание в главе 8 при рассмотрении концепции
логического программирования. Синтаксис, основанный на логическом формализме,
который уже упоминался в главе 3 при обсуждении системы SRTIPS, имеет много
общего с синтаксисом языка PROLOG.