SPARQL

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 4 augusti 2020; kontroller kräver 5 redigeringar .

SPARQL ( rekursiv akronym för SPARQL  Protocol and RDF Query Language ) är ett frågespråk för data som representeras av RDF- modellen , såväl som ett protokoll för att överföra och svara på dessa frågor. SPARQL är en rekommendation från W3C [1] och en av de semantiska webbteknologierna [2] [3] . Att tillhandahålla SPARQL-endpoints ( engelska  SPARQL-endpoint ) är en rekommenderad praxis vid publicering av data på World Wide Web [4] .

W3C-standarder

Översikt : http://www.w3.org/standards/techs/sparql 

Allmänt frågeschema

Liksom i SQL deklarerar SPARQL inte bara läsning utan även datamanipulation. SPARQL Update-standarden beskriver kommandona INSERT och DELETE för att lägga till och ta bort tripletter i lagring. Men båda dessa kommandon fungerar på någon sorts val, så grunden för SPARQL är kommandot SELECT.

Det allmänna schemat för en SPARQL SELECT-fråga ser ut så här [5] :

PREFIX # prefixdeklarationer används för att specificera URI-förkortningarna # som används i begäran. FRÅN ... # frågekällor - bestäm vilka RDF-grafer som efterfrågas. SELECT ... # resultatkomposition - definierar de returnerade dataelementen. WHERE {...} # frågemall – definierar vad som ska frågas från datamängden. ORDER BY ... # frågemodifierare - begränsa, ordna, transformera frågeresultat.

Fördelar

SPARQL tillåter användare att skriva globalt unika frågor. Till exempel returnerar följande fråga namn och e-postadresser för alla personer i världen:

PREFIX foaf : <http://xmlns.com/foaf/0.1/> VÄLJ ?namn ?e-post WHERE { ?person a foaf : Person . ? personfoaf : namn ? namn . ? personfoaf : mbox ?e-post . }

De givna parametrarna används för att beskriva personen som ingår i FOAF . Detta illustrerar visionen om den semantiska webben som en enda enorm databas [6] . Varje identifierare i SPARQL, en URI, är globalt unik, till skillnad från "e-post" eller "e-post" som vanligtvis används i SQL.

Den här frågan kan distribueras över flera SPARQL-slutpunkter, olika maskiner och insamlingen av resultat görs med en procedur som kallas federerad sökning ..

Begäran formulär

SPARQL-språket definierar fyra olika frågealternativ för olika ändamål:

VÄLJ fråga

Hämtar råvärden från en SPARQL-åtkomstpunkt och returnerar resultaten i tabellformat.

KONSTRUKT fråga

Extraherar information från en SPARQL-åtkomstpunkt i RDF -format och konverterar resultaten till en specifik form.

FRÅGA begäran

Genererar en sann/falsk fråga.

BESKRIV begäran

Får beskrivningen av RDF-resursen. Implementeringen av beteendet hos DESCRIBE-frågor är upp till utvecklaren av SPARQL-åtkomstpunkten.

Var och en av dessa begärandeformulär innehåller ett WHERE-block för att specificera begränsningar, även om detta block är valfritt i fallet med en DESCRIBE-förfrågan.

Nyckelord

Nedan är en del av nyckelorden som används i SPARQL-frågor, en komplett lista finns tillgänglig i den officiella dokumentationen .

PREFIX  - Används för att förkorta URI.

VALFRITT  - indikerar ett valfritt mönster.

GRAPH  - tillämpar en mall på namngivna grafer.

DISTINCT  - säkerställer att lösningarna är unika i svaret på förfrågan.

LIMIT  - ställer in det maximala antalet utdataresultat.

OFFSET  - Utelämnar de första n lösningarna i resultatet.

ORDER BY  - låter dig sortera resultatet i stigande ( ASC()) eller fallande ( DESC()) [7] .

Jämförelse av RDF-frågespråk

  • DQL-  baserat på XML , frågor och resultat uttrycks i DAML+OIL ;
  • N3QL-  baserad på Notation 3 ;
  • R-ENHET ;
  • RDFQ  - baserat på XML;
  • RDQ  - liknande SQL ;
  • RDQL  - liknande SQL;
  • SeRQL  - liknande SQL, nära RDQL;
  • Versa  - kompakt syntax (inte SQL), exklusivt för 4Suite ( Python-språk ).

Versioner

SPARQL 1.0 blev standarden i januari 2008 och inkluderade:

SPARQL 1.0 frågespråk; SPARQL 1.0-protokoll; SPARQL XML-resultatformat.

