Wikipedie:Wikidata/Přebírání do infoboxů

Přebíráním údajů z Wikidat se rozumí načítání údajů uložených v datových položkách sesterského projektu Wikidata a zobrazování jich v článcích, nejčastěji pomocí infoboxů nebo jiných šablon.

Motivace editovat

Syntaxe editovat

Pro zavedení přebírání údajů do infoboxu je nutné být dostatečně seznámen se způsoby jejich tvorby a mít alespoň základní znalosti o projektu Wikidata. V opačném případě je lepší přenechat tento úkon zkušenějším uživatelům, neboť nedomyšlené úpravy šablon mohou během chvíle způsobit technický problém v tisících článků.

Záměr zavést přebírání je také doporučeno oznámit na nástěnce Wikidat či diskusní stránce dané šablony, kde se k němu mají možnost vyjádřit ostatní uživatelé.

Parserové funkce editovat

Na téměř každém projektu Wikimedia jsou dostupné dvě parserové funkce. Tyto se chovají podobně jako tzv. kouzelná slůvka, tzn. že jejich výstup se dynamicky mění vzhledem k článku, do kterého jsou (byť skrze šablonu) vloženy.

První z nich se nazývá „#property:“ a dostupný je i její český alias „#vlastnost:“. Pro její správné fungování je nutné zadat, která vlastnost se má přebírat. To se provádí uvedením buď jejího identifikátoru, nebo současného českého štítku. Tyto údaje je možné zjistit na stránce vlastnosti, na kterou se dostanete tak, že v článku, ve kterém se nachází dotčený infobox, otevřete příslušející položku Wikidat kliknutím na odkaz Položka Wikidat vlevo v navigačním sloupci. Na stránce najděte vlastnost, kterou chcete přebírat, a klikněte na její nadpis. Máte-li zapnutý v rozhraní český jazyk, text hlavního nadpisu na stránce vlastnosti odpovídá jejímu českému štítku (není-li za ním uvedený jeho skutečný jazyk, např. angličtina). Za hlavním nadpisem je poté v závorce uveden kód Pčíslo, přičemž číslo je pro každou vlastnost jiné. Celý zápis parserové funkce vypadá takto: {{#property:Pčíslo}} (pomocí identifikátoru) nebo {{#property:štítek}} (pomocí štítku). Mějte na paměti, že štítek vlastnosti může kdokoliv kdykoliv změnit, což danou funkci ve všech článcích okamžitě znefunkční a zobrazí chybovou hlášku. Proto se doporučuje použít její identifikátor, který je neměnný, tudíž stabilní. Zejména pro testovací účely je dostupný i nepovinný parametr from=, jehož hodnotou je identifikátor položky (ve tvaru Qčíslo), ze kterého se mají údaje přebírat. Pokud ten není uveden, což je v šablonách žádoucí, touto položkou je ta, se kterou je daná stránka propojená mezijazykovým odkazem.

Druhá, novější parserová funkce se nazývá „#statements:“. Zatímco zadávání jejích parametrů je shodné, její výstup je odlišný, mimo jiné je opatřený HTML značkami. Ze srovnání obou funkcí níže vyplývá, že výstup „#property:“ neobsahuje odkazy a pro prezentační účely se hodí méně než „#statements:“.

Porovnání parserových funkcí
Vlastnost Hlavní město (P36) Vlajka (P41) Identifikátor v databázi VIAF (P214)
Funkce property: statements: property: statements: property: statements:
Stránka Česko (Q213) Praha Praha Flag of the Czech Republic.svg   137159957 137159957
Stránka Německo (Q183) Berlín Berlín Flag of Germany.svg   189116956 189116956

Modul Wikidata editovat

Na české Wikipedii se místo výše popsaných parserových funkcí prosadilo využívání modulu Wikidata, jehož hlavní předností je daleko větší počet možností, které může kterýkoliv uživatel doplňovat (v praxi pouze uživatelé mající potřebné schopnosti pro tvorbu modulů).

