Семантические сети

Илья Воронцов

Кратчайшая история веба

  • Сеть интернет появилась в ??? 1969 году
  • Всемирная паутина (WWW) родилась в CERN в ???1989 году. Её автор - сэр Тим Бёрнерс-Ли.
  • В 1998 году Тим Бёрнерс-Ли предложил концепцию семантической паутины.

Идеи, на которых стоит веб

  • Децентрализация - на каждом компьютере можно развернуть сайт
  • Универсальные адреса URI, состоящие из адреса сайта и адреса
  • Гиперссылки, позволяющие связать все сайты в единую сеть

Для чего веб подходит

  • Читать тексты
  • Скачивать файлы и прочие мемасики
  • Бесцельно ходить со страницы на страницу

Для чего веб не подходит

  • Чтобы его читали роботы
    (нет, это не шутка)

Как интернет видит человек

"Школа Слон пройдёт с 14 по 30 июля в городе Пущино. В ней могут участвовать школьники с 7 по 11 классы, сдавшие вступительное задание. По всем вопросам звоните директору школы Ивану Неретину. Его контакты вы можете найти на странице [ссылка](Контакты)."

Как интернет видит компьютер

[ссылка]
с 7 по 11
июль
страница
Иван Неретин
город Пущино
вступить
вопросы
школа Слон
класс
директор
задание
контакты

Машиночитаемый интернет

  • Событие: Школа Слон
  • Даты: 14 июля 2017 - 30 июля 2017
  • Место: город Пущино.
  • Условия участия:
    • Род деятельности: школьник
    • Класс школы: 7 - 11
  • Контакты:
    • Должность: директор
    • ФИО: Иван Неретин
    • Телефон: ...

Что изменилось

  • Каждый факт теперь идёт отдельным утверждением
  • Каждое утверждение имеет чёткую структуру
  • Зная небольшой "словарь" терминов:
    "Событие", "Дата", "ФИО",...,
    компьютер может понять "смысл" (семантику) сказанного

И зачем это нужно?

  • Во-первых, это красиво

И зачем это нужно?

И зачем это нужно?

  • Во-первых, это красиво
  • Поиск будет лучше работать:
    теперь понятно, какие части текста ключевые
  • Компьютер cможет сам давать ответы на вопросы:
    - Кто может поехать в школу Слон?
    - Как связаться с Иваном Неретиным?

Больше вопросов

  • Ноутбуки с объемом памяти > 8GB по цене до $1000
  • 10 самых длинных рек России
  • Какие американские президенты родились в Техасе?
  • Прямые потомки Петра I
  • Список вакцин по болезням
  • Кто нарисовал больше всего котиков?

Усложняем вопросы

  • Ближайший магазин, где можно купить ноутбук с памятью > 8Gb по цене до $1000
  • Суммарное население городов вдоль 3 самых длинных рек России
  • Учёные, впервые открывшие вакцины от разных болезней, с датами открытия

Реляционные базы данных

Чтобы отвечать на подобные вопросы нам нужна база данных.
Ноутбуки с объемом памяти > 8GB по цене до $1000
МодельCPUОЗУМагазинСр.цена
Thinkpad x201Core-i56 GbAliExpressN/A
Acer+++Core-i9146 GbKickstarter5000

Реляционные базы данных

Ближайший магазин, где можно купить ноутбук с памятью > 8Gb по цене до $1000
МодельCPUОЗУМагазинСр.цена
ThinkpadCore-i56 GbAliExpressN/A
Acer++Core-i9146 GbKickstarter5000
МагазинКоординатыСрок доставки
AliExpress30°15′N; 120°10′E.7 дней
Утконос55°33'N; 37°31'E 1 день

Реляционные базы данных. JOIN

Ближайший магазин, где можно купить ноутбук с памятью > 8Gb по цене до $1000
МодельCPUОЗУМагазинСр.ценаКоординатыСрок доставки
ThinkpadCore-i56 GbAliExpressN/A30°15′N; 120°10′E.7 дней
Объединение таблиц

Реляционные базы данных.

Реляционные базы данных прекрасно работают в пределах одного узкоспециализированного сайта
Но наша цель - оцифровать весь интернет

Почему обычные базы данных плохо подходят?

  • Данные очень разнородны. А в таблицу нельзя добавить поле только для одной записи →
    • либо мало полей (не все данные записали)
    • либо много полей (но большая часть полей не заполнена)
  • Нужна специальная таблица для каждого типа объектов. Понадобятся миллионы таблиц.

Семантическая сеть и семантическая паутина

Cемантическая сеть - это граф, в котором вершинами являются объекты или понятия предметной области, а (ориентированные) ребра описывают отношения между ними.

Семантическая сеть и семантическая паутина

Семантическая паутина - это семантическая сеть, построенная на основе веба за счёт стандартизации разметки на сайтах.
Linked data (связанные данные) - то же самое.

Пример семантической сети

Как работает семантика: объекты

