Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Лекция 4. Объектно-ориентированное представление знаний фреймами



Читайте также:
  1. Gt; Контроль усвоения знаний учащимися
  2. I. Общее представление о психодиагностике.
  3. V. Каковую особенность Апостол усиливает представлением, что это была сокровенная, ныне лишь явленная тайна, которой он есть служитель 3, 1—13
  4. А.Шопенгауэр Мир как воля и представление
  5. АЛГЕБРАИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ ЛОГИЧЕСКИХ ФУНКЦИЙ
  6. Аспекты извлечения знаний.
  7. Бально-рейтинговая система оценки знаний

 

Фреймовая модель представления знаний основана на теории фреймов М. Минского, которая представляет собой системати­зированную психологическую модель памяти человека и его со­знания. Эта теория имеет весьма абстрактный характер, поэтому только на ее основе невозможно создание конкретных языков представления знаний.

Описание свойств некоторого объекта или события может быть выполнено с помощью фрейма. Достоинство фрейма заключается в том, что элементы, присутствующие в описании объекта или события, группируются в самостоятельную структурную единицу и поэтому могут извлекаться и обрабатываться как единое целое. Механизм организации ссылок позволяет конструировать из отдельных фреймов сложные сетевые структуры, т.е. реализовывать необходимые для данной предметной области связи между объектами, событиями, понятиями. Фреймом называется структура данных для представления не­которого концептуального объекта.

Фрейм представляет собой поименованную структуру, составленную из ряда описаний – слотов (рис. 4.1).

С помощью слотов идентифицируются основные структурные элементы фрейма. Слот представляет собой конструкцию из двух элементов: имени слота и значения слота (или, как еще их называют шпации).

 

Имя фрейма  
  Имя 1:...
  Имя 2:...
  ...
  Имя k:...
     

 

 

слоты


 

имя слота значение слота

Рис. 4.1

Имя фрейма используется для идентификации описываемого фреймом понятия. Имена слотов используются для идентификации понятий, которые описывают основное понятие, представленное именем фрейма, причем в качестве значений слотов могут указываться имена других фреймов, т.е. реализовываться ссылки между фреймами.

Рассмотрим пример фрейма с незаполненными шпациями, кроме первого слота:

имя: СТАРОСТА

есть-нек: СТУДЕНТ

фамилия:...

имя:...

отчество:...

год рождения:...

адрес:..

стипендия:...

дата зачисления:...

дата отчисления:...

группа:...

Все слоты, кроме первого, пустые. Значением первого слота является имя другого фрейма – СТУДЕНТ, описывающего понятие более высокого уровня по отношению к понятию СТАРОСТА. В разделе имени этого слота помечено, что эта связь типа ЕСТЬ-НЕК, т.е. в данном примере первый слот фрейма используется для построения иерархии типов и организации механизма наследования свойств.

Итак, значением слота может быть имя, что означает ссылку на другой фрейм. Кроме того, значение слота может быть константой, т.е. содержать конкретное значение понятия, определенного именем слота. Для указания этого используется ключевое слово, например, АГРЕГАТ. Допускается задавать множество значений, для чего также используется ключевое слово, например, ИНТЕРВАЛ. Допускается задавать значение по умолчанию, в этом случае используется ключевое слово ПО УМОЛЧАНИЮ. Сами значения будем заключать в круглые скобки.

Рассмотрим пример заполненного фрейма:

имя: СТАРОСТА

есть-нек: СТУДЕНТ

фамилия: агрегат (Иванов)

имя: агрегат (Алексей)

отчество: агрегат (Ильич)

год рождения: агрегат (1987)

адрес: АДРЕС_ИВАНОВА

стипендия: СТИПЕНДИЯ_ИВАНОВА

дата-зачисления: агрегат (30.07.04)

дата-отчисления: по умолчанию (учится по н.в.)

группа: агрегат (ИТ041)

Ключевые слова называют еще фасетами слота.

