Московский государственный технический университет им. Н.Э.Баумана
|
Утверждаю: |
_____________________ |
|
|
"___"_____________2006
г. |
Отчёт
по лабораторной работе №3
по
дисциплине Интеллектуальные системы
"Разработка базы знаний с использованием
сетевых ЯПЗ "
отчет
(вид документа)
бумага А4
(вид носителя)
12
(количество листов)
|
ИСПОЛНИТЕЛЬ: |
|
|
|
____________________ |
|
|
"12"
апреля 2006 г. |
Москва
2006
1. Название и цель работы
Название: "Разработка
базы знаний с использованием сетевых ЯПЗ".
Цель: Ознакомиться с подходом к разработке БЗ ЭС с использованием сетевых языков представления знаний (семантических сетей, фреймов или сценариев).
2. Задания
2.1. Необходимо разработать семантическую (фреймовую, сценарную) сеть, которая включает не менее 15 основных понятий (фреймов) и не менее трех видов отношений, одно из которых имеет вид "Часть-Целое".
2.2. Реализовать возможность по запросу пользователя о конкретном параметре (значении, объекте, свойстве, понятии) на основе сети определять отношения (зависимости) с другими вершинами сети. При этом семантическая сеть должна храниться в БЗ, в которой ее можно редактировать, не изменяя программного кода интерпретатора (машины вывода).
2.3. Реализовать простейший вывод на семантической сети, который позволяет изменять свойство частей при изменении того же свойства у целого. Например, пусть имеется домашний кинотеатр, который состоит из DVD-проигрывателя, телевизора, радиоприемника, колонок и других частей. Пусть также каждая из частей домашнего кинотеатра имеет свойство цвет. Если в ЭС поступила информация о том, что кинотеатр должен иметь черный цвет, то это означает, что каждая из его частей также должна иметь черный цвет.
3. Краткое описание
предметной области и выбранной задачи
В данной лабораторной работе поставлена задача реализовать семантическую сеть – набор понятий и связей между ними. Путем выбора объекта, необходимого для вывода, мы должны получить вывод всех связей данного объекта c другими объектами сети. В качестве рассматриваемой ПО для построения семантической сети были выбраны, как и в первых 2-х лабораторных работах, источники бесперебойного питания ИБП. Однако поскольку семантические сети характеризуются неоднозначностью и дублированием, то сеть разработанной БЗ охватывает не всю ПО, а только ее часть (в учебных целях). В частности, само понятие «ИБП», его составные части «Корпус», «Плата», «Аккумулятор», свойства ИБП и его частей «Цвет», «Виброустойчивость», «Защита от влаги», а также фирмы-производители и конкретные выпускаемые ими модели ИБП.
Для описания всей предметной области потребовалась бы более обширная семантическая сеть.
Лабораторная работа не имеет никакого практического применения и разработана исключительно в учебных целях.
4. Описание семантической
сети.
4.1. Понятия семантической сети.
В семантической сети, описывающей данную предметную область, были выделены 4 типа понятий предметной области:
· сущность (описывает абстрактный объект ПО);
· экземпляр (конкретный представитель сущности);
· свойство (характеристика сущности);
· значение (конкретное значение свойства);
Перечислим все понятия ПО в соответствие с данной классификацией.
1) ИБП;
2) Аккумулятор;
3) Плата;
4) Корпус;
5) Silcon;
6) LanPro;
7) SitePro.
4.1.2. Экземпляры.
1) Silcon DP310E;
2) Silcon DP320E;
3) LanPro 5-11;
4) LanPro 6-11;
5) SitePro 10;
6) SitePro 20.
4.1.3. Свойства.
В данной лабораторной работе для
упрощения и более понятного простейшего вывода на семантической сети по отношениям между частями и целым свойства имеют только
сущности
1) Цвет;
2) Устойчивость к вибрации;
3) Защита от влаги.
4.1.4. Значения.
Значения характеризуют свойства. Причем для определенных свойств есть списки значений, из которых выбирается одно конкретное.
1) Белый;
2) Черный;
3) Есть;
4) Нет;
5) NULL.
4.2. Связи семантической сети.
Все связи семантической сети разделены на 3 категории. Связи являются однонаправленными - нисходящими. «Нисходящие» связи направлены от главного понятия к зависимому. Таким образом, можно определить односторонние отношения между всеми связанными понятиями в семантической сети в виде «Главное понятие» -> «Зависимое понятие» по какому-либо отношению.
Выделены следующие типы связей:
·
1 тип: имеет
свойство (связь сущности и его свойства) ;
·
2 тип: состоит
из (связь целого и его частей);
·
3 тип:
имеет разновидность (связь общего понятия и производных от него потомков);
·
4 тип : имеет
значение (связь свойства и его значения);
Ниже приведены по группам все связи, выделенные между понятиями семантической сети.
1) имеет свойство.
4.2.2. Состоит из.
1) состоит.
4.2.3. Имеет разновидность.
1) выпускается;
2) продает.
4.2.4. Имеет значение.
1) имеет значение.
На рисунке ниже представлена описанная семантическая сеть.

