17.3.2.
Объектно-ориентированные языки
В
главе 12 мы уже обращали ваше внимание на то, что формат правил хорошо согласуется
с представлением знаний в форме "при выполнении условий Сь ...,
С„ выполнить действие А", но менее подходит для описания сложных объектов
и отношений между ними. Языки объектно-ориентированного программирования предоставляют
в распоряжение программиста альтернативную программную среду для организации знаний
в терминах декларативного представления объектов предметной области. Все, связанное
с процедурной стороной решения проблем, распределяется между этими объектами,
которые в таком случае располагают собственными процедурами и могут общаться друг
с другом посредством протоколов передачи сообщений.
Другим приятным аспектом объектно-ориентированного
программирования является возможность использования таких стилей представления
знаний, которые не встречаются в исчислении предикатов и в порождающих правилах.
Вместо "размывания" знаний об объекте предметной области между множеством
правил или аксиом, на которые они ссылаются, эти знания концентрируются в едином
месте — в программном описании объекта. Эта концентрация является виртуальной
в том смысле, что нет необходимости, чтобы вся информация об объекте предметной
области хранилась в соответствующем ему программном объекте, но любая команда
или запрос к этому объекту может быть реализована только через посылку сообщения
этому объекту.
В
реальном мире вещей существует множество систем, в которых обмен энергией или
информацией может быть представлен через обмен сообщениями между их компьютерными
представлениями, и такая связь с технологией моделирования является очень важным
достоинством данного подхода (см., например, [McArthur et al, 1986]). Не
вызывает сомнений, что моделирование является одним из мощнейших средств решения
проблем и что, рассматривая процесс логических рассуждений в контексте сложной
системы, его иногда понять значительно легче, чем в контексте применения правил.
Объектно-ориентированное программирование интегрирует символические вычисления
в операционную среду, базирующуюся на средствах графического интерфейса, — меню,
пиктограммы и т.п. Хотя само по себе оснащение экспертной системы этими средствами
и не решает проблему ее прозрачности для пользователя, в руках умелого программиста
они позволяют лучше представить пользователю процессы, происходящие в системе
(см., например, [Richer andClancey, 1985]).
Основная сложность в использовании
средств объектно-ориентированного программирования — уяснить для себя, что именно
должен представлять программный объект по отношению к предметной области. В ранних
версиях объектно-ориентированных языков, которые были предназначены в основном
для разработки программ моделирования, такая проблема не возникала — программные
объекты представляли объекты моделируемой системы. Например, при моделировании
производственной линии отдельные программные объекты представляли те или иные
механизмы этой линии, а сообщения между программными объектами — информационные,
энергетические и материальные потоки. Задача программиста серьезно облегчалась
тем, что существовало достаточно очевидное соответствие между программными и реальными
объектами.
Но
для того чтобы внедрить объектно-ориентированный стиль в проектирование экспертных
систем, нужно задуматься над тем, как соотнести программные объекты с абстрактными
понятиями и категориями предметной области. Объекты должны представлять факты
и цели, наборы правил или отдельные гипотезы. Поэтому далеко не очевидно, какими
сообщениями должны обмениваться такие объекты и какой смысл должен вкладываться
в эти сообщения.
Многое зависит от того, на каком уровне абстракции будет использоваться объектно-ориентированный механизм. Если объекты представляют собой низкоуровневую реализацию определенной схемы формирования суждений, то отпадает необходимость в использовании каких бы то ни было эпистемологических последовательностей. Если же объекты будут видимы и для эксперта в процессе разработки и совершенствования системы, и для пользователя во время эксплуатации системы, то схема отображения понятий и категорий на программные объекты должна быть тщательно продумана.
| Maya 3D графика в кино и телевидении Воздействие испытаний ядерного оружия на здоровье населения Объектно-ориентированный язык программирования Java Объектно-ориентированное программирование Delphi Библиотека визуальных компонентов VCL и ее базовые классы Кроссплатформенное программирование для Linux Элементы управления Win32 Элементы управления Windows XP Файлы и устройства ввода/вывода Что такое экспертная система? Объектно-ориентированное программирование Инструментальные средства разработки экспертных систем Программирование на языке CLIPS Критерии и количественные характеристики надежности Расчет характеристик надежности невостанавливаемых резервированных изделий Расчет надежности системы с постоянным резервированием Интегрирование тригонометрических функций ; |