Слот может со­держать не только конкретное значение, но также имя процеду­ры, позволяющей вычислить это значение по заданному алгорит­му. Например, слот с именем возраст может содержать имя про­цедуры, которая вычисляет возраст человека по дате рождения, записанной в другом слоте, и текущей дате. Процедуры, распола­гающиеся в слотах, называются связанными или присоединен­ными процедурами. Вызов связанной процедуры осуществляется при обращении к слоту, в котором она помещена. Заполнителями слота могут быть также правила продукций, используемые для определения конкретного значения. В слоте может содержаться не одно, а несколько значений, т.е. в качестве структурных со­ставляющих фреймов могут использоваться данные сложных ти­пов, а именно: массивы, списки, множества, фреймы и т. д. На­пример, в слоте с именем брат может содержаться список имен, если объект, описываемый данным фреймом, имеет нескольких братьев. Значение слота может представлять собой некоторый диапазон или перечень возможных значений, арифметическое выражение, фрагмент текста и т.д.

Для введения в сеть программ (прикладных процедур, реализующих правила обработки данных) в качестве значения слота указывается имя программы через ключевое слово.

Например, использовано ключевое слово ВЫЧИСЛИТЬ:

имя: СТИПЕНДИЯ_ИВАНОВА

начисление: вычислить (ОПЛАТА)

есть-нек: СТИПЕНДИЯ

Обрабатывая данный фрейм, управляющая программа вызовет программу ОПЛАТА, которая вычислит соответствующее значение слота «начисление».

Совокупность данных предметной области может быть пред­ставлена множеством взаимосвязанных фреймов, образующих единую фреймовую систему, в которой объединяются деклара­тивные и процедурные знания. Такая система имеет, как правило, иерархическую структуру, в которой фреймы соединены друг с другом с помощью родовидовых связей. На верхнем уровне ие­рархии находится фрейм, содержащий наиболее общую инфор­мацию, истинную для всех остальных фреймов. Фреймы облада­ют способностью наследовать значения характеристик своих ро­дителей.

Над фреймами можно совершать некоторые теоретико-мно­жественные операции, например, объединение и пересечение. При объединении фреймов в результирующем фрейме будут при­сутствовать все слоты, которые встречались в исходных фреймах. В слотах, не являющихся общими, будут сохранены исходные значения. Если в объединяемых фреймах были одноименные слоты, в результирующем фрейме останется один слот с таким именем, значение его определится в результате объединения зна­чений одноименных слотов. При пересечении фреймов в резуль­тирующем фрейме будут присутствовать только те слоты, кото­рые имелись во всех исходных фреймах. Вычислить результирую­щие значения можно двумя способами. Первый способ состоит в том, что в результирующем фрейме присутствуют только те зна­чения, которые совпадали в исходных фреймах. Во втором спосо­бе результирующие значения находят путем пересечения значе­ний из исходных фреймов.

Фреймовые системы подразделяются на статические и дина­мические, последние допускают изменение фреймов в процессе решения задачи.

Пример фрейма РУКОВОДИТЕЛЬ

Имя слота Значение слота Тип значения слота

Имя Иванов И. И. Строка символов

Рожден 01.01.1975 Дата

Возраст age(дата, рожден) Процедура

Специальность Юрист Строка символов

Отдел Отдел кадров Строка символов

Зарплата 20000 Число

Адрес ДОМ_АДРЕС Фрейм

В общем случае структура данных фрейма может содержать более широкий набор информации, в который входят следующие атрибуты.

Имя фрейма. Оно служит для идентификации фрейма в систе­ме и должно быть уникальным. Фрейм представляет собой сово­купность слотов, число которых может быть произвольным. Чис­ло слотов в каждом фрейме устанавливается проектировщиком системы, при этом часть слотов определяется самой системой для выполнения специфических функций (системные слоты), при­мерами которых являются: слот-указатель родителя данного фрейма (IS-А), слот-указатель дочерних фреймов, слот для ввода имени пользователя, слот для ввода даты определения фрейма, слот для ввода даты изменения фрейма и т.д.

