126
Ontology engeneering Разработка онтологий

Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Ontology engeneeringРазработка онтологий

Page 2: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Что такое “Ontology Engineering”?

Разработка онтологий —

это процесс определения терминов домена и отношений между ними:

• определение концептов домена (классов)

Онтологии и представление знаний, 2010 2

Page 3: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Что такое “Ontology Engineering”?

Разработка онтологий —

это процесс определения терминов домена и отношений между ними:

• определение концептов домена (классов)

• организация концептов в иерархию (подкласс-суперкласс)

Онтологии и представление знаний, 2010 2

Page 4: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Что такое “Ontology Engineering”?

Разработка онтологий —

это процесс определения терминов домена и отношений между ними:

• определение концептов домена (классов)

• организация концептов в иерархию (подкласс-суперкласс)

• определение атрибутов и свойств классов, а также

ограничений на их значения

Онтологии и представление знаний, 2010 2

Page 5: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Что такое “Ontology Engineering”?

Разработка онтологий —

это процесс определения терминов домена и отношений между ними:

• определение концептов домена (классов)

• организация концептов в иерархию (подкласс-суперкласс)

• определение атрибутов и свойств классов, а также

ограничений на их значения

• определение индивидов и придание значений атрибутам/свойствам.

Онтологии и представление знаний, 2010 2

Page 6: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Зачем разрабатывать онтологии?

• Чтобы добиться общего понимания терминов и для обмена информацией

– между людьми

– между программами

Онтологии и представление знаний, 2010 3

Page 7: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Зачем разрабатывать онтологии?

• Чтобы добиться общего понимания терминов и для обмена информацией

– между людьми

– между программами

• Для повторного использования знаний

– не “изобретаем колесо”

– стандарты

Онтологии и представление знаний, 2010 3

Page 8: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Зачем разрабатывать онтологии?

• Чтобы добиться общего понимания терминов и для обмена информацией

– между людьми

– между программами

• Для повторного использования знаний

– не “изобретаем колесо”

– стандарты

• Чтобы явно записать что мы знаем о какой-то области

– эволюция знаний

– легче понимать и поддерживать

Онтологии и представление знаний, 2010 3

Page 9: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Зачем разрабатывать онтологии?

• Чтобы добиться общего понимания терминов и для обмена информацией

– между людьми

– между программами

• Для повторного использования знаний

– не “изобретаем колесо”

– стандарты

• Чтобы явно записать что мы знаем о какой-то области

– эволюция знаний

– легче понимать и поддерживать

• Чтобы отделить знания об области от процедур

– повторное использование знаний и повторное использование процедур

Онтологии и представление знаний, 2010 3

Page 10: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Разработка онтологий vs. ОО-моделирование

Онтология ОО классы

Онтологии и представление знаний, 2010 4

Page 11: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Разработка онтологий vs. ОО-моделирование

Онтология ОО классы

• отражает

строение мира

• отражает

построение кода и данных

Онтологии и представление знаний, 2010 4

Page 12: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Разработка онтологий vs. ОО-моделирование

Онтология ОО классы

• отражает

строение мира

• отражает

построение кода и данных

• фокусируется на

структуре концептов

• фокусируется на

поведении (методы)

Онтологии и представление знаний, 2010 4

Page 13: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Разработка онтологий vs. ОО-моделирование

Онтология ОО классы

• отражает

строение мира

• отражает

построение кода и данных

• фокусируется на

структуре концептов

• фокусируется на

поведении (методы)

• физическое

представление

не важно

• описывает физическое

представление данных

(int, char, etc.)

Онтологии и представление знаний, 2010 4

Page 14: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Цикл разработки онтологий

Онтологии и представление знаний, 2010 5

Page 15: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Цикл разработки онтологий

Онтологии и представление знаний, 2010 6

Page 16: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Анализ требований и области применения

• Какую область знаний должна покрывать онтология?

• Какие термины необходимы в данной области?

• На какие типы вопросов информация, хранимая в онтологии, должна позволять

найти ответ?

• Какая выразительная сила языка представления онтологий потребуется?

• Какие программные средства будут использованы?

• Гетерогенность, распределенность, автономность

• Гипотеза открытого мира vs гипотеза закрытого мира

• Статический или динамический процесс

• Ограниченные, неполные знания

• Анализ случаев

– Какая информация доступна

– Какие вопросы зададут

– Типы и роли пользователей

Онтологии и представление знаний, 2010 7

Page 17: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Пример: онтология животных и растений

Онтология животных (и растений), упоминающихся в детских книжках, с целью создания

предметного указателя. Должна включать:

• где живут

• что едят

(хищное, травоядное, всеядное)

• опасны ли они

• большие ли они

• немного анатомии

(количество ног, крыльев, пальцев, и т.п.)

Онтологии и представление знаний, 2010 8

Page 18: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Цикл разработки онтологий

Онтологии и представление знаний, 2010 9

Page 19: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Анализ области применения

• Для чего будет использована эта онтология?

– Онтология не должна содержать ВСЕ возможные знания о домене

* не требуется уточнять или обобщать более, чем необходимо

* не требуется включать все возможные свойства классов

Онтологии и представление знаний, 2010 10

Page 20: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Анализ области применения

• Для чего будет использована эта онтология?

– Онтология не должна содержать ВСЕ возможные знания о домене

* не требуется уточнять или обобщать более, чем необходимо

* не требуется включать все возможные свойства классов

Пример: онтология биологических экспериментов содержит

BiologicalOrganism и Experimenter.

Онтологии и представление знаний, 2010 10

Page 21: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Анализ области применения

• Для чего будет использована эта онтология?

– Онтология не должна содержать ВСЕ возможные знания о домене

* не требуется уточнять или обобщать более, чем необходимо

* не требуется включать все возможные свойства классов

Пример: онтология биологических экспериментов содержит

BiologicalOrganism и Experimenter.

Должен ли класс Experimenter быть подклассом BiologicalOrganism?

Онтологии и представление знаний, 2010 10

Page 22: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Анализ области применения

• Для чего будет использована эта онтология?

– Онтология не должна содержать ВСЕ возможные знания о домене

