SPARQL

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 ...
# модификаторы запроса

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

Источники запроса определяют, какие 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 этот блок не является обязательным.

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

Ниже приведена часть используемых ключевых слов в 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

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

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

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

Примеры

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

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

Примечания

  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-endpoint
  10. SPARQL Implementation Coverage Report  (англ.). — Обзор полноты реализаций SPARQL. Архивировано из первоисточника 2 июня 2012. Проверено 23 ноября 2009.
  11. ViziQuer  (англ.). — Утилита для структурированного семантического поиска данных. Архивировано из первоисточника 2 июня 2012. Проверено 10 июня 2011.

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "SPARQL" в других словарях:

  • SPARQL — (prononcé sparkle , en anglais l étincelle [1]) est un langage de requête et un protocole qui permettra de rechercher, d ajouter, de modifier ou de supprimer des données RDF disponible à travers Internet. Son nom est un acronyme qui signifie… …   Wikipédia en Français

  • SPARQL — ist eine graph basierte Anfragesprache für RDF. Der Name ist ein rekursives Akronym für SPARQL Protocol And RDF Query Language. Die RDF Data Access Working Group (DAWG) des World Wide Web Consortium trieb die Entwicklung und Standardisierung von… …   Deutsch Wikipedia

  • SPARQL — Saltar a navegación, búsqueda SPARQL es un acrónimo recursivo del inglés SPARQL Protocol and RDF Query Language. Se trata de una recomendación para crear un lenguaje de consulta dentro de la Web semántica que, aunque en 2005 está en proceso de… …   Wikipedia Español

  • SPARQL — NOTOC SPARQL (pronounced [cite web | url = http://www.eweek.com/article2/0,1759,1965980,00.asp | title = SPARQL Will Make the Web Shine | author = Jim Rapoza | work = eWeek | date = May 2, 2006 | accessdate = 2007 01 17 ] ) is an RDF query… …   Wikipedia

  • RDFLib — Infobox Software name = RDFLib developer = Daniel Krech latest release version = 2.4.0 latest release date = April 4, 2007 operating system = Cross platform genre = Library license = BSD website = [http://rdflib.net/ http://rdflib.net/] RDFLib is …   Wikipedia

  • RDF query language — A RDF query language is a computer language able to retrieve and manipulate data stored in Resource Description Framework format.SPARQL is emerging as the de facto RDF query language, and is a W3C Recommendation [ [http://www.w3.org/TR/rdf sparql …   Wikipedia

  • Meta Content Framework — Das Resource Description Framework (RDF, engl. (sinngemäß) „System zur Beschreibung von Ressourcen“) bezeichnet eine Familie von Standards des World Wide Web Consortiums (W3C) zur formalen Beschreibung von Informationen über Objekte, sogenannte… …   Deutsch Wikipedia

  • Ressource Description Framework — Das Resource Description Framework (RDF, engl. (sinngemäß) „System zur Beschreibung von Ressourcen“) bezeichnet eine Familie von Standards des World Wide Web Consortiums (W3C) zur formalen Beschreibung von Informationen über Objekte, sogenannte… …   Deutsch Wikipedia

  • OpenLink Software — Inc Type Private Industry Computer software, IT Services Founded 1992 Headquarters Burlington, Massachusetts, USA Key people Kingsley Uyi Idehen, CEO Founder Hugh Wil …   Wikipedia

  • Cypher transcoder — Infobox Software name = Cypher Transcoder caption = Cypher Interface (Web Services API Interface) developer = [http://www.monrai.com Monrai Technologies] latest release version = 1.2 beta latest release date = June 2008 operating system = Cross… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»