A SPARQL (SPARQL Protocol and RDF Query Language) olyan RDF-lekérdezőnyelv, melynek segítségével különféle adatbázisokhoz adhatunk meg lekérdezéseket. A SPARQL segítségével Resource Description Framework formátumban tárolt adatokat módosíthatunk, és nyerhetünk ki az adatbázisból. A World Wide Web Consortium RDF Data Access Working Group (DAWG) csoportja által nyílt szoftver szabvánnyá vált, és azóta a szemantikus adatbázisok kezelésének egyik legfontosabb technológiájaként tartják számon. 2008. január 15-én a SPARQL 1.0 hivatalos W3C ajánlássá vált.

A SPARQL lekérdezések triple mintákból, konjunkciókból, diszjunkciókból és opcionális mintákból állnak. Implementációk többféle programozási nyelvre is léteznek. Sir Tim Berners-Lee egy 2006 májusában adott interjújában kijelentette, hogy a SPARQL használata hatalmas változásokat fog hozni az érintett programozási területek fejlődésében.

Számos eszköz létezik, melyek segítségével megkönnyíthetjük, illetve félig automatizálhatjuk a SPARQL lekérdezések létrehozását, ezek közül az egyik legismertebb a ViziQuer. Továbbá olyan eszközök is rendelkezésre állnak, melyek SPARQL lekérdezéseket más lekérdező nyelvekre, pl SQL-re, vagy XQuery-re fordítanak le.

Előnyök

A SPARQL használatával a felhasználó egyértelmű lekérdezéseket adhat meg. Például az alábbi lekérdezés megadja az adatbázisban szereplő összes személy nevét és e-mail címét: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?email WHERE { ?person a foaf:Person. ?person foaf:name ?name. ?person foaf:mbox ?email. }

Ez a lekérdezés szétosztható több SPARQL végponthoz (szolgáltatások, melyek fogadják SPARQL lekérdezéseket és eredményt adnak vissza), kiszámolja és összegyűjti az eredményt. A eljárást federációs lekérdezésnek hívják.

A lekérdezések típusai

A SPARQL nyelv négy különböző célra használható lekérdezés típust specifikál. SELECT query SPARQL végpontokból kinyerhető nyers adatok elérésére szolgál. Az eredményeket táblázatos formában adja meg. CONSTRUCT query SPARQL végpontokból kinyerhető adatok elérésére, és a kapott eredmények érvényes RDF formátumba történő átalakítására használjuk. ASK query Egyszerű Igaz/Hamis eredményt ad meg egy SPARQL végponton végrehajtott lekérdezéshez. DESCRIBE query Egy SPARQL végponthoz tartozó RDF diagramot állít elő, amely az egyes végpontok hasznosságát adja meg a tartalmazott információt tekintve. A fenti lekérdezéseket egy WHERE blokkban adhatjuk meg, a DESCRIBE query esetében a WHERE használata opcionális.

Példa A példaként megadott SPARQL lekérdezés a "Melyek Európa fővárosai?" kérdést modellezi:

A query a Wikidata SPARQL végpontját használja. Természetesen csak azokat a fővárosokat találja meg amelyek predikátumai között szerepel Európa mint kontinens és az utolsó sorban megadott filter szerint a Wikidatában létezik az adott főváros magyar nyelvű megnevezése.

Az egyes változókat a "?" vagy a "$" perfixekkel jelöljük. A program ?capital és a ?coor változókhoz tartozó értékeket adja vissza. Ebben az esetben a SPARQL feldolgozó olyan eredményhalmazokat fog keresni, amelyek megfelelnek a megadott négy mintának.

A SPARQL lekérdezést feldolgozó program a állítások (hármasok) halmazán megkeresi azokat az állításokat, amelyek illeszkednek erre a négy mintára, összekötve a lekérdezésben a változókat minden egyes állítás megfelelő részével. Fontos megjegyezni, hogy itt "tulajdonság orientáltságról" beszélünk (az osztály illeszkedések kizárólag az osztály-attribútumokon v. tulajdonságokon keresztül kapcsolódnak össze - lásd a Duck typing.

Azért, hogy a lekérdezések elég tömörek legyenek SPARQL megengedi a prefixek és alap URIk definiálását hasonló stílusban, mint a tuple-ok.

SPARQL/Update

A SPARUL, vagy SPARQL/Update, a SPARQL egy kiterjesztése, amely tiple tárolóban tárolt RDF adatokhoz biztosítja a hozzáadás, módosítás, és törlés műveleteket.

SPARQL implementációk

Ez a lista bemutatja a triplestore-okat, APIkat és egyéb tárolókat, amelyek már implementálták a SPARQL lekérdező nyelvet.

4store AllegroGraph ARC2 ARQ BigData BrightstarDB Corese D2R Server Dydra Hercules Intellidimension Semantics Platform 2.0 Jena KAON2 Knowledge Explorer Mulgara OntoBroker Ontotext OWLIM Open Anzo OpenLink Virtuoso Oracle DB Enterprise Ed. Parliament Pellet RAP RDF API for PHP RDF-3X RDF::Query Redland / Redstore SPARQL Engine SemWeb.NET Sesame 2 Stardog StrixDB Twinql Web Query IBM DB2

Jegyzetek

További információk W3C SPARQL Working Group, was RDF Data Access Working Group SPARQL Query language SPARQL Protocol SPARQL Query XML Results Format SPARQL Tutorial SPARQL Examples

Fordítás

Kategória:World Wide Web Consortium sztenderdek Kategória:Lekérdezőnyelvek Kategória:Deklaratív programozási nyelvek