Имя слота. Оно должно быть уникальным в пределах фрейма. Обычно имя слота представляет собой идентификатор, который наделен определенной семантикой. В качестве имени слота мо­жет выступать произвольный текст. Например, <Имя слота> = Главный герой романа Ф. М. Достоевского «Идиот», <значение слота>= Князь Мышкин. Имена системных слотов обычно заре­зервированы, в различных системах они могут иметь различные значения. Примеры имен системных слотов: IS-А, НАSРАRТ, RELATIONS и т.д. Системные слоты служат для редактирования базы знаний и управления выводом во фреймовой системе.

Указатели наследования. Они показывают, какую информа­цию об атрибутах слотов из фрейма верхнего уровня наследуют слоты с аналогичными именами в данном фрейме. Указатели на­следования характерны для фреймовых систем иерархического типа, основанных на отношениях типа «абстрактное - конкрет­ное». В конкретных системах указатели наследования могут быть организованы различными способами и иметь разные обо­значения:

U (Unique) — значение слота не наследуется;

S (Same) — значение слота наследуется;

R (Range) — значения слота должны находиться в пределах интервала значений, указанных в одноименном слоте родитель­ского фрейма;

О (Override) — при отсутствии значения в текущем слоте оно наследуется из фрейма верхнего уровня, однако в случае опреде­ления значения текущего слота оно может быть уникальным. Этот тип указателя выполняет одновременно функции указате­лей U и S.

Указатель типа данных. Он показывает тип значения слота. Наиболее употребляемые типы: frame — указатель на фрейм; real — вещественное число; integer — целое число; boolean — логичес­кий тип; text — фрагмент текста; list — список; table — таблица; expression — выражение; lisp — связанная процедура и т.д.

Значение слота. Оно должно соответствовать указанному типу данных и условию наследования.

Демоны. Демоном называется процедура, автоматически за­пускаемая при выполнении некоторого условия. Демоны автома­тически запускаются при обращении к соответствующему слоту. Типы демонов связаны с условием запуска процедуры. Демон с условием IF-NEEDED запускается, если в момент обращения к слоту его значение не было установлено. Демон типа 1F-ADDED запускается при попытке изменения значения слота. Демон IF-REMOVED запускается при попытке удаления значения слота. Возможны также другие типы демонов. Демон является разно­видностью связанной процедуры.

Присоединенная процедура. В качестве значения слота может использоваться процедура, называемая служебной в языке LISP или методом в языках объектно-ориентированного программи­рования. Присоединенная процедура запускается по сообщению переданному из другого фрейма. Демоны и присоединенные про­цедуры являются процедурными знаниями, объединенными вместе с декларативными в единую систему. Эти процедурные знания являются средствами управления выводом во фреймовых системах, причем с их помощью можно реализовать любой меха­низм вывода. Представление таких знаний и заполнение ими ин­теллектуальных систем - весьма нелегкое дело, которое требует дополнительных затрат труда и времени разработчиков ИИС. Поэтому проектирование фреймовых систем выполняется как правило, специалистами, имеющими высокий уровень квалифи­кации в области искусственного интеллекта.

Рассмотрим примеры, поясняющие построение сети фреймов, в которой учитываются различия между категориями обобщений знак-тип и тип-тип и управляющая структура реализует наследование свойств в соответствии с иерархией типов.

Пример.

имя: СТАРОСТА-Х

есть-нек: СТАРОСТА

стипендия: СТИПЕНДИЯ-Х

адрес: АДРЕС-Х

дата-зачисления: агрегат (30.07.2003)

дата-отчисления: по умолчанию (учится по н.в.)

группа: агрегат (ИТ031)

есть-нек: СТУДЕНТ-Х

где Х – системный номер экземпляра фрейма (например, адрес расположения в памяти системы).

 

имя: СТАРОСТА

есть-нек: СТУДЕНТ

 

имя: СПОРТСМЕН-Х1

есть-нек: СПОРТСМЕН

стипендия: СТИПЕНДИЯ-Х1

адрес: АДРЕС-Х1

