Wikiprojekti:Avoin kulttuuridata hyötykäyttöön/Tee kyselyjä Wikidata Queryllä
Opettele ymmärtämään ja rakentamaan kyselyitä Wikidataan Wikidata Queryn avulla.
Lisätietoa Lisätietoa Wikidata Querystä
[muokkaa | muokkaa wikitekstiä]Wikidata Query on epävirallinen rajapinta Wikidata-kyselyjen tekemiselle. Se perustuu Magnus Mansken tuottamaan tietokantakopioon ja sen ympärille rakennettujen työkalujen ekosysteemiin. Wikidatan virallinen kyselypalvelu Wikidata Query service on nyt myös avattu.
Wikidata-kyselyn rakenne
[muokkaa | muokkaa wikitekstiä]- Tähdellä merkittyjä entiteettejä voi merkitä monta peräkkäin erottelemalla ne pilkulla toisistaan
- Kursiivilla merkitty on vapaavalintainen
- Kohteet ja ominaisuudet merkitään ilman kirjainkoodeja P tai Q.
https://wdq.wmflabs.org//api?q=
syntaksi | esimerkkiarvot | esimerkkikysely |
---|---|---|
claim[OMINAISUUS:KOHDE*] | esiintymä kohteesta (P31): maanosa (Q5107) | claim[31:5107] |
noclaim[OMINAISUUS:KOHDE*] | xxx | xxxxxxxxxxx |
tree[KOHDE*][OMINAISUUS*][OMINAISUUS*] | xxxxxxxxx | xxxxxxxxxx |
web[KOHDE*][OMINAISUUS*] | xxxxxxxxx | xxxxxxxxxx |
string[OMINAISUUS:"MERKKIJONO"*] | xxxxxxxxx | xxxxxxxxxx |
around[OMINAISUUS,LEVEYSASTE,PITUUSASTE,SÄDE] | xxxxxxxxx | xxxxxxxxxx |
between[OMINAISUUS,ALKUAIKA,LOPPUAIKA] | xxxxxxxxx | xxxxxxxxxx |
quantity[OMINAISUUS:ARVO1,ARVO2] | xxxxxxxxx | xxxxxxxxxx |
items[KOHDE*] | xxxxxxxxx | xxxxxxxxxx |
link[wiki*] | xxxxxxxxx | xxxxxxxxxx |
nolink[wiki*] | xxxxxxxxx | xxxxxxxxxx |
{TARKENNE}
(...)
&props=OMINAISUUS*
&noitems=1
&callback=FUNCTION
Ohjeita suomeksi
[muokkaa | muokkaa wikitekstiä]claim
[muokkaa | muokkaa wikitekstiä]claim[OMINAISUUS:KOHDE*]
Etsii kohteita, joille on määritelty tietty kohde tietylle ominaisuudelle. Ominaisuudelle voi lisäätä useampia kohteita erottelemalla ne pilkuilla toisistaan tai jättää kohde pois.claim[OMINAISUUS]
Etsii kohteita joille on määritelty jokin arvo tietylle ominaisuudelle. Tämä toimii myös merkkijonoille, ajalle ja koordinaateille.- Esimerkki:
claim[138:676555]
claim[nimen alkuperä (P138):Franciscus Assisilainen (Q676555)] palauttaa kaikki kohteet, jotka on nimetty Franciscus Assisilainen (Q676555) mukaan. - Jos lausekkeeseen määritellään useampia kohteita, haku palauttaa niiden unionin, eli ne kohteet, jotka täyttävät kaikki hakuehdot.
- Kohteen sijaan voi käyttää luokkahierarkiaa kyselyn kohteena. Esimerkiksi
claim[31:(tree[12280][][279])]
claim[esiintymä kohteesta (P31): (tree[silta (Q12280)] [ ] [alaluokka kohteelle (P279)])] palauttaa listan siltojen alaluokkien esiintymistä. - Tälle kyselylle voi lisätä tarkenteita.
noclaim
[muokkaa | muokkaa wikitekstiä]noclaim
-kysely liitetään aina toiseen kyselyyn AND-lausekkeella. Kysely ei voi alkaanoclaim
-lausekkeella. Sitä käytetään aina poistamaan kohteita olemassaolevasta listasta.noclaim
rakennetaan samalla tavalla kuin claim, joko kohteen kanssa tai ilman sitä.noclaim[OMINAISUUS:KOHDE*]
noclaim[OMINAISUUS]
- Esimerkki:
claim[138:676555] AND noclaim[31:515]
claim[nimen alkuperä (P138):Franciscus Assisilainen (Q676555)] AND noclaim[esiintymä kohteesta (P31):kaupunki (Q515)] palauttaa kaikki kohteet, joiden nimen alkuperä (P138) on Franciscus Assisilainen (Q676555), mutta eivät ole esiintymä kohteesta (P31) kaupunki (Q515). - Useita kohteita voi yhdistää samaan hakuun erottelemalla ne pilkuilla toisistaan. Kaikki kohteet, jotka täyttävät minkä tahansa hakuehdon poistetaan tuloksista.
- Kohteen sijaan voi käyttää luokkahierarkiaa samalla tavalla kuin kyselyn
claim
kanssa.
tree
[muokkaa | muokkaa wikitekstiä]tree[KOHDE*][OMINAISUUS*][OMINAISUUS*]
palauttaa kohteita seuraten ominaisuuksia rekursiivisesti lähtökohteesta alkaen.- Ensimmäiseksi määritellään yksi tai useampia KOHTEITA pilkuilla erotettuna. Se tai ne ovat kyselyn lähtökohta.
- Seuraavaksi määritellään yksi tai useampia OMINAISUUKSIA, joita pitkin haku etenee eteenpäin. Jos KOHTEELLA on OMINAISUUS, jonka arvo on toinen kohde, hakua laajennetaan myös siitä kohteesta haarautuvaksi. Tämä valinta voi olla myös tyhjä. Esimerkki tällaisesta hausta on taksonomia alkaen lajista.
- Kolmanneksi määritellään yksi tai useampia OMINAISUUKSIA, joita pitkin haku etenee taaksepäin. Jos jollain kohteella on OMINAISUUS, jonka arvo on KOHDE, hakua laajennetaan myös siitä kohteesta haarautuvaksi. Tämä valinta voi olla myös tyhjä. Esimerkki tällaisesta hausta on etsiä paikkoja, jotka ovat tietyssä maassa, seuraten ominaisuutta sijaitsee hallinnollisessa alueyksikössä (P131).
- Esimerkki:
tree[30][150][17,131]
tree[Yhdysvallat (Q30)] [hallinnolliset osa-alueet (P150)] [valtio (P17),sijaitsee hallinnollisessa alueyksikössä (P131)]. Haku palauttaa kaikki kohteet, jotka ovat valtio (P17) tai sijaitsee hallinnollisessa alueyksikössä (P131) maassa Yhdysvallat (Q30) tai sen hallinnolliset osa-alueet (P150).
web
[muokkaa | muokkaa wikitekstiä]web[KOHDE*][OMINAISUUS*]
Vastaavasti kuin tree, tämä kysely seuraa ominaisuuksia juurikohteista "ylös" ja "alas" pitkin puuta, samoja ominaisuuksia seuraten.- Esimerkki:
web[9682][25,22,40,26,7,9,1038]
web[Elisabet II (Q9682)] [äiti (P25),isä (P22),lapsi (P40),puoliso (P26), (P7), (P9),sukulainen (P1038)] löytää kaikki Elisabet II (Q9682) sukulaiset.
string
[muokkaa | muokkaa wikitekstiä]string[OMINAISUUS:"MERKKIJONO"*]
löytää kaikki kohteet, joilla OMINAISUUDEN arvo on MERKKIJONO.- Tälle kyselylle voi lisätä tarkenteita.
around
[muokkaa | muokkaa wikitekstiä]around[OMINAISUUS,LEVEYSASTE,PITUUSASTE,SÄDE]
löytää kaikki kohteet, joiden OMINAISUUDEN (yllensä koordinaatit (P625)) arvo ei ole enempää kuin SÄDE km pisteestä LEVEYSASTE,PITUUSASTE (desimaaliaste, esim. "52.205,0.119") Suurempaa tarkkuutta ei tueta.- Tälle kyselylle voi lisätä tarkenteita.
between
[muokkaa | muokkaa wikitekstiä]between[OMINAISUUS,ALKUAIKA,LOPPUAIKA]
löytää kaikki kohteet, joissa OMINAISUUDEN aika-arvo asettuu ALKUAJAN ja LOPPUAJAN väliin. Joko ALKUAIKA tai ,LOPPUAIKA (huomaa, että edeltävä pilkku on lisättävä) voidaan jättää pois merkitsemään mitä tahansa arvoa, mutta ei molempia. Raja-arvot lasketaan hakutulokseen mukaan, tarkkuutta ei tueta ja kalenteri on aina Gregoriaaninen.- Ajat annetaan muodossa +00000001861-03-17T00:00:00Z, joitakin lyhennettyjä muotoja sallitaan, kuten "1974" tai "1974-05". Puuttuvat arvot muutetaan vastaamaan 0, myös kuukaudet ja päivät. "before 1974" vastaa siten "before 1974-00-00T00:00:00Z"
- Ylimenevät arvot ovat sallittuja, esim. "before 1974-05-32" palauttaa kaikki päivämäärät ennen ja mukaanlukien toukokuu 1974.
- Tälle kyselylle voi lisätä tarkenteita.
quantity
[muokkaa | muokkaa wikitekstiä]quantity[OMINAISUUS:ARVO1,ARVO2]
löytää kaikki kohteet, joiden OMINAISUUDEN määräarvo on suurempi tai yhtäsuuri kuin ARVO1 ja pienempi tai yhtäsuuri kuin ARVO2. Jos ARVO2 jätetään pois, se asetetaan arvoon ARVO1. Toisin sanoen vain arvot, jotka ovat yhtä suuria kuin ARVO1, palautetaan.- Esimerkki:
quantity[1082,35000,40000]
quantity[väkiluku (P1082),35000,40000] löytää kaikki kohteet, joiden väkiluku (P1082) on välillä (mukaanlukien) 35 000 ja 40 000. - Tälle kyselylle voi lisätä tarkenteita.
items
[muokkaa | muokkaa wikitekstiä]items[KOHDE*]
tuottaa stattisen listan KOHTEISTA. Sitä voi käyttää esimerkiksi yhdessänoclaimin
kanssa, joka ei voi olla ensimmäinen komento. POST-metodia suositellaan GET-metodin sijaan pitkille listoille.- Esimerkki:
items[1339,350]
löytää kohteet Johann Sebastian Bach (Q1339) ja Cambridge (Q350). - Tälle kyselylle voi lisätä tarkenteita.
link
[muokkaa | muokkaa wikitekstiä]link[wiki*]
löytää kaikki kohteet, joissa on linkkejä mainittuihin wikeihinnolink[wiki*]
löytää kaikki kohteet, joissa ei ole linkkejä mainittuihin wikeihin- Esimerkki:
link[dewiki] and nolink[frwiki]
palauttaa kaikki kohteet, joilla on linkki saksankieliseen Wikipediaan, mutta ei ranskankieliseen.
TARKENNE
[muokkaa | muokkaa wikitekstiä]{TARKENNE}
voidaan lisätä komentoihin claim, .... The query between { and } will be run against the qualifiers of each statement that matches the main query.
Example: claim[166:746756]{BETWEEN[585,1853,1853-13]} returns the award recipient (P166) of the Royal Medal (Q746756) in 1853 (1853-13 indicating the end of the year 1853).
AND, OR
[muokkaa | muokkaa wikitekstiä]AND
OR
You can join multiple of the above queries into a subset (AND) or union (OR). Use spaces around either to separate them from the queries they connect.
Example: tree[30][150][17,131] AND claim[138:676555] returns all items (three in total) that are both
places in the "reverse tree" of country (P17) or administrative unit (P131) within the U.S.A. (Q30), or areas it subdivides into (P150 of the "forward tree"), and
named after (P138) Francis of Assisi (Q676555)
Note that mixing AND and OR will auto-group them by order: a AND b OR c becomes (a AND b) OR c internally.
(...)
[muokkaa | muokkaa wikitekstiä]You can manually group commands with parentheses. Commands in parentheses will be run first, and their results used in their stead. Note
All properties and items are numeric (no "P" or "Q" prefix) Commands are case-insensitive no value is represented as item 4294967295 unknown value is represented as item 4294967294
props
[muokkaa | muokkaa wikitekstiä]&props=OMINAISUUS*
Adding a "props" parameter to the URL will return the specified statements (items, properties, and their values) for the resulting items.
OMINAISUUS* are comma-separated property numbers, e.g. &props=17,47.
Each such statement will be written as an array with three values: [source_item,value_type,value].
For all properties, value_type may be "item" if the value is one of no value or unknown value (see note above).
Using a single *
instead of a property number list will return all properties of the resulting items, though that can take significantly longer, and generate much more data. Komodo dragon taxon tree example.
noitems
[muokkaa | muokkaa wikitekstiä]Suppresses the item list; still returns number of items and property values (if requested).
Results
[muokkaa | muokkaa wikitekstiä]Result format is JSON For JSONP, add a &callback=FUNCTION parameter to the URL; the result will then be a parameter in the call of the JavaScript FUNCTION
Kyselyesimerkkejä ja tuloslistauksia
[muokkaa | muokkaa wikitekstiä]Kyselykieltä hyödyntämään on tuotettu useita erilaisia työkaluja. Listan kohteista on linkki työkaluun ja mahdolliseen esimerkkitehtävään.
CLAIM[valtio (P17):Suomi (Q33)]
kohteella on ominaisuus valtio (P17), jonka arvo on Suomi (Q33)
TREE[Suomi (Q33)][][sijaitsee hallinnollisessa alueyksikössä (P131)]
Juurikohteesta Suomi (Q33) alkaen etsitään muita kohteita, joiden ominaisuus sijaitsee hallinnollisessa alueyksikössä (P131) on Suomi (Q33) ja edelleen.
NOCLAIM[kuva (P18)]
tulos suodatetaan niin, että jäljelle jäävät vain ne kohteet, joilla ominaisuus kuva (P18) on tyhjä.(CLAIM[17:33] OR TREE[33][][131])
AND
noclaim[18]
- AutoList2
http://tools.wmflabs.org/autolist/?run=1&wdq=(CLAIM[17:33]%20OR%20TREE[33][][131])%20AND%20noclaim[18]
- Wikidata FIST
- Wikidata Generic Tree
- Get item names
- Linked Items
- Item properties
- Not in the Other Language
- View on map
- TABernacle
- Count item views