Описание тега sparql

SPARQL (произносится как "искра", рекурсивное сокращение от SPARQL Protocol и RDF Query Language) - это набор спецификаций W3C, которые предоставляют языки и протоколы для запроса и управления содержимым графа RDF в Интернете или в хранилище RDF.

SPARQL

SPARQL (произносится как "искра", рекурсивное сокращение от SPARQL Protocol и RDF Query Language) - это набор спецификаций W3C, которые предоставляют языки и протоколы для запроса и управления содержимым графа RDF в Интернете или в хранилище RDF.

SPARQL 1.0

SPARQL 1.0 - это исходная версия SPARQL, которая просто предоставляет язык запросов для RDF. Язык основан на сопоставлении с шаблоном графа и предоставляет 4 формы запроса:

  1. ASK WHERE { } - An ASK запрос просто спрашивает, существует ли совпадение с шаблоном графика, указанным в WHEREпредложение в запрашиваемых данных.
    Это возвращает логический набор результатов SPARQL, содержащий ответ True/False.
  2. SELECT * WHERE { } - А SELECTquery находит все решения, соответствующие шаблону графика, и возвращает их желаемые части. Результаты могут бытьORDERредактировать по желанию и использовать LIMIT и / или OFFSETдля пейджинга. Это наиболее часто используемая форма запроса, которая по функциям (хотя и сильно отличается по синтаксису и семантике) соответствует SQL, с которым знакомы многие разработчики, приходящие в Semantic Web.
    Это возвращает набор результатов SPARQL, содержащий решения.
  3. DESCRIBE <http://example.org> - А DESCRIBEquery получает описание одного / нескольких ресурсов из данных. Механизм запросов волен решать, что составляет описание. АWHEREпредложение может использоваться для выбора того, какие ресурсы должны быть описаны.
    Это возвращает график RDF.
  4. 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 1.1 для получения информации о реализациях, которые сообщили о результатах тестирования на соответствие. См. Статью SPARQL Wikipedia для получения примеров, расширений и другого списка реализаций.