Otevřít hlavní menu

PozadíEditovat

Přístup k údajům poskytuje rozšíření Wikibase Client.

ZpůsobyEditovat

Parserová funkceEditovat

  • vždy dostupná, ale (zatím) má velmi omezené možnosti
  • použití {{#property:P1}} nebo {{#property:český název vlastnosti}}
  • od června 2015 si můžeme vybrat položku: {{#property:hlavní město|from=Q213}} nebo {{#property:P36|from=Q213}} → Praha (← samozřejmě v infoboxech preferujeme Praha)

ModulEditovat

  • skriptovací jazyk Lua
local p = {} -- tabulka, kterou na konci musíme vrátit

function p.helloWorld() -- tady do ní vložíme funkci, kterou potom můžeme použít
    return 'Ahoj světe!'
end

return p -- tady ji vracíme wikisvětu i s funkcí
  • použití modulů – podobně jako šablony se i moduly „volají“ (vkládají), ale na rozdíl od šablon přes parserovou funkci #invoke:, k tomu se navíc vybírá funkce
  • software Wikibase Client poskytuje knihovnu s funkcemi, kterými se načítají data
Srovnání použití šablony a modulu
Šablona
{{ NÁZEV_ŠABLONY | parametr1 = hodnota1 | hodnota anon. parametru | ... }}
{{{1|}}} {{#if: {{{parametr1|}}} | [[{{{parametr1}}}]] }}
Modul
{{ #invoke: NÁZEV_MODULU | NÁZEV_FUNKCE | parametr1 = hodnota1 | hodnota anon. parametru | ... }}
local p = {}
function p.funkce(frame)
    local parametry = frame.args
    local anonym = parametry[1]
    local parametr1 = parametry["parametr1"]
    if parametr1 then return '[[' .. parametr1 .. ']]' end
end
return p
  • pokud je modul schovaný v šabloně, může používat i její parametry (tj. jí poskytnuté) – potom stačí do šablony vložit {{ #invoke: NÁZEV_MODULU | NÁZEV_FUNKCE }} a celou šablonu naprogramovat přímo v modulu (příklad)




  • náš modul se jmenuje „Wikidata“ a funkce „formatStatements“ (zformátovat tvrzení)
    {{#invoke:Wikidata|formatStatements}}Chyba Lua: bad argument #1 to 'uc' (string expected, got nil).
  • povinný je parametr „property“ (vlastnost), v tomto případě se zadává identifikátor
    {{#invoke:Wikidata|formatStatements|property=P36}}
  • pískoviště nemá vlastní položku, takže je nutné uvést její identifikátor (vlastnost hlavní město (P36), položka Česko (Q213))
    {{#invoke:Wikidata|formatStatements|property=P36|id=Q213}}Praha
  • další užitečné parametry:
    rank= → postavení zobrazených hodnot (standardně valid, tedy všechny bez neplatných, užitečné jsou taky best – aktuální hodnota, jinak ostatní, nebo preferred – pouze aktuální)
    separator, conjunction= → normálně se hodnoty oddělují čárkami a poslední dvě spojkou „a“, tímhle si ale můžeme nastavit např. zalamování
    limit= → kolik nejvýše chceme hodnot (např. pokud nám stačí jen jedna nebo jich nechceme příliš)
    showqualifier= → vymezení, které se má zobrazit s hodnotou (např. datum, ke kterému se vztahuje počet obyvatel)
    withqualifier= → vymezení, které hodnota musí mít, aby se zobrazila (např. pouze počty obyvatel, u kterých je známé datum)
    date= → pomocí vymezení od–do (příp. datum) vybrat hodnoty k danému časovému údaji (např. 2019-10-21 nebo #now)
    sort= → podle čeho hodnoty seřadit (např. ocenění seřazená podle data)
    celý seznam viz Modul:Wikidata/Dokumentace
Příklady
všechny státy v USA podle abecedy nebo podle data jen ty k dnešnímu dni
property=P150 id=Q30
separator=,<br>
conjunction=,<br>
sort=alpha
property=P150 id=Q30
separator=,<br>
conjunction=,<br>
sort=date
showqualifier=time
property=P150 id=Q30
separator=,<br>
conjunction=,<br>
sort=date
showqualifier=time
date=#now
Alabama,
Aljaška,
Americká Samoa,
Americké Panenské ostrovy,
Arizona,
Arkansas,
Colorado,
Connecticut,
Delaware,
District of Columbia,
Filipínské společenství,
Florida,
Georgie,
Guam,
Havaj,
Idaho,
Illinois,
Indiana,
Indiana Territory,
Insular Government of the Philippine Islands,
Iowa,
Jižní Dakota,
Jižní Karolína,
Kalifornie,
Kansas,
Kentucky,
Louisiana,
Louisiana Territory,
Maine,
Maryland,
Massachusetts,
Menší odlehlé ostrovy Spojených států amerických,
Michigan,
Minnesota,
Mississippi,
Mississippi Territory,
Missouri,
Montana,
Nebraska,
Nevada,
New Hampshire,
New Jersey,
New York,
Nové Mexiko,
Ohio,
Oklahoma,
Oregon,
Pensylvánie,
Portoriko,
Rhode Island,
Severní Dakota,
Severní Karolína,
Severní Mariany,
Severozápadní teritorium,
Southwest Territory,
Tennessee,
Teritorium Michigan,
Territory of Alaska,
Territory of Hawaii,
Territory of Orleans,
Texas,
Utah,
Vermont,
Virginie,
Washington,
Washington, D.C.,
Wisconsin,
Wyoming,
Západní Virginie
Severozápadní teritorium (1787–1803),
Delaware (od 1787),
Pensylvánie (od 1787),
New Jersey (od 1787),
Georgie (od 1788),
Connecticut (od 1788),
Massachusetts (od 1788),
Maryland (od 1788),
Jižní Karolína (od 1788),
New Hampshire (od 1788),
Virginie (od 1788),
New York (od 1788),
Severní Karolína (od 1789),
Southwest Territory (1790–1796),
Rhode Island (od 1790),
Washington, D.C. (od 1790),
Vermont (od 1791),
Kentucky (od 1792),
Tennessee (od 1796),
Mississippi Territory (1798–1817),
Indiana Territory (1800–1816),
Ohio (od 1803),
Territory of Orleans (1804–1812),
Teritorium Michigan (1805–1837),
Louisiana Territory (1805–1812),
Louisiana (od 1812),
Indiana (od 1816),
Mississippi (od 1817),
Illinois (od 1818),
Alabama (od 1819),
Maine (od 1820),
Missouri (od 1821),
Arkansas (od 1836),
Michigan (od 1837),
Florida (od 1845),
Texas (od 1845),
Iowa (od 1846),
Wisconsin (od 1848),
Kalifornie (od 1850),
Minnesota (od 1858),
Oregon (od 1859),
Kansas (od 1861),
Západní Virginie (od 1863),
Nevada (od 1864),
Nebraska (od 1867),
Colorado (od 1876),
Severní Dakota (od 1889),
Jižní Dakota (od 1889),
Montana (od 1889),
Washington (od 1889),
Idaho (od 1890),
Wyoming (od 1890),
Utah (od 1896),
Territory of Hawaii (1898–1959),
Portoriko (od 1898),
Insular Government of the Philippine Islands (1901–1935),
Oklahoma (od 1907),
Nové Mexiko (od 1912),
Arizona (od 1912),
Territory of Alaska (1912–1959),
Americké Panenské ostrovy (od 1917),
Filipínské společenství (1935–1946),
Aljaška (od 1959),
Havaj (od 1959),
Guam,
Severní Mariany,
Menší odlehlé ostrovy Spojených států amerických,
Americká Samoa,
District of Columbia
Delaware (od 1787),
Pensylvánie (od 1787),
New Jersey (od 1787),
Georgie (od 1788),
Connecticut (od 1788),
Massachusetts (od 1788),
Maryland (od 1788),
Jižní Karolína (od 1788),
New Hampshire (od 1788),
Virginie (od 1788),
New York (od 1788),
Severní Karolína (od 1789),
Rhode Island (od 1790),
Washington, D.C. (od 1790),
Vermont (od 1791),
Kentucky (od 1792),
Tennessee (od 1796),
Ohio (od 1803),
Louisiana (od 1812),
Indiana (od 1816),
Mississippi (od 1817),
Illinois (od 1818),
Alabama (od 1819),
Maine (od 1820),
Missouri (od 1821),
Arkansas (od 1836),
Michigan (od 1837),
Florida (od 1845),
Texas (od 1845),
Iowa (od 1846),
Wisconsin (od 1848),
Kalifornie (od 1850),
Minnesota (od 1858),
Oregon (od 1859),
Kansas (od 1861),
Západní Virginie (od 1863),
Nevada (od 1864),
Nebraska (od 1867),
Colorado (od 1876),
Severní Dakota (od 1889),
Jižní Dakota (od 1889),
Montana (od 1889),
Washington (od 1889),
Idaho (od 1890),
Wyoming (od 1890),
Utah (od 1896),
Portoriko (od 1898),
Oklahoma (od 1907),
Nové Mexiko (od 1912),
Arizona (od 1912),
Americké Panenské ostrovy (od 1917),
Aljaška (od 1959),
Havaj (od 1959)

UkázkyEditovat

Parserová funkce v infoboxuEditovat

Albert, Albert Einstein
 
Datum narození 14. 3. 1879
Místo narození Ulm
Datum úmrtí 18. 4. 1955
Místo úmrtí Princeton
Povolání teoretický fyzik, filozof věd, vynálezce, vědecký spisovatel, pedagog, vysokoškolský učitel, fyzik, spisovatel literatury faktu, filozof, spisovatel, učitel, vědec, matematik, patent examiner, vysokoškolský učitel
Občanství Německé císařství, bez hodnoty, Švýcarsko, Rakousko-Uhersko, Výmarská republika, Spojené státy americké
Škola Spolková vysoká technická škola v Curychu, Luitpold-Gymnasium (München), Alte Kantonsschule Aarau, Univerzita v Curychu
Zaměstnavatel Eidgenössisches Institut für Geistiges Eigentum, Univerzita Karlova, Univerzita v Curychu, Německá univerzita v Praze, Spolková vysoká technická škola v Curychu, Kaiser-Wilhelm-Gesellschaft zur Förderung der Wissenschaften, Princetonská univerzita, Univerzita v Leidenu, Bernská univerzita, Deutsche Physikalische Gesellschaft, Humboldtova univerzita, Pruská akademie věd, Bern, Institute for Advanced Study, Kalifornská univerzita v Berkeley, Univerzita v Leidenu
Choť Elsa Einsteinová, Mileva Marićová
Děti Hans Albert Einstein, Eduard Einstein, Lieserl Marić
Ocenění Barnard-Medaille, Nobelova cena za fyziku, Zlatá medaile Královské astronomické společnosti, Cena Julese Janssena, Matteucciho medaile, medaile Maxe Plancka, Franklinova medaile, Copleyho medaile, Řád za zásluhy v oblasti umění a věd, Josiah Willard Gibbs Lectureship, New Jersey Hall of Fame, čestný doktor Ženevské univerzity, čestný doktorát Hebrejské univerzity v Jeruzalémě, čestný doktor Princetonské univerzita, honorary doctor of the University of Madrid Complutense, zahraniční člen Královské společnosti, Member of the National Academy of Sciences of the United States
Bydliště Einsteinhaus Caputh, Einsteinhaus Bern, Německo, Mnichov, Princeton
NKČR jn19990002019
{{Infobox
| záhlaví = {{#property:rodné jméno}} {{#property:příjmení}}
| obrázek = [[Soubor:{{#property:obrázek}}|225px]]
| popis1 = Datum narození
| data1 = {{#property:datum narození}}
| popis2 = Místo narození
| data2 = {{#property:místo narození}}
| popis3 = Datum úmrtí
| data3 = {{#property:datum úmrtí}}
| popis4 = Místo úmrtí
| data4 = {{#property:místo úmrtí}}
| popis5 = Povolání
| data5 = {{#property:zaměstnání}}<!-- bohužel zatím nelze vybírat z aliasů -->
| popis6 = Občanství
| data6 = {{#property:státní občanství}}
| popis7 = Škola
| data7 = {{#property:škola}}
| popis8 = Zaměstnavatel
| data8 = {{#property:zaměstnavatel}}
| popis9 = Choť
| data9 = {{#property:choť}}
| popis10 = Děti
| data10 = {{#property:dítě}}
| popis11 = Ocenění
| data11 = {{#property:ocenění}}
| popis12 = Bydliště
| data12 = {{#property:bydliště}}
| popis13 = NKČR
| data13 = {{#property:NKČR AUT}}
}}

Modul v infoboxuEditovat

Albert Einstein
[[Soubor:Albert Einstein Head.jpg|225px]]
Datum narození 14. března 1879
Místo narození Ulm
Datum úmrtí 18. dubna 1955
Místo úmrtí Princeton
Povolání teoretický fyzik, filozof věd, vynálezce, vědecký spisovatel, pedagog, vysokoškolský učitel, fyzik, spisovatel literatury faktu, filozof, spisovatel, učitel, vědec, matematik a patent examiner
Občanství Německé císařství (1879–1896)
Švýcarsko (1901–1955)
Rakousko-Uhersko (1911–1912)
Výmarská republika (1918–1933)
Spojené státy americké (1940–1955)
Škola Luitpold-Gymnasium (München) (1888–1894)
Alte Kantonsschule Aarau (1895–1896)
Spolková vysoká technická škola v Curychu (1896–1900)
Univerzita v Curychu (do 1905)
Zaměstnavatel Eidgenössisches Institut für Geistiges Eigentum (1902–1909)
Bernská univerzita (1908–1909)
Univerzita v Curychu (1909–1911)
Německá univerzita v Praze (1911–1912)
Spolková vysoká technická škola v Curychu (1912–1914)
Pruská akademie věd (1914–1933)
Humboldtova univerzita (1914–1933)
Deutsche Physikalische Gesellschaft (1916–1918)
Kaiser-Wilhelm-Gesellschaft zur Förderung der Wissenschaften (1917–1933)
Univerzita v Leidenu (1920–1946)
Princetonská univerzita (1933–1955)
Institute for Advanced Study
Kalifornská univerzita v Berkeley
Bern
Univerzita Karlova
Univerzita v Leidenu
Choť Mileva Marićová (1903–1919)
Elsa Einsteinová (1919–1936)
Děti Hans Albert Einstein
Eduard Einstein
Lieserl Marić
Ocenění Barnard-Medaille (1920)
čestný doktor Ženevské univerzity
New Jersey Hall of Fame
Josiah Willard Gibbs Lectureship (1934)
čestný doktorát Hebrejské univerzity v Jeruzalémě (1949)
honorary doctor of the University of Madrid Complutense (1923)
čestný doktor Princetonské univerzita
… více na Wikidatech
Bydliště Einsteinhaus Bern (1903–1905)
Einsteinhaus Caputh (1929–1932)
Mnichov
Německo
Princeton
NKČR jn19990002019
{{Infobox
| záhlaví = {{#invoke:Wikidata|getLabel}}
| obrázek = [[Soubor:{{#invoke:Wikidata|formatStatements|property=P18}}|225px]]
| popis1 = Datum narození
| data1 = {{#invoke:Wikidata|formatStatements|property=P569}}
| popis2 = Místo narození
| data2 = {{#invoke:Wikidata|formatStatements|property=P19}}
| popis3 = Datum úmrtí
| data3 = {{#invoke:Wikidata|formatStatements|property=P570}}
| popis4 = Místo úmrtí
| data4 = {{#invoke:Wikidata|formatStatements|property=P20}}
| popis5 = Povolání
| data5 = {{#invoke:Wikidata|formatStatements|property=P106}}
| popis6 = Občanství
| data6 = {{#invoke:Wikidata|formatStatements|property=P27|sort=date|showqualifier=time|separator=<br>|conjunction=<br>}}
| popis7 = Škola
| data7 = {{#invoke:Wikidata|formatStatements|property=P69|sort=date|showqualifier=time|separator=<br>|conjunction=<br>}}
| popis8 = Zaměstnavatel
| data8 = {{#invoke:Wikidata|formatStatements|property=P108|sort=date|showqualifier=time|separator=<br>|conjunction=<br>}}
| popis9 = Choť
| data9 = {{#invoke:Wikidata|formatStatements|property=P26|sort=date|showqualifier=time|separator=<br>|conjunction=<br>}}
| popis10 = Děti
| data10 = {{#invoke:Wikidata|formatStatements|property=P40|sort=date|separator=<br>|conjunction=<br>}}
| popis11 = Ocenění
| data11 = {{#invoke:Wikidata|formatStatements|property=P166|sort=date|showqualifier=P585|limit=7|showmore=true|separator=<br>|conjunction=<br>}}
| popis12 = Bydliště
| data12 = {{#invoke:Wikidata|formatStatements|property=P551|sort=date|showqualifier=time|separator=<br>|conjunction=<br>}}
| popis13 = NKČR
| data13 = {{#invoke:Wikidata|formatStatements|property=P691|autoformat=true}}
}}

SyntaxeEditovat

V ukázkách ↑ nepoužívám parametry ze šablony:

  1. {{{parametr| {{#invoke:Wikidata|formatStatements|...}} }}}
    • pokud je parametr vyplněn | parametr = hodnota, zobrazí se, parametr zadaný, ale nevyplněný | parametr = nezobrazí nic (i když Wikidata existují), vůbec nezadaný parametr zobrazí Wikidata, pokud existují, jinak nic
    • výhoda – můžeme přebít hodnotu z Wikidat, aniž bychom zadali jinou
    • nevýhoda – není možné jakkoliv jinak hodnotu upravovat (kurzíva, jako obrázek...)
  2. {{#if: {{{parametr| {{#invoke:Wikidata|formatStatements|...}} }}} | {{{parametr| {{#invoke:Wikidata|formatStatements|...}} }}} }}
    • výhoda oproti předchozí – jak lokální hodnotu, tak hodnotu z Wikidat lze upravovat, ovšem obě stejně
  3. {{#if: {{{parametr|}}} | {{{parametr}}} | {{#invoke:Wikidata|formatStatements|...}} }}
    • pokud je parametr vyplněn | parametr = hodnota, zobrazí se, jinak se zobrazí Wikidata nebo nic
    • výhoda – lokální hodnotu lze bezpečně upravovat, ne však tu z Wikidat
    • nevýhoda – není možné potlačit Wikidata prázdnou hodnotou
  4. {{#if: {{{parametr|}}} | {{{parametr}}} | {{{parametr| {{#invoke:Wikidata|formatStatements|...}} }}} }}
    • výhoda oproti předchozí – lze přebít hodnotu z Wikidat, aniž bychom zadali jinou
  5. {{#if: {{{parametr|}}} | {{{parametr}}} | {{{parametr| {{#if: {{#invoke:Wikidata|formatStatements|...}} | {{#invoke:Wikidata|formatStatements|...}} }} }}} }}
    • výhoda – lokální hodnotu a hodnotu z Wikidat lze upravovat zvlášť, tu z Wikidat lze přebít bez zadání jiné lokální
    • nevýhoda – už poněkud složitější kód občas vyžadující zásah zkušenějšího uživatele
Srovnání výstupů
Č. Vyplněný parametr Prázdný parametr Nezadaný parametr
WD ano WD chybí WD ano WD chybí
1 parametr nic nic Wikidata nic
2 nic
3 Wikidata
4 nic
5 nic

A nyní se můžeme přesunout k infoboxu {{Infobox - firma}}.

Převod infoboxu na WikidataEditovat

  1. Vytvoření párů parametr, resp. buňka → vlastnost na Wikidatech
  2. Vložení syntaxe #Modul v infoboxu
    • některé vlastnosti se používají s vymezeními, nejčastěji od (P580), do (P582), datum (P585)
    • přebírání referencí je stále experimentální
    • addclass=true obalí výstup modulu CSS třídou .wd, kterou zvýrazní udělátko HighlightWikidata nebo vlastní stylopis (nepoužívat tam, kde je součástí jiné wikisyntaxe)
    • addlink=true přidá za šablonu symbol odkazující přímo na místo, kde je možné hodnotu změnit
    • Do zápatí disclaimer: {{#if: {{#invoke:Wikidata|getCurrentId}} | Některá data mohou pocházet z [[d:{{#invoke:Wikidata|getCurrentId}}|datové položky]]. }}
  3. Kategorie:Wikipedie:Šablony používající údaje z Wikidat
  4. Dobrovolné: krok #1 zabije dvě mouchy jednou ranou, jelikož ušetří čas při importu existujících hodnot (např. pomocí HarvestTemplates)
  5. Dobrovolné (námět úkolu pro bota): doplnit {{ExternalUse}} na diskusních stránkách vlastností na Wikidatech (příklad), které jsou nyní šablonou přebírány

Monitorovací kategorieEditovat

{{#switch: {{NAMESPACENUMBER}}
| 0
| 14 = <!-- pouze články a kategorie -->
  {{#if: {{{parametr|}}}
  | {{#if: {{#property:P1}}
    | {{#ifeq: {{#property:P1}} | {{{parametr}}} |
      | [[Kategorie:Údržba:Hodnota odpovídá Wikidatům|{{PAGENAME}}]] <!-- toto je spíše monitoring, který navíc způsobuje cykly v kategoriích -->
      | [[Kategorie:Údržba:Hodnota se liší od Wikidat|{{PAGENAME}}]] <!-- nesouhlasící údaje nebo také jen důsledek primitivního srovnávání -->
      }}
    | [[Kategorie:Údržba:Hodnota není na Wikidatech|{{PAGENAME}}]] <!-- vhodné především pro boty, pro které je import na Wikidata rychlejší -->
    }}
  | <!-- parametr úplně chybí, přičemž může být na Wikidatech -->
  }}
}}

Porovnávání odpovídá/liší se funguje pouze pro „řetězcovité“ hodnoty, např. obrázek, kategorie na Commons, NKČR AUT. Pro ostatní případy existuje možnost nastavit experimentální srovnávání přímo modulem.