Орден Гримальди
- 1 year ago
- 0
- 0
SPARQL ( рекурсивный акроним от англ. SPARQL Protocol and RDF Query Language ) — язык запросов к данным , представленным по модели RDF , а также протокол для передачи этих запросов и ответов на них. SPARQL является рекомендацией консорциума W3C и одной из технологий семантической паутины . Предоставление SPARQL-точек доступа ( англ. SPARQL-endpoint ) является рекомендованной практикой при публикации данных во всемирной паутине .
Обзор: (англ.)
Как и в SQL , SPARQL декларирует не только чтение, но и манипуляцию данными. Стандарт SPARQL Update описывает команды INSERT и DELETE для добавления и удаления триплетов в хранилище. Однако, обе эти команды оперируют той или иной выборкой, так что основа SPARQL — это команда SELECT.
Общая схема SPARQL-запроса SELECT выглядит так :
PREFIX
# префиксные объявления - служат для указания сокращений URI,
# используемых в запросе.
FROM ...
# источники запроса - определяют какие RDF-графы запрашиваются.
SELECT ...
# состав результата - определяет возвращаемые элементы данных.
WHERE {...}
# шаблон запроса - определяет, что запрашивать из набора данных.
ORDER BY ...
# модификаторы запроса - ограничивают, упорядочивают, преобразуют результаты запроса.
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 . Это иллюстрирует видение Семантической паутины как единой огромной базы данных . Каждый идентификатор в SPARQL, URI, глобально однозначен, в отличие от «email» или «e-mail», обычно используемых в SQL.
Этот запрос может быть распределён на несколько конечных точек SPARQL, разных компьютеров, и сбор результатов осуществляется процедурой, известной как
.Язык SPARQL определяет четыре различных варианта запросов для различных целей:
SELECT запрос
CONSTRUCT запрос
ASK запрос
DESCRIBE запрос
Каждая из этих форм запроса содержит блок WHERE для указания ограничений, хотя в случае запроса DESCRIBE этот блок не является обязательным.
Ниже приведена часть используемых ключевых слов в SPARQL запросах, полный перечень доступен в .
PREFIX — служит для сокращения URI.
OPTIONAL — обозначает необязательный шаблон.
GRAPH — применяет шаблон к именованным графам.
DISTINCT — обеспечивает уникальность решений в ответе на запрос.
LIMIT — задаёт максимальное количество выводимых результатов.
OFFSET — опускает в результате первые n решений.
ORDER BY
— позволяет отсортировать результат по возрастанию (
ASC()
) или по убыванию (
DESC()
)
.
SPARQL 1.0 стал стандартом в январе 2008 и включал:
SPARQL 1.1 является актуальной версией и включает:
Другой пример запросов 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 в первую очередь являются API к базам знаний, а представление результатов должно быть реализовано программным обеспечением вызывающей стороны .
Различают два вида точек доступа: общего назначения и локальные .
Точки доступа общего назначения могут производить запросы по любым указанным RDF-документам, находящимся в Сети. А локальные точки доступа способны получать данные только от одного ресурса.
На данный момент для ряда языков программирования существует возможность вызывать SPARQL-запросы , существуют инструменты, позволяющие подключать и в полуавтоматическом режиме строить SPARQL-запросы для точки доступа SPARQL, например ViziQuer .