есть-нек: СТУДЕНТ-Х1

...

имя: СПОРТСМЕН

есть-нек: СТУДЕНТ

определение понятия:...

 

имя: АДРЕС-Х

есть-нек:АДРЕС

город: агрегат (Воронеж)

улица: агрегат (Лизюкова)

номер-дома: агрегат (34)

номер- квартиры: агрегат(58)

...

имя: АДРЕС

есть-часть: СТУДЕНТ

определение-понятия:...

 

имя: СТИПЕНДИЯ-Х

начисление: вычислить (ОПЛАТА)

есть-нек: СТИПЕНДИЯ

...

имя: СТИПЕНДИЯ

есть-часть: СТУДЕНТ

определение-понятия:...

 

имя: СТУДЕНТ-Х

фамилия: агрегат (Петров)

имя: агрегат (Олег)

отчество: агрегат (3482)

есть-нек: СТУДЕНТ

...

имя: СТУДЕНТ

фамилия: наследуется

имя: наследуется

отчество: наследуется

номер-зачетки: наследуется

определение-понятия:...

 

Для указания факта, что слот данного фрейма наследуется базовым фреймом, имеющим связь ЕСТЬ-НЕК с данным фреймом, в примере используется ключевое слово НАСЛЕДУЕТСЯ. Это означает, что управляющая программа при организации базового фрейма одновременно организует в нем слоты с именами ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, НОМЕР-ЗАЧЕТКИ (речь идет о фреймах СТАРОСТА-Х,..., СПОРТСМЕН-Х1,...).

При проектировании управляющей структуры для сети фреймов разработчик должен тщательно продумать требуемый состав операций над фреймами с позиций манипулирования данными. Пример варианта сети, построенной с помощью фреймов, приведен на рис. 4.2.

 
 

Рис. 4.2

Фреймы расширяют возможности семантических сетей рядом важных особенностей. Фреймы позволяют организовать иерархию знаний. В сети каждое понятие представлено узлами и связями на одном и том же уровне детализации. Однако часто для одних целей объект необходимо рассматривать как единую сущность, а для других – учитывать детали его внутренней структуры.

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

Системы фреймов поддерживают наследование классов. Значения ячеек и используемые по умолчанию значения класса наследуются через иерархию класс/подкласс и класс/член.

Когда создается экземпляр фрейма класса, система будет пытаться заполнить его либо заданными пользователем значениями, либо значениями по умолчанию, взятыми из фрейма класса, либо выполнит некоторую процедуру или демон для получения значений экземпляра.

Фреймы расширяют возможности семантических сетей, позволяя представлять сложные объекты не в виде большой семантической структуры, а в виде единой сущности (фрейма). Это также позволяет естественным образом представить стереотипные сущности, классы, наследование и значения по умолчанию. Хотя фреймы, подобно логическим и сетевым представлениям, являются мощным средством, многие проблемы организации сложных баз знаний все же должны решаться на основе опыта и интуиции программиста.

В последние годы термин «фреймовый» часто заменяют тер­мином «объектно-ориентированный». Шаблон фрейма можно рассматривать как класс, экземпляр фрейма - как объект. Языки объектно-ориентированного программирования (ООП) предо­ставляют средства создания классов и объектов, а также средства для описания процедур обработки объектов (методы). Языки ООП, не содержащие средств реализации присоединенных про­цедур, не позволяют организовать гибкий механизм логического вывода, поэтому разработанные на них программы либо пред­ставляют собой объектно-ориентированные базы данных либо требуют интеграции с другими средствами обработки знаний (на­пример, с языком PROLOG).

Существуют также специализированные языки представле­ния знаний на основе фреймовой модели, примерами которых являются: FPL, (Frame Representation Language), KRL (Knowledge Representation Language), фреймовая «оболочка» Карра и др. Из­вестны также экспертные системы фреймового типа ANALYST, TRISTAN, ALTERID, МОДИС.


Дата добавления: 2015-07-10; просмотров: 257 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.03 сек.)