SPARQL

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 4 august 2020; verificările necesită 5 modificări .

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] .

Standarde W3C

Prezentare generală : http://www.w3.org/standards/techs/sparql 

Schema generală de interogare

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.

Beneficii

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ă ..

Formulare de solicitare

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.

Cuvinte cheie

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] .

Comparația limbilor de interogare RDF

  • DQL  - bazat pe XML , interogările și rezultatele sunt exprimate în DAML+OIL ;
  • N3QL  - bazat pe Notația 3 ;
  • R-DEVICE ;
  • RDFQ  - bazat pe XML;
  • RDQ  - similar cu SQL ;
  • RDQL  - similar cu SQL;
  • SeRQL  - similar cu SQL, apropiat de RDQL;
  • Versa  - sintaxă compactă (nu SQL), exclusiv pentru 4Suite ( limbaj Python ).

Versiuni

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] .

Exemplu

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/”.

Punct de acces SPARQL

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ă.

Exemple

Execuție automată a interogării

Î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] .

Note

  1. Semantic Web Activity News  (engleză)  (downlink) . — Știri web semantic. Consultat la 10 iunie 2011. Arhivat din original pe 2 iunie 2012.
  2. W3C Semantic Web Activity Publications  (engleză)  (downlink) . W3C . — Lista publicațiilor W3C privind proiectul web semantic. Consultat la 23 noiembrie 2009. Arhivat din original la 2 iunie 2012.
  3. Berners-Lee caută marele salt al Web-ului  (ing.)  (link indisponibil) . — Interviu Tim Berners-Lee. Consultat la 10 iunie 2011. Arhivat din original la 30 septembrie 2007.
  4. Tim Berners-Lee. Date legate. Probleme de proiectare.  (engleză)  (link inaccesibil) . — Note privind publicarea datelor pe Web-ul semantic. Consultat la 14 iunie 2011. Arhivat din original pe 2 iunie 2012.
  5. Structura unei interogări SPARQL  (ing.)  (link nu este disponibil) . - Structura interogării SPARQL. Preluat la 10 iunie 2011. Arhivat din original la 11 februarie 2012.
  6. Tim Berners-Lee. Foaia de parcurs web semantic . - 1998. Arhivat la 12 august 2011.
  7. SPARQL Query Language for RDF  (  link inaccesibil) . — SPARQL Query Language pentru RDF. Consultat la 28 iunie 2011. Arhivat din original pe 2 iunie 2012.
  8. SPARQL prin exemplu  (engleză)  (downlink) . SPARQL prin exemplu. Consultat la 28 iunie 2011. Arhivat din original pe 11 februarie 2012.
  9. SPARQL-endpoint (link descendent) . Consultat la 24 iunie 2011. Arhivat din original pe 7 iulie 2011. 
  10. Raport  de acoperire a implementării SPARQL  — O privire de ansamblu asupra caracterului complet al implementărilor SPARQL. Consultat la 23 noiembrie 2009. Arhivat din original la 2 iunie 2012.
  11. ViziQuer  (engleză)  (link inaccesibil) . — Utilitate pentru regăsirea datelor semantice structurate. Consultat la 10 iunie 2011. Arhivat din original pe 2 iunie 2012.

Link -uri