9 RDF-kyselykielten perusteet: SPARQL

Samankaltaiset tiedostot
9 RDF-kyselykielten perusteet: SPARQL

SPARQL(SPARQL Protocol and RDF Query Language)

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

SPARQL-workshop. Sini Pessala Kirjastoverkkopäivät KANSALLISKIRJASTO - Kirjastoverkkopalvelut

Paikkatiedot ja Web-standardit

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

SPARQL. Timo Pitkänen. Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto

Luento 12: XML ja metatieto

standardit (W3C, ISO) Semanttisen laskennan tutkimusryhmä Teknillinen korkeakoulu

è è è RDF-perusteet 7 RDF-perusteet

Hohde Consulting 2004

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto

12 Pari sanaa sovelluskehityksestä

RDF ja RDFS. 8 RDF ja RDFS

SELECT-lauseen perusmuoto

W3C-teknologiat ja yhteensopivuus

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

W3C, Web-teknologiat ja Semanttinen Web

Esimerkki uudelleenohjauksen teknisestä toteutuksesta

The OWL-S are not what they seem

W3C, Web-teknologiat ja XML

SÄHKE-hanke. Abstrakti mallintaminen Tietomallin (graafi) lukuohje

Rakenteisten dokumenttien jatkokurssi, syksy 2006

Java-kielen perusteita

Semanttisen webin käsikirja (luonnos)

Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen

9.16 XSLT ja nimiavaruudet (1/3): literaali oletusnimiavaruus

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

6 Semanttinen Web 101

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

CSE-A1200 Tietokannat

6 Semanttinen Web 101

W3C ja alueellinen standardointi

12 Case: "hajautettu kauppapaikka"

HELIA 1 (14) Outi Virkki Tiedonhallinta

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

6 Semanttinen Web 101

XQuery tietokannan kyselykielenä

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

XML johdanto, uusimmat standardit ja kehitys

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

Java-kielen perusteet

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

Media- ja kulttuuripalvelut. Eetu Mäkelä

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

10 Ohjelmoinnista Semanttisessa Webissä

3 Verkkosaavutettavuuden tekniset perusteet

Resource Description Framework (RDF) -konsepti. Lauri Antikainen

Paikannimirekisteri linkitettynä tietona

5 XML Query Language. Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

5 XML Query Language. Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

W3C ja Web-teknologiat

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Logiikkapohjainen lähestymistapa RDF-tietolähteen esittämiseksi. Tuomas Räsänen

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Java-kielen perusteet

SQL:N PERUSTEET MARKKU SUNI

XML-tietojenkäsittely

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

10 Nykyaikainen WWW-arkkitehtuuri

Internet jolla on merkitystä

Sosiaalihuollon asiakastiedon arkiston validointipalvelu. Käyttöohje

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Ehto- ja toistolauseet

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

7. Näytölle tulostaminen 7.1

13. Loogiset operaatiot 13.1

Web-teknologiat. XML-datan kysely Topi Sarkkinen

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Graafitietokannan visualisointi- ja hallintatyökalu

Makrojen mystinen maailma lyhyt oppimäärä

Kyselyn yleisrakenne:

XML ja Web Services update

Haskell ohjelmointikielen tyyppijärjestelmä

18. Abstraktit tietotyypit 18.1

W3C ja Web-teknologiat

W3C ja Web-teknologiat

StanForD-XML. Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto

Johdatus rakenteisiin dokumentteihin

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

SQL - STRUCTURED QUERY LANGUAGE

Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet. TIES341 Funktio-ohjelmointi 2 Kevät 2006

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

ITKP102 Ohjelmointi 1 (6 op)

JHS XXX Paikkatiedon yksilöivät tunnisteet Liite 2: Esimerkki tiedontuottajan URI-palvelun teknisestä toteutuksesta

Järjestelmäarkkitehtuuri (TK081702)

W3C: teknologia ja (tieto)yhteiskunta

Datatähti 2019 loppu

Tietokantojen suunnittelun perusteita. YYT-C3001 Ympäristötiedon hallinta Jussi Nikander, erikoistutkija, Luonnonvarakeskus

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Transkriptio:

9 RDF-kyselykielten perusteet: SPARQL Pelkkä yhteensopiva tietomalli ei sovellusten toteuttamiseen tietenkään riitä. RDFsovellusten yleiskäyttöisen perustan muodostavat erilaisten kyselyrajapinnat ja - prosessorit. Tilanne on vastaava kuin XML:n ja XQueryn tapauksessa. Seuraavassa tarkastelemme SPARQLkyselykieltä. SPARQL on melko yksinkertainen kyselykieli joka yhdistelee esim. N3:n (tai Turtlen) ja XQueryn piirteitä. Tätä kirjoittaessa SPARQL-työ on W3C:ssä vielä kesken (mutta alustavassa suositusvaiheessa) 173

9.1 Välisoitto Käytännön tiedonhallinnan sovelluksissa keskeiset pulmat liittyvät yleensä tiedon - saatavuuteen - esitystavan virheettömyyteen - sisällön oikeellisuuteen - aineiston täydellisyyteen ja ylläpitoon - jne. Nyt puhumme (taas) vain tekniikasta! 174

9.2 RDF ja kyselysovellukset Koska RDF voidaan jäsentää tietokannan tavoin, luonteva tapa rakentaa sovelluksia on taas abstrahoida RDF-data kyselyn (Query) kohteeksi Kyselykielet voidaan jakaa suunnilleen kolmeen luokkaan: - paljaan RDF-tietomallin varassa toimivat kyselyt (ei "tulkintaa") - RDF-skeemojen, OWLin, tms. neutraalin käsitemallin varassa toimivat kyselyt (sisäänrakennettu päättely ja notaatio esim. aliluokkien hallintaan) - kuten edellä, mutta lisäksi oletuksena sovelluskohtainen päättelymekanismi tms. (esim. aikaan tai paikkatietoihin sidottu päättely) Eri lähestymistapojen edut ovat melko ilmeisiä (kyselylausekkeiden ilmaisuvoima vs. kirjoitusasun pituus), samoin haitat (kyselyjen monimutkaisuus ja laskennan raskaus [erityisesti päättelyn osalta!]) Kyynisempi lukija voi miettiä: mihin XQuery riittäisikään jos olisi de facto normalisoitu RDF/XML-formaatti (vastaus: "no, päättely olisi hankalaa...") 175

9.3 RDQL, Jena & ARQ RDF-tietomallin perusteella on määritelty lukuisia kyselykieliä joiden perusteella W3C standardoi omaansa, nimellä SPARQL (SPARQL Protocol And RDF Query Language) Kukaties suosituin yksinkertainen RDF-kyselykieli on "perinteisesti" ollut RDQL (RDF Query Language) - hyvin yksinkertainen, paljaan RDF-tietomallin kyselykieli - toteutus esim. osana (Java-pohjaista) Jena -sovelluskehikkoa RDQL on "valmis", muttei "standardi", SPARQL taas on vasta kehitteillä Käytännössä tutustumme seuraavassa SPARQL-kyselykieleen koska: - se muodostunee de facto -standardiksi ("ja opimmepahan RDQL:ää") - saatavilla on jo välineitä ("RDQL-tuki laajenee SPARQL-tueksi") - esim. Jenan moduuli ARQ tukee jo SPARQL-kieltä ja helposti saatavilla 176

9.4 Esimerkki: SPARQL-kysely (1/2) Haetaan "resurssit jotka on kirjattu tietyille päiville": PREFIX a: <http://www.w3.org/2000/10/annotation-ns#> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX xsd: <http://www.w3.org/2001/xmlschema#> SELECT?annotates FROM <http://example.org/data.ttl> WHERE {?annot a:annotates?annotates.?annot dc:date?date. FILTER (?date = xsd:datetime("2004-01-01t00:00:00z")?date = xsd:datetime("2005-01-01t00:00:00z") ) } Huomioita: - syntaksi yhdistelmä SQL:ää ja N3:sta (Turtle...) - kysely pohjautuu suoraan RDF-graafin rakenteeseen - käytössä on rakentajia ja operaattoreita (käytännössä "XQueryn mukaan") - palauttaa (nyt) listarakenteen joka itsessään ei ole RDF-graafi 177