* не требуется уточнять или обобщать более, чем необходимо

* не требуется включать все возможные свойства классов

Пример: онтология биологических экспериментов содержит

BiologicalOrganism и Experimenter.

Должен ли класс Experimenter быть подклассом BiologicalOrganism?

– Предметный указатель

Онтологии и представление знаний, 2010 10

Page 23: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Цикл разработки онтологий

Онтологии и представление знаний, 2010 11

Page 24: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Повторное использование

• Редко начинаем на пустом месте

– меньше усилий

– средства разработки

– проверенные временем

• Стандартные термины легко доступны

• Использовать модули

Онтологии и представление знаний, 2010 12

Page 25: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Где брать?

• Библиотеки онтологий

– DAML ontology library (www.daml.org/ontologies)

– Protégé ontology library (protege.stanford.edu/plugins.html)

• Онтологии верхнего уровня

– IEEE Standard Upper Ontology (suo.ieee.org)

– Cyc (www.cyc.com)

• Общие онтологии

– DMOZ (www.dmoz.org)

– WordNet (www.cogsci.princeton.edu/ wn/)

• Специальные онтологии

– UMLS Semantic Net

– GO (Gene Ontology) (www.geneontology.org)

Онтологии и представление знаний, 2010 13

Page 26: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Цикл разработки онтологий

Онтологии и представление знаний, 2010 14

Page 27: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Перечисление терминов

• собрать термины

– какие термины

– какие у них свойства?

– что мы хотим сказать про эти термины?

• неформально сгруппировать

• перефразировать и уточнить термины, чтобы получить неформальные определения

концептов

• нарисовать неформальную диаграмму

Онтологии и представление знаний, 2010 15

Page 28: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Сортировка карточек

• написать название концепции/класса/идеи на карточке

• сложить в кучки по смыслу

• понять связи между кучками

• повторить (можно в небольшой группе людей)

Онтологии и представление знаний, 2010 16

Page 29: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Пример

Dog Carnivore Dangerous

Cat Plant Pet

Cow Animal Domestic Animal

Person Draught Animala Farm Animal

Tree Child Food Animal

Grass Parent Fish

Herbivore Mother Carp

Male Father Goldfish

Female Pig

aездовые и вьючные животные

Онтологии и представление знаний, 2010 17

Page 30: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Пример

Dog Carnivore Dangerous

Cat Plant Pet

Cow Animal Domestic Animal

Person Draught Animala Farm Animal

Tree Child Food Animal

Grass Parent Fish

Herbivore Mother Carp

Male Father Goldfish

Female Pig

aездовые и вьючные животные

Dog Carnivore Dangerous

Cat Plant Pet

Cow Animal Domestic Animal

Person Draught Animala Farm Animal

Tree Child Food Animal

Grass Parent Fish

Herbivore Mother Carp

Male Father Goldfish

Female Pig

Онтологии и представление знаний, 2010 17

Page 31: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Группировать, добавлять и обобщать

Для группы вещей/классов/идей и задаться вопросом что у них общего

и какие ‘родственники’ у них есть.

Онтологии и представление знаний, 2010 18

Page 32: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Группировать, добавлять и обобщать

Для группы вещей/классов/идей и задаться вопросом что у них общего

и какие ‘родственники’ у них есть.

Например

• Plant, Animal

Онтологии и представление знаний, 2010 18

Page 33: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Группировать, добавлять и обобщать

Для группы вещей/классов/идей и задаться вопросом что у них общего

и какие ‘родственники’ у них есть.

Например

• Plant, Animal — Живое Существо (а как быть с Bacteria, Fungi?)

Онтологии и представление знаний, 2010 18

Page 34: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Группировать, добавлять и обобщать

Для группы вещей/классов/идей и задаться вопросом что у них общего

и какие ‘родственники’ у них есть.

Например

• Plant, Animal — Живое Существо (а как быть с Bacteria, Fungi?)

• Cat, Dog, Cow, Person

Онтологии и представление знаний, 2010 18

Page 35: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Группировать, добавлять и обобщать

Для группы вещей/классов/идей и задаться вопросом что у них общего

и какие ‘родственники’ у них есть.

Например

• Plant, Animal — Живое Существо (а как быть с Bacteria, Fungi?)

• Cat, Dog, Cow, Person — Млекопитающее (добавить Goat, Rabbit?)

Онтологии и представление знаний, 2010 18

Page 36: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Группировать, добавлять и обобщать

Для группы вещей/классов/идей и задаться вопросом что у них общего

и какие ‘родственники’ у них есть.

Например

• Plant, Animal — Живое Существо (а как быть с Bacteria, Fungi?)

• Cat, Dog, Cow, Person — Млекопитающее (добавить Goat, Rabbit?)

• Cow, Goat, Sheep, Horse

Онтологии и представление знаний, 2010 18

Page 37: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Группировать, добавлять и обобщать

Для группы вещей/классов/идей и задаться вопросом что у них общего

и какие ‘родственники’ у них есть.

Например

• Plant, Animal — Живое Существо (а как быть с Bacteria, Fungi?)

• Cat, Dog, Cow, Person — Млекопитающее (добавить Goat, Rabbit?)

• Cow, Goat, Sheep, Horse — Копытное

(кто они такие? ? как они делятся/группируются? четное/нечетное число пальцев?)

Онтологии и представление знаний, 2010 18

Page 38: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Группировать, добавлять и обобщать

Для группы вещей/классов/идей и задаться вопросом что у них общего

и какие ‘родственники’ у них есть.

Например

• Plant, Animal — Живое Существо (а как быть с Bacteria, Fungi?)

• Cat, Dog, Cow, Person — Млекопитающее (добавить Goat, Rabbit?)

• Cow, Goat, Sheep, Horse — Копытное

(кто они такие? ? как они делятся/группируются? четное/нечетное число пальцев?)

• Wild, Domestic

Онтологии и представление знаний, 2010 18

Page 39: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Группировать, добавлять и обобщать

Для группы вещей/классов/идей и задаться вопросом что у них общего

и какие ‘родственники’ у них есть.

Например

• Plant, Animal — Живое Существо (а как быть с Bacteria, Fungi?)

