Sparql

A Wikipédiából, a szabad enciklopédiából

A SPARQL (SPARQL Protocol and RDF Query Language) egy 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.[1][2] 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[3][4].

A SPARQL lekérdezések triple mintákból, konjunkciókból, diszjunkciókból és opcionális mintákból állnak.[5] Implementációk többféle programozási nyelvre is léteznek.[6] 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.[7]


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.[8] 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.[9][10]

Előnyök[szerkesztés | forrásszöveg szerkesztése]

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, az eljárást federációs lekérdezésnek hívják.

A lekérdezések típusai[szerkesztés | forrásszöveg szerkesztése]

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[szerkesztés | forrásszöveg szerkesztése]

A példaként megadott SPARQL lekérdezés a "Melyek Afrika összes fővárosai?" kérdést modellezi:

PREFIX abc: <http://example.com/exampleOntology#>
SELECT ?capital ?country
WHERE {
  ?x abc:cityname ?capital ;
     abc:isCapitalOf ?y .
  ?y abc:countryname ?country ;
     abc:isInContinent abc:Africa .
}

Az egyes változókat a "?" vagy a "$" perfixekkel jelöljük. A program ?capital és a ?country 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és feldolgozó keresni triple-ök egy halmazán, amelyek illeszkednek erre a négy triple mintára, összekötve a változókat a lekérdezésben a megfelelő részéhez mindegyik triple-nek. 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 igazíthatók egymásra - 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óan stílusban, mint a tuple-ok. Ebben a lekérdezésben az "abc" prefix jelenti “http://example.com/exampleOntology#”-t.

SPARQL/Update[szerkesztés | forrásszöveg szerkesztése]

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[szerkesztés | forrásszöveg szerkesztése]

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[11]

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. Jim Rapoza: SPARQL Will Make the Web Shine. eWeek, 2006. május 2. (Hozzáférés: 2007. január 17.)
  2. Programming the Semantic Web (english nyelven). O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472 (2009). ISBN 978-0-596-15381-6 
  3. W3C Semantic Web Activity News - SPARQL is a Recommendation. W3.org, 2008. január 15. (Hozzáférés: 2009. október 1.)
  4. XML and Semantic Web W3C Standards Timeline, 2012. február 4
  5. XML and Web Services In The News. xml.org, 2006. október 6. (Hozzáférés: 2007. január 17.)
  6. SparqlImplementations - ESW Wiki. Esw.w3.org. (Hozzáférés: 2009. október 1.)
  7. Reuters. „Berners-Lee looks for Web's big leap”, zdnet.co.uk, 2006. május 22. (Hozzáférés ideje: 2007. január 17.) 
  8. ViziQuer a tool to construct SPARQL queries automaticly. lumii.lv. (Hozzáférés: 2011. február 25.)
  9. D2R Server. (Hozzáférés: 2012. február 4.)
  10. SPARQL2XQuery Framework. (Hozzáférés: 2012. február 4.)
  11. NoSQL Graph Store, 2012. április 27

Külső hivatkozások[szerkesztés | forrásszöveg szerkesztése]

Fordítás[szerkesztés | forrásszöveg szerkesztése]

  • Ez a szócikk részben vagy egészben a SPARQL című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel.