SPARQL

SPARQL
Парадигма Мова запитів
Дата появи 2008; 16 років тому (2008)
Розробник W3C
Останній реліз 1.1 (21 березня 2013; 11 років тому (2013-03-21))
Основні реалізації Jena[en],[1] OpenLink Virtuoso[en][1] AllegroGraph[en][2]
Звичайні розширення файлів .rq[3]
Вебсайт www.w3.org/TR/sparql11-query/

SPARQL (рекурсивний акронім від англ. SPARQL Protocol and RDF Query Language) — мова запитів до даних, представлених по моделі RDF, а також протокол для передачі цих запитів і відповідей на них. SPARQL є рекомендацією консорціуму W3C і одною з технологій семантичної павутини. Представлення SPARQL-точок доступу (SPARQL endpoint) є рекомендованою практикою при публікації даних у всесвітній павутині.

Загальна схема запиту

Загальна схема SPARQL-запиту має такий вигляд:

 PREFIX foo: <http://example.com/resources/>
 # префіксні оголошення
 FROM ...
 # джерела запиту
 SELECT ...
 # пункт результату
 WHERE {...}
 # критерії запиту
 ORDER BY ...
 # модифікатори запиту

Де:

  • Префіксні оголошення служать для скорочення універсальних ідентифікаторів ресурсу (URI).
  • Джерела запиту визначають, які RDF графи запитуються.
  • Пункт результату повертає набір даних (вибірку), які задовольняють критеріям запиту.
  • Критерії запиту визначає, що запитувати в базовому наборі даних
  • Модифікатори запиту обмежують, упорядковують, і інакше перетворюють результати запиту.

Переваги

SPAQRL дозволяє користувачам писати глобально однозначні запити. Наприклад, наступний запит повертає імена й адреси кожної людини у світі:

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, глобально однозначний, на відміну від «e-mail» або «email», які звичайно використовуються в SQL.

Цей запит може бути розподілений на декілька кінцевих точок SPARQL, різних комп'ютерів, і збір результатів здійснюється процедурою, відомою як федеративний пошук[en].

Форми запитів

Мова SPARQL визначає чотири варіанта запитів для різних цілей:

SELECT запит

Використовується для того, щоб витягати необроблені значення із точки SPARQL, результати повертаються у вигляді таблиці.

CONSTRUCT запит

Використовується для того, щоб витягати інформацію з точки доступу SPARQL в форматі RDF і перетворювати результати до визначеної форми.

ASK запит

Використовується для створення запитів типу істина/хибність

DESCRIBE запит

Використовується для того, щоб отримати опис RDF-ресурсу. Реалізація поведінки DESCRIBE-запитів визначається розробником SPARQL-точки доступу.

Кожна з цих форм запиту включає в себе блок WHERE, щоб обмежити запит, хоча у випадку запиту DESCRIBE — WHERE не є обов'язковим.

Ключові слова

Нижче наведена частина часто використовуваних ключових слів в SPARQL запитів. Повний список є в офіційній документації [Архівовано 2 червня 2012 у WebCite].

PREFIX — слугує для скорочення URI.

OPTIONAL — визначає необов'язковий шаблон.

GRAPH — за допомогою нього формують запит, який застосовує шаблон до іменованих графів.

DISTINCT — вказує, що кожне рішення у відповіді на запит буде унікальним.

LIMIT — задає максимальну кількість виведених результатів.

OFFSET — дозволяє не показувати в результаті перші n рішень.

ORDER BY — дозволяє відсортувати результат за збільшенням (ASC()) або спаданням (DESC()).

Інші мови запитів до 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 Основні Федеративні запити.

Приклад

Інший приклад 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-endpoint — це служба сумісна з SPARQL. SPARQL-endpoint дозволяє користувачу запитати базу знань (вводити його запити). Запит обробляється і повертає результат в різних форматах. Таким чином, SPARQL-точки доступу задумані як сервіс, який забезпечує нормальний інтерфейс до бази знань SPARQL-endpoint.

Розрізняють два види точок доступу: загального призначення і локального.