• Cat, Dog, Cow, Person — Млекопитающее (добавить Goat, Rabbit?)

• Cow, Goat, Sheep, Horse — Копытное

(кто они такие? ? как они делятся/группируются? четное/нечетное число пальцев?)

• Wild, Domestic — Одомашненные (другие стадии?)

Онтологии и представление знаний, 2010 18

Page 40: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Цикл разработки онтологий

Онтологии и представление знаний, 2010 19

Page 41: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Задать классы

выбрать основные направления:

• добавить абстракции где необходимо(например, Living Thing, Mammal, Fish)

Онтологии и представление знаний, 2010 20

Page 42: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Задать классы

выбрать основные направления:

• добавить абстракции где необходимо(например, Living Thing, Mammal, Fish)

• определить отношения(например, eats, owns, parent of)

Онтологии и представление знаний, 2010 20

Page 43: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Задать классы

выбрать основные направления:

• добавить абстракции где необходимо(например, Living Thing, Mammal, Fish)

• определить отношения(например, eats, owns, parent of)

• идентифицировать какие понятия определяются(e.g., Draught Animal, Father, Herbivore)

как определить собаку?

Онтологии и представление знаний, 2010 20

Page 44: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Задать классы

выбрать основные направления:

• добавить абстракции где необходимо(например, Living Thing, Mammal, Fish)

• определить отношения(например, eats, owns, parent of)

• идентифицировать какие понятия определяются(e.g., Draught Animal, Father, Herbivore)

как определить собаку?

Сущности vs. модификаторы

• сущности существуют сами по себе (грубо, существительные)

(например, people, animals, houses, actions, processes)

• модификаторы ‘меняют’ другие вещи (грубо, прилагательные, наречия,…)

(например, wild/domestic, male/female, healthy/sick, dangerous/safe)

Онтологии и представление знаний, 2010 20

Page 45: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Организация концептов/свойств в иерархию

Собрать все, кроме определяемых понятий в деревья —

это будут “примитивы”

Онтологии и представление знаний, 2010 21

Page 46: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Организация концептов/свойств в иерархию

Собрать все, кроме определяемых понятий в деревья —

это будут “примитивы”

сущности модификаторы отношения определяемы

– LivingThing

– Animal

– Mammal

– Cat

– Dog

– Cow

– Person

– Pig

– Fish

– Carp

– Goldfish

– Plant

– Tree

– Grass

Domestication

– Domestic

– Wild

Use

– Pet

– Food

– Draught

Dangerousness

– Dangerous

– Safe

Sex

– Male

– Female

Age

– Adult

– Child

eats

owns

parentOf

...

Carnivore

Herbivore

Child

Parent

Mother

Father

FoodAnimal

DraughtAnimal

Онтологии и представление знаний, 2010 21

Page 47: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Классы и иерархия классов

• Важно знать

– не существует единственной верной иерархии классов

– но есть некоторые рекомендации

Онтологии и представление знаний, 2010 22

Page 48: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Классы и иерархия классов

• Важно знать

– не существует единственной верной иерархии классов

– но есть некоторые рекомендации

• Вопросы:

является ли каждый экземпляр подкласса экземпляром суперкласса?

Онтологии и представление знаний, 2010 22

Page 49: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Классы и иерархия классов

• Все родственные понятия в иерархии классов должны быть на одном уровне

(ср. с разделами и главами книг)

Онтологии и представление знаний, 2010 23

Page 50: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Классы и иерархия классов

• Все родственные понятия в иерархии классов должны быть на одном уровне

(ср. с разделами и главами книг)

• Если у класс более десяти непосредственных подклассов,

дополнительные подкатегории могут быть необходимы

(ср. со списками)

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

Онтологии и представление знаний, 2010 23

Page 51: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Классы и иерархия классов

• Все родственные понятия в иерархии классов должны быть на одном уровне

(ср. с разделами и главами книг)

• Если у класс более десяти непосредственных подклассов,

дополнительные подкатегории могут быть необходимы

(ср. со списками)

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

• Имена классов должны быть или все в единственном числе или все в множественном

числе

(Animal is not a kind-of Animals)

Онтологии и представление знаний, 2010 23

Page 52: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Классы и иерархия классов

• Все родственные понятия в иерархии классов должны быть на одном уровне

(ср. с разделами и главами книг)

• Если у класс более десяти непосредственных подклассов,

дополнительные подкатегории могут быть необходимы

(ср. со списками)

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

• Имена классов должны быть или все в единственном числе или все в множественном

числе

(Animal is not a kind-of Animals)

• Классы представляют концепции области знаний, не их названия!

название может меняться, но будет означать ту же концепцию.

( синонимы для той же концепции не представляются разными классами)

Онтологии и представление знаний, 2010 23

Page 53: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Цикл разработки онтологий

Онтологии и представление знаний, 2010 24

Page 54: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Свойства

• Перекликается с предыдущим шагом

• Свойства (роли) описывают атрибуты членов класса

• Если A подкласс B, то каждое свойство, которое имеют элементы B, будет применяться

к элементам A.

– Задавать свойства для самого высокого в иерархии класса, к которому применяются

• “присущие свойства”: цвет, запах,...

• “внешние свойства”: название и цена

Онтологии и представление знаний, 2010 25

Page 55: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Цикл разработки онтологий

Онтологии и представление знаний, 2010 26

Page 56: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Ограничения

Ограничения на область определения и принимаемые значения для свойств

(если что-то используется каким-то специальным образом, оставить текстовый комментарий)

Онтологии и представление знаний, 2010 27

Page 57: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Ограничения

Ограничения на область определения и принимаемые значения для свойств

(если что-то используется каким-то специальным образом, оставить текстовый комментарий)

• Animal eats LivingThingdomain: Animal

range: LivingThing

(NB: игнорируем разницу между частями LivingThings и LivingThings)

Онтологии и представление знаний, 2010 27

Page 58: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Ограничения

Ограничения на область определения и принимаемые значения для свойств

(если что-то используется каким-то специальным образом, оставить текстовый комментарий)

• Animal eats LivingThingdomain: Animal

range: LivingThing

(NB: игнорируем разницу между частями LivingThings и LivingThings)

