Новые возможности формирования запросов семантических данных с помощью SPARQL

Автор: Верхова Ольга Геннадьевна, Иванова Наталья Александровна

Журнал: Вестник образовательного консорциума Среднерусский университет. Информационные технологии @vestnik-university

Статья в выпуске: 2 (8), 2016 года.

Бесплатный доступ

С развитием семантического веб многие исследования стали направлены на изучение технологий, связанных с веб-онтологиями, а также хранением и обработкой данных на основе реляционных моделей. Данная статья посвящена сравнению языка запросов SPARQL и SQL. Сопоставляются модели данных, для которых они предназначены.

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

Короткий адрес: https://sciup.org/140129961

IDR: 140129961

Текст научной статьи Новые возможности формирования запросов семантических данных с помощью SPARQL

С ростом объемов информации в сети Интернет достижение точных результатов поисковых запросов пользователей постоянно усложняется. Поэтому в настоящее время множество исследований ориентированы на разработки в области семантической паутины, в особенности управлением и поиском в веб-онтологиях, а также технологии хранения и использования информации в реляционных базах данных [3].

В семантическом вебе используется представление знаний с помощью языка RDF (Resource Description Framework, формат данных в виде ориентированного маркированного графа для представления информации во всемирной паутине). Язык запросов и протокол передачи данных SPARQL (SPARQL Protocol and RDF Query Language) был разработан специально для RDF-данных и рекомендован Консорциумом Всемирной паутины [5].

Языки запросов применяются в соответствии с моделью представления данных. Так язык запросов SQL (Structured Query Language) используется для поиска, создания, изменения и удаления информации, представленной в реляционной модели данных. Сравнивая языки SPARQL и SQL, необходимо помнить о том, что их преимущества напрямую связаны с моделями данных, с которыми они работают [4].

Архитектура RDF-модели данных более гибкая, нежели реляционной модели, поэтому вносить изменения в RDF-модель проще. Кроме того, запросы к RDF-хранилищам проходят по протоколу HTTP, что обеспечивает легкость внедрения их в сервисные архитектуры [2].

Реляционная модель данных представляется в виде таблиц, каждая строка которых имеет одинаковое количество столбцов, а столбцы соответствуют определенному типу данных. RDF-данные представляются в виде триплетов «сущность – атрибут – значение» с использованием языка OWL (Web Ontology Language) [1].

Кроме того, язык SPARQL позволяет работать с формальными представлениями данных, в том числе XML (eXtensible Markup Language) и тематическими картами (Topic Maps), представленными в виде деревьев и ориентированных графов с вершинами типа «тема» и ребрами «ассоциация».

Рассмотрим следующий пример. Пусть имеется адресная книга, состоящая из двух таблиц «Имена» и «Адреса», схема данных которых приведена на рисунке 1.

Рис. 1. Схема данных

В реляционных базах данных и, следовательно, в SQL, отношения между объектами из разных таблиц устанавливаются с помощью ключевых полей. SQL-запрос отражает специфическую структуру базы данных, а также способ хранения информации, без понимания семантических связей между объектами. Как видно из рисунка 1, связь между таблицами осуществляется по Идентификатору адреса.

Задать те же самые данные в виде триплетов можно по следующему графовому шаблону: <Имя><Живет><Город> и <Город><Идентифицируется><Индекс>. Причем связь между записями в хранилище подобных триплетов куда более наглядна, нежели связь по ключевым полям. На рисунке 2 представлен RDF-граф, иллюстрирующий шаблон.

Рис 2. RDF-граф

Представление данных в виде ориентированного RDF-графа оказывается более наглядно для пользователей, так как непосредственно иллюстрирует все связи между сущностями и их значениями.

Следовательно, первым ключевым отличием RDF-данных и SPARQL является то, что отношения между объектами описываются подробно, и эти описания находятся в свободном доступе. В результате такого представления SPARQL-запросы оказываются более понятными пользователям.

Еще одной важная особенность SPARQL – способность обрабатывать данные их различных источников, а также использовать IRI в качестве параметров. При использовании SPARQL пользователю не нужно дополнительно сопоставлять термины из различных баз данных, чтобы избежать совпадения имен столбцов и ключей, в отличие от SQL.

Составим запросы к схеме данных и RDF-графу, чтобы найти имена людей и их индексы.

На языке SQL запрос будет выглядеть следующим образом:

SELECT Имя, Индекс

FROM Имена, Адреса

WHERE Имена.Идентификатор_адреса=Адреса.Код

AND Адреса.Город=”Город1”

В данном случае мы извлекаем список атрибутов из списка набора данных, удовлетворяющих заданным условиям.

На языке SPARQL аналогичный запрос будет выглядеть:

SELECT ?Имя, ?Индекс

