Interested Article - SPARQL

SPARQL ( рекурсивный акроним от англ. SPARQL Protocol and RDF Query Language ) — язык запросов к данным , представленным по модели RDF , а также протокол для передачи этих запросов и ответов на них. SPARQL является рекомендацией консорциума W3C и одной из технологий семантической паутины . Предоставление SPARQL-точек доступа ( англ. SPARQL-endpoint ) является рекомендованной практикой при публикации данных во всемирной паутине .

Стандарты W3C

Обзор: (англ.)

  • (англ.) — Обзор языка запросов SPARQL
  • (англ.) — Команда языка SPARQL для запроса данных
  • (англ.) — Команда языка SPARQL для изменения данных
  • (англ.) — Описание сервиса для выполнения запросов на языке SPARQL
  • (англ.) — Запросы на языке SPARQL к нескольким источникам данных
  • (англ.)
  • (англ.)
  • (англ.)
  • (англ.)
  • (англ.)
  • (англ.)

Общая схема запроса

Как и в SQL , SPARQL декларирует не только чтение, но и манипуляцию данными. Стандарт SPARQL Update описывает команды INSERT и DELETE для добавления и удаления триплетов в хранилище. Однако, обе эти команды оперируют той или иной выборкой, так что основа SPARQL — это команда SELECT.

Общая схема SPARQL-запроса SELECT выглядит так :

PREFIX
  # префиксные объявления - служат для указания сокращений URI, 
  # используемых в запросе.
FROM ...
  # источники запроса - определяют какие RDF-графы запрашиваются.
SELECT ...
  # состав результата - определяет возвращаемые элементы данных.
WHERE {...}
  # шаблон запроса - определяет, что запрашивать из набора данных.
ORDER BY ...
  # модификаторы запроса - ограничивают, упорядочивают, преобразуют результаты запроса.

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

SPARQL позволяет пользователям писать глобально однозначные запросы. Например, следующий запрос возвращает имена и адреса электронной почты каждого человека в мире:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?email
WHERE {
 ?person a foaf:Person.
 ?person foaf:name ?name.
 ?person foaf:mbox ?email.
}

Приведённые параметры используются для описания человека, включённого в FOAF . Это иллюстрирует видение Семантической паутины как единой огромной базы данных . Каждый идентификатор в SPARQL, URI, глобально однозначен, в отличие от «email» или «e-mail», обычно используемых в SQL.

Этот запрос может быть распределён на несколько конечных точек SPARQL, разных компьютеров, и сбор результатов осуществляется процедурой, известной как (англ.) .

Формы запросов

Язык SPARQL определяет четыре различных варианта запросов для различных целей:

SELECT запрос

Извлекает необработанные значения из точки доступа SPARQL и возвращает результаты в формате таблицы.

CONSTRUCT запрос

Извлекает информацию из точки доступа SPARQL в формате RDF и преобразовывает результаты к определённой форме.

ASK запрос

Формирует запрос типа Истина/Ложь.

DESCRIBE запрос

Получает описание RDF-ресурса. Реализация поведения DESCRIBE-запросов определяется разработчиком точки доступа SPARQL.

Каждая из этих форм запроса содержит блок WHERE для указания ограничений, хотя в случае запроса DESCRIBE этот блок не является обязательным.

Ключевые слова

Ниже приведена часть используемых ключевых слов в SPARQL запросах, полный перечень доступен в .

PREFIX — служит для сокращения URI.

OPTIONAL — обозначает необязательный шаблон.

GRAPH — применяет шаблон к именованным графам.

DISTINCT — обеспечивает уникальность решений в ответе на запрос.

LIMIT — задаёт максимальное количество выводимых результатов.

OFFSET — опускает в результате первые n решений.

ORDER BY — позволяет отсортировать результат по возрастанию ( ASC() ) или по убыванию ( DESC() ) .