• Person owns LivingThing except Persondomain: Person

range: LivingThingand not Person

Онтологии и представление знаний, 2010 27

Page 59: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Ограничения

Ограничения на область определения и принимаемые значения для свойств

(если что-то используется каким-то специальным образом, оставить текстовый комментарий)

• Animal eats LivingThingdomain: Animal

range: LivingThing

(NB: игнорируем разницу между частями LivingThings и LivingThings)

• Person owns LivingThing except Persondomain: Person

range: LivingThingand not Person

• Animal parentOf Animaldomain: Animal

range: Animal

Онтологии и представление знаний, 2010 27

Page 60: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Ограничения

Ограничения на область определения и принимаемые значения для свойств

(если что-то используется каким-то специальным образом, оставить текстовый комментарий)

• Animal eats LivingThingdomain: Animal

range: LivingThing

(NB: игнорируем разницу между частями LivingThings и LivingThings)

• Person owns LivingThing except Persondomain: Person

range: LivingThingand not Person

• Animal parentOf Animaldomain: Animal

range: Animal

Идентифицировать ограничения на свойства: что можно сказать о всех примерах

класса?

Онтологии и представление знаний, 2010 27

Page 61: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Ограничения

Ограничения на область определения и принимаемые значения для свойств

(если что-то используется каким-то специальным образом, оставить текстовый комментарий)

• Animal eats LivingThingdomain: Animal

range: LivingThing

(NB: игнорируем разницу между частями LivingThings и LivingThings)

• Person owns LivingThing except Persondomain: Person

range: LivingThingand not Person

• Animal parentOf Animaldomain: Animal

range: Animal

Идентифицировать ограничения на свойства: что можно сказать о всех примерах

класса?

• all Cows eat some Plants

• all Cats eat some Animals

• all Pigs eat some Animals and eat some Plants

• ...

Онтологии и представление знаний, 2010 27

Page 62: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Ограничения

Ограничения на область определения и принимаемые значения для свойств

(если что-то используется каким-то специальным образом, оставить текстовый комментарий)

• Animal eats LivingThingdomain: Animal

range: LivingThing

(NB: игнорируем разницу между частями LivingThings и LivingThings)

• Person owns LivingThing except Persondomain: Person

range: LivingThingand not Person

• Animal parentOf Animaldomain: Animal

range: Animal

Идентифицировать ограничения на свойства: что можно сказать о всех примерах

класса?

• all Cows eat some Plants

• all Cats eat some Animals

• all Pigs eat some Animals and eat some Plants

• ...

описания

сущностей

Онтологии и представление знаний, 2010 27

Page 63: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Цикл разработки онтологий

Онтологии и представление знаний, 2010 28

Page 64: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Определяемые понятия

Перефразировать и формализовать определения в терминахпримитивов, отношений и других определяемых понятий

оставлять заметки на будущее(добавить комментарии)

• “A Parent is an Animal that is a parent of some other Animal”(NB: пока забудем про Plants)

Онтологии и представление знаний, 2010 29

Page 65: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Определяемые понятия

Перефразировать и формализовать определения в терминахпримитивов, отношений и других определяемых понятий

оставлять заметки на будущее(добавить комментарии)

• “A Parent is an Animal that is a parent of some other Animal”(NB: пока забудем про Plants)

Parent = Animal and parentOf some Animal

Онтологии и представление знаний, 2010 29

Page 66: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Определяемые понятия

Перефразировать и формализовать определения в терминахпримитивов, отношений и других определяемых понятий

оставлять заметки на будущее(добавить комментарии)

• “A Parent is an Animal that is a parent of some other Animal”(NB: пока забудем про Plants)

Parent = Animal and parentOf some Animal

• “A Herbivore is an Animal that eats only Plants”(NB: all Animals eat some LivingThings)

Онтологии и представление знаний, 2010 29

Page 67: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Определяемые понятия

Перефразировать и формализовать определения в терминахпримитивов, отношений и других определяемых понятий

оставлять заметки на будущее(добавить комментарии)

• “A Parent is an Animal that is a parent of some other Animal”(NB: пока забудем про Plants)

Parent = Animal and parentOf some Animal

• “A Herbivore is an Animal that eats only Plants”(NB: all Animals eat some LivingThings)

Herbivore = Animal and eats only Plant

Онтологии и представление знаний, 2010 29

Page 68: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Определяемые понятия

Перефразировать и формализовать определения в терминахпримитивов, отношений и других определяемых понятий

оставлять заметки на будущее(добавить комментарии)

• “A Parent is an Animal that is a parent of some other Animal”(NB: пока забудем про Plants)

Parent = Animal and parentOf some Animal

• “A Herbivore is an Animal that eats only Plants”(NB: all Animals eat some LivingThings)

Herbivore = Animal and eats only Plant

• “An Omnivore is an Animal that eats both Plants and Animals”

Онтологии и представление знаний, 2010 29

Page 69: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Определяемые понятия

Перефразировать и формализовать определения в терминахпримитивов, отношений и других определяемых понятий

оставлять заметки на будущее(добавить комментарии)

• “A Parent is an Animal that is a parent of some other Animal”(NB: пока забудем про Plants)

Parent = Animal and parentOf some Animal

• “A Herbivore is an Animal that eats only Plants”(NB: all Animals eat some LivingThings)

Herbivore = Animal and eats only Plant

• “An Omnivore is an Animal that eats both Plants and Animals”

Omnivore = Animal and eats some Plant and eats some Animal

Онтологии и представление знаний, 2010 29

Page 70: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Определяемые понятия

Перефразировать и формализовать определения в терминахпримитивов, отношений и других определяемых понятий

оставлять заметки на будущее(добавить комментарии)

• “A Parent is an Animal that is a parent of some other Animal”(NB: пока забудем про Plants)

Parent = Animal and parentOf some Animal

• “A Herbivore is an Animal that eats only Plants”(NB: all Animals eat some LivingThings)

Herbivore = Animal and eats only Plant

• “An Omnivore is an Animal that eats both Plants and Animals”

Omnivore = Animal and eats some Plant and eats some Animal

Не перефразируя невозможно определить не разошлись ли смыслы

