SPARQL
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.[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. A 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 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
[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]- ↑ Jim Rapoza (2006. május 2.). "SPARQL Will Make the Web Shine". eWeek. Hozzáférés: 2007. január 17..[halott link]
- ↑ Segaran, Toby; Evans, Colin; Taylor, Jamie (2009). Programming the Semantic Web (angol nyelven). O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. 84. o. ISBN 978-0-596-15381-6.
- ↑ "W3C Semantic Web Activity News - SPARQL is a Recommendation". W3.org. 2008. január 15. 2008. január 20. dátummal az eredeti címről archiválva. Hozzáférés: 2009. október 1..
{{cite web}}: Unknown parameter|archívdátum=ignored (súgó); Unknown parameter|archívurl=ignored (súgó) - ↑ "XML and Semantic Web W3C Standards Timeline" (PDF). 2012. február 4. 2013. április 24. dátummal az eredeti (PDF) címről archiválva. Hozzáférés: 2012. május 20..
{{cite web}}: Unknown parameter|archívdátum=ignored (súgó); Unknown parameter|archívurl=ignored (súgó) - ↑ "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. 2009. szeptember 28. dátummal az eredeti címről archiválva. Hozzáférés: 2009. október 1..
- ↑ Reuters (2006. május 22.). "Berners-Lee looks for Web's big leap". zdnet.co.uk. 2007. szeptember 30. dátummal az eredeti címről archiválva. Hozzáférés: 2007. január 17..
{{cite news}}:|author=has generic name (súgó) - ↑ "ViziQuer a tool to construct SPARQL queries automaticly". lumii.lv. Hozzáférés: 2011. február 25..
{{cite web}}: Cite has empty unknown parameter:|1=(súgó) - ↑ "D2R Server". 2012-02-26 dátummal az eredeti címről archiválva. Hozzáférés: 2012-02-4.
{{cite web}}: Check date values in:|accessdate=(súgó); Cite has empty unknown parameter:|3=(súgó); Unknown parameter|archívdátum=ignored (súgó); Unknown parameter|archívurl=ignored (súgó) - ↑ "SPARQL2XQuery Framework". 2013. május 12. dátummal az eredeti címről archiválva. Hozzáférés: 2012. február 4..
{{cite web}}: Cite has empty unknown parameter:|3=(súgó) - ↑ "NoSQL Graph Store". 2012. április 27.[halott link]
További információk
[szerkesztés | forrásszöveg szerkesztése]- 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
[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. 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.