Сравнение языков запросов к RDF

  • — основан на XML , запросы и результаты выражаются в ;
  • — основан на Нотации 3 ;
  • ;
  • — основан на XML;
  • — похож на SQL ;
  • — похож на SQL;
  • — похож на SQL, близок к RDQL;
  • Versa — компактный синтаксис (не SQL), исключительно для (язык Python ).

Версии

SPARQL 1.0 стал стандартом в январе 2008 и включал:

SPARQL 1.0 Язык запросов;
SPARQL 1.0 Протокол;
SPARQL Формат результатов XML.

SPARQL 1.1 является актуальной версией и включает:

SPARQL язык запросов и протокол обновлены до 1.1;
SPARQL 1.1 Обновления;
SPARQL 1.1 HTTP-протокол для управления RDF графами;
SPARQL 1.1 Описания служб;
SPARQL 1.1 Логические следствия(Entailments);
SPARQL 1.1 Основные Федеративные запросы .

Пример

Другой пример запросов SPARQL: «Найти даты выхода серий всех сезонов сериала „ Клан Сопрано “»:

 PREFIX dbpo: <http://dbpedia.org/ontology/>
 SELECT *
 WHERE
 {
  ?e dbpo:series         <http://dbpedia.org/resource/The_Sopranos>.
  ?e dbpo:releaseDate   ?date.
  ?e dbpo:episodeNumber  ?number.
  ?e dbpo:seasonNumber   ?season.
 }
 ORDER BY DESC(?date)

Переменные обозначаются префиксом «?» или «$».

Чтобы сделать запросы краткими, SPARQL позволяет определять префиксы и основные URI способом, подобным Turtle . В этом запросе префикс «dbpo» обозначает «http://dbpedia.org/ontology/».

Точка доступа SPARQL

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

Различают два вида точек доступа: общего назначения и локальные .

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

Примеры

  • .

Автоматическое исполнение запросов

На данный момент для ряда языков программирования существует возможность вызывать SPARQL-запросы , существуют инструменты, позволяющие подключать и в полуавтоматическом режиме строить SPARQL-запросы для точки доступа SPARQL, например ViziQuer .

Примечания

  1. (англ.) . — Новости семантической паутины. Дата обращения: 10 июня 2011. Архивировано из 2 июня 2012 года.
  2. (англ.) . W3C . — Перечень публикаций W3C по проекту семантической паутины. Дата обращения: 23 ноября 2009. Архивировано из 2 июня 2012 года.
  3. (англ.) . — Интервью Тима Бернерса-Ли. Дата обращения: 10 июня 2011. Архивировано из 30 сентября 2007 года.
  4. Tim Berners-Lee. (англ.) . — Заметки по публикации данных в семантической паутине. Дата обращения: 14 июня 2011. Архивировано из 2 июня 2012 года.
  5. (англ.) . — Структура SPARQL запроса. Дата обращения: 10 июня 2011. Архивировано из 11 февраля 2012 года.
  6. Tim Berners-Lee. . — 1998. 12 августа 2011 года.
  7. (англ.) . — SPARQL Query Language for RDF. Дата обращения: 28 июня 2011. Архивировано из 2 июня 2012 года.
  8. (англ.) . — SPARQL by example. Дата обращения: 28 июня 2011. Архивировано из 11 февраля 2012 года.
  9. . Дата обращения: 24 июня 2011. Архивировано из 7 июля 2011 года.
  10. (англ.) . — Обзор полноты реализаций SPARQL. Дата обращения: 23 ноября 2009. Архивировано из 2 июня 2012 года.
  11. (англ.) . — Утилита для структурированного семантического поиска данных. Дата обращения: 10 июня 2011. Архивировано из 2 июня 2012 года.

Ссылки

  • (англ.) — спецификация языка запросов SPARQL
  • (англ.) — Новости семантической паутины
  • (англ.) — интервью Тима Бернерса-Ли
  • — Структура SPARQL запроса
  • (англ.) — спецификация протокола SPARQL
  • — русский перевод спецификации языка SPARQL
  • (англ.)
  • (англ.)
  • (англ.)
  • (англ.)
  • (англ.)
Источник —

Same as SPARQL