![]() |
|
|
Освоение основных принципов при моделировании предметных областей с помощью семантических сетей. Представление семантических сетей в реляционных языках.
1. Для предложенной предметной области выделить сущности, базовые и специальные бинарные отношения. Установить свойства отношений (транзитивность, симметричность, рефлексивность).
2. Связать сущности отношениями, т.е. построить семантическую сеть.
3. Найти способ эквивалентного представления семантической сети в форме предложений на Прологе.
4. Написать интерпретатор на Прологе, учитывающий свойства транзитивности базовых отношений типа "родовая связь", "видовая связь", "часть-целое". Предусмотреть в интерпретаторе возможность реализации запросов по образцу через операции перехода по сети.
5. С помощью построенного интерпретатора для заданного примера реализовать запросы в базу знаний, представленную семантической сетью.
Пример семантической сети
relation("вид","мужчина","персона").
relation("вид","женщина","персона").
relation("представитель", "Петров", "мужчина").
relation("представитель", "Николаева", "женщина").
relation("представитель", "1960", "год").
relation("представитель", "1961", "год").
relation("имеет супруга", "Петров", "Николаева").
relation("имеет супруга", "Николаева", "Петров").
relation("имеет год рождения", "Петров", "1960").
relation("имеет год рождения", "Николаева", "1961").
relation("представитель", "Иванов", "мужчина").
relation("представитель", "Иванова", "женщина").
relation("представитель", "1956", "год").
relation("представитель", "1959", "год").
relation("имеет супруга", "Иванов", "Иванова").
relation("имеет супруга", "Иванова", "Иванов").
relation("имеет год рождения", "Иванов", "1956").
relation("имеет год рождения", "Иванова", "1959").
Базовые:Имеет супруга, Имеет год рождения
Второй пример: в качестве предметной области рассмотрим семьи. Семантическая сеть должна включать знания о персональном составе семьи и конкретные сведения по персонам. Запрос должен иметь вид "какая семья прочитала данную книгу".
Специальные: Вид, Персона
Семантическая сеть для второго примера
/* программа 2 */
PREDICATES
% бинарное отношение
relation(STRING,STRING,STRING)
% Возможные запросы к семантической сети
person(STRING,STRING)
person_sex(STRING,STRING)
person_birthday(STRING,STRING)
person_book(STRING,STRING)
CLAUSES
% Определение принадлежности человека к данной семье
person(Person,Family) :relation("персона",Family,"Семья"),
relation("персона",Person,Sex),
relation("вид",Sex,"персона"),
relation("принадлежит",Person,Family).
% Определение пола персоны
person_sex(Person,Sex) :relation("персона",Person,Sex),
relation("вид",Sex,"персона").
% Определение года рождения персоны
person_birthday(Person,Birthday) :relation("персона",Person,Sex),
relation("вид",Sex,"персона"),
relation("представитель",Birthday,"год"),
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.