Точки доступу загального призначення можуть виконувати запити до будь-яких вказаних RDF-документів, які знаходяться в Мережі. А локальні точки доступу можуть отримувати дані тільки від одного ресурсу.

Приклад, щоб зрозуміти зміст точки доступу: приклад.

Список існуючих SPARQL-точок доступу: список [Архівовано 16 березня 2012 у Wayback Machine.].

Автоматичне виконання запитів

На даний момент для ряду мов програмування існує можливість викликати SPARQL-запити, існують інструменти, які дозволяють підключати і в напівавтоматичному режимі будувати SPARQL-запити для точки доступу SPARQL, наприклад ViziQuer.

Примітки

  1. а б Hebeler, John; Fisher, Matthew; Blace, Ryan; Perez-Lopez, Andrew (2009). Semantic Web Programming. Indianapolis, Indiana: John Wiley & Sons. с. 406. ISBN 978-0-470-41801-7.
  2. SPARQL Protocol Implementation Report. Архів оригіналу за 11 лютого 2010. Процитовано 29 березня 2017.
  3. https://www.w3.org/TR/rdf-sparql-query/#mediaType

Див. також

П: У Вікіпедії є проєкт
«Вікідані»
  • Вікідані
    • https://query.wikidata.org [Архівовано 7 листопада 2016 у Wayback Machine.] — інструмент будування SPARQL-запитів
    • Вікідані:Підручник із SPARQL
  • Сервіс запитів SPARQL

Посилання

  • SPARQL Query Language for RDF [Архівовано 2 червня 2012 у WebCite] (англ.) — специфікація мови запитів SPARQL
  • Structure of a SPARQL Query — структура SPARQL запиту
  • SPARQL Protocol for RDF [Архівовано 20 березня 2012 у Wayback Machine.] (англ.) — специфікація протоколу SPARQL.
  • п
  • о
  • р
Зараз використовуються
Власницькі
  • YQL[en]
Витіснені
  • п
  • о
  • р
Основи
Розділи
Пов'язані дані[en] · Data Web · Гіпердані[en] · База правил[en] · Простори даних[en]
Застосування
Аналіз тональності тексту · Семантична вікі · Семантичний брокер[en] · Семантична аналітика[en]
Стандарти
Синтаксис: RDF (RDF/XML[en] · Нотація 3[en] · Turtle[en] · N-Triples[en]) · SPARQL · URI · HTTP · XML · XSD ·· Схеми, онтології : RDFS[en] · OWL · Rule Interchange Format · Semantic Web Rule Language[en] · Common Logic[en] · schema.org ·· Семантичне анотування : RDFa · eRDF[en] · GRDDL · Мікроформат (μF) · Мікродані Словники : FOAF · SIOC[en] · Дублінське ядро · SKOS[en] · UMBEL[en] ·· Історія: Семантична верстка#Історія · DAML+OIL[en]
Люди
Тім Бернерс-Лі · Джеймс Гендлер[en] · Ора Лассіла[en] · Найджел Шедболт[en] · Венді Голл[en]
Основні організації
W3C · Web Science Trust[en] · MIT · OpenLink Software · Talis Group[en] · Університет Саутгемптона · ClearForest[en] · DERI[en]
Пов'язане
Перегляд цього шаблону
  Література та бібліографія
Open Library · Open Library
Тематичні сайти
Wolfram Language · Quora
Словники та енциклопедії
Шведська національна енциклопедія
Довідкові видання
KBpedia
Нормативний контроль
FAST: 1920692 · Freebase: /m/07n__5 · GND: 7693644-2 · J9U: 987007407564005171 · LCCN: sh2014100282

П:  Портал «Програмування» П:  Портал «Інформаційні технології»

Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. Будь ласка, допоможіть удосконалити цю статтю, додавши посилання на надійні (авторитетні) джерела. Зверніться на сторінку обговорення за поясненнями та допоможіть виправити недоліки.
Матеріал без джерел може бути піддано сумніву та вилучено.
(березень 2017)