SPARQL 1.1 är den nuvarande versionen och inkluderar:

SPARQL frågespråk och protokoll uppdaterat till 1.1; SPARQL 1.1-uppdateringar; SPARQL 1.1 HTTP-protokoll för hantering av RDF-grafer; SPARQL 1.1 Tjänstebeskrivningar; SPARQL 1.1 Innehåll; SPARQL 1.1 Core Federated Queries [8] .

Exempel

Ett annat exempel på SPARQL-frågor: "Hitta releasedatum för alla säsonger av The Sopranos ":

PREFIX dbpo : <nowiki><http://dbpedia.org/ontology/></nowiki> VÄLJ * VAR { ?e dbpo : series <http://dbpedia.org/resource/The_Sopranos> . ?e dbpo : releaseDate ?date . ?e dbpo : avsnittsnummer ?nummer . ?e dbpo : säsongsnummer ?säsong . } BESTÄLL EFTER DESC ( ?datum )

Variabler betecknas med prefixet "?" eller "$".

För att göra frågor kortfattade tillåter SPARQL att prefix och bas- URI definieras på ett sköldpaddsliknande sätt . I den här frågan står prefixet "dbpo" för "http://dbpedia.org/ontology/".

SPARQL Access Point

En SPARQL Access Point är en tjänst som stöder SPARQL Query Protocol. Åtkomstpunkten låter användaren fråga kunskapsbasen. Servern behandlar begäran och returnerar ett svar i något, vanligtvis maskinläsbart, format. Således är SPARQL-åtkomstpunkter i första hand API :er till kunskapsbaser, och presentationen av resultaten måste implementeras av anroparprogramvaran [9] .

Det finns två typer av åtkomstpunkter: allmänna och lokala .

Åtkomstpunkter för allmänna ändamål kan fråga efter alla specificerade RDF-dokument som finns på webben. Och lokala åtkomstpunkter kan ta emot data från endast en resurs.

Exempel

Automatisk sökexekvering

För tillfället är det för ett antal programmeringsspråk möjligt att anropa SPARQL-frågor [10] , det finns verktyg som låter dig ansluta och halvautomatiskt bygga SPARQL-frågor för en SPARQL-åtkomstpunkt, till exempel ViziQuer [11] .

Anteckningar

  1. ↑ Nyheter om semantiska webbaktiviteter  (engelska)  (nedlänk) . — Semantiska webbnyheter. Hämtad 10 juni 2011. Arkiverad från originalet 2 juni 2012.
  2. W3C Semantic Web Activity Publications  (engelska)  (nedlänk) . W3C . — Lista över W3C-publikationer om Semantic Web Project. Hämtad 23 november 2009. Arkiverad från originalet 2 juni 2012.
  3. Berners-Lee letar efter webbens stora språng  (eng.)  (länk ej tillgänglig) . — Intervju med Tim Berners-Lee. Hämtad 10 juni 2011. Arkiverad från originalet 30 september 2007.
  4. Tim Berners-Lee. Länkad data. Designfrågor.  (engelska)  (otillgänglig länk) . — Anmärkningar om publicering av data på den semantiska webben. Hämtad 14 juni 2011. Arkiverad från originalet 2 juni 2012.
  5. Struktur för en SPARQL-fråga  (eng.)  (länk ej tillgänglig) . - Strukturen för SPARQL-frågan. Hämtad 10 juni 2011. Arkiverad från originalet 11 februari 2012.
  6. Tim Berners-Lee. Semantisk webbvägkarta . - 1998. Arkiverad den 12 augusti 2011.
  7. SPARQL frågespråk för RDF  (  otillgänglig länk) . — SPARQL frågespråk för RDF. Hämtad 28 juni 2011. Arkiverad från originalet 2 juni 2012.
  8. SPARQL genom exempel  (engelska)  (nedlänk) . SPARQL som exempel. Hämtad 28 juni 2011. Arkiverad från originalet 11 februari 2012.
  9. SPARQL-slutpunkt (nedlänk) . Hämtad 24 juni 2011. Arkiverad från originalet 7 juli 2011. 
  10. SPARQL  - implementeringstäckningsrapport _  — En översikt över SPARQL-implementeringarnas fullständighet. Hämtad 23 november 2009. Arkiverad från originalet 2 juni 2012.
  11. ViziQuer  (engelska)  (otillgänglig länk) . — Verktyg för strukturerad semantisk datahämtning. Hämtad 10 juni 2011. Arkiverad från originalet 2 juni 2012.

Länkar