SPARQL

Материал из Википедии — свободной энциклопедии
Перейти к навигацииПерейти к поиску
SPARQL
Орган стандартизацииКонсорциум Всемирной паутины
СоздательCarlos Buil Aranda[вд][1] и Eric G. Prud'hommeaux[вд][1]
Создан15 января2008
Последняя версия
Официальный сайтw3.org/TR/sparql1… (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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

Содержание

Стандарты W3C

[править |править код]

Обзор:http://www.w3.org/standards/techs/sparql (англ.)

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

[править |править код]

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

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

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

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

[править |править код]

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

PREFIXfoaf:<http://xmlns.com/foaf/0.1/>SELECT?name?emailWHERE{?personafoaf:Person.?personfoaf:name?name.?personfoaf:mbox?email.}

Приведённые параметры используются для описания человека, включённого вFOAF. Это иллюстрирует видение Семантической паутины как единой огромной базы данных[8]. Каждый идентификатор в 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())[9].

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

[править |править код]
  • DQL — основан наXML, запросы и результаты выражаются вDAML+OIL;
  • N3QL — основан наНотации 3;
  • R-DEVICE;
  • RDFQ — основан на XML;
  • RDQ — похож наSQL;
  • RDQL — похож на SQL;
  • SeRQL — похож на SQL, близок к RDQL;
  • Versa — компактный синтаксис (не SQL), исключительно для4Suite (язык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 Основные Федеративные запросы[10].

Пример

[править |править код]

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

PREFIXdbpo:<http://dbpedia.org/ontology/>SELECT*WHERE{?edbpo:series<http://dbpedia.org/resource/The_Sopranos>.?edbpo:releaseDate?date.?edbpo:episodeNumber?number.?edbpo:seasonNumber?season.}ORDER BYDESC(?date)

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

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

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

[править |править код]

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

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

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

Примеры

[править |править код]

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

[править |править код]

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

Примечания

[править |править код]
  1. 12https://www.w3.org/TR/2013/REC-sparql11-overview-20130321/#Acknowledgements
  2. SPARQL 1.1 — 2013.
  3. Semantic Web Activity News (англ.). — Новости семантической паутины. Дата обращения: 10 июня 2011. Архивировано изоригинала 2 июня 2012 года.
  4. W3C Semantic Web Activity Publications (англ.). W3C. — Перечень публикаций W3C по проекту семантической паутины. Дата обращения: 23 ноября 2009. Архивировано изоригинала 2 июня 2012 года.
  5. Berners-Lee looks for Web's big leap (англ.). — Интервью Тима Бернерса-Ли. Дата обращения: 10 июня 2011. Архивировано изоригинала 30 сентября 2007 года.
  6. Tim Berners-Lee. Linked Data. Design Issues. (англ.). — Заметки по публикации данных в семантической паутине. Дата обращения: 14 июня 2011. Архивировано изоригинала 2 июня 2012 года.
  7. Structure of a SPARQL Query (англ.). — Структура SPARQL запроса. Дата обращения: 10 июня 2011. Архивировано изоригинала 11 февраля 2012 года.
  8. Tim Berners-Lee. Semantic Web Roadmap. — 1998. Архивировано 12 августа 2011 года.
  9. SPARQL Query Language for RDF (англ.). — SPARQL Query Language for RDF. Дата обращения: 28 июня 2011. Архивировано изоригинала 2 июня 2012 года.
  10. SPARQL by example (англ.). — SPARQL by example. Дата обращения: 28 июня 2011. Архивировано изоригинала 11 февраля 2012 года.
  11. SPARQL-endpoint . Дата обращения: 24 июня 2011. Архивировано изоригинала 7 июля 2011 года.
  12. SPARQL Implementation Coverage Report (англ.). — Обзор полноты реализаций SPARQL. Дата обращения: 23 ноября 2009. Архивировано изоригинала 2 июня 2012 года.
  13. ViziQuer (англ.). — Утилита для структурированного семантического поиска данных. Дата обращения: 10 июня 2011. Архивировано изоригинала 2 июня 2012 года.

Ссылки

[править |править код]
Перейти к шаблону «External links»
Ссылки на внешние ресурсы
Перейти к шаблону «Внешние ссылки» Перейти к элементу Викиданных
  В библиографических каталогах
Перейти к шаблону «Языки запросов»
Перейти к шаблону «Стандарты W3C»
Продукты
и стандарты
Рекомендации
ООСО
Рабочие проекты
Руководства
Инициативы
Выведенные
из использования
Устаревшие
Организации
Рабочие группы
Группы сообщества и бизнеса
Закрывшиеся группы
ПО
Браузеры
Конференции
Перейти к шаблону «Семантическая паутина»
Основы
Подразделы
Приложения
Связанные темы
Стандарты
Источник —https://ru.wikipedia.org/w/index.php?title=SPARQL&oldid=149821109
Категории:
Скрытые категории: