Фреймы в экспертных системах
С точи зрения инструментария разработки информационных систем, фреймы можно сравнить с такой сложной структурой языков программирования высокого уровня (например, С ) в режиме записи. В частности, полям и значению записей отвечают такие компоненты фрейма, как слоты и заполнители слотов.
Фрейм, по сути, представляет собой группу слотов и заполнителей, определяющих объект. Фреймы, как правило, применяются для представления или универсальных или специальных знаний.
Например, универсальный фрейм, предназначенный для представления концепции собственности, которой может обладать человек, будет иметь вид, приведенный в таблице 1. Таблица 1 Заполнителями могут быть значения, такие как название собственности в слоте «имя», или ряд значений, например, как в слоте «тип». Заполнители могут также содержать процедуры, которые закреплены за слотами и называются процедурными вложениями. Процедуры, как правило, подразделяются на три типа: if-needed, if-added, if-removal. Процедура if-needed выполняется в двух случаях:
- если нужное значение заполнителя, которое изначально не было определено;
- значение заполнителя, предусмотренное по умолчанию (default), стало непригодным.
Значение фреймов, предусмотренные по умолчанию, позволяют, на основании опыта, моделировать ожидания человека относительно некоторой ситуации. При появлении новой ситуации, осуществляется модификация наиболее подходящего фрейма, что позволяет проще к ней приспособиться.
Именно заданные по умолчанию значения используются для представления знаний, основанных на здравом смысле.
Процедура if-added вызывается на исполнение, если в слот должно быть введено дополнительное значение. Например, в слоте «тип» процедура if-added вызывает на исполнение (в случае необходимости) процедуру ADD-PROPERTY для добавления собственности нового типа.
Эта процедура может быть вызвана после приобретения драгоценностей, яхты или собственности другого типа, поскольку указанные значения не содержатся в слоте «тип». Процедура if-removal вызывается на выполнение каждый раз, когда возникает необходимость удалить из слота какое значение. В частности, процедура такого типа выполняется, если данные устаревают. Заполнители слотов могут также содержать отношения, предназначенные для создания иерархических связей между фреймами. Наиболее используемые отношения:
- а-kind-of - подкласс-класс;
- is-а - экземпляр-класс.
Создавая такие фреймы, разработчики руководствуются соглашением, отношения а-kind-of являются универсальными, а отношения is-а - конкретными.
Например, фрейм автомобиля, который представлен в таблице 2 относится к универсальным субфреймив с описанием типа собственности.
Тогда, экземпляр фрейма с описанием конкретного автомобиля выглядеть как показано в таблице 3. Таблица 2 Таблица 3
Классификация фреймов
Классификация фреймов производится в зависимости от области применения. Всего выделяют три вида фреймов:
- Ситуативные фреймы - содержат знания о том, чего можно ожидать в конкретной ситуации. Например, оценки за демонстрацию студентом того или иного уровня знаний на экзамене.
- Фреймы действия - определяют действия, подлежащие выполнению в конкретной ситуации. Это означает, что заполнителями слотов этих фреймов есть процедуры, предназначенные для выполнения определенных действий. Например, удаление студента с экзамена за попытки списывания. Фрейм действия представляет процедурные знания.
- Фреймы причинных знаний - предназначены для описания причинно-следственных отношений и является сочетаниями ситуативных фреймов и фреймов действия.
Классификация фреймов в зависимости от области применения
От начала применения фреймы предназначались для представления стереотипных знаний. Важной особенностью любого стереотипа является то, что он имеет вполне определенные характеристики, поэтому позволяет предоставить многим своим слотам значения, заданные по умолчанию.
Поэтому, применение фреймов имеет интуитивную привлекательность, поскольку, с их помощью обеспечивается упорядоченное представление знаний, более доступное для понимания по сравнению с логическими или продукционными системами, в которых, с той же целью применяется большое количество правил. Фреймы получают свою значимость при построении иерархических систем и в условиях применения наследования.
Использование фреймов в виде заполнителей слотов и введении в действие связей наследования позволяет создавать очень мощные системы представления знаний. В частности, экспертные системы на основе фреймов является чрезвычайно полезным средством представления причинных знаний, поскольку информация, хранящаяся в них, организованная с учетом причин и последствий.
В отличие от них, экспертные системы, основанные на правилах, как правило, опираются на неорганизованные знания, которые не относятся к причинных. Некоторые инструментальные средства, основанные на фреймах, такие как Кее, позволяют хранить в слотах самые элементы.
Слоты фреймов могут сохранять правила, графику, комментарии, вспомогательную информацию, вопросы пользователей, гипотезы или другие фреймы. На практике, были созданы очень сложные системы фреймов, предназначенные для решения различных задач.
Одной из наиболее впечатляющих систем, продемонстрировала широкие возможности применения фреймов для открытия новых математических понятий, стала программа AM (Automated Mathematician - автоматизированный математик) Дуга Лената (Doug Lenat). В классической системе AM Лената, на основе общеизвестных, создавались новые понятия, а затем исследовались их сочетания.
Эта система предложила некоторые совершенно новые математические доказательства для значительного количества теорем. Однако, при использовании фреймовых моделей представления знаний обнаруживаются определенные недостатки. В основном, они связаны с тем, что в фреймовых системах допускается неограниченное модификация или уничтожение слотов.
То есть, в большинстве таких систем непредвиденные способы определения неизменных слотов. А поскольку, в связи с этим, может подвергнуться изменениям любой слот, то свойства, унаследованные другими фреймами, могут быть изменены или удалены на любом уровне иерархии. Проблемы такого типа возникают также при применении семантических сетей, в которых разрешено вносить изменения в свойства любого узла.
Однако, следует отметить, что существует другой способ применения фреймов, который имеет большую практическую ценность. Если понятие фрейма будет расширено так, чтобы оно охватывало свойства объектов, то появляется возможность рассматривать любой объект как фрейм.
То есть, благодаря применению объектов, основанных на фреймах, становится проще создавать, эксплуатировать и сопровождать крупные базы знаний, по сравнению с такими системами, в которых делаются попытки представить все знания в тысячах отдельных правил и фактов.
Для реализации этого преимущества в язык экспертных систем CLIPS встроенная полная объектно-ориентированный язык, озаглавленный COOL. После этого CLIPS стал рассматриваться, как язык программирования, основанная на фреймах, и которой доступны все преимущества объектно-ориентированного программирования.
Сегодня на языке CLIPS можно создавать объектно-ориентированные экспертные системы, имея возможность использовать правила, которые рассматриваются как небольшие фрагменты знаний и, вместе с тем, предоставляют возможность организовывать более масштабные фрагменты знаний.