9.5 Esimerkki: SPARQL-kysely (2/2) Sovelletaan yo. kyselyä oheiseen dataan: @prefix a: <http://www.w3.org/2000/10/annotation-ns#>. @prefix dc: <http://purl.org/dc/elements/1.1/>. _:b a:annotates <http://www.w3.org/tr/rdf-sparql-query/>. _:b dc:date "2004-12-31T19:01:00-05:00"^^<http://www.w3.org/2001/XMLSchema#dateTime>....tuloksena taulukko ("oikeasti" XML-dataa tai esim. iteraattori) annotates ---------------------------------------- <http://www.w3.org/tr/rdf-sparql-query/> Jos olisi kysytty useita muuttujia (esim.?date), tulos olisi voinut olla esim. annotates date ------------------------------------------+---------------------------- <http://www.w3.org/tr/rdf-sparql-query/> 2004-12-31T19:01:00-05:00 178

9.6 SPARQL, perusidea SPARQL on pohjimmiltaan melko yksinkertainen kyselykieli: - kysely nojautuu vahvasti RDF-graafin rakenteeseen (Patterns) - SPARQL-kyselyt eivät oletuksena tulkitse semanttista tietoa (päättely) - kyselymekanismi kuitenkin sallii laajennukset Kysely voi nyt... - hakea "raakatietoa" RDF-datasta (esim. taulukon URI-nimiä) - tuottaa tuloksena uuden RDF-graafin (ts. tuottaa RDF-dataa) Yhden ja saman kyselyn voi yleensä esittää usein eri tavoin (ja kuten SQL:ssä tuloksena on eroja paitsi syntaksin, myös suorituskyvyn osalta) 179

9.7 SPARQL-kielioppi SPARQL-kysely (GP, DS, SM, R) sisältää seuraavia osia: - graafeja (ja lausumia) sovittavia hahmoja (Graph Pattern, Triple Pattern) - RDF-datalähteen (RDF Dataset) - muuntimia (Solution Modifier) - tulostimen (Result Form) Lähemmin tarkasteltuna kyselystä löytyy erityisesti - avainsanoja (Keyword), esim. kyselyhahmon (Query Pattern) ilmaiseva WHERE - termejä (Term), eli IRI-nimiä, literaaleja ja tyhjiä solmuja, esim. foaf:name - muuttujia (Query Variable), esim.?x Iso osa rakenneosista on valinnaisia, esim. datalähde (FROM) voi käydä ilmi kyselyn kontekstista 180

9.8 Kyselyiden anatomia (1/5): hahmot ja muuttujat Tyypillinen kysely on kiinnostunut tiettyjen muuttujien arvoista, asettaa ehtoja joita datalähteen tulee noudattaa ja kirjoittaa vastauksen helposti käsiteltävään muotoon, esim. PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name?mbox WHERE {?x foaf:name?name ; foaf:mbox?mbox. FILTER ( lang(?name) = "ES" ) } Huomioita: - huomaa lyhennemerkintä (yhteinen subjekti ja ";") - osa muuttujista voi esiintyä vain esim. WHERE-osan sisällä (?x) - muuttujien ja prefiksinimien valinnalla ei juuri ole merkitystä (muuttujat...) - ilmeisestikään tehokas strategia ei ole kasata kaikkea maailman RDFdataa yhteen nippuun ja filtteröidä sitä 181

