Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

7,8 лаба зі Ш.І / L7_Model_Nasled

.doc
Скачиваний:
2
Добавлен:
19.02.2016
Размер:
60.93 Кб
Скачать

4

Лабораторная работа

Моделирование механизма наследования на ПРОЛОГЕ

Цель работы:

реализация принципа наследования свойств с помощью языка логического программирования ПРОЛОГ

Подготовка к работе:

Повторить материал лекций по теме: модель знаний "Семантическая сеть".

Построить семантическую сеть текста (для заданного варианта) по аналогии с приведенным примером:

Все птицы летают.

Канарейки желтого цвета.

Твики живет у Тома.

Твики это канарейка.

Канарейка это птица.

Семантическая сеть - «Птицы»

Представим эту сеть на Прологе в виде трех отношений и одного свойства:

is_a(tviki, canary). отношение «является видом»

is_a(canary, bird).

live(tviki, tom). отношение «живет у»

color(canary, yellow). отношение «имеет цвет»

flay(bird). свойство «летать»

Составить пролог-программу описывающую семантическую сеть.

Порядок выполнения работы:

  1. Загрузить среду программирования на turbo-prolog

  2. Набрать текст пролог-программы тестового примера, устранить допущенные синтаксические ошибки

  3. Задайте системе следующие запросы

  • кто живет у Тома?

  • какого цвета канарейка?

  • кто может летать?

Должны быть получены положительные ответы в соответствии с текстом. В противном случае устраните логические ошибки.

  1. Теперь задайте следующие вопросы:

  • какого цвета Твики?

  • имеет ли Том канарейку?

  • живет ли у Тома птица?

  • летает ли канарейка?

  • летает ли Твики?

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

  1. Введите правила, позволяющие реализовать принцип наследования.

А. Обобщение понятия «является видом»

Введем предикат is_all(X,Y) - являться видом всех вышестоящих классов.

is_all(X,Y):-is_a(X,Y).

is_all(X,Y):-is_a(X,Z),is_all(Z,Y).

Б. Наследование свойства «летать»

flay(X):-is_all(X,Y),flay(Y). Если Y является вышестоящим родом для X и Y летает, то X тоже летает

В. Наследование цвета color(X,C):-is_all(X,Y),color(Y,C).

Г. Наследование имени рода для предиката «живет у» live(X,Y):-is_all(Z,X),live(Z,Y).

  1. Отладить программу и получить правильные ответы на вышеперечисленные вопросы.

  2. Модифицировать текст пролог-программы для своего варианта задания.

Содержание отчета:

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

Контрольные вопросы:

  1. Какие выгоды в программировании дает принцип наследования?

  2. Почему при описании предиката "являться видом" используется рекурсия?

  3. Почему в других правилах наследования не используется рекурсия?

  4. Перечислите элементы семантической сети.

  5. Какие ограничения налагаются на порядок следования предикатов в пролог-программе?

Варианты заданий

Текст

Вопросы

1

Планеты светят отраженным светом. Марс красноватого цвета. Венера голубоватого цвета. Марс – планета. Венера – планета. Все планеты вращаются вокруг оси.

Какого цвета бывают планеты?

Какие планеты светят отраженным светом? Вращается Марс вокруг оси?

2

Большинство лиственных растений сбрасывают на зиму листья. Широколиственные породы деревьев имеют крупные листовые пластины. У калитки растет дуб. Дуб относится к широколиственным растениям. Лиственные растения подразделяются на широколиственные и мелколиственные

Какие листья у дуба? Какие деревья сбрасывают листву? Относится дуб к лиственным растениям?

3

Деревья выделяют в атмосферу кислород. кустарник не имеет главного ствола. Бузина растет на пригорке. Кустарник вид дерева. Бузина – кустарник.

Бузина выделяет кислород в атмосферу? У каких деревьях нет главного ствола? Что растет на пригорке?

4

Низшие растения не имеют листьев. Грибы относятся к низшим растениям. Грибы неспособны к фотосинтезу. Сморчок – съедобный гриб.

Способен сморчок к фотосинтезу? Какие растения не имеют листьев?

5

Все птицы имеют крылья. Пингвин – птица. Пингвины имеют черный клюв. В зоопарке живет пингвин Яков.

Какого цвета клюв у Якова? Кто является птицей? Кто живет в зоопарке?

6

Волк – хищник. Хищники питаются мясом. Собака потомок волка. Собаки лают. Рекс живет у Петра. Рекс – собака.

Чем питается Рекс. Кто лает? Рекс – хищник?

7

Олени имеют рога. Лось – прекрасный пловец. Лось – представитель семейства оленей. Семен приручил лося и назвал его Гром.

У кого есть рога? Гром плавает? Какой вид животного приручил Семен?

Справочный материал:

Текст Пролог-программы тестового примера представлен ниже.

Секция описания типов

domains

s=symbol

Секция описания предикатов

predicates

is_a(s,s)

is_all(s,s)

live(s,s)

color(s,s)

flay(s)

Секция описания фактов и правил

clauses

факты

is_a(tviki, canary).

is_a(canary, bird).

Обобщение понятия «является видом»

is_all(X,Y):-is_a(X,Y).

is_all(X,Y):-is_a(X,Z), is_all(Z,Y).

факт

live(tviki, tom).

Наследование имени рода для предиката «живет у» live(X,Y):-is_all(Z,X), live(Z,Y).

факт

color(canary, yellow).

наследование цвета

color(X,C):-is_all(X,Y), color(Y,C).

факт

flay(bird).

наследование свойства летать

flay(X):-is_all(X,Y), flay(Y).

Соседние файлы в папке 7,8 лаба зі Ш.І