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

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

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 | editovat zdroj]

Syntaxe[editovat | editovat zdroj]

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 | editovat zdroj]

Na každém projektu Wikimedia, který má přístup k údajům na Wikidatech (v současné době se to netýká pouze všech jazykových verzí Wikislovníku), 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, jaká 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, kde čí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 Flag of the Czech Republic.svg 137159957 137159957
Stránka Německo (Q183) Berlín Berlín Flag of Germany.svg Flag of Germany.svg 127773629 127773629

Modul Wikidata[editovat | editovat zdroj]

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.
  • addclass=true → výstup modulu obalí CSS třídou, díky čemuž je možné ho udělátkem zvýrazňovat (v budoucnu může dojít k vynucení tohoto chování pro všechna volání modulu a zapnutí udělátka pro všechny)

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, mající CSS třídu, 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 />
| addclass = true
}}

velkokříž Řádu Bílého lva (2013)
Recipient of the Order of Tomáš Garrigue Masaryk, 1st class (2013)
Sonderstufe des Großkreuzes des Verdienstordens der Bundesrepublik Deutschland (2014)
Řád bílého dvojkříže (2014)
Řád Al Husejna bin Aliho (2015)
Řád za mimořádné zásluhy (2016)
Řád bílé orlice (2016)
… více na Wikidatech

Lokální zadávání versus Wikidata[editovat | editovat zdroj]

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 | editovat zdroj]