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] .
Översikt : http://www.w3.org/standards/techs/sparql
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.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 ..
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.
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] .
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] .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/".
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.
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] .
![]() |
---|
Fråga språk | |
---|---|
World Wide Web Consortium (W3C) | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Produkter och standarder |
| ||||||||||||||
Organisationer |
| ||||||||||||||
PÅ |
| ||||||||||||||
Konferenser |
|
semantisk webb | |
---|---|
Grunderna | |
Underavsnitt |
|
Ansökningar |
|
Relaterade ämnen | |
Standarder |
|