того что хотели представить и того, что представили.

Онтологии и представление знаний, 2010 29

Page 71: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Нормализация

Дерево

все узлы (кроме корня)имеют одного родителя

‘строгая иерархия’

Направленный ациклическийграф

(DAG)узлы могут иметь

несколько родителей

‘полииерархия’

Онтологии и представление знаний, 2010 30

Page 72: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Нормализация

Дерево

все узлы (кроме корня)имеют одного родителя

‘строгая иерархия’

Направленный ациклическийграф

(DAG)узлы могут иметь

несколько родителей

‘полииерархия’

Нормализация:• разделить примитивы в непересекающиеся

деревья

Онтологии и представление знаний, 2010 30

Page 73: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Нормализация

Дерево

все узлы (кроме корня)имеют одного родителя

‘строгая иерархия’

Направленный ациклическийграф

(DAG)узлы могут иметь

несколько родителей

‘полииерархия’

Нормализация:• разделить примитивы в непересекающиеся

деревья

• пусть классификатор создает DAG

Онтологии и представление знаний, 2010 30

Page 74: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Нормализация

Дерево

все узлы (кроме корня)имеют одного родителя

‘строгая иерархия’

Направленный ациклическийграф

(DAG)узлы могут иметь

несколько родителей

‘полииерархия’

Нормализация:• разделить примитивы в непересекающиеся

деревья

• пусть классификатор создает DAG

Деревья легче

понять

Онтологии и представление знаний, 2010 30

Page 75: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Нормализация

Дерево

все узлы (кроме корня)имеют одного родителя

‘строгая иерархия’

Направленный ациклическийграф

(DAG)узлы могут иметь

несколько родителей

‘полииерархия’

Нормализация:• разделить примитивы в непересекающиеся

деревья

• пусть классификатор создает DAG

Деревья легче

понять

Animal

Herbivore

Carnivore

Mammal

Omnivore Pig

Person

Dog

Cat

Cow

��

� ���

HHHY

@@

@@I

HHHHHY�

������

��

���

Онтологии и представление знаний, 2010 30

Page 76: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Нормализация

Дерево

все узлы (кроме корня)имеют одного родителя

‘строгая иерархия’

Направленный ациклическийграф

(DAG)узлы могут иметь

несколько родителей

‘полииерархия’

Нормализация:• разделить примитивы в непересекающиеся

деревья

• пусть классификатор создает DAG

Деревья легче

понять

Animal

Herbivore

Carnivore

Mammal

Omnivore Pig

Person

Dog

Cat

Cow

��

� ���

HHHY

@@

@@I

HHHHHY�

������

��

���

�Animal

Herbivore

Carnivore

Mammal

Omnivore Pig

Person

Dog

Cat

Cow

��

� ���

HHHY

@@

@@I

HHHHHY�

������

��

���

)��

)��

Онтологии и представление знаний, 2010 30

Page 77: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Модификаторы

Domestication

– Domestic

– Wild

Use

– Pet

– Food

– Draught

Dangerousness

– Dangerous

– Safe

Sex

– Male

– Female

Age

– Adult

– Child

• Идентифицировать модификаторы с

взаимно исключающими значениями

Онтологии и представление знаний, 2010 31

Page 78: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Модификаторы

Domestication

– Domestic

– Wild

Use

– Pet

– Food

– Draught

Dangerousness

– Dangerous

– Safe

Sex

– Male

– Female

Age

– Adult

– Child

• Идентифицировать модификаторы с

взаимно исключающими значениями(Domestication, Dangerousness, Sex, Age)

NB. Применения могут быть не взаимно исключающими

(может быть одновременно Вьючное и Еда)

Онтологии и представление знаний, 2010 31

Page 79: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Модификаторы

Domestication

– Domestic

– Wild

Use

– Pet

– Food

– Draught

Dangerousness

– Dangerous

– Safe

Sex

– Male

– Female

Age

– Adult

– Child

• Идентифицировать модификаторы с

взаимно исключающими значениями(Domestication, Dangerousness, Sex, Age)

NB. Применения могут быть не взаимно исключающими

(может быть одновременно Вьючное и Еда)

• Расширить и дополнить список значений

(Dangerousness: Dangerous, Risky, Safe)

Онтологии и представление знаний, 2010 31

Page 80: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Модификаторы

Domestication

– Domestic

– Wild

Use

– Pet

– Food

– Draught

Dangerousness

– Dangerous

– Safe

Sex

– Male

– Female

Age

– Adult

– Child

• Идентифицировать модификаторы с

взаимно исключающими значениями(Domestication, Dangerousness, Sex, Age)

NB. Применения могут быть не взаимно исключающими

(может быть одновременно Вьючное и Еда)

• Расширить и дополнить список значений

(Dangerousness: Dangerous, Risky, Safe)

• Задать как функциональное свойство

Онтологии и представление знаний, 2010 31

Page 81: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Модификаторы

Domestication

– Domestic

– Wild

Use

– Pet

– Food

– Draught

Dangerousness

– Dangerous

– Safe

Sex

– Male

– Female

Age

– Adult

– Child

• Идентифицировать модификаторы с

взаимно исключающими значениями(Domestication, Dangerousness, Sex, Age)

NB. Применения могут быть не взаимно исключающими

(может быть одновременно Вьючное и Еда)

• Расширить и дополнить список значений

(Dangerousness: Dangerous, Risky, Safe)

• Задать как функциональное свойство

• Два способа задать значения модификаторов

– разбиения (классы разбивают величину)

– перечисления(индивиды для всех степеней величины)

Онтологии и представление знаний, 2010 31

Page 82: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Разбиения

Пример: величина — Dangerousness

Онтологии и представление знаний, 2010 32

Page 83: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Разбиения

Пример: величина — Dangerousness

• Определить под-величины для разных степеней: Dangerous, Risky, Safe

– классы дизъюнктны

– ‘покрывают’ исходную величину т.е.,

Dangerousness = Dangerous or Risky or Safe

Онтологии и представление знаний, 2010 32

Page 84: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Разбиения

Пример: величина — Dangerousness

• Определить под-величины для разных степеней: Dangerous, Risky, Safe