Jako každý jiný modul se i tento volá pomocí parserové funkce „#invoke:“. Za dvojtečkou je nutné uvést název modulu, tedy „Wikidata“, a funkci modulu, která se má volat, oddělenou od názvu modulu svislítkem. V dokumentaci modulu je v prvním sloupci tabulky uvedeno hned několik funkcí, nicméně tou nejdůležitější, jejíž úkolem je zobrazovat údaje z Wikidat, je formatStatements. Základní zápis tedy vypadá takto: {{#invoke:Wikidata|formatStatements}}. Podobně jako u parserových funkcí však tento základní zápis není dostačující, dalším povinným údajem je taktéž daná vlastnost, kterou však lze ze zmíněných důvodů uvést pouze pomocí identifikátoru. Tento údaj se pak stejně jako další nepovinné zadávají jako parametry v šabloně, v tomto případě odpovídá vlastnosti pojmenovaný parametr property. Jejich kompletní seznam je opět uvedený v dokumentaci, zde jsou uvedeny jen ty nejdůležitější:

  • id= → odpovídá parametru from= u parserových funkcí
  • of= → identifikátor vlastnosti, jejíž preferovaná hodnota odkazuje na položku, jejíž data se mají použít (viz příklad)
  • rank= → postavení zobrazených hodnot (jeho výchozí hodonota je valid, což odpovídá zobrazení tvrzení jak preferovaných, tak s normálním postavením; další jsou například preferred, tedy preferovaná hodnota, nebo best, tedy buď preferovaná hodnota, nebo jiná hodnota s normálním postavením, pokud není žádná jiná preferovaná)
  • separator=, conjunction= → modul hodnoty obvykle odděluje čárkami a poslední dvě spojkou „a“, tyto parametry však můžou vynutit jiný oddělovač, resp. spojku, případně lze pomocí <br /> (v obou parametrech) umístit každou hodnotu na nový řádek
  • limit= → kolik nejvýše chceme zobazit hodnot (např. pokud nám stačí jen jedna nebo jich nechceme příliš)
    • pokud připojíte i parametr showmore=true, v případě, že by byl limit překročen, se zobrazí text „... více na Wikidatech“ s odkazem přímo na dané údaje
  • showqualifier= → vymezení, které se má zobrazit s hodnotou (např. datum, ke kterému se vztahuje počet obyvatel); zadává se jako identifikátory vlastností oddělené čárkou, případně lze pro kombinaci od–do použít hodnotu time
  • sort= → vynucení vlastního pořadí hodnot: alpha – podle abecedy, date – podle časového údaje ve vymezení aj.

Příklad: ocenění (P166) současné české (Q213) hlavy státu (P35), seřazená podle data udělení (P585), zobrazující datum udělení (P585), každé na novém řádku, nejvýše však 7, s odkazem na zbylá.

{{ #invoke: Wikidata | formatStatements
| id = Q213
| of = P35
| property = P166
| showqualifier = P585
| limit = 7
| showmore = true
| sort = P585
| separator = <br />
| conjunction = <br />
}}

Medaile Za službu vlasti (1988)
Kříž za vojenskou chrabrost (1993)
medaile Za hrdinství (1995)
důstojník Řádu čestné legie (2012)
velkokříž Řádu koruny (2018)
Kříž obrany státu (2018)
komandér Záslužné legie (2018)
… více na Wikidatech

Lokální zadávání versus Wikidata editovat

Před vznikem Wikidat bylo zvykem vyplňovat údaje lokálně a tyto dosud v infoboxech zůstávají, navíc do většiny infoboxů zatím nebyla Wikidata intergrována. Obvykle se před údajem z Wikidat upřednostňuje lokální údaj, pokud je dostupný (např. {{Infobox - osoba}}), ale existují výjimky (např. parametr počet obyvatel v šabloně {{Infobox - česká obec}}). Přístup šablony k této skutečnosti také bývá předmětem diskusí o zavedení přebírání údajů.

Existují různě složité způsoby syntaxe, jejichž chování a možnosti se mírně liší:

Příklad syntaxe Výhody Možné nevýhody
{{{parametr| {{#invoke:Wikidata|formatStatements|...}} }}}
  • hodnotu z Wikidat můžeme přebít prázdným parametrem (| parametr = )
  • údaje není možné nijak dodatečně upravovat (např. text kurzívou)
{{#if: {{{parametr| {{#invoke:Wikidata|formatStatements|...}} }}}
| {{{parametr| {{#invoke:Wikidata|formatStatements|...}} }}}
}}
  • alternativa k předchozímu způsobu
  • případné dodatečné formátování hodnoty se aplikuje bez ohledu na její původ (lokální/Wikidata)
  • duplicitní volání modulu
{{#if: {{{parametr|}}}
| {{{parametr}}}
| {{#invoke:Wikidata|formatStatements|...}}
}}
  • lze dodatečně upravit lokální hodnotu
  • hodnotu z Wikidata nepotlačí zadání prázdného parametru
  • výhoda se nevztahuje na hodnotu z Wikidat
{{#if: {{{parametr|}}}
| {{{parametr}}}
| {{{parametr| {{#invoke:Wikidata|formatStatements|...}} }}}
}}
  • řešení prvního problému předchozího způsobu
{{#if: {{{parametr|}}}
| {{{parametr}}}
| {{{parametr| {{#if: {{#invoke:Wikidata|formatStatements|...}} | {{#invoke:Wikidata|formatStatements|...}} }} }}}
}}
  • lokální hodnotu a hodnotu z Wikidat lze upravovat zvlášť
  • hodnotu z Wikidat přebije i prázdný parametr
  • duplicitní volání modulu
  • kód už je poměrně složitý

Související stránky editovat