SPARQL
| SPARQL | |
|---|---|
| З’явілася ў | 15 студзеня 2008 |
| Сайт | w3.org/TR/sparql1… (англ.) |
SPARQL (рэкурсіўны акронім ад англ.: SPARQL Protocol and RDF Query Language) — мова запытаў да дадзеных, прадстаўленая па мадэлі RDF, а таксама пратакол для перадачы гэтых запытаў і адказаў на іх. SPARQL з’яўляецца рэкамендацыяй кансорцыума W3C[1] і адной з тэхналогій семантычнага павуціння[2][3]. Прадастаўленне SPARQL-кропак доступу (англ.: SPARQL-endpoint) з’яўляецца рэкамендаванай практыкай пры публікацыі даных у сусветным павуцінні[4].
Стандарты W3C
[правіць | правіць зыходнік]- SPARQL 1.1 Overview (англ.) — Агляд мовы запытаў SPARQL
- SPARQL 1.1 Query Language (англ.) — Каманда мовы SPARQL для запыту даных
- SPARQL 1.1 Update (англ.) — Каманда мовы SPARQL для змены дадзеных
- SPARQL 1.1 Service Description (англ.) — Апісанне сервісу для выканання запытаў на мове SPARQL
- SPARQL 1.1 Federated Query (англ.) — Запыты на мове SPARQL да некалькіх крыніц дадзеных
- SPARQL 1.1 Query Results JSON Format (англ.)
- SPARQL 1.1 Query Results CSV and TSV Formats (англ.)
- SPARQL Query Results XML Format (Second Edition) (англ.)
- SPARQL 1.1 Entailment Regimes Recommendation (англ.)
- SPARQL 1.1 Protocol (англ.)
- SPARQL 1.1 Graph Store HTTP Protocol (англ.)
Агульная схема запыту
[правіць | правіць зыходнік]Як і ў SQL, SPARQL дэкларуе не толькі чытанне, але і маніпуляцыю данымі. Стандарт SPARQL Update апісвае каманды INSERT і DELETE для дадання і выдаленні трыплетаў у сховішча. Аднак, абедзве гэтыя каманды аперуюць той ці іншай выбаркай, так што аснова SPARQL — гэта каманда SELECT.
Агульная схема SPARQL-запыту SELECT выглядае так[5]:
PREFIX
# прэфіксныя аб’явы - служаць для ўказання скарачэнняў URI,
# якія выкарыстоўваюцца ў запыце.
FROM ...
# крыніцы запыту - вызначаюць якія RDF-графы запытваюцца.
SELECT ...
# склад выніку - вызначае элементы даных, якія вяртаюцца.
WHERE {...}
# шаблон запыту - вызначае, што запытваць з набору даных.
ORDER BY ...
# мадыфікатары запыту - абмяжоўваюць, парадкуюць, пераўтвораць вынікі запыту.
Перавагі
[правіць | правіць зыходнік]SPARQL дазваляе карыстальнікам пісаць глабальна адназначныя запыты. Напрыклад, наступны запыт вяртае імёны і адрасы электроннай пошты кожнага чалавека ў свеце:
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 . Гэта ілюструе бачанне Семантычнага павуціння як адзінай вялізнай базы даных[6]. Кожны ідэнтыфікатар у SPARQL, URI, глабальна адназначны, у адрозненне ад «email» ці «e-mail», якія звычайна выкарыстоўваюцца ў SQL.
Гэты запыт можа быць размеркаваны на некалькі канчатковых кропак SPARQL, розных камп’ютараў, і збор вынікаў ажыццяўляецца працэдурай, вядомай як федэратыўны пошук. .
Формы запытаў
[правіць | правіць зыходнік]Мова SPARQL вызначае чатыры розныя варыянты запытаў для розных мэт:
SELECT запыт
- Здабывае неапрацаваныя значэнні з кропкі доступу SPARQL і вяртае вынікі ў фармаце табліцы.
CONSTRUCT запыт
- Вымае інфармацыю з кропкі доступу SPARQL у фармаце RDF і пераўтварае вынікі да вызначанай формы.
ASK запыт
- Фармуе запыт тыпу Ісціна/Хлусня.
DESCRIBE запыт
- Атрымлівае апісанне RDF-рэсурсу. Рэалізацыя паводзін DESCRIBE-запытаў вызначаецца распрацоўшчыкам пункту доступу SPARQL.
Кожная з гэтых формаў запыту змяшчае блок WHERE для ўказання абмежаванняў, хаця ў выпадку запыту DESCRIBE гэты блок не з’яўляецца абавязковым.
Ключавыя словы
[правіць | правіць зыходнік]Ніжэй прыведзена частка выкарыстоўваных ключавых слоў у SPARQL запытах, поўны пералік даступны ў афіцыйнай дакументацыі.
PREFIX — служыць для скарачэння URI.
OPTIONAL — пазначае неабавязковы шаблон.
GRAPH — ужывае шаблон да найменных графаў.
DISTINCT — забяспечвае унікальнасць рашэнняў у адказе на запыт.
LIMIT — задае максімальную колькасць выводных вынікаў.
OFFSET — апускае ў выніку першыя n рашэнняў.
ORDER BY — дазваляе адсартаваць вынік па ўзрастанні (ASC()) або па змяншэнні (DESC())[7]. .
Параўнанне моў запытаў да RDF
[правіць | правіць зыходнік]Версіі
[правіць | правіць зыходнік]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 Асноўныя Федэратыўныя запыты[8].
Прыклад
[правіць | правіць зыходнік]Іншы прыклад запытаў 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. Кропка доступу дазваляе карыстачу рабіць запыты да базы ведаў. Сервер апрацоўвае запыт і вяртае адказ у некаторым, звычайна машыначытальным, фармаце. Такім чынам, кропкі доступу SPARQL у першую чаргу з’яўляюцца API да баз ведаў, а прадстаўленне вынікаў павінна быць рэалізавана праграмным забеспячэннем выклікальнага боку[9].
Адрозніваюць два выглядs кропак доступу: агульнага прызначэння і лакальныя.
Пункты доступу агульнага прызначэння могуць рабіць запыты па любых названых RDF-дакументах, якія знаходзяцца ў Сетцы. А лакальныя кропкі доступу здольныя атрымліваць даныя толькі ад аднаго рэсурса.
Прыклады
[правіць | правіць зыходнік]Аўтаматычнае выкананне запытаў
[правіць | правіць зыходнік]На дадзены момант для шэрагу моў праграмавання існуе магчымасць выклікаць SPARQL-запыты[10], існуюць прылады, якія дазваляюць падлучаць і ў паўаўтаматычным рэжыме будаваць SPARQL-запыты для кропкі доступу SPARQL, напрыклад ViziQuer[11].
Крыніцы
[правіць | правіць зыходнік]- ↑ Semantic Web Activity News (англ.)(недаступная спасылка). Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 10 чэрвеня 2011.
- ↑ W3C Semantic Web Activity Publications (англ.)(недаступная спасылка). W3C. Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 23 лістапада 2009.
- ↑ Berners-Lee looks for Web's big leap (англ.)(недаступная спасылка). Архівавана з першакрыніцы 30 верасня 2007. Праверана 10 чэрвеня 2011.
- ↑ Tim Berners-Lee. Linked Data. Design Issues. (англ.)(недаступная спасылка). Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 14 чэрвеня 2011.
- ↑ Structure of a SPARQL Query (англ.)(недаступная спасылка). Архівавана з першакрыніцы 11 лютага 2012. Праверана 10 чэрвеня 2011.
- ↑ {{{загаловак}}}. — 1998. Архівавана з першакрыніцы 12 жніўня 2011.
- ↑ SPARQL Query Language for RDF (англ.)(недаступная спасылка). Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 28 чэрвеня 2011.
- ↑ SPARQL by example (англ.)(недаступная спасылка). Архівавана з першакрыніцы 11 лютага 2012. Праверана 28 чэрвеня 2011.
- ↑ SPARQL-endpoint(недаступная спасылка). Архівавана з першакрыніцы 7 ліпеня 2011. Праверана 24 чэрвеня 2011.
- ↑ SPARQL Implementation Coverage Report (англ.)(недаступная спасылка). Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 23 лістапада 2009.
- ↑ ViziQuer (англ.)(недаступная спасылка). Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 10 чэрвеня 2011.
Спасылкі
[правіць | правіць зыходнік]- SPARQL Query Language for RDF (англ.) — спецыфікацыя мовы запытаў SPARQL
- Semantic Web Activity News (англ.) — Навіны семантычнага павуціння
- Berners-Lee looks for Web’s big leap (англ.) — інтэрв’ю Ціма Бернерса-Лі
- Structure of a SPARQL Query — Структура SPARQL запыту
- SPARQL Protocol for RDF (англ.) — спецыфікацыя пратакола SPARQL
- Мова запытаў SPARQL для RDF
- SPARQL Working Group Wiki (англ.)
- RDF Query Survey (англ.)
- XML.com: Introducing SPARQL: Querying the Semantic Web (англ.)
- RDF Query and Rule languages Use Cases and Examples survey Архівавана 6 сакавіка 2025. (англ.)
- SPARQL — мова запытаў да RDF
- SPARQL Query Language for RDF (англ.)