– классы дизъюнктны

– ‘покрывают’ исходную величину т.е.,

Dangerousness = Dangerous or Risky or Safe

• Определить функциональное свойство hasDangerousness

– область значений: исходная величина, например, Dangerousness

– домен задается отдельно

Онтологии и представление знаний, 2010 32

Page 85: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Разбиения

Пример: величина — Dangerousness

• Определить под-величины для разных степеней: Dangerous, Risky, Safe

– классы дизъюнктны

– ‘покрывают’ исходную величину т.е.,

Dangerousness = Dangerous or Risky or Safe

• Определить функциональное свойство hasDangerousness

– область значений: исходная величина, например, Dangerousness

– домен задается отдельно

DangerousAnimal = Animal and hasDangerousness some Dangerous

Онтологии и представление знаний, 2010 32

Page 86: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Перечисления

Пример: величина — SexValue

Онтологии и представление знаний, 2010 33

Page 87: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Перечисления

Пример: величина — SexValue

• Определим индивиды для каждого значения: male, female

– значения различны (НЕ предполагается в OWL)

– значением является ‘перечисление’ значений, т.е.,

SexValue = { female, male }

Онтологии и представление знаний, 2010 33

Page 88: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Перечисления

Пример: величина — SexValue

• Определим индивиды для каждого значения: male, female

– значения различны (НЕ предполагается в OWL)

– значением является ‘перечисление’ значений, т.е.,

SexValue = { female, male }

• Определим функциональное свойство hasSex

– область значений: исходное свойство т.е. SexValue

– домен задается дополнительно

Онтологии и представление знаний, 2010 33

Page 89: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Перечисления

Пример: величина — SexValue

• Определим индивиды для каждого значения: male, female

– значения различны (НЕ предполагается в OWL)

– значением является ‘перечисление’ значений, т.е.,

SexValue = { female, male }

• Определим функциональное свойство hasSex

– область значений: исходное свойство т.е. SexValue

– домен задается дополнительно

MaleAnimal = Animal and hasSex is male

Онтологии и представление знаний, 2010 33

Page 90: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Два способа задать значения

Разбиение Перечисление

Онтологии и представление знаний, 2010 34

Page 91: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Два способа задать значения

Разбиение Перечисление

• может быть разбито далее

и уточнено

• не может быть разбито далее

Онтологии и представление знаний, 2010 34

Page 92: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Два способа задать значения

Разбиение Перечисление

• может быть разбито далее

и уточнено

• не может быть разбито далее

• соответствует философскому

понятию пространства величин

• соответствует интуиции

Онтологии и представление знаний, 2010 34

Page 93: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Два способа задать значения

Разбиение Перечисление

• может быть разбито далее

и уточнено

• не может быть разбито далее

• соответствует философскому

понятию пространства величин

• соответствует интуиции

Онтологии и представление знаний, 2010 34

Page 94: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Два способа задать значения

Разбиение Перечисление

• может быть разбито далее

и уточнено

• не может быть разбито далее

• соответствует философскому

понятию пространства величин

• соответствует интуиции

• больше подходит для

использования с

OWL DL классификаторами

• не очень подходит для

использования

с существующими

классификаторами

Онтологии и представление знаний, 2010 34

Page 95: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Поиск объяснений

Онтологии и представление знаний, 2010 35

Page 96: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Зачем нужны объяснения?

Поиск объяснений это техника, помогающая поддерживать онтологии.

Пример Ранняя версия SNOMED CT (в которой > 300000 аксиом) утверждала

Amputation_of_Finger ⊑ Amputation_of_Arm

Задача Найти аксиомы (среди 300 000 аксиом SNOMED) ответственные за этот вывод.

Онтологии и представление знаний, 2010 36

Page 97: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Определение

Рассмотрим TBox T и концептыC, D т.ч.

T |= C ⊑ D.

Множество объяснений Pin(T , C ⊑ D) для T и C ⊑ D содержит все минимальные

подмножества T ′ из T т.ч.

T ′ |= C ⊑ D.

Пример

T = {Father ⊑ Male,Male ⊑ Human,Car ⊑ Vehicle}

Множество Pin(T , Father ⊑ Human} состоит из единственного множества

{Father ⊑ Male,Male ⊑ Human}

Онтологии и представление знаний, 2010 37

Page 98: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Пример

Рассмотрим

T = {A ⊑ B, B ⊑ E, A ⊑ F, F ⊑ E, C ⊑ D}

Тогда T |= A ⊑ E.

Имеется два множества объяснений Pin(T , A ⊑ E}:

{A ⊑ B, B ⊑ E}

и

{A ⊑ F, F ⊑ E}.

Онтологии и представление знаний, 2010 38

Page 99: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Пример

Рассмотрим TBox

a Human ⊑ ∃child_of.Human;

b Human ⊑ Living_Being;

c ∃child_of.Living_Being ⊑ Has_Birthday;

d Living_Being ⊑ Has_Birthday.

Тогда T |= Human ⊑ Has_Birthday. Множество Pin(T ,Human ⊑ Has_Birthday)

состоит из

{b, d}и

{a, b, c}

Онтологии и представление знаний, 2010 39

Page 100: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Вычисление

• Множество Pin(T , C ⊑ D) может содержать экспоненциально много объяснений;

• Проверка существует ли элемент Pin(T , C ⊑ D) размера ≤ n трудна даже для

EL;

• Найти один член Pin(T , C ⊑ D) не труднее классификации

– В частности, полиномиальный алгоритм поиска одного члена Pin(T , C ⊑ D)

для T , C и D в EL.

Онтологии и представление знаний, 2010 40

Page 101: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Алгоритм поиска одного члена Pin(T , C ⊑ D)

Вход T = {α1, . . . , αn} и C ⊑ D.

1. if C ̸⊑T D, then

2. return Pin(T , C ⊑ D) empty

3. set S := T

4. for 1 ≤ i ≤ n do

5. if C ⊑S\{αi} D then

6. S := S \ {αi}

7. return S.

Онтологии и представление знаний, 2010 41

Page 102: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Лаконичные объяснения

Множество объяснение может быть нелегко понять.

TBox

Doctor ⊑ some_large_concept_description ⊓Person ⊓ some_other_large_concept_description

Doctor ⊑ Person потому, что Person явно употребляется в определении

но это может быть сразу не видно.

Онтологии и представление знаний, 2010 42

Page 103: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Examples

(due to Michael Zakharyaschev)

Онтологии и представление знаний, 2010 43

Page 104: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Brief Summary of Guidelines for Ontology Building

• Always paraphrase a description or definition before encoding it in OWL

• Make all primitives disjoint — which requires that primitives form trees

• Use someValuesFrom as the default quantifier in restrictions

• Be careful to make defined classes defined (the default is primitive in Protégé).The classifier will place nothing under a primitive class

(except in the presence of axioms/domain/range constrains)

• Remember the open world assumption.Insert closure restrictions if that is what you mean

• Be careful with domain and range constraints.Check them carefully if classification does not work as expected

• Be careful about the use of “and” and “or” (intersectionOf and unionOf)

• To spot trivially satisfiable restrictions early, always have an existential(someValuesFrom) restriction corresponding to every universal (allValuesFrom)

restriction, either in the class or in one of its superclasses

• Run the classifier frequently; spot errors early

Онтологии и представление знаний, 2010 44

Page 105: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Travel service ontology

Sketch a normalised ontology for use by travel agency covering the following:

Hotel, restaurant, sports, luxury hotel, bed and breakfast,

safari, activity, hiking, spa treatment, sunbathing, sightseeing,

accommodation rating (three stars, etc.), campground, surfing.

Build a class hierarchy and indicate which classes in it are primitive and which

are definable. Indicate the required roles, their properties, domains and ranges,

as well as individuals.

Define the following classes using OWL abstract syntax:

1. A two star hotel.

2. A spa resort (i.e., a destination offering a spa treatment).

3. A destination with sport activities but without safari.

4. A destination where all hotels have three star rating.

5. A destinations with at least three restaurants and at least four hotels.

Онтологии и представление знаний, 2010 45

Page 106: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

1. Card sorting

hotel sunbathing hiking

restaurant sightseeing activity

sports accommodation rating spa treatment

luxury hotel three stars safari

bed & breakfast campground surfing

two stars swimming pool destination

Онтологии и представление знаний, 2010 46

Page 107: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

1. Card sorting

hotel sunbathing hiking

restaurant sightseeing activity

sports accommodation rating spa treatment

luxury hotel three stars safari

bed & breakfast campground surfing

two stars swimming pool destination

hotel sunbathing hiking

restaurant sightseeing activity

sports accommodation rating spa treatment

luxury hotel three stars safari

bed & breakfast campground surfing

two stars swimming pool destination

Онтологии и представление знаний, 2010 46

Page 108: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

2. Arrange Concepts/Properties into Hierarchy

self-standing modifiers relations definable

– accommodation

– hotel

– luxury hotel

– b&b

– campground

– activity

– sports

– surfing

– hiking

– safari

– sightseeing

– relaxation

– sunbathing

– spa treatment

– restaurant

– destination

accommodation rating

– two stars

– three stars

– four stars

– five stars

hotel facility

– swimming pool

– meeting facilities

hasAccommodation

hasActivity

hasRating

hasRestaurant

hasFacility

two star hotel

NB. All siblings in the hierarchy of self-standing entities are disjoint.

Онтологии и представление знаний, 2010 47

Page 109: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Class Hierarchy represents an “IS-A” Relation

a class A is a subclass of B if every instance of A is also an instance of B

Онтологии и представление знаний, 2010 48

Page 110: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Class Hierarchy represents an “IS-A” Relation

a class A is a subclass of B if every instance of A is also an instance of B

• hotels and B&B are accommodation

therefore, Hotel and B&B may be regarded as subclasses of Accommodation

Онтологии и представление знаний, 2010 48

Page 111: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Class Hierarchy represents an “IS-A” Relation

a class A is a subclass of B if every instance of A is also an instance of B

• hotels and B&B are accommodation

therefore, Hotel and B&B may be regarded as subclasses of Accommodation

• hiking and surfing are sport activities

therefore, Hiking and Surfing may be regarded as subclasses of Sports

Онтологии и представление знаний, 2010 48

Page 112: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Class Hierarchy represents an “IS-A” Relation

a class A is a subclass of B if every instance of A is also an instance of B

• hotels and B&B are accommodation

therefore, Hotel and B&B may be regarded as subclasses of Accommodation

• hiking and surfing are sport activities

therefore, Hiking and Surfing may be regarded as subclasses of Sports

• however, neither a restaurant is a hotel nor a swimming pool is a hotel

therefore, neither Restaurant nor SwimmingPool can be a subclass of Hotel

(although a hotel may have a restaurant/swimming pool)

Do not confuse containment and a subclass relation!

Онтологии и представление знаний, 2010 48

Page 113: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Relations

ObjectProperty(hasAccommodation

domain(Destination) range(Accommodation))

ObjectProperty(hasActivity domain(Destination) range(Activity))

ObjectProperty(hasRestaurant

domain(Destination) domain(Hotel) range(Restaurant))

ObjectProperty(hasFacility domain(Hotel) range(HotelFacility))

Онтологии и представление знаний, 2010 49

Page 114: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Relations

ObjectProperty(hasAccommodation

domain(Destination) range(Accommodation))

ObjectProperty(hasActivity domain(Destination) range(Activity))

ObjectProperty(hasRestaurant

domain(Destination) domain(Hotel) range(Restaurant))

ObjectProperty(hasFacility domain(Hotel) range(HotelFacility))

Modifiers: using value sets

Consider modifier AccommodationRating(one star, two stars, three stars, four stars, five stars)

Онтологии и представление знаний, 2010 49

Page 115: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Relations

ObjectProperty(hasAccommodation

domain(Destination) range(Accommodation))

ObjectProperty(hasActivity domain(Destination) range(Activity))

ObjectProperty(hasRestaurant

domain(Destination) domain(Hotel) range(Restaurant))

ObjectProperty(hasFacility domain(Hotel) range(HotelFacility))

Modifiers: using value sets

