query-7446efbb8b54ee78366d1024e99ad81f
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
- https://query.wikidata.org/sparql
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]". }
}