статьиGNU Free Documentation License материалы взяты из Википедии Статья была изменена. Оригинал статьи.

SPARQL

Материал из Энциклопедии в свободной энциклопедии
Перейти к: навигация, поиск

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

Содержание

[править] Общая схема запроса

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

PREFIX foo: <http://example.com/resources/>
# префиксные объявления
FROM ...
# источники запроса
SELECT ...
# пункт результата 
WHERE {...}
# критерии запроса
ORDER BY ...
# модификаторы запроса

Префиксные объявления служат для сокращения универсальных идентификаторов ресурса.

Источники запроса определяет, какие RDF графы запрашиваются.

Пункт результата возвращает набор данных (выборку), удовлетворяющих заданному условию.

Критерии запроса определяет, что запросить в базовом наборе данных.

Модификаторы запроса ограничивают, упорядочивают, и иначе преобразуют результаты запроса[5].

[править] Преимущества

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. Это иллюстрирует видение Семантической паутины как единой огромной базы данных. [6] Каждый идентификатор в SPARQL, URI, глобально однозначен, в отличие от «email» или «e-mail», обычно используемых в SQL.

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

[править] Формы запросов

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

SELECT запрос

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

CONSTRUCT запрос

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

ASK запрос

Используется для создания запросов типа Истина/Ложь.

DESCRIBE запрос

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

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

[править] Ключевые слова

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

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

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

GRAPH - с помощью него формируют запрос, который применяет шаблон к именованным графам.

DISTINCT - указывает, что каждое решение в ответе на запрос будет уникальным.

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

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

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

[править] Сравнение языков запросов к 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 Основные Федеративные запросы.[8]

[править] Пример

Другой пример запросов 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-endpoint

SPARQL-endpoint или точка доступа - это служба совместимая с SPARQL. SPARQL-endpoint позволяет пользователю запросить базу знаний (вводить его запросы). Запрос обрабатывается и возвращает результат в различных форматах. Таким образом, SPARQL точки доступа в основном задуман как сервис, обеспечивающий нормальный интерфейс к базе знаний SPARQL_endpoint.

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

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

Пример, для понятия содержания точки доступа:пример.

Список существующих SPARQL-endpoint: список_SparqlEndpoints

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

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

[править] Примечания

  1. в‘ Semantic Web Activity News  (англ.). в Новости семантической паутины. Архивировано из первоисточника 2 июня 2012. Проверено 10 июня 2011.
  2. в‘ W3C Semantic Web Activity Publications  (англ.). W3C. в Перечень публикаций W3C по проекту семантической паутины. Архивировано из первоисточника 2 июня 2012. Проверено 23 ноября 2009.
  3. в‘ Berners-Lee looks for Web's big leap  (англ.). в Интервью Тима Бернерса-Ли. Проверено 10 июня 2011.
  4. в‘ Tim Berners-Lee Linked Data. Design Issues.  (англ.). в Заметки по публикации данных в семантической паутине. Архивировано из первоисточника 2 июня 2012. Проверено 14 июня 2011.
  5. в‘ Structure of a SPARQL Query  (англ.). в Структура SPARQL запроса. Архивировано из первоисточника 11 февраля 2012. Проверено 10 июня 2011.
  6. в‘ Tim Berners-Lee Semantic Web Roadmap. в 1998.
  7. в‘ SPARQL Query Language for RDF  (англ.). в SPARQL Query Language for RDF. Архивировано из первоисточника 2 июня 2012. Проверено 28 июня 2011.
  8. в‘ SPARQL by example  (англ.). в SPARQL by example. Архивировано из первоисточника 11 февраля 2012. Проверено 28 июня 2011.
  9. в‘ SPARQL Implementation Coverage Report  (англ.). в Обзор полноты реализаций SPARQL. Архивировано из первоисточника 2 июня 2012. Проверено 23 ноября 2009.
  10. в‘ ViziQuer  (англ.). в Утилита для структурированного семантического поиска данных. Архивировано из первоисточника 2 июня 2012. Проверено 10 июня 2011.

[править] Ссылки


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

Варианты
Действия