query-7446efbb8b54ee78366d1024e99ad81f

rq turtle/ttl

Loomulikus keeles ütleksime seda nii: . ?lapselaps omab last ?laps. ?lapsBachil on laps Pakun jälle, et võiksime seda eestikeelset lauset lühendada, ja seejärel tahan Sulle näidata, kuidas SPARQL sarnast lühivormi lubab. Jälgi, kuidas me ei hooli tegelikult lapsest: me kasutame seda muutujat ainult selleks, et rääkida lapselapsest. Seetõttu saaksime lauset lühendada selliselt: . ?lapselapsBachil on keegi selline laps, kellel on laps ”). Mingis mõttes on "keegi" eriline muutuja, mis kehtib ainult selles relatiivlauses ning millele me otseselt ei viita (me ütleme "keegi, kes on see ja teeb seda", mitte "keegi, kes on see, ja keegi, kes teeb seda" – need on kaks erinevat "keegit"). ?lapselaps": see alustab relatiivlauset ja me saame selles relatiivlauses öelda asju “kellegi” kohta (näiteks et tal “on laps kellel: meil pole vahet, kes ta on. Aga me saame tagantjärele talle viidata, sest me kirjutasime "keegi selline, keegiSelle asemel, et öelda, kes Bachi laps on, ütleme lihtsalt SPARQL-is võiks selle kirja panna nii:

Use at

PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX bd: <http://www.bigdata.com/rdf#>
SELECT ?lapselaps ?lapselapsLabel
WHERE
{
  wd:Q1339 wdt:P40 [ wdt:P40 ?lapselaps ].
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}

Query found at

graph TD classDef projected fill:lightgreen; classDef literal fill:orange; classDef iri fill:yellow; v1("?lapselaps"):::projected a1((" ")) c2(["wd:Q1339"]):::iri c4(["bd:serviceParam"]):::iri c6(["#91;AUTO_LANGUAGE#93;"]):::literal a1 --"wdt:P40"--> v1 c2 --"wdt:P40"--> a1 subgraph s1["http://wikiba.se/ontology#label"] style s1 stroke-width:4px; c4 --"wikibase:language"--> c6 end