SPARQL
-
Медіафайли у Вікісховищі
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.
Примітки
Див. також
![]() | У Вікіпедії є проєкт «Вікідані» |
- Вікідані
- 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.
|
|
|
|
Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. Будь ласка, допоможіть удосконалити цю статтю, додавши посилання на надійні (авторитетні) джерела. Зверніться на сторінку обговорення за поясненнями та допоможіть виправити недоліки. Матеріал без джерел може бути піддано сумніву та вилучено. (березень 2017) |