- 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].
Примечания
- ↑ Semantic Web Activity News (англ.). — Новости семантической паутины. Архивировано из первоисточника 2 июня 2012. Проверено 10 июня 2011.
- ↑ W3C Semantic Web Activity Publications (англ.). W3C. — Перечень публикаций W3C по проекту семантической паутины. Архивировано из первоисточника 2 июня 2012. Проверено 23 ноября 2009.
- ↑ Berners-Lee looks for Web's big leap (англ.). — Интервью Тима Бернерса-Ли. Проверено 10 июня 2011.
- ↑ Tim Berners-Lee Linked Data. Design Issues. (англ.). — Заметки по публикации данных в семантической паутине. Архивировано из первоисточника 2 июня 2012. Проверено 14 июня 2011.
- ↑ Structure of a SPARQL Query (англ.). — Структура SPARQL запроса. Архивировано из первоисточника 11 февраля 2012. Проверено 10 июня 2011.
- ↑ Tim Berners-Lee Semantic Web Roadmap. — 1998.
- ↑ SPARQL Query Language for RDF (англ.). — SPARQL Query Language for RDF. Архивировано из первоисточника 2 июня 2012. Проверено 28 июня 2011.
- ↑ SPARQL by example (англ.). — SPARQL by example. Архивировано из первоисточника 11 февраля 2012. Проверено 28 июня 2011.
- ↑ SPARQL-endpoint
- ↑ SPARQL Implementation Coverage Report (англ.). — Обзор полноты реализаций SPARQL. Архивировано из первоисточника 2 июня 2012. Проверено 23 ноября 2009.
- ↑ ViziQuer (англ.). — Утилита для структурированного семантического поиска данных. Архивировано из первоисточника 2 июня 2012. Проверено 10 июня 2011.
Ссылки
- SPARQL Query Language for RDF (англ.) — спецификация языка запросов SPARQL
- Semantic Web Activity News (англ.) — Новости семантической паутины
- Berners-Lee looks for Web’s big leap (англ.) — интервью Тима Бернерса-Ли
- ViziQuer (англ.) — Утилита для структурированного семантического поиска
- Structure of a SPARQL Query — Структура SPARQL запроса
- SPARQL Protocol for RDF (англ.) — спецификация протокола SPARQL
- Язык запросов SPARQL для RDF — русский перевод спецификации языка SPARQL
- SPARQL Working Group Wiki (англ.)
- RDF Query Survey (англ.)
- XML.com: Introducing SPARQL: Querying the Semantic Web (англ.)
- RDF Query and Rule languages Use Cases and Examples survey (англ.)
- SPARQL — язык запросов к RDF
- SPARQL на ESW Wiki (англ.) — неофициальное обсуждение языка SPARQL разработчиками стандартов W3C и всеми желающими
- SPARQL Query Language for RDF (англ.)
- MQL — API для создания программируемых запросов к Freebase
Языки запросов .QL · CQL · CODASYL · COQL · D · DMX · Datalog · ERROL · ISBL · LDAP · MQL · MDX · OQL · OCL · Poliqarp Query Language · QUEL · SMARTS · SPARQL · SQL · SuprTool · TMQL · XQuery · XPath · XSQL · YQL Стандарты Консорциума Всемирной паутины Рекомендации Canonical XML • CDF • CSS • DOM • Geolocation API • HTML • ITS • MathML • OWL • P3P • PLS • RDF (Schema) • SISR • SKOS • SMIL • SOAP • SRGS • SSML • SVG • SPARQL • Timed Text • VoiceXML • WSDL • XForms • XHTML • XHTML+RDFa • XInclude • XLink • XML (Base • Encryption • Events • Information Set • namespace • Schema • Signature) • XPath / 1.0 / 2.0 • XPointer • XProc • XQuery • XSL • XSL-FO • XSLT (элементы) • XUP
Примечания XAdES • XHTML+SMIL
Рабочие проекты CCXML • CURIE • HTML5 • InkML • RIF • SCXML • SMIL Timesheets • sXBL • WICD • XFDL • XFrames • XBL • XHTML+MathML+SVG • XMLHttpRequest
Guidelines Web Content Accessibility Guidelines
Initiative Multimodal Interaction Activity • Markup Validation Service • Web Accessibility Initiative
Deprecated Организации World Wide Web Foundation • SVG Working Group • WebOnt • Device Description Working Group • WHATWG
ПО Agora • Argo • Arena • Amaya • CERN httpd • Libwww • Line Mode Browser
Конференции IW3C2 • World Wide Web Conference • WWWC1
Семантическая паутина Основы Всемирная паутина · Интернет · Гипертекст · Базы данных · Семантические сети · Онтологии · Дескрипционная логика Подразделы Linked Data · Data Web · Hyperdata · Dereferenceable URIs · Rule bases · Data Spaces Приложения Семантическая вики · Semantic publishing · Semantic search · Semantic computing · Semantic advertising · Semantic reasoner · Semantic matching · Semantic mapper · Semantic broker · Semantic analytics · Semantic service oriented architecture Связанные темы Фолксономия · Библиотека 2.0 · Веб 2.0 Ссылки · Информационная архитектура · Управление знаниями · Коллективный интеллект · Тематические карты · Mindmapping · Метаданные · Geotagging · Web science Стандарты Синтаксис : RDF (RDF/XML · Нотация 3 · Turtle · N-Triples) · SPARQL · URI · HTTP · XML
Схемы, онтологии : RDFS · OWL · Rule Interchange Format · Semantic Web Rule Language · Common Logic · Schema.org
Семантическое аннотирование : RDFa · eRDF · GRDDL · Микроформаты · Микроданные
Словари : FOAF · SIOC · Дублинское ядро · SKOS · UMBEL
История: Plain Old Semantic HTML DAML+OILКатегории:- Семантическая паутина
- Языки запросов
- RDF
- Стандарты W3C
Wikimedia Foundation. 2010.