SPARQL
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
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
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:
#defaultView:Map
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?capital ?capitalLabel ?coor WHERE {
?capital wdt:P31 wd:Q5119.
?capital ?range wd:Q46.
?capital wdt:P625 ?coor.
?capital rdfs:label ?capitalLabel.
FILTER((LANG(?capitalLabel)) = "hu")
}
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[11]
Jegyzetek
- ↑ Jim Rapoza: SPARQL Will Make the Web Shine. eWeek, 2006. május 2. (Hozzáférés: 2007. január 17.)
- ↑ Programming the Semantic Web (angol nyelven). O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472, 84. o. (2009). ISBN 978-0-596-15381-6
- ↑ W3C Semantic Web Activity News - SPARQL is a Recommendation. W3.org, 2008. január 15. (Hozzáférés: 2009. október 1.)
- ↑ XML and Semantic Web W3C Standards Timeline, 2012. február 4.
- ↑ XML and Web Services In The News. xml.org, 2006. október 6. (Hozzáférés: 2007. január 17.)
- ↑ SparqlImplementations - ESW Wiki. Esw.w3.org. (Hozzáférés: 2009. október 1.)
- ↑ Reuters. „Berners-Lee looks for Web's big leap”, zdnet.co.uk, 2006. május 22.. [2007. szeptember 30-i dátummal az eredetiből archiválva] (Hozzáférés: 2007. január 17.)
- ↑ ViziQuer a tool to construct SPARQL queries automaticly. lumii.lv. (Hozzáférés: 2011. február 25.)
- ↑ D2R Server. (Hozzáférés: 2012. február 4.)
- ↑ SPARQL2XQuery Framework. (Hozzáférés: 2012. február 4.)
- ↑ NoSQL Graph Store, 2012. április 27.[halott link]
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
- 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. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.