Онтологии 
Егор 
Антонов 
elderos@yandex-­‐team.ru 
Яндекс 
МШАД 
08.11.2014
Проектирование
Предметная 
область
Выделяем 
свойства 
• Большой 
• Тяжелый 
• Рыжий 
• Ржет 
• Маленькая 
• Легкая 
• Коричневая 
• Крякает
Абстракция 
• Тяжелый 
• Большой 
• Рыжий 
• Ржет 
• Легкая 
• Маленькая 
• Коричневая 
• Крякает 
Класс 
Вес 
Рост 
Цвет 
Звук
Животные 
Тип 
Вес 
Рост 
Цвет 
Звук 
Утка 
2кг 
50см. 
Коричневый 
Кря 
Лошадь 
350кг 
2м. 
Черный 
Игого 
Комар 
1гр. 
5мм. 
Серый 
Бззззз 
Слон 
2т. 
3м. 
Серый 
Туду 
• Летающие 
• Катающие 
• Хвостатые 
• Хоботные
Плохой 
путь 
-­‐ 
наследование 
Нужно 
2N 
классов, 
чтобы 
покрыть 
предметную 
область
Хороший 
путь 
-­‐ 
композиция 
ID 
Тип 
1 
Утка 
2 
Лошадь 
3 
Комар 
4 
Слон 
ID 
Вес 
Рост 
Цвет 
Звук 
1 
2кг 
50см. 
Коричневый 
Кря 
2 
350кг 
2м. 
Черный 
Игого 
3 
1гр. 
5мм. 
Серый 
Бззззз 
4 
2т. 
3м. 
Серый 
Туду 
ID 
Длина 
хобота 
Гибкость 
хобота 
3 
3мм. 
Нет 
4 
1,5м. 
Да
Что 
почитать 
• Head 
First 
Design 
Pauerns 
• GoF 
Pauerns
Структура 
онтологии
Структура 
онтологии 
• Классы 
(типы) 
• Атрибуты 
(свойства) 
• Объекты 
(сущности) 
• Атрибуты 
(свойства) 
• Classes 
(types) 
• Auributes 
(proper~es) 
• Objects 
(en~~es) 
• Auributes 
(proper~es)
Структура 
онтологии 
• Классы 
содержат 
атрибуты 
• Объекты 
бывают 
каких-­‐то 
классов 
• Атрибут 
– 
связь 
между 
объектом 
и 
значением 
атрибута 
• Если 
связь 
слишком 
сложная, 
то 
она 
становится 
объектом-­‐медиатором
Структура 
онтологии 
• Каждый 
класс 
содержит 
только 
те 
атрибуты, 
которые 
ему 
нужны. 
• Каждый 
атрибут 
содержит 
только 
объекты 
определенного 
класса. 
• Каждый 
объект 
может 
иметь 
сколько 
угодно 
классов.
Как 
это 
выглядит
Resource 
Descrip~on 
Framework 
RDF 
– 
это 
концепция 
хранения 
данных. 
Все 
данные 
должны 
храниться 
в 
триплетах. 
ID 
Property 
Value 
ID 
– 
идентификатор 
сущности 
Property 
– 
атрибут 
Value 
– 
значение 
атрибута
Преимущества 
RDF 
• Простота 
• Данные 
хранятся 
единообразно 
– Легко 
составлять 
запросы 
– Легко 
использовать 
в 
коде 
• Вся 
онтология 
– 
один 
файл 
– Легко 
администрировать
Недостатки 
RDF 
• Неудобно 
хранить 
простые 
частотные 
структуры 
• Трудно 
верифицировать 
корректность 
данных 
• Неоптимальная 
структура
Реализации 
RDF 
RDF 
– 
это 
только 
концепция. 
Данные 
можно 
хранить 
как 
угодно. 
Если 
вы 
храните 
данные 
кошерно, 
они 
всегда 
легко 
сводимы 
к 
RDF. 
Как 
можно 
реализовать: 
• CSV-­‐файлы 
• XML, 
JSON 
• Turtle, 
RDFS, 
OWL, 
RDFa, 
microdata, 
… 
hup://w3.org
Онтология 
как 
граф
RDF-­‐хранилища 
• Работают 
in-­‐memory 
или 
медленно 
• Запрос 
– 
это 
хождение 
по 
графу 
• Основной 
стандарт 
языка 
запросов 
SPARQL 
Virtuoso 
(hup://virtuoso.openlinksw.com/) 
4store 
(hup://4store.org/) 
Stardog 
(hup://stardog.com/)
Freebase 
Структура: 
hup://freebase.com 
QueryEditor: 
hup://www.freebase.com/query
Запрос 
к 
Freebase 
[{ 
"type":"/people/person" 
"name":"Barack 
Obama" 
"*":[{}] 
}] 
MQL 
CheatSheet: 
hup://wiki.freebase.com/images/e/e0/ 
MQLcheatsheet-­‐081208.pdf
Интересные 
онтологии 
• hup://freebase.com 
• hup://dbpedia.org 
• hup://www.geonames.org/ 
• hup://musicbrainz.org/ 
• hup://wordnet.princeton.edu/ 
• hup://www.mpi-­‐inf.mpg.de/yago-­‐naga/yago/ 
• hup://webdatacommons.org/
Онтологические 
проблемы
Сбор 
онтологии 
• Берем 
несколько 
источников 
• Приводим 
к 
общей 
структуре 
(mapping) 
• Сливаем, 
чтобы 
устранить 
дубликаты 
(merge)
Источники 
данных 
• Wikipedia 
• Другие 
онтологии 
(Linked 
Open 
Data, 
LOD) 
• Crowdsourcing 
• Микроразметка 
• Майнинг 
из 
веба
Linked 
Open 
Data
Mapping 
• (Не)изоморфность 
графа 
– Enumera~on 
vs 
class 
– Терминальные 
и 
нетерминальные 
атрибуты 
– Разная 
структура 
классов 
• Разный 
формат 
значений 
атрибутов 
– Даты 
– Числа 
с 
точкой
Merge 
• Фрагментарное 
заполнение 
• Ошибки 
в 
значениях 
атрибутов 
• Разные 
типы 
данных 
в 
атрибутах 
• Разная 
важность 
атрибутов 
• Merge/split-­‐проблема 
с 
объектами
Простой 
алгоритм 
слияния 
1. Приводим 
2 
онтологии 
к 
общей 
структуре 
2. Формируем 
гипотезы 
пар 
объектов 
3. Сравниваем 
значения 
атрибутов 
1. Если 
разница 
мала 
– 
сливаем 
2. Иначе 
– 
не 
сливаем 
4. Делаем 
итеративно, 
пока 
количество 
объектов 
не 
перестанет 
меняться
Гипотезы 
пар 
• Баланс 
между 
полнотой 
склейки 
и 
количеством 
пар 
• Общий 
ключ 
• Общий 
источник 
• Общее 
значение 
атрибута 
• Общий 
класс
Функция 
расстояния 
• Для 
каждого 
терминального 
типа 
своя 
функция 
расстояния 
– Разница 
чисел/дат 
– Расстояние 
Левенштейна 
для 
строк 
– Евклидово 
расстояние 
для 
координат 
• Для 
нетерминальных 
типов 
всё 
сложно 
– Объекты 
могут 
ссылаться 
на 
еще 
не 
склеенные 
объекты 
– Нужно 
сравнивать 
атрибуты 
объектов, 
на 
которые 
стоит 
ссылка
Trivial 
Взято 
из
Simple 
Sponge 
Bob 
Square 
Sponge 
Bob 
Square
Hard 
Sponge 
Bob 
Square 
Sponge 
Robert 
Rectangle
Impossible 
Sponge 
Bob 
Square 
Robert 
4 
угла 
90о
Применение
Ontology 
reasoning 
• Порождение 
фактов, 
которые 
не 
записаны 
в 
онтологию 
• Сводится 
к 
запросу 
к 
базе 
объектов 
Вася 
живет 
в 
Москве 
Москва 
находится 
в 
России 
Вася 
живет 
в 
России
Выделение 
объектов 
в 
тексте 
• Снятие 
языковой, 
онтологической 
и 
структурной 
неоднозначности 
• Присваивание 
объекту 
«важности» 
для 
текста 
(и 
наоборот)
Персонализация 
• Люди 
интересуются 
объектами 
• Объекты 
сильно 
коррелируют 
с 
тематиками 
и 
событиями 
• Можно 
автоматически 
расширять 
множество 
интересов 
за 
счет 
похожих 
объектов
Вовлеченность 
пользователя 
• Объекты 
на 
серпе 
– Разукрашивание 
выдачи 
– Рекомендации 
похожих 
объектов 
– Провязка 
с 
медиасервисами 
• Конвертация 
текста 
в 
гипертекст
«Понимание» 
текста 
• Нахождение 
текстов, 
похожих 
по 
смыслу 
– Сюжеты 
в 
новостях 
– Смысловые 
дубликаты 
• Категоризация 
текстов
Онтологии 
в 
бою 
• Поисковые 
системы 
(Yandex, 
Google, 
Bing) 
• IBM 
Watson 
• Wolfram 
alpha 
• news360.com
Yanswer 
• Можно 
отвечать 
на 
странные 
вопросы:
Вопросы?

Егор Антонов - Онтологии

  • 1.
    Онтологии Егор Антонов elderos@yandex-­‐team.ru Яндекс МШАД 08.11.2014
  • 2.
  • 3.
  • 4.
    Выделяем свойства •Большой • Тяжелый • Рыжий • Ржет • Маленькая • Легкая • Коричневая • Крякает
  • 5.
    Абстракция • Тяжелый • Большой • Рыжий • Ржет • Легкая • Маленькая • Коричневая • Крякает Класс Вес Рост Цвет Звук
  • 6.
    Животные Тип Вес Рост Цвет Звук Утка 2кг 50см. Коричневый Кря Лошадь 350кг 2м. Черный Игого Комар 1гр. 5мм. Серый Бззззз Слон 2т. 3м. Серый Туду • Летающие • Катающие • Хвостатые • Хоботные
  • 7.
    Плохой путь -­‐ наследование Нужно 2N классов, чтобы покрыть предметную область
  • 8.
    Хороший путь -­‐ композиция ID Тип 1 Утка 2 Лошадь 3 Комар 4 Слон ID Вес Рост Цвет Звук 1 2кг 50см. Коричневый Кря 2 350кг 2м. Черный Игого 3 1гр. 5мм. Серый Бззззз 4 2т. 3м. Серый Туду ID Длина хобота Гибкость хобота 3 3мм. Нет 4 1,5м. Да
  • 10.
    Что почитать •Head First Design Pauerns • GoF Pauerns
  • 11.
  • 12.
    Структура онтологии •Классы (типы) • Атрибуты (свойства) • Объекты (сущности) • Атрибуты (свойства) • Classes (types) • Auributes (proper~es) • Objects (en~~es) • Auributes (proper~es)
  • 13.
    Структура онтологии •Классы содержат атрибуты • Объекты бывают каких-­‐то классов • Атрибут – связь между объектом и значением атрибута • Если связь слишком сложная, то она становится объектом-­‐медиатором
  • 14.
    Структура онтологии •Каждый класс содержит только те атрибуты, которые ему нужны. • Каждый атрибут содержит только объекты определенного класса. • Каждый объект может иметь сколько угодно классов.
  • 15.
  • 16.
    Resource Descrip~on Framework RDF – это концепция хранения данных. Все данные должны храниться в триплетах. ID Property Value ID – идентификатор сущности Property – атрибут Value – значение атрибута
  • 17.
    Преимущества RDF •Простота • Данные хранятся единообразно – Легко составлять запросы – Легко использовать в коде • Вся онтология – один файл – Легко администрировать
  • 18.
    Недостатки RDF •Неудобно хранить простые частотные структуры • Трудно верифицировать корректность данных • Неоптимальная структура
  • 19.
    Реализации RDF RDF – это только концепция. Данные можно хранить как угодно. Если вы храните данные кошерно, они всегда легко сводимы к RDF. Как можно реализовать: • CSV-­‐файлы • XML, JSON • Turtle, RDFS, OWL, RDFa, microdata, … hup://w3.org
  • 20.
  • 21.
    RDF-­‐хранилища • Работают in-­‐memory или медленно • Запрос – это хождение по графу • Основной стандарт языка запросов SPARQL Virtuoso (hup://virtuoso.openlinksw.com/) 4store (hup://4store.org/) Stardog (hup://stardog.com/)
  • 22.
    Freebase Структура: hup://freebase.com QueryEditor: hup://www.freebase.com/query
  • 23.
    Запрос к Freebase [{ "type":"/people/person" "name":"Barack Obama" "*":[{}] }] MQL CheatSheet: hup://wiki.freebase.com/images/e/e0/ MQLcheatsheet-­‐081208.pdf
  • 24.
    Интересные онтологии •hup://freebase.com • hup://dbpedia.org • hup://www.geonames.org/ • hup://musicbrainz.org/ • hup://wordnet.princeton.edu/ • hup://www.mpi-­‐inf.mpg.de/yago-­‐naga/yago/ • hup://webdatacommons.org/
  • 25.
  • 26.
    Сбор онтологии •Берем несколько источников • Приводим к общей структуре (mapping) • Сливаем, чтобы устранить дубликаты (merge)
  • 27.
    Источники данных •Wikipedia • Другие онтологии (Linked Open Data, LOD) • Crowdsourcing • Микроразметка • Майнинг из веба
  • 28.
  • 29.
    Mapping • (Не)изоморфность графа – Enumera~on vs class – Терминальные и нетерминальные атрибуты – Разная структура классов • Разный формат значений атрибутов – Даты – Числа с точкой
  • 30.
    Merge • Фрагментарное заполнение • Ошибки в значениях атрибутов • Разные типы данных в атрибутах • Разная важность атрибутов • Merge/split-­‐проблема с объектами
  • 31.
    Простой алгоритм слияния 1. Приводим 2 онтологии к общей структуре 2. Формируем гипотезы пар объектов 3. Сравниваем значения атрибутов 1. Если разница мала – сливаем 2. Иначе – не сливаем 4. Делаем итеративно, пока количество объектов не перестанет меняться
  • 32.
    Гипотезы пар •Баланс между полнотой склейки и количеством пар • Общий ключ • Общий источник • Общее значение атрибута • Общий класс
  • 33.
    Функция расстояния •Для каждого терминального типа своя функция расстояния – Разница чисел/дат – Расстояние Левенштейна для строк – Евклидово расстояние для координат • Для нетерминальных типов всё сложно – Объекты могут ссылаться на еще не склеенные объекты – Нужно сравнивать атрибуты объектов, на которые стоит ссылка
  • 34.
  • 35.
    Simple Sponge Bob Square Sponge Bob Square
  • 36.
    Hard Sponge Bob Square Sponge Robert Rectangle
  • 37.
    Impossible Sponge Bob Square Robert 4 угла 90о
  • 38.
  • 39.
    Ontology reasoning •Порождение фактов, которые не записаны в онтологию • Сводится к запросу к базе объектов Вася живет в Москве Москва находится в России Вася живет в России
  • 40.
    Выделение объектов в тексте • Снятие языковой, онтологической и структурной неоднозначности • Присваивание объекту «важности» для текста (и наоборот)
  • 41.
    Персонализация • Люди интересуются объектами • Объекты сильно коррелируют с тематиками и событиями • Можно автоматически расширять множество интересов за счет похожих объектов
  • 42.
    Вовлеченность пользователя •Объекты на серпе – Разукрашивание выдачи – Рекомендации похожих объектов – Провязка с медиасервисами • Конвертация текста в гипертекст
  • 43.
    «Понимание» текста •Нахождение текстов, похожих по смыслу – Сюжеты в новостях – Смысловые дубликаты • Категоризация текстов
  • 44.
    Онтологии в бою • Поисковые системы (Yandex, Google, Bing) • IBM Watson • Wolfram alpha • news360.com
  • 45.
    Yanswer • Можно отвечать на странные вопросы:
  • 46.