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

Агульная схема запыту

Як і ў 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

  • 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 Асноўныя Федэратыўныя запыты[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].

Крыніцы

  1. Semantic Web Activity News (англ.)(недаступная спасылка). Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 10 чэрвеня 2011.
  2. W3C Semantic Web Activity Publications (англ.)(недаступная спасылка). W3C. Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 23 лістапада 2009.
  3. Berners-Lee looks for Web's big leap (англ.)(недаступная спасылка). Архівавана з першакрыніцы 30 верасня 2007. Праверана 10 чэрвеня 2011.
  4. Tim Berners-Lee. Linked Data. Design Issues. (англ.)(недаступная спасылка). Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 14 чэрвеня 2011.
  5. Structure of a SPARQL Query (англ.)(недаступная спасылка). Архівавана з першакрыніцы 11 лютага 2012. Праверана 10 чэрвеня 2011.
  6. {{{загаловак}}}. — 1998. Архівавана з першакрыніцы 12 жніўня 2011.
  7. SPARQL Query Language for RDF (англ.)(недаступная спасылка). Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 28 чэрвеня 2011.
  8. SPARQL by example (англ.)(недаступная спасылка). Архівавана з першакрыніцы 11 лютага 2012. Праверана 28 чэрвеня 2011.
  9. SPARQL-endpoint(недаступная спасылка). Архівавана з першакрыніцы 7 ліпеня 2011. Праверана 24 чэрвеня 2011.
  10. SPARQL Implementation Coverage Report (англ.)(недаступная спасылка). Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 23 лістапада 2009.
  11. ViziQuer (англ.)(недаступная спасылка). Архівавана з першакрыніцы 2 чэрвеня 2012. Праверана 10 чэрвеня 2011.

Спасылкі

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.