9.9 Kyselyiden anatomia (2/5): datatyypit ja rajaus Kyselyt voivat tietenkin myös kysellä tietoja datatyyppeihin vedoten SELECT?v WHERE {?v?p "abc"^^<http://example.org/datatype#specialdatatype> } SPARQL hyödyntää lyhennemerkintöjä mm. RDF-primitiiveihin ja datatyyppeihin liittyen - esim.?x a :Class1 tarkoittaa?x rdf:type :Class1 - esim. "42" on merkkijono, 42 tyyppiä xsd:integer; 1.7e2 ja true vastaavasti Tulosjoukon rajoittaminen onnistuu siis FILTER-avainsanalla: SELECT?title?price WHERE {?x ns:price?price. FILTER (?price < 30). # huomaa kohta johon FILTER on kirj.?x dc:title?title. } 182

9.10 Kyselyiden anatomia (3/5): valinnaisuus ja vaihtoehdot Kysely voi sisältää valinnaisia osia (ts. evaluoidaan jos annettu) PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX ns: <http://example.org/ns#> SELECT?title?price WHERE {?x dc:title?title. OPTIONAL {?x ns:price?price. FILTER (?price < 30) } } Kysely voi sisältää vaihtoehtoisia osia (ts. jompikumpi tai molemmat) PREFIX dc10: <http://purl.org/dc/elements/1.0/> PREFIX dc11: <http://purl.org/dc/elements/1.1/> SELECT?title WHERE { {?book dc10:title?title } UNION {?book dc11:title?title } } 183

9.11 Kyselyiden anatomia (4/5): nimetyt graafit Datalähde voi koostua nimetyistä RDF-graafeista (Named Graph) PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX data: <http://example.org/foaf/> SELECT?nick WHERE { GRAPH data:bobfoaf {?x foaf:mbox <mailto:bob@work.example>.?x foaf:nick?nick } } Nimetyt graafit voidaan tietää myös kontekstin perusteella ja graafien yli voidaan iteroida: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?src?bobNick WHERE { GRAPH?src {?x foaf:mbox <mailto:bob@work.example>.?x foaf:nick?bobnick } } 184

9.12 Kyselyiden anatomia (5/5): datalähteet ja nimeäminen Nimetyt graafit voidaan käytännössä kertoa datalähdeen esittelyn yhteydessä (FROM ja FROM NAMED): PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT?who?g?mbox FROM <http://example.org/dft.ttl> FROM NAMED <http://example.org/alice> FROM NAMED <http://example.org/bob> WHERE {?g dc:publisher?who. GRAPH?g {?x foaf:mbox?mbox } } "Nimeämätöntä graafia" joka esimerkeissämme on esiintynyt datalähteenä, kutsutaan oletusgraafiksi (Default Graph) 185

9.13 Neljä SPARQL-sovellusta: tulosten esittäminen Kysely voi palauttaa tuloksen loogisesti eri muodoissa; SPARQL määrittelee seuraavat "tulostajat": - SELECT: palauttaa valittujen muuttujien mukaisen "taulukon" - CONSTRUCT: palauttaa RDF-graafin joka rakennettu kyselymuuttujista - DESCRIBE: palauttaa RDF-graafin joka kuvaa löydettyjä resursseja - ASK: palauttaa totuusarvon (true/false) SPARQL mahdollistaa siis esim. - raakatiedon hakemisen, - RDF-muunnokset, sekä - yksinkertaiset asiantuntijajärjestelmät (vrt. Prolog ilman sääntöjä) 186

9.14 SELECT pähkinänkuoressa SELECT-kyselyyn voi sisältyä muuntimia: - Projection: "tavallinen kysely" - DISTINCT: ei toisteta tuloksen monikoita - ORDER BY: järjestetään tietyn muuttujan mukaan (ASC/DESC-järjestys) - LIMIT: montako monikkoa otetaan tulokseen - OFFSET: monennestako tuloksen monikosta alkaen tulostetaan Esim. PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT DISTINCT?name WHERE {?x foaf:name?name } ORDER BY?name LIMIT 5 # ts. 5 tulosta joista ensimmäisenä näytetään 10. tulos, OFFSET 10 # toisena 11. tulos, jne. 187

9.15 CONSTRUCT pähkinänkuoressa, esimerkki PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> CONSTRUCT {?x vcard:n _:v. _:v vcard:givenname?gname. _:v vcard:familyname?fname } WHERE { {?x foaf:firstname?gname } UNION {?x foaf:givenname?gname }. {?x foaf:surname?fname } UNION {?x foaf:family_name?fname }. } Huomioita - rakentajaan muodostetaan tuloksen lausumarakenne kolmikoiden avulla - myös muuntimia voidaan käyttää 188

9.16 DESCRIBE pähkinänkuoressa, esimerkki SPAQRL-prosessorilta pyydetään tiettyjä resursseja kuvaavaa RDF-graafia PREFIX foaf: <http://xmlns.com/foaf/0.1/> DESCRIBE?x WHERE {?x foaf:mbox <mailto:alice@org> } Huomioita - perusidea on se, että tulosgraafi sisältää identifioituja resursseja kuvaavia lausumia - prosessori päättää tuloksen (ja voi ilmeisesti jopa lisätä siihen omia tietojaan) VAROITUS: DESCRIBE-tulostajan semantiikka ei tätä kirjoittaessa ole vielä täysin selvä (ja saattaa jopa pudota suosituksesta pois) 189

9.17 ASK pähkinänkuoressa, esimerkki Kysytään ehdon toteutumista: PREFIX foaf: <http://xmlns.com/foaf/0.1/> ASK {?x foaf:name "Alice" ; foaf:mbox <mailto:alice@work.example> } "Tuloksena saadaan yes tai no" (pitäisi olla xsd:boolean...) Kyse on oikeastaan vain SELECT-kyselyn kuorruttamisesta (ts. oliko vastaus tyhjä?) Toteuttaa oleellisesti ehtolausekkeen joka voi toimia esim. reaktiivisen järjestelmän liipaisimena 190

9.18 Lausekkeiden rakentaminen SPARQL määrittelee tukun operaattoreita joiden avulla erityisesti hahmojen määrittely tehostuu (huomaa että mukana on esim. not()-operaattori!) - XQuery Connectives: A B, A&&B - XPath Tests: A=B, A!=B, A=B, A<B, A>B, A<=B, A>=B, A*B, A/B, A+B, A- B,!A, +A, -A - SPARQL Tests: A=B, A!=B, BOUND(A), isuri(a), isblank(a), isliteral(a), REGEX(STRING, PATTERN [, FLAGS]) - SPARQL Casts: STR(A), LANG(A), DATATYPE(A) Operaattoreita on määritelty rinnakkain useille tietotyypeille: - konnektiivit boolean-tyypille, ehdot eri vertailtaville tietotyypeille - testit ja cast-operaatiot termeille, muuttujille ja literaareille Käytössä on myös rakentajia (Constructor): bool, dbl, flt, dec, int, dt, str, IRI, litrl 191

9.19 SPARQL-protokolla ja sarjallistaminen (1/3) SPARQL on osa suurempaa W3C:n RDF Data Access -työryhmän työtä - Protocol, Query Results XML Format, Query Language for RDF Työ määrittelee esim. SELECT-lauseen tuloksen XML-muodossa, palveluna á la Semantic Web Services Esimerkki, SPARQL-kysely: PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT?who?g?mbox WHERE {?g dc:publisher?who. GRAPH?g {?x foaf:mbox?mbox } } 192

9.20 SPARQL-protokolla ja sarjallistaminen (2/3) HTTP-kutsu (huh!): GET /sparql/?query=encodedquery&default-graphuri=http://my.example/publishers &default-graph-uri=http://my.example/morepublishers&named-graphuri=http://your.example/foaf-alice &named-graph-uri=http://www.example/foaf-bob&named-graphuri=http://www.example/foaf-susan &named-graph-uri=http://this.example/john/foaf Host: my.example User-agent: sparql-client/0.1 (Huomaa että nyt pätkitty usealle riville tulostusta varten) 193

9.21 SPARQL-protokolla ja sarjallistaminen (3/3)...ja lopulta tulos HTTP/1.1 200 OK Date: Wed, 03 Aug 2005 12:48:25 GMT Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3 Connection: close Content-Type: application/sparql-results+xml; charset=utf-8 <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="who"/> <variable name="g"/> <variable name="mbox"/> </head>... </sparql> 194

9.22 Sovelluksista Kuten Jena-sovelluskehys, myös ARQ-prosessori on saatavilla verkossa - ks. http://jena.sourceforge.net/ - ks. http://jena.sourceforge.net/arq/ Tulevaisuudessa ARQ lisättäneen standardimoduuliksi Jenaan Helpoin tapa SPARQL-kyselyiden kokeiluun on sopivan verkkopalvelun käyttö - ks. esim. http://www.sparql.org/query.html (Jenan ARQ verkossa) Muitakin toteutuksia toki on (esim. Rasqal ja twinql) 195

9.23 Lopuksi SPARQL-kyselykieli auttaa jäsentämään Semanttisen Webin suurena "RDF-tietokantana" josta tieto on helposti saatavilla Käytännön sovellusten näkökulmasta pulmallista on esim. puuttuvan, muuttuvan ja virheellisen tiedon hallinta (RDF on kuitenkin pohjimmiltaan rajapinta) Kyselysovellukset ovat kaiketi suoraviivaisin tapa SW-sovellusten toteuttamiseen, mutta sovelluslogiikan näkökulmasta pintaa on vasta raapaistu... (mutta legacymaailma vie toki ideat helposti mennessään) 196