Поскольку вывод значений в семантической сети осуществлять труднее, чем с использованием продукционных правил, то в данной лабораторной работе ограничимся только некоторыми примерами правил вывода. В частности, это правила, которые определяют значение некоторого свойства части, если изменилось соответствующее свойство целого.
В данной БЗ представлены 3 основных примера таких правил вывода:
Например, если свойства «Цвет» у ИБП меняется на белый, то свойство «Цвет» у всех частей ИБП, которые его имеют, также должно иметь цвет белый.
5.1. Обобщенная
структура.
База знаний экспертной системы хранится отдельно от машины вывода в виде файла СУБД Access. Название файла базы знаний - lab3.mdb.
Формально этот файл состоит из 3-х разделов-таблиц:
1) Things – перечень понятий ПО с их индексами.
2) Relations – перечень отношений ПО с их индексами и возможностью получения определенных типов отношений в соответствии с приведенной классификацией (4.2).
3) Structure – перечень всех связей между понятиями предметной области с указанием их типа.
5.2. Раздел Things.
|
Things |
|
|
Номер сущности |
Имя сущности |
|
1 |
ИБП |
|
2 |
Silcon |
|
3 |
LanPro |
|
4 |
SitePro |
|
5 |
Silcon DP310E |
|
6 |
Silcon DP320E |
|
7 |
LanPro 5-11 |
|
8 |
LanPro 6-11 |
|
9 |
SitePro 10 |
|
10 |
SitePro 20 |
|
11 |
Корпус |
|
12 |
Аккумулятор |
|
13 |
Плата |
|
14 |
Цвет |
|
15 |
Устойчивость к вибрации |
|
16 |
Защита от влаги |
|
17 |
NULL |
|
18 |
Белый |
|
19 |
Черный |
|
20 |
Есть |
|
21 |
Нет |
5.2. Раздел Relations.
По данной таблице можно выделить отношение типа «Имеет свойство» (поле «Sv_otn») и типа «Состоит из» (поле «Sost_otn»).
|
Relations |
|||
|
Номер связи |
Имя связи |
Sost_otn |
Sv_otn |
|
1 |
имеет значение |
Нет |
Нет |
|
2 |
имеет свойство |
Нет |
Да |
|
3 |
состоит |
Да |
Нет |
|
4 |
выпускается |
Нет |
Нет |
|
5 |
продает |
Нет |
Нет |
5.3. Раздел Structure.
Задана связь между понятиями семантической сети. Значение того или иного свойства сущности реализовано через двухсоставное отношение «Имеет свойство»-«Имеет значение», что позволяет определить отношение типа «Имеет значение» и присвоить значение свойству конкретного понятия.
Таблица по сути представляет из
себя проиндексированный набор правил из ссылок на связи и понятия.
|
Structure |
|||||
|
Номер взаимосвязи |
Сущность |
Имеет отношение |
Сущность 2 |
Имеет значение |
Значение |
|
1 |
ИБП |
состоит |
Корпус |
|
|
|
2 |
ИБП |
состоит |
Аккумулятор |
|
|
|
3 |
ИБП |
состоит |
Плата |
|
|
|
7 |
ИБП |
выпускается |
Silcon |
|
|
|
8 |
ИБП |
выпускается |
LanPro |
|
|
|
9 |
ИБП |
выпускается |
SitePro |
|
|
|
10 |
Корпус |
имеет свойство |
Цвет |
имеет значение |
Черный |
|
11 |
Аккумулятор |
имеет свойство |
Устойчивость к вибрации |
имеет значение |
Есть |
|
12 |
Аккумулятор |
имеет свойство |
Защита от влаги |
имеет значение |
Есть |
|
13 |
Плата |
имеет свойство |
Устойчивость к вибрации |
имеет значение |
Есть |
|
14 |
Плата |
имеет свойство |
Защита от влаги |
имеет значение |
Есть |
|
15 |
ИБП |
имеет свойство |
Цвет |
имеет значение |
Черный |
|
16 |
ИБП |
имеет свойство |
Устойчивость к вибрации |
имеет значение |
Есть |
|
17 |
ИБП |
имеет свойство |
Защита от влаги |
имеет значение |
Есть |
|
26 |
Цвет |
имеет значение |
Белый |
|
|
|
27 |
Цвет |
имеет значение |
Черный |
|
|
|
28 |
Цвет |
имеет значение |
NULL |
|
|
|
29 |
Устойчивость к вибрации |
имеет значение |
Есть |
|
|
|
30 |
Устойчивость к вибрации |
имеет значение |
Нет |
|
|
|
31 |
Устойчивость к вибрации |
имеет значение |
NULL |
|
|
|
32 |
Защита от влаги |
имеет значение |
Есть |
|
|
|
33 |
Защита от влаги |
имеет значение |
Нет |
|
|
|
34 |
Защита от влаги |
имеет значение |
NULL |
|
|
|
35 |
Silcon |
продает |
Silcon DP310E |
|
|
|
36 |
Silcon |
продает |
Silcon DP320E |
|
|
|
37 |
LanPro |
продает |
LanPro 5-11 |
|
|
|
38 |
LanPro |
продает |
LanPro 6-11 |
|
|
|
39 |
SitePro |
продает |
SitePro 10 |
|
|
|
40 |
SitePro |
продает |
SitePro 20 |
|
|
6. Алгоритм работы программы.
6.1 Алгоритм поиска
связанных понятий и отношений.

