
mii_1
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра Информационная безопасность
отчет
по лабораторной работе №2
по дисциплине «Методы искусственного интеллекта»
Тема: Работа с онтологиями в Protege
Студент гр. 1363 |
|
Афанасьев Д.К. |
Студент гр. 1363 |
|
Кузнецов А.И. |
Преподаватель |
|
Ананьева В.Я. |
Санкт-Петербург
2024
ВВЕДЕНИЕ
Целью лабораторной работы является создание 3 онтологий и последующее объединение их в одну.
Основные задачи:
Результирующая онтология должна содержать в себе минимум 3 онтологии, в каждой из которых содержится минимум 5 классов, 2 отношения и 2 свойства. В каждой из онтологий должно быть минимум 1 условие. В каждой из 3-х онтологий должно быть минимум по 1 SWRL-правилу; в результирующей онтологии должно быть минимум 2 правила, связывающих объекты различных онтологий. К результирующей онтологии необходимо составить SPARQL-запросы (минимум 2). Запрос должен включать в себя обращения к различным онтологиям.
ПЕРВЫЙ РАЗДЕЛ
СОЗДАНИЕ ТРЕХ ИСХОДНЫХ ОНТОЛОГИЙ
Онтология 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 эквивалентен классу Машина из онтологии 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-запросы:
Вывод всех экземпляров, которые принадлежат и классу БУ_машина и Мотоцикл
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
Вывод всех экземпляров подклассов класса Детали, которые экземпляр «Владимир» класса Заказчик_деталей «заказывает».
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-запросы, позволяющие извлечь информацию об экземпляров различных онтологий.