SPARQL
SPARQL (рекурсивный акроним от англ. SPARQL Protocol and RDF Query Language) — язык запросов к данным, представленным по модели RDF, а также протокол для передачи этих запросов и ответов на них. SPARQL является рекомендацией консорциума Всемирной паутины (W3C) и одной из технологий семантической паутины[1]. SPARQL является одним из важнейших элементов видения семантической паутины - так вдохновитель и инициатор проекта, Тим Бернерс-Ли в мае 2006 заметил в интервью, что "SPARQL будет иметь огромное значение"[2]. 15 января 2008 года, SPARQL стал официальной рекомендацией W3C,[3] предоставление SPARQL-точек доступа(SPARQL-endpoint) является рекомендованной практикой при публикации данных во всемирной паутине.[4] На данный момент для ряда языков программирования существует возможность вызывать SPARQL-запросы[5], существуют инструменты, позволяющие подключать и в полуавтоматическом режиме строить SPARQL-запросы для точки доступа SPARQL, например ViziQuer[6].
Содержание |
[править] Общая схема запроса
Общая схема SPARQL-запроса выглядит так:
PREFIX foo: <http://example.com/resources/>
# префиксные объявления
FROM ...
# источники запроса
SELECT ...
# пункт результата
WHERE {...}
# критерии запроса
ORDER BY ...
# модификаторы запроса
Префиксные объявления служат для сокращения универсальных идентификаторов ресурса.
Источники запроса определяет, какие RDF графы запрашиваются.
Пункт результата возвращает набор данных (выборку), удовлетворяющих заданному условию.
Критерии запроса определяет, что запросить в базовом наборе данных.
Модификаторы запроса ограничивают, упорядочивают, и иначе преобразуют результаты запроса[7].
[править] Преимущества
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. Это иллюстрирует видение Семантической паутины как единой огромной базы данных. [8] Каждый идентификатор в SPARQL, URI, глобально однозначен, в отличие от «email» или «e-mail», обычно используемых в SQL.
Этот запрос может быть распределен на несколько конечных точек SPARQL, разных компьютеров, и сбор результатов осуществляется процедурой, известной как федеративный поиск (англ.)русск..
[править] Формы запросов
Язык SPARQL определяет четыре различных варианта запросов для различных целей:
SELECT запрос
- Используется, чтобы извлечь необработанные значения из точки доступа SPARQL, результаты возвращаются в формате таблицы.
CONSTRUCT запрос
- Используется, чтобы извлечь информацию из точки доступа SPARQL и преобразовать результаты к определенной форме.
ASK запрос
- Используется для создания запросов типа Верно/Ложь.
DESCRIBE запрос
- Используется для извлечения графа RDF из точки доступа SPARQL, содержание которого нужно решить конечной точке основаясь на том, что специалист по обслуживанию считает полезной информацией.
Каждая из этих форм запроса содержит блок WHERE, чтобы ограничить запрос, хотя в случае запроса DESCRIBE — WHERE не является обязательным.
[править] Ключевые слова
Ниже приведена часть используемых ключевых слов в 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: «Найти даты выхода серий всех сезонов сериала „Клан Сопрано“»:
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
[править] Примечания
- ↑ W3C Semantic Web Activity Publications (англ.). W3C. — Перечень публикаций W3C по проекту семантической паутины. Проверено 23 ноября 2009.
- ↑ Berners-Lee looks for Web's big leap (англ.). — Интервью Тима Бернерса-Ли. Проверено 10 июня 2011.
- ↑ Semantic Web Activity News (англ.). — Новости семантической паутины. Проверено 10 июня 2011.
- ↑ Tim Berners-Lee Linked Data. Design Issues. (англ.). — Заметки по публикации данных в семантической паутине. Проверено 14 июня 2011.
- ↑ SPARQL Implementation Coverage Report (англ.). — Обзор полноты реализаций SPARQL. Проверено 23 ноября 2009.
- ↑ ViziQuer (англ.). — Утилита для структурированного семантического поиска данных. Проверено 10 июня 2011.
- ↑ Structure of a SPARQL Query (англ.). — Структура SPARQL запроса. Проверено 10 июня 2011.
- ↑ Tim Berners-Lee Semantic Web Roadmap. — 1998.
- ↑ SPARQL Query Language for RDF (англ.). — SPARQL Query Language for RDF. Проверено 28 июня 2011.
- ↑ SPARQL by example (англ.). — SPARQL by example. Проверено 28 июня 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 |
|
|
|
|---|---|
| Основы | Всемирная паутина · Интернет · Гипертекст · Базы данных · Семантические сети · Онтологии · Дескрипционная логика |
| Подразделы | 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 Семантическое аннотирование : RDFa · eRDF · GRDDL · Микроформаты Словари : FOAF · SIOC · Дублинское ядро · SKOS · UMBEL История: Plain Old Semantic HTML DAML+OIL |

