СПАРКЛ
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2013 г. ) |
Парадигма | Язык запросов |
---|---|
Разработчик | W3C |
Впервые появился | 15 января 2008 г |
Стабильная версия | 1.1
/ 21 марта 2013 г |
Веб-сайт | www |
Основные реализации | |
Апач Йена , [ 1 ] Виртуоз OpenLink [ 1 ] |
SPARQL (произносится как « искриться », рекурсивная аббревиатура). [ 2 ] для протокола SPARQL и языка запросов RDF ) — это язык запросов RDF , то есть язык семантических запросов для баз данных , способный извлекать и манипулировать данными, хранящимися в формате Resource Description Framework (RDF) . [ 3 ] [ 4 ] Она была сделана стандартом Рабочей группой по доступу к данным RDF (DAWG) Консорциума World Wide Web и признана одной из ключевых технологий семантической сети . 15 января 2008 г. SPARQL 1.0 был признан W3C официальной рекомендацией. [ 5 ] [ 6 ] и SPARQL 1.1 в марте 2013 г. [ 7 ]
SPARQL позволяет запросу состоять из тройных шаблонов , конъюнкций , дизъюнкций и необязательных шаблонов . [ 8 ]
Существуют реализации для нескольких языков программирования . [ 9 ] Существуют инструменты, позволяющие подключиться и полуавтоматически построить запрос SPARQL для конечной точки SPARQL, например ViziQuer. [ 10 ] Кроме того, существуют инструменты для перевода запросов SPARQL на другие языки запросов, например на SQL. [ 11 ] и XQuery . [ 12 ]
Преимущества
[ редактировать ]SPARQL позволяет пользователям писать запросы к тому, что можно условно назвать данными «ключ-значение» или, более конкретно, к данным, которые соответствуют RDF W3C спецификации . Таким образом, вся база данных представляет собой набор троек «субъект-предикат-объект». Это аналогично использованию в некоторых базах данных NoSQL термина «документ-ключ-значение», например MongoDB .
В SQL реляционной базы данных терминах данные RDF также можно рассматривать как таблицу с тремя столбцами — столбцом субъекта, столбцом предиката и столбцом объекта. Субъект в RDF аналогичен сущности в базе данных SQL , где элементы данных (или поля) для данного бизнес-объекта размещаются в нескольких столбцах, иногда распределяются по более чем одной таблице и идентифицируются уникальным ключом . Вместо этого в RDF эти поля представлены как отдельные строки предикатов/объектов, имеющие один и тот же субъект, часто один и тот же уникальный ключ, при этом предикат аналогичен имени столбца, а объект — фактическим данным. В отличие от реляционных баз данных, столбец объекта неоднороден: тип данных для каждой ячейки обычно подразумевается (или указывается в онтологии ) значением предиката . Кроме того, в отличие от SQL, RDF может иметь несколько записей для каждого предиката; например, можно иметь несколько «дочерних» записей для одного «человека» и возвращать коллекции таких объектов, например «детей».
Таким образом, SPARQL предоставляет полный набор аналитических операций запроса, таких как JOIN
, SORT
, AGGREGATE
для данных, схема которых по своей сути является частью данных, а не требует отдельного определения схемы. Однако информация о схеме (онтология) часто предоставляется извне, чтобы обеспечить объединение различных наборов данных однозначное . Кроме того, SPARQL предоставляет специальный синтаксис обхода графа для данных, которые можно рассматривать как граф.
В приведенном ниже примере показан простой запрос, использующий онтологии. определение foaf
(«друг друга»).
В частности, следующий запрос возвращает имена и адреса электронной почты каждого человека в наборе данных :
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name
?email
WHERE
{
?person a foaf:Person .
?person foaf:name ?name .
?person foaf:mbox ?email .
}
Этот запрос объединяет все тройки с совпадающим субъектом, где предикат типа " a
", это человек( foaf:Person
), и у человека есть одно или несколько имен ( foaf:name
) и почтовые ящики ( foaf:mbox
).
Для удобства чтения автор этого запроса решил ссылаться на субъект, используя имя переменной " ?person
". Поскольку первый элемент тройки всегда является подлежащим, автор мог бы с тем же успехом использовать любое имя переменной, например " ?subj
" или " ?x
". Какое бы имя ни было выбрано, оно должно быть одинаковым в каждой строке запроса, чтобы указать, что механизм запросов должен объединять тройки с одним и тем же предметом.
Результатом соединения является набор строк – ?person
, ?name
, ?email
. Этот запрос возвращает ?name
и ?email
потому что ?person
часто представляет собой сложный URI, а не удобную для пользователя строку. Обратите внимание, что любой ?person
может иметь несколько почтовых ящиков, поэтому в возвращаемом наборе ?name
строка может появляться несколько раз, по одному для каждого почтового ящика.
Этот запрос можно распределить по нескольким конечным точкам SPARQL (службам, которые принимают запросы SPARQL и возвращают результаты), вычислить и собрать результаты — процедура, известная как объединенный запрос .
Дополнительные тройные определения в запросе, как в федеративном, так и в локальном виде, могут позволить объединять различные типы субъектов, например автомобили, для выполнения простых запросов, например, для возврата списка имен и адресов электронной почты людей, которые водят автомобили с высоким уровнем риска. топливная экономичность.
Формы запросов
[ редактировать ]В случае запросов, считывающих данные из базы данных, язык SPARQL определяет четыре различных варианта запроса для разных целей.
SELECT
запрос- Используется для извлечения необработанных значений из конечной точки SPARQL, результаты возвращаются в формате таблицы.
CONSTRUCT
запрос- Используется для извлечения информации из конечной точки SPARQL и преобразования результатов в действительный RDF.
ASK
запрос- Используется для предоставления простого результата True/False для запроса в конечной точке SPARQL.
DESCRIBE
запрос- Используется для извлечения графа RDF из конечной точки SPARQL, содержание которого остается на усмотрение конечной точки на основе того, что сопровождающий считает полезной информацией.
Каждая из этих форм запроса занимает WHERE
блок для ограничения запроса, хотя в случае DESCRIBE
запрос, WHERE
является необязательным.
SPARQL 1.1 определяет язык для обновления базы данных несколькими новыми формами запросов. [ 13 ]
Пример
[ редактировать ]Еще один пример запроса SPARQL, моделирующий вопрос «Какие столицы всех стран Африки?»:
PREFIX ex: <http://example.com/exampleOntology#>
SELECT ?capital
?country
WHERE
{
?x ex:cityname ?capital ;
ex:isCapitalOf ?y .
?y ex:countryname ?country ;
ex:isInContinent ex:Africa .
}
Переменные обозначаются значком ?
или $
префикс. Крепления для ?capital
и ?country
будет возвращен. Когда тройка заканчивается точкой с запятой, субъект из этой тройки неявно дополняет следующую пару до целой тройки. Так например ex:isCapitalOf ?y
это сокращение от ?x ex:isCapitalOf ?y
.
Процессор запросов SPARQL будет искать наборы троек, соответствующие этим четырем шаблонам троек, связывая переменные в запросе с соответствующими частями каждой тройки. Здесь важно отметить «ориентацию по свойствам» (сопоставление классов может проводиться исключительно через атрибуты классов или свойства – см. Duck typing ).
Чтобы сделать запросы краткими, SPARQL позволяет определять префиксы и базовые URI аналогично Turtle . В этом запросе префикс " ex
" означает " http://example.com/exampleOntology#
”.
Расширения
[ редактировать ]GeoSPARQL определяет функции фильтрации для запросов географической информационной системы (ГИС) с использованием хорошо понятных стандартов OGC ( GML , WKT и т. д.).
SPARUL — это еще одно расширение SPARQL. Он позволяет обновлять хранилище RDF с помощью этого декларативного языка запросов, добавляя INSERT
и DELETE
методы.
XSPARQL — это интегрированный язык запросов, сочетающий XQuery и SPARQL для одновременного запроса источников данных XML и RDF. [ 14 ]
Реализации
[ редактировать ]Открытый исходный код, эталонные реализации SPARQL
- Eclipse RDF4J , ранее OpenRDF Sesame
- Апач Йена [ 1 ]
- Виртуоз OpenLink [ 1 ]
См. «Список реализаций SPARQL» для более подробной информации, включая тройное хранилище , API и другие хранилища, в которых реализован стандарт SPARQL.
См. также
[ редактировать ]- Семантическая интеграция
- XML-формат результатов запроса SPARQL
- Синтаксические выражения SPARQL
- Викиданные
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с д Хебелер, Джон; Фишер, Мэтью; Блейс, Райан; Перес-Лопес, Эндрю (2009). Семантическое веб-программирование . Индианаполис : John Wiley & Sons, Inc. , с. 406. ИСБН 978-0-470-41801-7 .
- ^ Беккет, Дэйв (6 октября 2011 г.). «Что означает SPARQL?» . [электронная почта защищена] .
- ^ Джим Рапоза (2 мая 2006 г.). «SPARQL заставит Интернет сиять» . электронная неделя . Проверено 17 января 2007 г.
- ^ Сегаран, Тоби; Эванс, Колин; Тейлор, Джейми (2009). Программирование семантической сети . O'Reilly Media, Inc., 1005 Gravenstein Highway North, Севастополь, Калифорния 95472. с. 84. ИСБН 978-0-596-15381-6 .
- ^ «Новости W3C Semantic Web Activity – SPARQL — рекомендация» . W3.org. 15 января 2008 г. Архивировано из оригинала 20 января 2008 г. Проверено 1 октября 2009 г.
- ^ «Хронология стандартов XML и семантической сети W3C» (PDF) . 4 февраля 2012 года . Проверено 27 ноября 2013 г.
- ^ «Одиннадцать спецификаций SPARQL 1.1 являются рекомендациями W3C» . w3.org. 21 марта 2013 года . Проверено 25 апреля 2013 г.
- ^ «XML и веб-сервисы в новостях» . xml.org . 6 октября 2006 г. Проверено 17 января 2007 г.
- ^ «SparqlImplementations – ESW Wiki» . Esw.w3.org . Проверено 1 октября 2009 г.
- ^ «ViziQuer — инструмент для автоматического построения запросов SPARQL» . lumii.lv . Проверено 25 февраля 2011 г.
- ^ «Сервер Д2Р» . Проверено 4 февраля 2012 г.
- ^ «Структура SPARQL2XQuery» . Проверено 4 февраля 2012 г.
- ^ Ю, Лиян (2014). Руководство разработчика по семантической сети . Спрингер. п. 308. ИСБН 9783662437964 .
- ^ «XSPARQL опубликован как файл W3C» . W3.org. 23 июня 2009 года . Проверено 22 мая 2022 г.
Внешние ссылки
[ редактировать ]- Блог W3C о работе с данными
- Рабочая группа W3C SPARQL 1.1 — закрытые списки рассылки и архивы , была рабочей группой по доступу к данным RDF.
- Рекомендация SPARQL 1.1
- SPARQL 1.0 Язык запросов (устаревший)
- Протокол SPARQL 1.0 (устаревший)
- Формат результатов XML-запроса SPARQL 1.0 (устаревший)
- Сопоставления SPARQL2XQuery между схемами OWL-RDF/S и XML, а также схема XML для преобразования OWL.
- Синтаксические выражения SPARQL в механизме запросов ARQ
- Джеймс (8 сентября 2011 г.). «Набор тестов DAWG для SPOCQ» . Дидра . Архивировано из оригинала 7 июня 2015 года . Проверено 2 декабря 2014 г.
- Джеймс (8 сентября 2011 г.). «Примеры кода RSpec/Результаты: 425 примеров, 1 сбой/Завершено за 287,385157145 секунд» . Дидра . Архивировано из оригинала 11 декабря 2011 года . Проверено 2 декабря 2014 г.
- Викиданные
- Учебное пособие по сервису запросов Викиданных
- ДБпедия