Consider modifier AccommodationRating(one star, two stars, three stars, four stars, five stars)

ObjectProperty(hasRating functional

domain(Accommodation) range(AccommodationRating))

Class(AccommodationRating complete oneOf(oneStar, twoStars, …, fiveStars))

DifferentIndividuals(oneStar, twoStars, …, fiveStars)

Онтологии и представление знаний, 2010 49

Page 116: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Specifying additional restrictions

‘all luxury hotels have restaurants, swimming pools and meeting facilities’

Class(LuxuryHotel partial

restriction(hasRestaurant someValueFrom(owl:Thing))

restriction(hasFacility someValueFrom(SwimmingPool))

restriction(hasFacility someValueFrom(MeetingFacility)))

Онтологии и представление знаний, 2010 50

Page 117: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Q1: Definitions vs. Descriptions

A two star hotel (definition):

‘a two star hotel is any hotel that has two star rating’

Class(TwoStarHotel complete Hotel

restriction(hasRating value(twoStars)))

Онтологии и представление знаний, 2010 51

Page 118: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Q1: Definitions vs. Descriptions

A two star hotel (definition):

‘a two star hotel is any hotel that has two star rating’

Class(TwoStarHotel complete Hotel

restriction(hasRating value(twoStars)))

Consider now the following description:

‘all w-two-star-hotels have two star rating’

Class(W-TwoStarHotel partial Hotel

restriction(hasRating value(twoStars)))

Онтологии и представление знаний, 2010 51

Page 119: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Q1: Definitions vs. Descriptions

A two star hotel (definition):

‘a two star hotel is any hotel that has two star rating’

Class(TwoStarHotel complete Hotel

restriction(hasRating value(twoStars)))

Consider now the following description:

‘all w-two-star-hotels have two star rating’

Class(W-TwoStarHotel partial Hotel

restriction(hasRating value(twoStars)))

Then

• chelseaInn is an instance of TwoStarHotel (necessary & sufficient cond.)

• but chelsea_inn not an instance of W-TwoStarHotel (necessary cond.)

w.r.t. the following ABox chelsea_inn: Hotel, (chelsea_inn, twoStars): hasRating

Онтологии и представление знаний, 2010 51

Page 120: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Q2: Use someValuesFrom as the default quantifier in restrictions

Destinations with spa treatment:

‘a spa resort is any destination that has a spa treatment’

Class(SpaResort complete

Destination

restriction(hasActivity someValuesFrom(SpaTreatment)))

Онтологии и представление знаний, 2010 52

Page 121: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Q2: Use someValuesFrom as the default quantifier in restrictions

Destinations with spa treatment:

‘a spa resort is any destination that has a spa treatment’

Class(SpaResort complete

Destination

restriction(hasActivity someValuesFrom(SpaTreatment)))

Note that any destination without activities is an instance of the concept

Class(W-SpaResort complete

Destination

restriction(hasActivity allValuesFrom(SpaTreatment)))

‘only’ does not imply ‘some’!

Онтологии и представление знаний, 2010 52

Page 122: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Q3: Use someValuesFrom as the default quantifier (cont.)

A destination with sport activities but without safari:

‘a destination with sport activities but without safari is

any destination that has some sport activity but does not have any safari’

Class(DestinationWithSportButNoSafari complete

Destination

restriction(hasActivity someValuesFrom(Sports))

complementOf(restriction(hasActivity someValuesFrom(Safari))))

Онтологии и представление знаний, 2010 53

Page 123: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Q3: Use someValuesFrom as the default quantifier (cont.)

A destination with sport activities but without safari:

‘a destination with sport activities but without safari is

any destination that has some sport activity but does not have any safari’

Class(DestinationWithSportButNoSafari complete

Destination

restriction(hasActivity someValuesFrom(Sports))

complementOf(restriction(hasActivity someValuesFrom(Safari))))

or, equivalently, ¬∃R.C means ∀R.¬C

‘... is any destination that has some sport activity and

has only activities that are not safari activities’

Class(DestinationWithSportButNoSafari complete

Destination

restriction(hasActivity someValuesFrom(Sports))

restriction(hasActivity allValuesFrom(complementOf(Safari))))

NB. Safari and Sports are disjoint

Онтологии и представление знаний, 2010 53

Page 124: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Q4: Unions, Intersections and Complements

A destination where all hotels have three star rating.

‘a destination where all hotels have three star rating is

any destination that has only either not hotels or three star hotels’

Class(ThreeStarHotelDestination complete

Destination

restriction(hasAccommodation allValuesFrom(unionOf(

complementOf(Hotel)

intersectionOf(Hotel restriction(hasRating value(threeStars)))))))

Онтологии и представление знаний, 2010 54

Page 125: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Q4: Unions, Intersections and Complements

A destination where all hotels have three star rating.

‘a destination where all hotels have three star rating is

any destination that has only either not hotels or three star hotels’

Class(ThreeStarHotelDestination complete

Destination

restriction(hasAccommodation allValuesFrom(unionOf(

complementOf(Hotel)

intersectionOf(Hotel restriction(hasRating value(threeStars)))))))

Alternatively,‘a destination where all hotels have three star rating is

any destination that has no hotel that has not a three star rating’

Class(ThreeStarHotelDestination complete

Destination

complementOf(restriction(hasAccommodation someValuesFrom(

intersectionOf(Hotel

complementOf(restriction(hasRating value(threeStars))))))))

Онтологии и представление знаний, 2010 54

Page 126: Ontology engeneering Разработка онтологий...2010/10/03  · Что такое “Ontology Engineering”? Разработка онтологий — это процесс

Q5: Number restrictions

A destinations with at least three restaurants and at least four hotels.

‘a destination with at least three restaurants and at least four hotels is

any destination that has at least three restaurants

and has at least four places to stay’

Class(TRFHDestination complete

Destination

restriction(hasRestaurant minCardinality(3))

restriction(hasAccommodation minCardinality(4)))

NB. OWL-DL 1.0 has no qualified number restrictions (OWL 1.1 has them),

so in this example we have to slightly extend the definition

and include any types of accommodation (not only hotels).

Онтологии и представление знаний, 2010 55