WHERE {

?Кто <Имеет_имя> ?Имя;

<Живет> ?Адрес.

?Адрес <Идентифицируется> ?Индекс;

<Город> “Город1”

}

В случае запроса на языке SPARQL мы соотносим запрашиваемые переменные с графовым шаблоном, т. е. тремя взаимосвязанными утверждениями. Графовый шаблон выглядит как утверждение, но любая его часть может быть заменена на переменную (переменные в языке SPARQL начинаются с ?).

В результатах запросов заголовками столбцов в случае SPARQL запросов будут имена переменных, а в случае с SQL – заголовки столбцов.

Язык SPARQL использует часть служебных слов языка SQL: SELECT, FROM, WHERE, UNION, GROUP BY, HAVING, а также большинство имен функций, однако имеющееся сходство носит лишь внешний характер. SPARQL и SQL имеют очень близкие операторы UNION и MINUS, которые соответственно добавляют и удаляют части результатов запроса.

В случае если данные не доступны в БД, SQL вернет значение NULL. Для соединения результатов в SQL используется оператор JOIN, эквивалентом которого в языке SPARQL является оператор OPTIONAL. Однако, несмотря на сходство, между этими операторами существует важное различие в отношении обработки недостающих данных. Отсутствующие данные просто никак не выражаются в RDF. Вследствие этого сам SPARQL-граф не будет строиться, если в триплете будет не хватать атрибутов [6].

Пожалуй, главная особенность SPARQL – создание федеративных запросов к разным хранилищам, которая заложена в самом формате представления данных RDF. В SQL нет подобного стандартизированного механизма для федеративных запросов, в то время как Консорциум Всемирной паутины подробно стандартизовал и RDF, и SPARQL.

Реляционную модель данных сложно использовать для решения задач, в основе которых лежат графы, а также весь класс NoSQL-задач. RDF-хранилища можно использовать практически в любой предметной области, особенно в сферах, в которых присутствует множество сущностей с самыми разными связями между ними, и практически любую реляционную модель данных можно представить в виде ориентированного графа [2].

Тем не менее, было бы ошибочно утверждать, что RDF-хранилища и SPARQL могут легко заменить реляционную модель и SQL на данном этапе, так как последние все еще занимают лидирующее положение. Сравнительно с языком SQL, SPARQL достаточно молод, и для использования его возможностей с максимальной эффективностью требуется большая интеграция технологий семантического веб в Интернет.

  • 1.    Антониу, Г., Грос, П., Хармелен ван Ф., Хоекстра, Р. Семантический веб / Антониу Г., Грос П // пер. с англ. – М.: ДМК Пресс, 2016. – 240 с.

  • 2.    RDF — инструмент для неструктурированных данных [Электронный ресурс]. URL: http://www.osp.ru/os/2012/09/13032513 (дата обращения: 5.11.2016)

  • 3.    A Comprehensive Comparative study of SPARQL and SQL [Электронный ресурс]. URL: http://www.ijcsit.com/docs/Volume%202/ vol2issue4/ ijcsit2011020467.pdf (дата обращения: 6.11.2016)

  • 4.    Comparing SPARQL with SQL [Электронный ресурс]. URL: http://www.topquadrant.com/2014/05/05/comparing-sparql-with-sql/ (дата обращения: 4.11.2016)

  • 5.    SPARQL 1.1 [Электронный ресурс]. URL: Overview https://www.w3.org/TR/sparql11-overview/ (дата обращения: 1.11.2016)

  • 6.    SPARQL vs. SQL – Intro [Электронный ресурс]. URL: http://www.cambridgesemantics.com/semantic-university/sparql-vs-sql-intro (дата обращения: 2.11.2016)

Список литературы Новые возможности формирования запросов семантических данных с помощью SPARQL

  • Антониу, Г., Грос, П., Хармелен ван Ф., Хоекстра, Р. Семантический веб/Антониу Г., Грос П//пер. с англ. -М.: ДМК Пресс, 2016. -240 с
  • RDF -инструмент для неструктурированных данных . URL: http://www.osp.ru/os/2012/09/13032513 (дата обращения: 5.11.2016)
  • A Comprehensive Comparative study of SPARQL and SQL . URL: http://www.ijcsit.com/docs/Volume%202/vol2issue4/ijcsit2011020467.pdf (дата обращения: 6.11.2016)
  • Comparing SPARQL with SQL . URL: http://www.topquadrant.com/2014/05/05/comparing-sparql-with-sql/(дата обращения: 4.11.2016)
  • SPARQL 1.1 . URL: Overview https://www.w3.org/TR/sparql11-overview/(дата обращения: 1.11.2016)
  • SPARQL vs. SQL -Intro . URL: http://www.cambridgesemantics.com/semantic-university/sparql-vs-sql-intro (дата обращения: 2.11.2016)
Статья научная