Наша сеть не знает, что такое ноутбук, но она уже знает, как он связан с другими объектами.
  • ноутбуков бывает по-крайней мере 2 разных
  • ноутбуки характеризует какой-то процессор и какая-то оперативная память
  • ноутбуки являются подвидом компьютеров

Как работает семантика: свойства

Сеть не знает, что означает "CPU" у ноутбука, но мы наложим ограничения:
  • Если у субъекта есть CPU, то он является "Компьютером" (имеет такой класс)
  • Если про объект сказано, что он чей-то CPU, то он обязан относиться к классу "Процессор"

Как работает семантика: свойства

Сеть не знает, что такое классы и подклассы, но мы введём правила, такие, что если
  • Acer+++ имеет класс ноутбук
  • ноутбук - это подкласс компьютеров
  • → то Acer+++ имеет и класс компьютер тоже

RDF - Resource Description Framework

Граф принято записывать в виде троек:
(Субъект; Предикат; Объект)
Тройки можно считать простейшими предложениями

RDF - Resource Description Framework

  • Субъект - URI (уникальный идентификатор)
  • Предикат - URI
  • Объект - URI или значение

Омонимия

Нельзя допустить, чтобы два разных понятия склеились в одну вершину

Пространства имён

Чтобы два сайта не могли сделать вершины с одинаковым именем, все объекты находятся в своих пространствах имён

Префиксы

Пространства имён обычно очень многословны. Но в рамках сайта вы можете вместо них задать удобные префиксы.

Turtle

RDF - это только модель данных. Её можно реализовать многими способами. Одним из форматов описания RDF-данных является Turtle.

Turtle

comp:Thinkpad  rdf:type         comp:notebook ;
               rdfs:label       "Thinkpad X201" ;
               compprop:cpu     comp:corei3 ;
               compprop:ram     6 .

comp:corei3    rdf:type         comp:cpu .

comp:Thinkpad  shop:forsale     _:a ,
                                _:b .
_:a            shop:org         shop:AliExpress .
_:b            shop:org         shop:Avito ;
               shop:price       300 .
						

RDF(S) - RDF Schema

Стандартные термины RDF позволяют описывать типы объектов (rdf:type).
Но иногда хочется описать отношения между типами и свойствами - для этого нам нужен специальный словарь терминов RDFS.
comp:notebook  rdfs:subClassOf  comp:computer .
comp:cpu       rdfs:domain      comp:computer ;
               rdfs:range       comp:cpu .
comp:ram       rdfs:range       xsd:decimal .
						

Реификация

Иногда утверждение является не фактом, а гипотезой или цитатой. Мы можем отразить и такие случаи:
:Мюллер      :думает        _:statement.
_:statement  rdf:type       rdf:Statement;
             rdf:subject    :Штирлиц;
             rdf:predicate  :имеетГражданство;
             rdf:object     :Третий Рейх.
						

Логический вывод

Из утверждений
:Socrates rdf:type        :Human.
:Human    rdfs:subClassOf :Mortal.
					
автоматически получается, что:
:Socrates rdf:type        :Mortal.
					

Онтологии - OWL

OWL - ещё более мощный словарь. Он позволяет описывать множество логических правил.
Пример: "ребёнок ребёнка - это внук":
:hasGrandchild owl:propertyChainAxiom ( :hasChild :hasChild ).
						

Семантический веб - это толстый стек технологий

Семантический веб - это ооочень толстый стек технологий

Как это выглядит на практике

Карта семантического веба

Некоторые важные узлы семантического веба

  • DBpedia (википедия)
  • Wikidata (ещё одна википедия)
  • Geonames (географический справочник)
  • FOAF (профили в соц.сетях)
  • Freebase (теперь это Google Knowledge Graph)
  • LinkedMDb (IMDB для роботов)

Wikidata

Wikidata - это проект Wikimedia Foundation. Структурированная энциклопедия, с вики-движком.

Wikidata

SPARQL. Запросы к семантической сети

  • Зайти на SPARQL-точку. Например:
    https://query.wikidata.org/
  • Нужно построить шаблон ответа
  • Вместо неизвестных подставить переменные
  • Запросить значения переменных

Список всех стран

# Получить ссылку на вершину страны и название страны
SELECT ?country ?countryLabel WHERE {

  # wdt:P31 -- свойство "instance of" (частный случай понятия)
  # wd:Q6256 -- вершина "Cтрана"
  ?country wdt:P31 wd:Q6256.

  # Особая магия, которая вместо номеров вершин делает их названия
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru". }
}
						

Список всех стран

Шаблон может описывать подграф

Прикрепленные изображения

#defaultView:ImageGrid
SELECT ?country ?countryLabel ?president ?presidentLabel ?image WHERE {
  ?country wdt:P31 wd:Q6256.
  ?country wdt:P6 ?president.
  ?president wdt:P18 ?image.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
} LIMIT 20
						

Прикрепленные изображения

Различные способы отображения результатов

Страны с их ВВП

Страны с их ВВП - Bubble chart

Таймлайн - Нобелевские премии по физике