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

mii_1

.docx
Скачиваний:
4
Добавлен:
28.11.2024
Размер:
1.67 Mб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра Информационная безопасность

отчет

по лабораторной работе №2

по дисциплине «Методы искусственного интеллекта»

Тема: Работа с онтологиями в Protege

Студент гр. 1363

Афанасьев Д.К.

Студент гр. 1363

Кузнецов А.И.

Преподаватель

Ананьева В.Я.

Санкт-Петербург

2024

ВВЕДЕНИЕ

Целью лабораторной работы является создание 3 онтологий и последующее объединение их в одну.

Основные задачи:

Результирующая онтология должна содержать в себе минимум 3 онтологии, в каждой из которых содержится минимум 5 классов, 2 отношения и 2 свойства. В каждой из онтологий должно быть минимум 1 условие. В каждой из 3-х онтологий должно быть минимум по 1 SWRL-правилу; в результирующей онтологии должно быть минимум 2 правила, связывающих объекты различных онтологий. К результирующей онтологии необходимо составить SPARQL-запросы (минимум 2). Запрос должен включать в себя обращения к различным онтологиям.

  1. ПЕРВЫЙ РАЗДЕЛ

СОЗДАНИЕ ТРЕХ ИСХОДНЫХ ОНТОЛОГИЙ

Онтология 1: Салон

Классы: Машина (Новая_машина, БУ_машина), Персонал (Автослесарь, Директор, Консультант), Сервис.

Object properties: продает (Консультант -> Машина), работает_в (Автослесарь -> Сервис), чинит (Автослесарь -> БУ_машина)

Data properties: пробег, состояние

Условие для подкласса «БУ_машина»: Машина and (пробег some xsd:unsignedInt[>= "100"^^xsd:unsignedInt])

Условие для подкласса «Новая_машина»: Машина and (пробег some xsd:unsignedInt[<"100"^^xsd:unsignedInt])

SWRL-правило: Автослесарь(?x), Машина(?m), пробег(?m, ?p), greaterThanOrEqual(?p, 100), состояниие(?m, ?c), equal(?c, 0) -> чинит(?x, ?m)

Объекты: Крузер100, Прадо250, Машина1, Сергей_Бобров

Вывод Reasoner:

Рисунок 1 — Объект Крузер100

Рисунок 2 — Объект Машина1

Рисунок 3 — Объект прадо250

Рисунок 4 — Объект Сергей_Бобров

Онтология 2: Автомастерская

Классы: Персонал (Автослесарь, Директор, Заказчик_деталей), Услуга (Ремонт_силового_агрегата, ТО, Шиномонтаж), Склад.

Object properties: заказывает_деталь_на (Заказчик_деталей->Склад), оказывает (Автослесарь -> Услуга).

Data properties: длительность, стоимость.

Условие для «Ремонт_силового_агрегата»: Услуга

and (длительность some xsd:unsignedInt[>= "300"^^xsd:unsignedInt])

Условие для «ТО»: Услуга and (длительность some xsd:unsignedInt[> "60"^^xsd:unsignedInt , < "300"^^xsd:unsignedInt])

Условие для «Шиномонтаж»: Услуга and (длительность some xsd:unsignedInt[<= "60"^^xsd:unsignedInt])

SWRL-правило: Услуга(?y), длительность(?y, ?d), greaterThanOrEqual(?d, 600), Заказчик_деталей(?z), Склад(?s) -> заказывает_деталь_на(?z, ?s)

Объекты и вывод Reasoner: Владимир, Сергей_Бобров, Рем1, Склад1, ТО1, Шино1.

Рисунок 5 — Объект Владимир

Рисунок 6 — Объект Сергей_Бобров

Рисунок 7 — Объект Рем1

Рисунок 8 — Объект Склад1

Рисунок 9 — ТО1

Рисунок 10 — Шино1

Онтология 3: Машина

Классы: Машина (Автомобиль, Мотоцикл), Детали (Двигатель, Масло, Трансмиссия, Шина), Источник_энергии.

Object properties: имеет (Машина -> Детали), использует (Двигатель -> Источник_энергии).

Data properties: год_выпуска, кол-во_колес.

Условие для класса Машина: имеет some Детали

SWRL-правило: Машина(?x), кол-во_колес(?x, ?k), equal(?k, 2) -> Мотоцикл(?x)

