SPARQL ( acronim recursiv pentru SPARQL Protocol și RDF Query Language ) este un limbaj de interogare pentru datele reprezentate de modelul RDF , precum și un protocol pentru transmiterea și răspunsul la aceste interogări. SPARQL este o recomandare a W3C [1] și una dintre tehnologiile Web semantic [2] [3] . Furnizarea punctelor finale SPARQL ( în engleză SPARQL-endpoint ) este o practică recomandată atunci când se publică date pe World Wide Web [4] .
Prezentare generală : http://www.w3.org/standards/techs/sparql
Ca și în SQL , SPARQL declară nu numai citirea, ci și manipularea datelor. Standardul SPARQL Update descrie comenzile INSERT și DELETE pentru adăugarea și eliminarea tripleților din stocare. Cu toate acestea, ambele comenzi operează pe un fel de selecție, așa că baza SPARQL este comanda SELECT.
Schema generală a unei interogări SPARQL SELECT arată astfel [5] :
Declarațiile de prefix PREFIX # sunt folosite pentru a specifica abrevierile URI # folosite în cerere. FROM ... # surse de interogare - determinați ce grafice RDF sunt solicitate. SELECT ... # compoziție rezultat - definește elementele de date returnate. WHERE {...} # șablon de interogare - definește ce să interogă din setul de date. ORDER BY ... # modificatori de interogare - restricționați, ordonați, transformați rezultatele interogării.SPARQL permite utilizatorilor să scrie interogări unice la nivel global. De exemplu, următoarea interogare returnează numele și adresele de e-mail ale fiecărei persoane din lume:
PREFIX foaf : <http://xmlns.com/foaf/0.1/> SELECTAȚI ?nume ?email WHERE { ?person a foaf : Person . personfoaf : nume ? nume . ? personfoaf : mbox ? e - mail . }Parametrii dați sunt utilizați pentru a descrie persoana inclusă în FOAF . Aceasta ilustrează viziunea Web-ului Semantic ca o singură bază de date uriașă [6] . Fiecare identificator din SPARQL, un URI, este unic la nivel global, spre deosebire de „e-mail” sau „e-mail”, așa cum sunt utilizate în mod obișnuit în SQL.
Această interogare poate fi distribuită în mai multe puncte finale SPARQL, diferite mașini, iar colectarea rezultatelor se face printr-o procedură cunoscută sub numele de căutare federală ..
Limbajul SPARQL definește patru opțiuni de interogare diferite pentru scopuri diferite:
interogare SELECT
Preia valorile brute dintr-un punct de acces SPARQL și returnează rezultatele într-un format de tabel.interogare CONSTRUCT
Extrage informații dintr-un punct de acces SPARQL în format RDF și convertește rezultatele într-o formă specifică.ASK cerere
Generează o interogare adevărat/fals.DESCRIERE cererea
Obține descrierea resursei RDF. Implementarea comportamentului interogărilor DESCRIBE este la latitudinea dezvoltatorului punctului de acces SPARQL.Fiecare dintre aceste formulare de cerere conține un bloc WHERE pentru a specifica constrângeri, deși acest bloc este opțional în cazul unei cereri DESCRIBE.
Mai jos este o parte a cuvintelor cheie utilizate în interogările SPARQL, o listă completă este disponibilă în documentația oficială .
PREFIX - Folosit pentru a scurta URI.
OPȚIONAL - indică un model opțional.
GRAPH - aplică un șablon graficelor cu nume.
DISTINCT - asigură unicitatea soluțiilor în răspunsul la cerere.
LIMIT - setează numărul maxim de rezultate de ieșire.
OFFSET - Omite primele n soluții din rezultat.
ORDER BY - vă permite să sortați rezultatul crescător ( ASC()) sau descrescător ( DESC()) [7] .
SPARQL 1.0 a devenit standard în ianuarie 2008 și a inclus:
Limbajul de interogare SPARQL 1.0; Protocol SPARQL 1.0; Format de rezultat XML SPARQL.SPARQL 1.1 este versiunea actuală și include:
Limbajul de interogare SPARQL și protocolul actualizat la 1.1; Actualizări SPARQL 1.1; Protocolul HTTP SPARQL 1.1 pentru gestionarea graficelor RDF; Descrieri de servicii SPARQL 1.1; SPARQL 1.1 Implicații; SPARQL 1.1 Core Federated Interogări [8] .Un alt exemplu de interogări SPARQL: „Găsiți datele de lansare pentru toate sezoanele The Sopranos ”:
PREFIX dbpo : <nowiki><http://dbpedia.org/ontology/></nowiki> SELECT * WHERE { ?e dbpo : seria <http://dbpedia.org/resource/The_Sopranos> . ?e dbpo : releaseDate ?date . ?e dbpo : episodeNumber ?număr . ?e dbpo : seasonNumber ?season . } ORDER BY DESC ( ?data )Variabilele sunt notate cu prefixul "?" sau „$”.
Pentru a face interogările concise, SPARQL permite ca prefixele și URI -urile de bază să fie definite într-un mod asemănător Turtle . În această interogare, prefixul „dbpo” înseamnă „http://dbpedia.org/ontology/”.
Un punct de acces SPARQL este un serviciu care acceptă protocolul de interogare SPARQL. Punctul de acces permite utilizatorului să interogheze baza de cunoștințe. Serverul procesează cererea și returnează un răspuns într-un anumit format, de obicei citibil de mașină. Astfel, punctele de acces SPARQL sunt în primul rând API -uri la bazele de cunoștințe, iar prezentarea rezultatelor trebuie implementată de software-ul apelant [9] .
Există două tipuri de puncte de acces: de uz general și local .
Punctele de acces de uz general pot interoga orice document RDF specificat care se află pe Web. Iar punctele de acces locale pot primi date de la o singură resursă.
În acest moment, pentru o serie de limbaje de programare, este posibil să apelați interogări SPARQL [10] , există instrumente care vă permit să conectați și să construiți semi-automat interogări SPARQL pentru un punct de acces SPARQL, de exemplu, ViziQuer [11] .
![]() |
---|
Limbi de interogare | |
---|---|
Consorțiul World Wide Web (W3C) | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Produse și standarde |
| ||||||||||||||
Organizații |
| ||||||||||||||
PE |
| ||||||||||||||
Conferințe |
|
web semantic | |
---|---|
Bazele | |
Subsecțiuni |
|
Aplicații |
|
subiecte asemănătoare | |
Standarde |
|