Введение в DBpedia
DBpedia — это краудсорсинговый проект сообщества, который извлекает структурированный контент из частично неструктурированных и частично структурированных частей страниц Википедии и других структурированных источников, таких как Викимедиа. В проекте поддерживаются ссылки на внешние источники, и в ответ на это многие источники указывают на новейший граф ондологии / открытого знания DBpedia (OKG).
Вам также может понравиться: Лучший способ написать запрос SQL
Извлеченная / консолидированная информация с комплексной точки зрения представляет граф онтологии / открытых знаний (OKG), который, в свою очередь, также представляет базу знаний, содержащую одновременно метаданные класса / свойства и данные экземпляра класса / свойства. DBpedia охватывает множество доменов по сравнению с типичными базами знаний по конкретным ограниченным областям, а также включает в себя множество различных международных глав / языковых сообществ.
С другой стороны, timbr DBpedia представляет собой синергию между DBpedia + SQL. Позволяет запрашивать онтологию DBpedia / граф открытых знаний (OKG) через стандартный SQL, включая также выражения пути, избегая определения сложных объединений и сложных запросов SPARQL через конечную точку SPARQL.
Любой, кто чувствует себя комфортно с SQL, может повторно использовать свои знания для запроса / доступа к DBpedia OKG. Кроме того, timbr поддерживает создание онтологий в SQL, а также поддерживает загрузку существующих, как в данном случае, DBpedia Ontology / OKG, которая написана на OWL.
Timbr DBpedia Семантическая паутина
Timbr DBpedia поддерживает онтологии RDF / RDFS / OWL через виртуальный компилятор SQL, который выполняет стек Semantic Web:
- Моделирование, управление, запрос онтологий через стандартный SQL
- Включение обхода графа в стандартном SQL через выражения пути, как правило, включается в базы данных граф
- Разрешение семантического вывода во время выполнения с помощью правил онтологии
- Как избежать сложных объединений и сложных запросов SPARQL
- Поддержка онтологий RDF / RDFS / OWL, отображающих их на внутренние СУБД SQL.
- Расширение SQL с наследованием (отношения IS-A, позволяющие определять большие иерархии подчинения) и возможности вывода.
Timbr DBpedia Архитектура
Клиенты SQL и инструменты BI получают доступ через Virtual SQL engine / службу запросов (timbr поддерживает JDBC / ODBC), онтологию timbr DBpedia, которая отображает артефакты онтологии в бэкэнд-СУБД SQL. Классы / концепции / свойства OKG сопоставляются с реляционными таблицами / столбцами посредством схем «три в одном», timbr, etimbr и dtimbr (см. Раздел 5).
Свойства могут включать в себя прямые свойства, унаследованные свойства (в иерархии подчинения) и ссылки, которые являются специальными атрибутами, представляющими отношения с другими классами / концепциями (обычно представленными как URI / внешние ключи в виртуальном механизме SQL).
DBpedia OKG больше не требуется для доступа к сложным SPARQL-запросам / конечным точкам SPARQL. DBpedia OKG может запрашиваться стандартным SQL. Timbr DBpedia также включает в себя Ontology Viewer / Explorer, чтобы конечные пользователи могли интуитивно просматривать область действия данной части OKG.
В этом техническом отчете мы фокусируемся на доступе к DBpedia OKG через клиентов SQL (в данном случае MySQL и Amazon Redshift). В конце этого отчета мы кратко упомянем Timbr DBpedia Ontology / OKG Explorer и бета-компонент timbr DBpedia Data Exploration.
Timbr DBpedia СИСТЕМНЫЕ СТОЛЫ
Мы кратко упомянем системные таблицы timbr-DBpedia как набор таблиц, поддерживающих определение и запросы DBpedia через стандартный SQL. Его можно рассматривать как базовую таблицу «системного каталога». Среди них можно выделить:
Системные таблицы Timbr DBpedia:
- Timbr.SYS_CONCEPTS: содержит уникальный класс / концепции онтологии Timbr DBpedia.
- Timbr.SYS_INHERITANCE: содержит базовый / производный класс / понятия.
- Timbr.SYS_ONTOLOGY: содержит набор классов / концепций с соответствующими свойствами, первичные ключи, унаследованные первичные ключи, родительский класс / концепции, уровень наследования и т. Д.
- Timbr.SYS_RELATIONSHIPS: включает в себя в общей сложности 8 столбцов, среди которых класс / концепция, связанный класс / концепция, имя внешнего ключа и т. Д.
Три в одном: схемы онтологии Timbr, Etimbr, Dtimbr
В timbr DBpedia есть три различных точки зрения / перспективы представления онтологии:
- Схема Timbr: неявное представление онтологии. Включает явную онтологию / реляционное отображение.
- Этимбр схема: исчерпывающее представление. Включает артефакты онтологии схемы timbr плюс производные свойства класса / концепции. Другими словами, родительский класс / концепты включают в себя производные свойства от производных классов / концепций в иерархии подчинения (например, класс / концепт «вещь» будет включать все свойства онтологии / графа знаний DBpedia, откуда все классы / концепции наследуют entity_id и entity_type свойства).
- Схема Dtimbr: представление с разыменованием, которое включает в себя схему etimbr плюс обходы графа / перехода, избегая ненужных объединений.
Т imbr DBpedia Schema запросов
Это конкретное представление схемы DBpedia рассматривает классы / концепции / свойства как таблицы / столбцы, где каждый класс / концепция имеет как минимум следующие атрибуты (унаследованные от «вещи» артефакта онтологии родительского предка):
- Entity_id: уникальный URI / первичный ключ.
- Entity_type: не требует пояснений, это тип артефакта онтологии.
Обратите внимание, что timbr DBpedia разрешает множественное наследование, поэтому entity_type может содержать несколько записей. Также обратите внимание, что онтология / граф знаний DBpedia может содержать множество нулевых значений свойства класса / концепции.
SQL
1
SELECT entity_label as `Book Title`, publisher as `Publisher URI`, publicationdate as `Publication Date`, numberofpages `Num. Pages`, isbn `ISBN`
2
FROM timbr.book
3
WHERE entity_label IS NOT NULL AND publisher IS NOT NULL AND publicationdate IS NOT NULL AND numberofpages IS NOT NULL AND isbn IS NOT NULL
4
AND entity_type='book'
5
ORDER BY publicationdate DESC
Можно заметить, что первая строка запроса относится к неверной дате публикации. Остальные, похоже, являются действительными записями даты.
Etimbr DBpedia схема запросов
Запросы Etimbr DBpedia Schema включают свойства timbr плюс свойства производного класса / концепта. Класс / концепции родителей / предков включают в себя производные свойства от производных классов / концепций в иерархии подчинения. Обратите внимание, что родительский класс / концепция всех классов / концепций — это «вещь», поэтому класс / концепция «вещь» будет содержать весь набор свойств в схеме e-timbr.
Пример запроса:
Следующий запрос выполняет объединение «literarygenre» в классе «вещь» / понятие и «жанр» в понятие «жанр»:
SQL
xxxxxxxxxx
1
-- Retrieve distinct book ”genres” First Part Retrieves 9 distinct rows
2
SELECT distinct(thing.entity_label) as `Literary Genre`
3
FROM etimbr.book `b`
4
JOIN (SELECT entity_id, entity_label FROM etimbr.thing) as thing
5
ON `b`.genre = thing.entity_id
6
WHERE `Literary Genre` like '%fiction%'
7
UNION -- Retrieves a total of 11 distinct rows
8
-- Retrieve distinct book ”literarygenres” Second Part Retrieves 10 distinct rows
9
SELECT distinct(thing.entity_label) as `Literary Genre`
10
FROM etimbr.book `b`
11
JOIN (SELECT entity_id, entity_label FROM etimbr.thing) as thing
12
ON `b`.literarygenre = thing.entity_id
13
WHERE `Literary Genre` like '%fiction%'
Пример запроса:
Все классы / концепции Ontology / OKG имеют в качестве предка понятие «вещь», поэтому мы можем получить весь набор производных атрибутов через схему etimbr.thing. В этом случае мы получаем простую статистику, возвращающую следующее:
- Количество классов / концептуальных экземпляров в онтологии Timbr DBpedia / OKG.
- Количество различных типов классов / концепций.
- Количество различных entity_labels (свойство доступно только через схему etimbr (производное свойство)).
SQL
xxxxxxxxxx
1
SELECT count(entity_id) as `Num Concepts`, count(distinct entity_type) as `Num Entity Types` , count(distinct entity_label) as `Num Distinct Entity Labels`
2
FROM etimbr.thing
Пример запроса:
Теперь мы получаем простую статистику, запрашивая etimbr.thing (включает все типы экземпляров, учитывая, что все классы / концепции имеют в качестве понятия-предка):
- Группировка по классу / типу концепции.
- Количество экземпляров класса / понятия (человек, место, компания).
SQL
xxxxxxxxxx
1
SELECT entity_type as `Concept`, count(resource_id) as `Number of Concept Instances`
2
FROM etimbr.`thing`
3
WHERE entity_type in ('person','place','company')
4
GROUP BY entity_type
5
ORDER BY `Number of Concept Instances` DESC
Этот запрос представляет интересную точку зрения, которая нуждается в дальнейшем объяснении. Если мы определим следующий запрос:
«ВЫБЕРИТЕ count (1) от timbr.person»
Мы извлекаем 4339681 экземпляры концепта «персона», потому что правила вывода timbr включают в себя также экземпляры, которые сопоставляются с производными классами / концепциями персонажа, по сравнению с запросом, изображенным выше специально отфильтрованных экземпляров персонажа, сопоставленных непосредственно с концепцией «персона» (2829415 ).
Dtimbr DBpedia Schema Queries
Схема Dtimbr DBpedia: включает схему etimbr плюс обходы графа. Отношения с другим классом / концепциями моделируются как свойства, поэтому избегаются сложные объединения и включаются выражения запроса пути (типично для графовых баз данных).
Запрос:
Этот запрос возвращает URI / ID книги, название книги, имя автора и литературный жанр, где название книги относится к научной фантастике, или литературный жанр — к научной фантастике, или автор находится в выбранном списке авторов научной фантастики:
SQL
xxxxxxxxxx
1
SELECT `b`.entity_id as `Book URI`, `b`.entity_label as `Book Title`, `b`.`author.entity_label` as `author_name`, thing.entity_label as `Literary Genre`, `b`.entity_type as `entity_type`
2
FROM dtimbr.book `b`
3
LEFT JOIN (SELECT entity_id, entity_label FROM etimbr.thing) as thing
4
ON `b`.literarygenre = thing.entity_id
5
WHERE entity_type LIKE '%book%' AND
6
lower(`author_name`) IN ('isaac asimov','arthur c. clarke','orson scott card', 'robert a. heinlein') OR
7
lower(`Book Title`) LIKE '%science fiction%' OR
8
lower(`Literary Genre`) LIKE '%science fiction%'
9
ORDER BY `Literary Genre` ASC
Запрос:
Запрос Dtimbr возвращает количество типов людей, сгруппированных по континентам и странам (всего три прыжка) и entity_type:
SQL
xxxxxxxxxx
1
SELECT `birthplace.country.continent.entity_label` as `Birth Continent`, `birthplace.country.entity_label` as `Birth Country`, entity_type as `Person Type`, count(entity_type) as `Number of Persons Type`
2
FROM dtimbr.person
3
WHERE `Birth Country` in ('Australia','Spain','United States of America','Peru')
4
-- OR `birthplace.country.continent.entity_label` in ('Europe')
5
GROUP BY `Birth Continent`, `Birth Country`, entity_type
6
HAVING `Number of Persons Type` > 10
7
ORDER BY `Birth Country` ASC, `Number of Persons Type` DESC
Timbr DBpedia Ontology Explorer
Timbr DBpedia моделирует онтологию / OKG с концепциями, свойствами и ссылками, сопоставленными с:
- Понятия: понятия онтологии отображаются в реляционные таблицы.
- Свойства: свойства концепта отображаются на столбцы в реляционных таблицах и могут относиться к типичным типам данных SQL, таким как varchar, integer, timestamp и т. Д., В зависимости от базовой внутренней СУБД (например, Amazon Redshift, Apache Spark и т. Д.). Свойства включают унаследованные свойства (от понятий родителя / предка), прямые свойства (определенные для данного понятия).
- Ссылки: представляют отношения между концепциями онтологии и отображаются на внешние ключи SQL в реляционных таблицах. Тип ссылки на данные SQL — varchar, представляющий URI онтологии.
Timbr DBpedia поддерживает сложные иерархии подчинения через отношения IS-A (до 8 уровней, допускающих множественное наследование), свойства и ссылки на другие концепции. Ontology Explorer содержит следующие части:
- Дерево онтологий: расположенное слева показывает иерархию потребления данного понятия.
- Ontology Graph Viewer / Explorer: в центре экрана отображается вся часть / вид онтологии.
- Сведения о концепции онтологии: отображает сводную информацию для выбранной концепции, включая прямой предок, уровень иерархии, количество общих свойств, прямые и унаследованные ссылки, унаследованные и прямые свойства.
- Онтология Основное управление графиком: позволяет различные параметры для управления выводом проводника онтологий, такие как ссылки / отношения, свойства и так далее.
В дереве онтологий мы видим иерархию понятий «книга», которая находится на уровне 4. В Просмотр / просмотр графов онтологий (центр экрана) мы включили свойство / ссылки, отображающие автора, писателя, жанр и литературный жанр. С правой стороны, в деталях концепта онтологии, мы видим, что концептуальная книга имеет в общей сложности 126 свойств, 6 прямых ссылок, 69 унаследованных ссылок, 15 прямых свойств и 111 унаследованных свойств.
Timbr DBpedia Data Exploration Beta
Мы можем получить доступ к новому пункту меню бета-онтологии / исследования данных, выбрав бета-версию Exploration / Data Exploration, которая сначала отображает диалоговое окно, которое требует от нас ввести необходимую внутреннюю СУБД. В этом случае мы можем выбрать либо DBpedia Amazon Redshift, либо DBpedia Spark. После выбора DBpedia Spark мы должны выбрать нужный класс / концепцию онтологии / OKG.
Для заполнения необходим набор свойств концепции, а также необходимые фильтры и результаты, которые необходимо получить. В настоящее время эта бета-версия не позволяет определить фильтр, который разрешает выражения пути. Тем не менее, мы можем сделать это через раздел «Детали» Концепции, шаг за шагом. Согласно timbr.ai, эта функция будет включена позже в бета-программу.
На рисунке 5 мы можем идентифицировать части бета-версии Data Exploration:
- Средство просмотра концепций исследования данных: в левой части экрана отображаются концепции, относящиеся к OKG.
- Онтология исследования данных / средство просмотра OKG. Расположенная в центре экрана, мы можем идентифицировать несколько книг с некоторыми взаимосвязями, такими как автор книги и сведения об авторе, такие как место рождения и место смерти.
- Просмотр сведений о концепции исследования данных: в правой части экрана отображаются сведения о концепции / свойствах, что дает возможность обхода графика со связанными / ссылками на другие концепции.
На приведенном ниже снимке экрана компонента Data Exploration Beta timbr DBpedia мы «разобрали» различные понятия «книга», «автор» (человек), которые были добавлены постепенно, нажав кнопку «обход пути». Всего задействовано 11 связанных понятий, в том числе книга, человек, место, страна, континент, язык, агент, этническая группа, населенный пункт, награда и так далее.
Заключение
С помощью timbr-DBpedia мы можем анализировать / обходить DBpedia Ontology / OKG со стандартным SQL, который включает в себя настройку выражений пути, избегая громоздких соединений и избегая сложных запросов SPARQL / конечных точек SPARQL. Любой, кто имеет опыт работы со стандартным SQL, будет чувствовать себя комфортно, выполняя запросы Timbr DBpedia.
Timbr DBpedia масштабируется так же, как и используемый бэкэнд. В этом техническом отчете мы работали с timbr DBpedia Amazon Redshift для OKG, для системных таблиц мы запрашивали бэкэнд MySQL, а для timbr DBpedia Data Exploration Beta мы работали с DBpedia Spark.
Дальнейшее чтение
14 различий между стандартным SQL и Transact-SQL
Как применить нестандартное форматирование SQL с помощью подсказки SQL