Объекты и вывод Reasoner: Машина1, Двигатель1

Рисунок 11 — Объект Машина1

Рисунок 12 — Объект Двигатель1

  1. ВТОРОЙ РАЗДЕЛ

РЕЗУЛЬТИРУЮЩАЯ ОНТОЛОГИЯ

Для создания мультиаспектной онтологии приравняем классы различных онтологий. Класс Машина из онтологии 1 эквивалентен классу Машина из онтологии 3. Класс Персонал из онтологии 1 эквивалентен классу Персонал из онтологии 2.

Рисунок 13 — Объединенная онтология

Добавим отношение, связывающее различные онтологии.

Услуга оказывается для Машины. Заказчик_Деталей заказывает Детали

Рисунок 14 — Дополнительное отношение

Рисунок 15 — Дополнительное отношение

Теперь создадим условие, включающее объекты различных онтологий.

Рисунок 16 — Условие, включающее различные онтологии

Добавим объекту Машина1 онтологии 1 отношение «имеет» с объектом Двигатель1, чтобы Reasoner. Приравнял данный объект с объектом Машина1 онтологии3.

Рисунок 17 — Объект Машина1 класса Машина онтологии 1

Рисунок 18 — Объект Машина1 класса Машина онтологии 3

SWRL-правило, включающее различные онтологии, перед эти создав объект Масло1 класса Масло: Автослесарь(?x), ТО(?t), оказывает(?x, ?t), Заказчик_деталей(?z), Масло(?m) -> заказывает(?z, ?m)

Рисунок 19 — Вывод Reasoner

Запросы SPARQL-запросы:

  1. Вывод всех экземпляров, которые принадлежат и классу БУ_машина и Мотоцикл

PREFIX union: <http://www.semanticweb.org/wroon/ontologies/2024/10/untitled-ontology-30#>

PREFIX thiscar: <http://www.semanticweb.org/wroon/ontologies/2024/10/untitled-ontology-29#>

PREFIX thissalon: <http://www.semanticweb.org/wroon/ontologies/2024/10/untitled-ontology-26#>

PREFIX thissto: <http://www.semanticweb.org/wroon/ontologies/2024/10/untitled-ontology-28#>

SELECT ?x

WHERE { ?x a thissalon:БУ_машина .

?x a thiscar:Мотоцикл

}

Рисунок 20 — Запрос SPARQL №1

  1. Вывод всех экземпляров подклассов класса Детали, которые экземпляр «Владимир» класса Заказчик_деталей «заказывает».

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

PREFIX owl: <http://www.w3.org/2002/07/owl#>

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

PREFIX union: <http://www.semanticweb.org/wroon/ontologies/2024/10/untitled-ontology-30#>

PREFIX thiscar: <http://www.semanticweb.org/wroon/ontologies/2024/10/untitled-ontology-29#>

PREFIX thissalon: <http://www.semanticweb.org/wroon/ontologies/2024/10/untitled-ontology-26#>

PREFIX thissto: <http://www.semanticweb.org/wroon/ontologies/2024/10/untitled-ontology-28#>

SELECT ?x

WHERE { ?subclass rdfs:subClassOf thiscar:Детали .

?x rdf:type ?subclass .

thissto:Владимир union:заказывает ?x .

}

Рисунок 21 — Запрос SPARQL №2.

?subclass rdfs:subClassOf thiscar:Детали — находим все подклассы класса Детали.

?x rdf:type ?subclass — находим все экземпляры каждого подкласса

thissto:Владимир union:заказывает ?x — находим экземпляры, связанные отношением «заказывает» с экземпляром «Владимир».

ЗАКЛЮЧЕНИЕ

В ходе выполнения лабораторной работы были созданы три онтологии, каждая из которых описывает отдельный аспект предметной области:

Первая онтология содержит информацию об автосалоне. Вторая онтология описывает автосервис. Третья онтология содержит информацию о транспортных средствах.

Все три онтологии были объединены в результирующую онтологию. Были приравнены классы различных онтологий. Также были созданы дополнительные отношения, условия и SWRL-правила, связывающие объекты различных онтологий.

Были получены утверждения, которые вывел Reasoner.

Дополнительно были составлены SPARQL-запросы, позволяющие извлечь информацию об экземпляров различных онтологий.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]