SPARQL (рекурсивний акронім від англ. SPARQL Protocol and RDF Query Language) — мова запитів до даних, представлених по моделі RDF, а також протокол для передачі цих запитів і відповідей на них. SPARQL є рекомендацією консорціуму W3C і одною з технологій семантичної павутини. Представлення SPARQL-точок доступу (SPARQL endpoint) є рекомендованою практикою при публікації даних у всесвітній павутині.
SPARQL | |
---|---|
Парадигма | Мова запитів |
Дата появи | 2008 |
Розробник | W3C |
Останній реліз | 1.1 (21 березня 2013 ) |
Основні реалізації | Jena[en], OpenLink Virtuoso[en] AllegroGraph[en] |
Звичайні розширення файлів | .rq |
Вебсайт | www.w3.org/TR/sparql11-query/ |
SPARQL у Вікісховищі |
Загальна схема запиту Редагувати
Загальна схема 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 запит
CONSTRUCT запит
ASK запит
DESCRIBE запит
Кожна з цих форм запиту включає в себе блок WHERE, щоб обмежити запит, хоча у випадку запиту DESCRIBE — WHERE не є обов'язковим.
Ключові слова Редагувати
Нижче наведена частина часто використовуваних ключових слів в SPARQL запитів. Повний список є в офіційній документації [Архівовано 2 червня 2012 у WebCite].
PREFIX — слугує для скорочення URI.
OPTIONAL — визначає необов'язковий шаблон.
GRAPH — за допомогою нього формують запит, який застосовує шаблон до іменованих графів.
DISTINCT — вказує, що кожне рішення у відповіді на запит буде унікальним.
LIMIT — задає максимальну кількість виведених результатів.
OFFSET — дозволяє не показувати в результаті перші n рішень.
ORDER BY — дозволяє відсортувати результат за збільшенням (ASC()) або спаданням (DESC()).
Інші мови запитів до RDF Редагувати
Версії Редагувати
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-endpoint — це служба сумісна з SPARQL. SPARQL-endpoint дозволяє користувачу запитати базу знань (вводити його запити). Запит обробляється і повертає результат в різних форматах. Таким чином, SPARQL-точки доступу задумані як сервіс, який забезпечує нормальний інтерфейс до бази знань .
Розрізняють два види точок доступу: загального призначення і локального.
Точки доступу загального призначення можуть виконувати запити до будь-яких вказаних RDF-документів, які знаходяться в Мережі. А локальні точки доступу можуть отримувати дані тільки від одного ресурсу.
Приклад, щоб зрозуміти зміст точки доступу: .
Список існуючих SPARQL-точок доступу: список [ 16 березня 2012 у Wayback Machine.].
Автоматичне виконання запитів Редагувати
На даний момент для ряду мов програмування існує можливість викликати SPARQL-запити, існують інструменти, які дозволяють підключати і в напівавтоматичному режимі будувати SPARQL-запити для точки доступу SPARQL, наприклад ViziQuer.
Примітки Редагувати
- ↑ 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.
- . Архів оригіналу за 11 лютого 2010. Процитовано 29 березня 2017.
- 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.
Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. (березень 2017) |