Популярные услуги

Все письменные КМ под ключ за 7 суток! (КМ-1 + КМ-2 + КМ-3 + КМ-4 + КМ-5)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си
Одно любое задание в mYsql
Любая задача на C/C++
Сделаю ваше задание: Лабораторная работа на Pascal / Lazarus
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Повышение уникальности твоей работе
Главная » Лекции » Информатика и программирование » Искусственный интеллект » Объектно-ориентированное представление знаний

Объектно-ориентированное представление знаний

2021-03-09СтудИзба

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

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

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

Фреймом называется структура данных для представления не­которого концептуального объекта.

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

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

                

      

      слоты


       


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

                       Рис. 5.3

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

Например, фрейм стол может быть записан в виде 3-х слотов: слот НАЗНАЧЕНИЕ, слот ТИП и слот ЦВЕТ следующим образом:

имя: СТОЛ

          НАЗНАЧЕНИЕ: размещение предметов для деятельности рук

          ТИП: письменный

          ЦВЕТ: коричневый

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

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

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

          фамилия:...

          имя:...

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

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

          адрес:..

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

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

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

          группа:...

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

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

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

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

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

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

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

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

          год рождения: агрегат (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 запускается при попытке удаления значения слота. Возможны также другие типы демонов. Демон является разно­видностью связанной процедуры.

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

Пример сети фреймов приведен на рис. 5.4 [5]. На нем поня­тие УЧЕНИК наследует свойства фреймов РЕБЕНОК и ЧЕЛО­ВЕК, которые находятся на более высоких уровнях иерархии.  Ес­ли будет задан вопрос «Любят ли ученики сладкое?», то следует ответ «да», так как этим свойством обладают все дети что указа­но во фрейме РЕБЕНОК. Наследование свойств может быть час­тичным, например «возраст» для учеников не наследуется из фрейма «ребенок», так как явно указан в собственном фрейме


Рис. 5.4. Пример иерархии фреймов

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

Пример.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       ...

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

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

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

имя: АДРЕС-Х

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

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

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

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

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

                    ...

имя: АДРЕС

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

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

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

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

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

                  ...

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

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

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

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

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

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

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

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

      ...

имя: СТУДЕНТ

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

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

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

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

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

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

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


Рис. 5.5

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

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

"1.1 Структура информационной системы предприятия" - тут тоже много полезного для Вас.

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

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

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

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

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

           

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5138
Авторов
на СтудИзбе
443
Средний доход
с одного платного файла
Обучение Подробнее