46
Онтологии Егор Антонов [email protected] Яндекс МШАД 08.11.2014

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

  • Upload
    yandex

  • View
    189

  • Download
    1

Embed Size (px)

Citation preview

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

Онтологии      

Егор  Антонов    elderos@yandex-­‐team.ru  

 Яндекс  МШАД  

08.11.2014  

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

Проектирование  

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

Предметная  область  

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

Выделяем  свойства  

•  Большой  •  Тяжелый  •  Рыжий  •  Ржет  

•  Маленькая  •  Легкая  •  Коричневая  •  Крякает  

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

Абстракция  •  Тяжелый  •  Большой  •  Рыжий  •  Ржет  

•  Легкая  •  Маленькая  •  Коричневая  •  Крякает  

Вес  Рост  Цвет  Звук  

Класс  

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

Животные  

Тип   Вес   Рост   Цвет   Звук  

Утка   2кг   50см.   Коричневый   Кря  

Лошадь   350кг   2м.   Черный   Игого  

Комар   1гр.   5мм.   Серый   Бззззз  

Слон   2т.   3м.   Серый   Туду  

•  Летающие  •  Катающие  

•  Хвостатые  •  Хоботные  

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

Плохой  путь  -­‐  наследование  

Нужно  2N  классов,  чтобы  покрыть  предметную  область  

Page 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м.   Да  

Page 9: Егор Антонов - Онтологии
Page 10: Егор Антонов - Онтологии

Что  почитать  

•  Head  First  Design  Pauerns  •  GoF  Pauerns  

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

Структура  онтологии  

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

Структура  онтологии  

•  Классы  (типы)  •  Атрибуты  (свойства)  •  Объекты  (сущности)  •  Атрибуты  (свойства)    

•  Classes  (types)  •  Auributes  (proper~es)  •  Objects  (en~~es)  •  Auributes  (proper~es)    

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

Структура  онтологии  

•  Классы  содержат  атрибуты  •  Объекты  бывают  каких-­‐то  классов  •  Атрибут  –  связь  между  объектом  и  значением  атрибута  

•  Если  связь  слишком  сложная,  то  она  становится  объектом-­‐медиатором  

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

Структура  онтологии  

•  Каждый  класс  содержит  только  те  атрибуты,  которые  ему  нужны.  

•  Каждый  атрибут  содержит  только  объекты  определенного  класса.  

•  Каждый  объект  может  иметь  сколько  угодно  классов.  

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

Как  это  выглядит  

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

Resource  Descrip~on  Framework  RDF  –  это  концепция  хранения  данных.  Все  данные  должны  храниться  в  триплетах.      ID  –  идентификатор  сущности  Property  –  атрибут  Value  –  значение  атрибута    

ID   Property   Value  

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

Преимущества  RDF  

•  Простота  •  Данные  хранятся  единообразно  – Легко  составлять  запросы  – Легко  использовать  в  коде  

•  Вся  онтология  –  один  файл  – Легко  администрировать  

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

Недостатки  RDF  

•  Неудобно  хранить  простые  частотные  структуры  

•  Трудно  верифицировать  корректность  данных  

•  Неоптимальная  структура  

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

Реализации  RDF  

RDF  –  это  только  концепция.  Данные  можно  хранить  как  угодно.  Если  вы  храните  данные  кошерно,  они  всегда  легко  сводимы  к  RDF.  Как  можно  реализовать:  •  CSV-­‐файлы  •  XML,  JSON  •  Turtle,  RDFS,  OWL,  RDFa,  microdata,  …    hup://w3.org  

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

Онтология  как  граф  

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

RDF-­‐хранилища  

•  Работают  in-­‐memory  или  медленно  •  Запрос  –  это  хождение  по  графу  •  Основной  стандарт  языка  запросов  SPARQL    Virtuoso  (hup://virtuoso.openlinksw.com/)  4store  (hup://4store.org/)  Stardog  (hup://stardog.com/)    

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

Freebase  

 Структура:  hup://freebase.com    QueryEditor:  hup://www.freebase.com/query    

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

Запрос  к  Freebase  

[{      "type":"/people/person"      "name":"Barack  Obama"      "*":[{}]  }]    MQL  CheatSheet:  hup://wiki.freebase.com/images/e/e0/MQLcheatsheet-­‐081208.pdf      

Page 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/  

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

Онтологические  проблемы  

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

Сбор  онтологии  

•  Берем  несколько  источников  •  Приводим  к  общей  структуре  (mapping)  •  Сливаем,  чтобы  устранить  дубликаты  (merge)  

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

Источники  данных  

•  Wikipedia  •  Другие  онтологии  (Linked  Open  Data,  LOD)  •  Crowdsourcing  •  Микроразметка  •  Майнинг  из  веба  

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

Linked  Open  Data  

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

Mapping  

•  (Не)изоморфность  графа  – Enumera~on  vs  class  – Терминальные  и  нетерминальные  атрибуты  – Разная  структура  классов  

•  Разный  формат  значений  атрибутов  – Даты  – Числа  с  точкой    

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

Merge  

•  Фрагментарное  заполнение  •  Ошибки  в  значениях  атрибутов  •  Разные  типы  данных  в  атрибутах  •  Разная  важность  атрибутов  •  Merge/split-­‐проблема  с  объектами  

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

Простой  алгоритм  слияния  

1.  Приводим  2  онтологии  к  общей  структуре  2.  Формируем  гипотезы  пар  объектов  3.  Сравниваем  значения  атрибутов  

1.  Если  разница  мала  –  сливаем  2.  Иначе  –  не  сливаем  

4.  Делаем  итеративно,  пока  количество  объектов  не  перестанет  меняться  

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

Гипотезы  пар  

•  Баланс  между  полнотой  склейки  и  количеством  пар  

•  Общий  ключ  •  Общий  источник  •  Общее  значение  атрибута  •  Общий  класс  

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

Функция  расстояния  

•  Для  каждого  терминального  типа  своя  функция  расстояния  –  Разница  чисел/дат  –  Расстояние  Левенштейна  для  строк  –  Евклидово  расстояние  для  координат  

•  Для  нетерминальных  типов  всё  сложно  – Объекты  могут  ссылаться  на  еще  не  склеенные  объекты  

– Нужно  сравнивать  атрибуты  объектов,  на  которые  стоит  ссылка  

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

Trivial  

Взято  из  

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

Simple  

Sponge   Bob   Square   Sponge   Bob   Square  

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

Hard  

Sponge   Bob   Square   Sponge   Robert   Rectangle  

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

Impossible  

Sponge   Bob   Square   Robert   4  угла   90о  

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

Применение  

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

Ontology  reasoning  

•  Порождение  фактов,  которые  не  записаны  в  онтологию  

•  Сводится  к  запросу  к  базе  объектов    

Вася  живет  в  Москве  Москва  находится  в  России   Вася  живет  в  России  

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

Выделение  объектов  в  тексте  

•  Снятие  языковой,  онтологической  и  структурной  неоднозначности  

•  Присваивание  объекту  «важности»  для  текста  (и  наоборот)  

 

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

Персонализация  

•  Люди  интересуются  объектами  •  Объекты  сильно  коррелируют  с  тематиками  и  событиями  

•  Можно  автоматически  расширять  множество  интересов  за  счет  похожих  объектов  

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

Вовлеченность  пользователя  

•  Объекты  на  серпе  – Разукрашивание  выдачи  – Рекомендации  похожих  объектов  – Провязка  с  медиасервисами  

•  Конвертация  текста  в  гипертекст  

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

«Понимание»  текста  

•  Нахождение  текстов,  похожих  по  смыслу  – Сюжеты  в  новостях  – Смысловые  дубликаты  

•  Категоризация  текстов  

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

Онтологии  в  бою  

•  Поисковые  системы  (Yandex,  Google,  Bing)  •  IBM  Watson  •  Wolfram  alpha  •  news360.com    

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

Yanswer  

•  Можно  отвечать  на  странные  вопросы:  

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

Вопросы?