Описание тега sparql
SPARQL
SPARQL (произносится как "искра", рекурсивное сокращение от SPARQL Protocol и RDF Query Language) - это набор спецификаций W3C, которые предоставляют языки и протоколы для запроса и управления содержимым графа RDF в Интернете или в хранилище RDF.
SPARQL 1.0
SPARQL 1.0 - это исходная версия SPARQL, которая просто предоставляет язык запросов для RDF. Язык основан на сопоставлении с шаблоном графа и предоставляет 4 формы запроса:
ASK WHERE { }
- AnASK
запрос просто спрашивает, существует ли совпадение с шаблоном графика, указанным вWHERE
предложение в запрашиваемых данных.
Это возвращает логический набор результатов SPARQL, содержащий ответ True/False.SELECT * WHERE { }
- АSELECT
query находит все решения, соответствующие шаблону графика, и возвращает их желаемые части. Результаты могут бытьORDER
редактировать по желанию и использоватьLIMIT
и / илиOFFSET
для пейджинга. Это наиболее часто используемая форма запроса, которая по функциям (хотя и сильно отличается по синтаксису и семантике) соответствует SQL, с которым знакомы многие разработчики, приходящие в Semantic Web.
Это возвращает набор результатов SPARQL, содержащий решения.DESCRIBE <http://example.org>
- АDESCRIBE
query получает описание одного / нескольких ресурсов из данных. Механизм запросов волен решать, что составляет описание. АWHERE
предложение может использоваться для выбора того, какие ресурсы должны быть описаны.
Это возвращает график RDF.CONSTRUCT { } WHERE { }
- АCONSTRUCT
запрос принимает решения, соответствующиеWHERE
предложение и использует их для построения нового RDF Graph.
Это возвращает график RDF.
Пример SPARQL 1.0
Запрос SPARQL 1.0 может выглядеть следующим образом:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT *
FROM <http://default>
WHERE
{
?s a ?type .
OPTIONAL
{
?s rdfs:label ?label .
FILTER (LANGMATCHES(?label, "en"))
}
}
ORDER BY ?label
LIMIT 10
Этот запрос ищет вещи с типом на графике <http://default>
и, возможно, включает их метки, если они на английском языке. Он упорядочивает результаты по метке, ограничивая возвращаемые результаты до 10.
SPARQL 1.1
SPARQL 1.1 - это основное расширение экосистемы SPARQL, утвержденное в качестве рекомендации W3C в марте 2013 года. Он предоставляет множество расширений для существующего языка запросов, включая:
- Выражения проекта в
SELECT
, например(?x + ?y AS ?z)
- Агрегаты, например
COUNT()
,GROUP BY
, а такжеHAVING
- Пути к свойствам, например
{?x ex:predicate+ ?y}
EXISTS
а такжеNOT EXISTS
фильтрыMINUS
пункт о вычитающем отрицанииSERVICE
пункт для федеративных запросов- Подзапросы
- Множество новых встроенных функций, особенно для работы со строками и датами
Он также добавляет в экосистему ряд совершенно новых функций, включая:
- Язык обновления SPARQL, который определяет язык для изменения данных RDF.
- HTTP протокол Graph магазин, который обеспечивает стандартный интерфейс RESTful для основанного Graph RDF - магазинов.
- Описание службы для предоставления RDF-описания конечной точки SPARQL.
См. Отчет о реализации SPARQL 1.1 для получения информации о реализациях, которые сообщили о результатах тестирования на соответствие. См. Статью SPARQL Wikipedia для получения примеров, расширений и другого списка реализаций.