6.2 Алгоритм
простейшего вывода на семантической сети.
После изменения какого-либо свойства «Целого» происходит изменение свойств всех его частей по данному алгоритму:

Экспертная система выполнена в виде Windows - приложения. Экранная форма для работы с программой имеет вид, представленный на рисунке.

Форма «Выберите понятие» содержит весь перечень понятий в заданной семантической сети. Выбрав понятие и сделав по нему 2 клика, справа от формы мы получим все нисходящие отношения от выбранного понятия. А снизу мы получим информацию в текстовом виде о связанных с выделенным понятием понятиях и типах связей между ними, в том числе и тех, по которым выделенное понятие является подчиненным.
Нижние 3 формы предназначены для организации простейшего вывода на семантической сети. После выбора «Целого», его свойства и изменения значение применяется описанный выше алгоритм простейшего вывода на семантической сети.
7.2. Инструкция по
работе с базой знаний.
Для исправления базы знаний необходимо открыть файл lab3.mdb СУБД «Access». После чего вручную исправить требуемые поля описанных в пункте 5 таблиц.
Добавление записей в указанные таблицы рекомендуется осуществлять по описанным ниже алгоритмам.
1) Ввести имя понятия в поле «Имя сущности» таблицы Things.
1) Ввести имя отношения в поле «Имя связи» таблицы Relations.
2) Если отношение имеет тип «Состоит из», то отметить это в поле “Sost_otn” (как для отношения «состоит из»)
3) Если отношение имеет типа «Имеет свойство», то отметить это в поле “Sv_otn” (как для отношения «имеет свойство»)
Изменение структуры сети:
1) Открыть таблицу “Structure”.
2) В поле «Сущность» выбрать главное понятие (например, «Аккумулятор»).
3) В поле «Имеет отношение» выбрать конкретное отношение (например, «имеет свойство»).
4) В поле «Сущность 2» выбрать подчиненное понятие (например, «Защита от влаги»).
5) Если указанное в поле «Имеет отношение» отношение отмечено в таблице отношений как отношение типа «Имеет свойство», то в поле «Имеет значение» необходимо выбрать отношение типа «Имеет значение» (например, «имеет значение»). В поле «Значение» при этом надо выбрать любое логически подходящее данному свойству понятие типа «значение» (например, «Есть»).