Задание 7. Построим с помощью семантической сети описание выбранной вами ситуации
Построим с помощью семантической сети описание выбранной вами ситуации. Построить графическое представление полученного варианта модели. Сформулировать три запроса к построенной системе.
ФРЕЙМЫ
Фреймовая модель представления знаний основана на теории фреймов М. Минского, которая представляет собой систематизированную психологическую модель памяти человека и его сознания. Эта теория имеет весьма абстрактный характер, поэтому только на ее основе невозможно создание конкретных языков представления знаний [1, 2, 3]. Описание свойств некоторого объекта или события может быть выполнено с помощью фрейма. Достоинство фрейма заключается в том, что элементы, присутствующие в описании объекта или события, группируются в самостоятельную структурную единицу и поэтому могут извлекаться и обрабатываться как единое целое. Механизм организации ссылок позволяет конструировать из отдельных фреймов сложные сетевые структуры, т.е. реализовывать необходимые для данной предметной области связи между объектами, событиями, понятиями. Фреймом называется структура данных для представления некоторого концептуального объекта. Фрейм представляет собой поименованную структуру, составленную из ряда описаний – слотов (рис. 10). С помощью слотов идентифицируются основные структурные элементы фрейма. Слот представляет собой конструкцию из двух элементов: имени слота и значения слота (или, как еще их называют шпации
Рис. 10 Имя фрейма используется для идентификации описываемого фреймом понятия. Имена слотов используются для идентификации понятий, которые описывают основное понятие, представленное именем фрейма, причем в качестве значений слотов могут указываться имена других фреймов, т.е. реализовываться ссылки между фреймами. Например, фрейм СТОЛ может быть записан в виде 3-х слотов: слот НАЗНАЧЕНИЕ, слот ТИП и слот ЦВЕТ следующим образом: имя: СТОЛ НАЗНАЧЕНИЕ: размещение предметов для деятельности рук ТИП: письменный ЦВЕТ: коричневый Рассмотрим пример фрейма с незаполненными шпациями, кроме первого слота: имя: СТАРОСТА есть-нек: СТУДЕНТ фамилия:... имя:... отчество:... год рождения:... адрес:.. стипендия:... дата зачисления:... дата отчисления:... группа:... Все слоты, кроме первого, пустые. Значением первого слота является имя другого фрейма – СТУДЕНТ, описывающего понятие более высокого уровня по отношению к понятию СТАРОСТА. В разделе имени этого слота помечено, что эта связь типа ЕСТЬ-НЕК, т.е. в данном примере первый слот фрейма используется для построения иерархии типов и организации механизма наследования свойств. Итак, значением слота может быть имя, что означает ссылку на другой фрейм. Кроме того, значение слота может быть константой, т.е. содержать конкретное значение понятия, определенного именем слота. Для указания этого используется ключевое слово, например, АГРЕГАТ. Допускается задавать множество значений, для чего также используется ключевое слово, например, ИНТЕРВАЛ. Допускается задавать значение по умолчанию, в этом случае используется ключевое слово ПО УМОЛЧАНИЮ. Сами значения будем заключать в круглые скобки. Рассмотрим пример заполненного фрейма: имя: СТАРОСТА есть-нек: СТУДЕНТ фамилия: агрегат (Иванов) имя: агрегат (Алексей) отчество: агрегат (Ильич) год рождения: агрегат (1987) адрес: АДРЕС_ИВАНОВА стипендия: СТИПЕНДИЯ_ИВАНОВА дата-зачисления: агрегат (30.07.04) дата-отчисления: по умолчанию (учится по н.в.) группа: агрегат (ИТ041) Ключевые слова называют еще фасетами слота. Слот может содержать не только конкретное значение, но также имя процедуры, позволяющей вычислить это значение по заданному алгоритму. Например, слот с именем возраст может содержать имя процедуры, которая вычисляет возраст человека по дате рождения, записанной в другом слоте, и текущей дате. Процедуры, располагающиеся в слотах, называются связанными или присоединенными процедурами. Вызов связанной процедуры осуществляется при обращении к слоту, в котором она помещена. Заполнителями слота могут быть также правила продукций, используемые для определения конкретного значения. В слоте может содержаться не одно, а несколько значений, т.е. в качестве структурных составляющих фреймов могут использоваться данные сложных типов, а именно: массивы, списки, множества, фреймы и т. д. Например, в слоте с именем брат может содержаться список имен, если объект, описываемый данным фреймом, имеет нескольких братьев. Значение слота может представлять собой некоторый диапазон или перечень возможных значений, арифметическое выражение, фрагмент текста и т.д. Для введения в сеть программ (прикладных процедур, реализующих правила обработки данных) в качестве значения слота указывается имя программы через ключевое слово. Например, использовано ключевое слово ВЫЧИСЛИТЬ: имя: СТИПЕНДИЯ_ИВАНОВА начисление: вычислить (ОПЛАТА) есть-нек: СТИПЕНДИЯ Обрабатывая данный фрейм, управляющая программа вызовет программу ОПЛАТА, которая вычислит соответствующее значение слота «начисление». Совокупность данных предметной области может быть представлена множеством взаимосвязанных фреймов, образующих единую фреймовую систему, в которой объединяются декларативные и процедурные знания. Такая система имеет, как правило, иерархическую структуру, в которой фреймы соединены друг с другом с помощью родовидовых связей. На верхнем уровне иерархии находится фрейм, содержащий наиболее общую информацию, истинную для всех остальных фреймов. Фреймы обладают способностью наследовать значения характеристик своих родителей. Например, фрейм АФРИКАНСКИЙ_СЛОН наследует от фрейма СЛОН значение характеристики цвет=«серый». Значение характеристики в дочернем фрейме может отличаться от родительского, например, значением данного слота для фрейма АЗИАТСКИЙ_СЛОН является цвет=«коричневый». Над фреймами можно совершать некоторые теоретико-множественные операции, например, объединение и пересечение. При объединении фреймов в результирующем фрейме будут присутствовать все слоты, которые встречались в исходных фреймах. В слотах, не являющихся общими, будут сохранены исходные значения. Если в объединяемых фреймах были одноименные слоты, в результирующем фрейме останется один слот с таким именем, значение его определится в результате объединения значений одноименных слотов. При пересечении фреймов в результирующем фрейме будут присутствовать только те слоты, которые имелись во всех исходных фреймах. Вычислить результирующие значения можно двумя способами. Первый способ состоит в том, что в результирующем фрейме присутствуют только те значения, которые совпадали в исходных фреймах. Во втором способе результирующие значения находят путем пересечения значений из исходных фреймов. Фреймовые системы подразделяются на статические и динамические, последние допускают изменение фреймов в процессе решения задачи. Пример фрейма РУКОВОДИТЕЛЬ Имя слота Значение слота Тип значения слота Имя Иванов И. И. Строка символов Рожден 01.01.1975 Дата Возраст age(дата, рожден) Процедура Специальность Юрист Строка символов Отдел Отдел кадров Строка символов Зарплата 20000 Число Адрес ДОМ_АДРЕС Фрейм В общем случае структура данных фрейма может содержать более широкий набор информации, в который входят следующие атрибуты. Рассмотрим примеры, поясняющие построение сети фреймов, в которой учитываются различия между категориями обобщений знак-тип и тип-тип и управляющая структура реализует наследование свойств в соответствии с иерархией типов. Пример. имя: СТАРОСТА-Х есть-нек: СТАРОСТА стипендия: СТИПЕНДИЯ-Х адрес: АДРЕС-Х дата-зачисления: агрегат (30.07.2003) дата-отчисления: по умолчанию (учится по н.в.) группа: агрегат (ИТ031) есть-нек: СТУДЕНТ-Х где Х – системный номер экземпляра фрейма (например, адрес расположения в памяти системы). имя: СТАРОСТА есть-нек: СТУДЕНТ имя: СПОРТСМЕН-Х1 есть-нек: СПОРТСМЕН стипендия: СТИПЕНДИЯ-Х1 адрес: АДРЕС-Х1 есть-нек: СТУДЕНТ-Х1 ... имя: СПОРТСМЕН есть-нек: СТУДЕНТ определение понятия:... имя: АДРЕС-Х есть-нек:АДРЕС город: агрегат (Воронеж) улица: агрегат (Лизюкова) номер-дома: агрегат (34) номер- квартиры: агрегат(58) ... имя: АДРЕС есть-часть: СТУДЕНТ определение-понятия:... имя: СТИПЕНДИЯ-Х начисление: вычислить (ОПЛАТА) есть-нек: СТИПЕНДИЯ ... имя: СТИПЕНДИЯ есть-часть: СТУДЕНТ определение-понятия:... имя: СТУДЕНТ-Х фамилия: агрегат (Петров) имя: агрегат (Олег) отчество: агрегат (3482) есть-нек: СТУДЕНТ ... имя: СТУДЕНТ фамилия: наследуется имя: наследуется отчество: наследуется номер-зачетки: наследуется определение-понятия:... Для указания факта, что слот данного фрейма наследуется базовым фреймом, имеющим связь ЕСТЬ-НЕК с данным фреймом, в примере используется ключевое слово НАСЛЕДУЕТСЯ. Это означает, что управляющая программа при организации базового фрейма одновременно организует в нем слоты с именами ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, НОМЕР-ЗАЧЕТКИ (речь идет о фреймах СТАРОСТА-Х,..., СПОРТСМЕН-Х1,...). При проектировании управляющей структуры для сети фреймов разработчик должен тщательно продумать требуемый состав операций над фреймами с позиций манипулирования данными. Пример варианта сети, построенной с помощью фреймов, приведен на рис. 11 Фреймы расширяют возможности семантических сетей рядом важных особенностей. Фреймы позволяют организовать иерархию знаний. В сети каждое понятие представлено узлами и связями на одном и том же уровне детализации. Однако часто для одних целей объект необходимо рассматривать как единую сущность, а для других – учитывать детали его внутренней структуры. Рис. 11 Системы фреймов поддерживают наследование классов. Значения ячеек и используемые по умолчанию значения класса наследуются через иерархию класс/подкласс и класс/член.
|