Diskuse k modulu:Wikidata/Archiv 1

Obsah stránky není podporován v jiných jazycích.
Z Wikipedie, otevřené encyklopedie
Poslední komentář: před 2 lety od uživatele Matěj Suchánek v tématu „Přesnější datum
Archivy
Archivy

Cizí data

@Mormegil, Shlomo, JAn Dudík: Při sledování vývoje je načase začít uvažovat o přebírání dat z položek cizích, což doteď nešlo. Určitě by nebyl problém to nějak zabudovat, ovšem rád bych diskutoval o syntaxi, kterou se to bude přebírat. Matěj Suchánek (diskuse | příspěvky) 31. 7. 2014, 10:19 (UTC)

A ono už to jde? To by byla dobrá zpráva, jsou k tomu někde bližší informace? Na WD project chatu nic nevidím...--Shlomo (diskuse) 31. 7. 2014, 11:00 (UTC)
@Shlomo: Ještě ne, ale když sleduji tracking na Bugzille a github, je mi jasné, že už je to na spadnutí. Tuhle diskusi jsem založil, abychom se dohodli na syntaxi: aktuální položka {{#invoke:Wikidata|formatStatement|property=}}, jak se ale má v budoucnu přebírat vlastnost p1 od položky v p2 (jakou syntaxí)? Matěj Suchánek (diskuse | příspěvky) 31. 7. 2014, 12:52 (UTC)
Tak on v tom modulu už parametr entityId existuje, jen kvůli chybějící podpoře zatím nic nedělá… (Ale jinak bych zrovna název parametru či funkce za zásadní nepovažoval, spíš bych se bál, aby to neskončilo dotahováním půlky Wikidat při zobrazení jednoho infoboxu…) --Mormegil 31. 7. 2014, 20:46 (UTC)
Napadají mě dva způsoby:
  1. {{#invoke:Wikidata|formatStatement|property=P|from=Q}}, to by pomohlo například v náhledu při zakládání článku, který nemůže být propojený. Jako parametr by to dostal infobox a těsně před uložením by se pak umazal.
    Dodal bych, že se může hodit i pro vytvoření sekundárního infoboxu, např. v článku pojednávajícím o dvou různých tvůrčích zpracováních stejného námětu nebo pro navboxy.--Shlomo (diskuse) 22. 8. 2014, 00:48 (UTC)
  2. {{#invoke:Wikidata|formatStatement|property=P|get=P}}, tohle se zase hodí v infoboxech k datům jako stát narození podle přesné polohy.
    Pozor na to, že máme-li dvojí dohledávání property (např. místo narození u člověka /1/ a stát u místa narození /2/), musíme zdvojit i další parametry vztahující se k property (v současnosti rank, ale budeme jistě potřebovat i další. Abychom se pak nedočetli, že Kant se narodil v RSFSR...) Jen si říkám, jestli pro taková komplexní a častěji vyžadovaná zadání nevytvářet raději speciální moduly.--Shlomo (diskuse) 22. 8. 2014, 00:48 (UTC)
Možná, že jsem to trochu uspěchal, na Wikidatech si to ale budeme moct už brzy vyzkoušet. Matěj Suchánek (diskuse | příspěvky) 1. 8. 2014, 07:09 (UTC)
Matěj Suchánek (diskuse | příspěvky) 1. 8. 2014, 07:09 (UTC)
Dodal bych ještě další typické úkoly, a sice
  • procházení hierarchické posloupnosti (typicky P361=část čeho) až k položce splňující zadanou podmínku (typicky P31=instance čeho); výstupem by měla být vrcholná položka hierarchie, nebo celá posloupnost,
  • dohledání kvalifikátoru k určitému tvrzení.--Shlomo (diskuse) 22. 8. 2014, 00:48 (UTC)
Skoro se začínám obávat, abychom to trochu nepřehnali… při každém vyrenderování článku procházet celá Wikidata a dohledávat v nich tisíc položek… abychom tím neuvařili servery. --Mormegil 22. 8. 2014, 20:10 (UTC)
To se omlouvám, ale technické detaily modulů jsou pro mne španělskou vesnicí - naposledy jsem programoval v PHP před 10 lety a v c++ před 15 a většinu jsem už zapomněl - takže syntaxe modulu jde mimo mou maličkost. JAn (diskuse) 1. 8. 2014, 05:29 (UTC)
Myslím syntaxi volání, ne Luy. Tu já třeba dělám z většiny podle ostatních a musím mít vždy návod. Škoda těch zapomenutých schopností. Matěj Suchánek (diskuse | příspěvky) 1. 8. 2014, 07:09 (UTC)

Filtrování

Namísto vzdušných zámků, co bude, až bude umožněn přístup k datům cizí položky, bychom se mohli zatím pokusit dopracovat to, co je možné už teď. Co mně osobně nejvíc schází, je filtrování výsledků.

  • filtrování podle ranku - je načnuté, ale není dotažené.
  • filtrování podle zdrojů - s ohledem na nedávnou diskusi Pod lípou by bylo dobré mít možnost nastavit vyhledání pouze tvrzení s uvedeným zdrojem (implicitně vyloučit P143, která neoznačuje zdroj, i když se tak tváří), případně s možností explicitně upřesnit požadavek na zdroj.
  • dohledání prvního/posledního/aktuálního tvrzení v posloupnosti podle vlastností od/do a předchůdce/nástupce

IMHO by z hlediska wikidat už toto vše mělo být dostupné, jen je potřeba vytvořit pro to patřičné nástroje (=moduly). Časem nás určitě napadnou i další úkoly, ale pro začátek máme, myslím, co dělat...--Shlomo (diskuse) 22. 8. 2014, 00:48 (UTC)

Dalo by se to trochu rozvést? (Zejména filtrování podle ranku.) Dohledávání prvního/posledního/aktuálního v posloupnosti nepůjde do doby, dokud nebudeme moci načíst jinou entitu, ne? (Aneb viz výše.)
Je otázkou, jestli filtrování na vlastnosti s uvedeným zdrojem je (přinejmenším v současné době) nějaké použitelné řešení. Dat, která mají uveden jiný zdroj než Wikipedii, na Wikidatech moc není. A IMHO není ani zcela jisté, že se uživatelé pohrnou do jejich doplňování (popravdě řečeno ani nevím, jakým mechanismem by to vlastně mělo fungovat).
--Mormegil 22. 8. 2014, 20:10 (UTC)
Pokusím se.--Shlomo (diskuse) 24. 8. 2014, 21:31 (UTC)

Rank

Až dodatečně jsem si všiml, že nějaký mechanismus už je implementován, takže se k tomuto tématu vrátím, až ho okouknu.--Shlomo (diskuse) 24. 8. 2014, 21:31 (UTC)

Časové údaje a posloupnost

Měl jsem na mysli situaci, kdy údaje od/do a předchůdce/nástupce jsou uvedeny jako kvalifikátor přímo v položce. Typicky u vlastností jako Property:P35, Property:P1308 apod. U vlastností typu Property:P39 sice nepůjde (resp. nemá smysl) dohledat první a poslední tvrzení, ale má smysl dohledávat/vyfiltrovat, které je aktuální. Totéž např. u Property:P150 a jistě i u dalších.--Shlomo (diskuse) 24. 8. 2014, 21:31 (UTC)

Reference a zdroje

Zda je to použitelné řešení v současné době si také nejsem jist, ale jsem si jist, že je to krok správným směrem pro budoucí vývoj. IMHO je totiž naopak zcela jisté, že uživatelé se do doplňování zdrojů nepohrnou, pokud jejich absence nebude nikomu vadit. Tím, že připravíme pro takové filtrování nástroje, nic nepokazíme; zda a kde toto filtrování nakonec uplatníme, to už je další krok, který vyžaduje další (a širší) diskusi. Pokud ovšem nástroje pro takovou kontrolu nebudou, je to silný argument pro názor, že data z Wikidat jsou nespolehlivá, nekvalitní a těžko kontrolovatelná a není ku prospěchu Wikipedie je přebírat.--Shlomo (diskuse) 24. 8. 2014, 21:31 (UTC)

Navrhované úpravy

Přemýšlel jsem o těch navrhovaných funkcích a napadají mě tyhle možné implementace:

  • Filtrování podle kvalifikátorů od+do:
    • buď chci aktuálně platný údaj, pak něco jako {{#invoke:Wikidata|formatStatements|property=P35|date=#now}},
    • nebo chci údaj platný k nějakému datu, pak něco jako {{#invoke:Wikidata|formatStatements|property=P35|date=2014-01-01}}.
  • Filtrování podle dostupných referencí:
    • musí být uveden jakýkoli zdroj: {{#invoke:Wikidata|formatStatements|property=P569|ref=#any}}, nebo
    • musí být uveden zdroj konkrétní vlastností: {{#invoke:Wikidata|formatStatements|property=P569|ref=P248}}.
  • Řazení položek – aktuálně se položky řadí v zásadě libovolně/náhodně. Dalo by se ale uvažovat o tom, že by se řadily
    • podle ranku (preferované, normální, zavržené) – sort=rank,
    • podle času (opět od+do) – sort=date
    • …?
  • Omezení počtu hodnot, které mě zajímají.
    • Jen první hodnota (limit=1),
    • všechny hodnoty (žádný limit),
    • několik prvních (limit=5), v takovém případě by výsledkem bylo něco jako „lorem, ipsum, dolor, …“?

Poslední dvě funkce by nahradily stávající systém filtrování podle ranku, který podle mě nevhodně slučuje obě funkcionality. Je ten navržený seznam rozumný/moc úzký/moc široký/špatný/…? --Mormegil 25. 8. 2014, 20:10 (UTC)

Dvě poznámky k filtrování podle času:
  1. Hodilo by se i mít možnost vybrat údaj platný k datu určenému jiným tvrzením.
  2. Jak naložit s neurčitostí časových údajů? Např. tvrzení s kvalifikátorem "od" s hodnotou 1.1.1790 ± 1 rok, a my hledáme hodnotu k 1.6.1790? Myslím, že by poskytnutý údaj měl být přinejmenším označený jako nejistý. Obdobný problém u tvrzení, která mají v kvalifikátoru "od" nebo "do" informaci "neznámá hodnota".--Shlomo (diskuse) 31. 8. 2014, 14:44 (UTC)

Časový údaj

Přebírání časového údaje jde přes Modul:Time, ani ten ale nezajistí, aby datum (narození apod.) bylo rovnou zformátováno (odkazy, česky) a nemusela být použita funkce {{#time: }}, která může poskytovat špatná data (je-li Wikidaty poskytnut jen rok). Matěj Suchánek (diskuse | příspěvky) 31. 8. 2014, 18:11 (UTC)

Vyřešil jsem pomocí Modul:Wikidata/datum, používá se {{#invoke:Wikidata|formatStatements|property=p569|rank=one|value-module=Wikidata/datum|value-function=formatDate}}. Matěj Suchánek (diskuse | příspěvky) 29. 9. 2014, 14:22 (UTC)

Filtrování podle zdrojů

S ohledem na probíhající masové zaplevelování Wikidat neozdrojovanými a nevěrohodnými tvrzeními získanými pochybnými a často zpětně nedohledatelnými metodami z kategorizačních struktur Wikipedií bych se přimlouval za urgentní připravení možnosti filtrovat údaje z Wikidat podle existence zdrojů, které by mohlo představovat účinnou ochranu aspoň Wikipedie (když už ne Wikidat...) před tímto balastem. V opačném případě nám hrozí, že se v komunitě wikipedistů zvedne taková averze vůči Wikidatům (a IMHO oprávněná...), že se Wikipedie od Wikidat (nebo aspoň od "tvrzení" z nich) odstřihne úplně a vše, co bylo dosud v této oblasti vytvořeno, budeme muset pracně předělávat zpátky...--Shlomo (diskuse) 14. 9. 2014, 08:34 (UTC)

@Shlomo: Na Wikidatech mají vlastní modul Wikidata a ten toho umí sakra moc. Něco by se implementovat mohlo... to zaplevelování mě osobně mrzí, já proti hromadným editacím nic nemám, sám je provádím, ovšem tenhle uživatel jede bezmyšlenkovitě. Podle mě by se hodil nový WikiProjekt Wikidata. Matěj Suchánek (diskuse | příspěvky) 14. 9. 2014, 09:15 (UTC)
To je fajn, aspoň nemusíme objevovat Ameriku. Myslím, že sourceproperty je přesně to, co teď potřebujeme. (A další by se mohlo taky hodit...)--Shlomo (diskuse) 14. 9. 2014, 09:48 (UTC)

Coordináty

Ahoj, přidal jsem předběžně formátovací fci pro formátování koordinátů (defaultní), nicméně - při testování (který se teda dělá pekelně špatně a tak nějak nevím, jak na něj správně) se mi nic nezobrazuje ani bez pomocí formatteru a ani s touto funkcí. A ano, vím, že bych si mohl použít vlastní formatter, ale nějak se mi nechce tvořit pro formátování další modul, ač by to bylo hezký, ale podle mě zbytečný - možná, pokdu se rozhodneme nějak brutálně rozepsat ty coordináýty do různým templates (což se bude asi i tak hodit, neboť coordináty se asi vrací jako double, tj. desetinné místo a my tak budeme muset dělat zřejmě přepočty či to nějak vymyslet jinak. Můžete mi někdo, pokud tušíte, kde je chyba říct, kde je chyba a proč se mi např. na https://cs.wikipedia.org/w/index.php?title=Vojn%C3%ADkov&oldid=12188110 nic nezobrazuje? Stačilo by mi asi něco jako "var_dump(datavalue.value)", ale to v Lua snad ani není a ani nevím, jak to provést.--frettie.net (diskuse) 27. 1. 2015, 01:43 (CET)

https://www.wikidata.org/wiki/Module:Coordinates - tak asi někdy tohle použijeme a poupravíme, no.--frettie.net (diskuse) 27. 1. 2015, 01:47 (CET)
„var_dump“ je ve Scribuntu mw.dumpObject(). A chyba byla v tom, že když se ta proměnná jmenuje formated (sic), tak to nelze přiřazovat do formatted, byť by to bylo gramaticky správnější. --Mormegil 27. 1. 2015, 12:29 (CET)
No ty jo, dík! :)--frettie.net (diskuse) 27. 1. 2015, 21:03 (CET)
https://cs.wikipedia.org/w/index.php?title=Vojn%C3%ADkov&oldid=12188110 - tak takhle, je tam nějakej hodně základní nástřel, na víc nemám čas.--frettie.net (diskuse) 27. 1. 2015, 21:38 (CET)
Tak je to tajný, ale už přebíráme kooordináty z Wikidat v infoboxu České obce, podle mě to funguje v pořádku. JEště asi bude potřeba se zbavit "zeměpisná šířka" a "zeměpisná délka" parametrů v infoboxu a v nápovědě. A vydržet předpokládaný blbý kecy komunity.--frettie.net (diskuse) 28. 1. 2015, 01:53 (CET)

Dotaz na přebírání labelu z jiné položky propojené přes property

Tohle:

[[{{#invoke:Wikidata|getSitelink|of=P131}}|{{#invoke:Wikidata|getLabel|of=P131}}]]

funguje pro getSitelink správně, pro getLabel je to of=P131 nefunkční. Zkuste si to v Speciální:Testy_šablon pro Polabiny. Věděli by místní diskutující proč, a jak to napravit? Díky --Vojtěch Dostál (diskuse) 7. 11. 2016, 00:34 (CET)

Funkce getLabel a také getDescription se při načítání údajů snaží využít zabudované funkce, které umožňují získat daný štítek/popisek i bez načtení celé položky. Tyto kontroly ale proběhnou dřív než se kód ptá po parametru of=. Takže to bude nutné trochu přepsat.
Mimochodem, proč je nutný zápis výše? Kde bereš jistotu, že jak štítek, tak popisek, příp. celé tvrzení existují? Není lepší prostě {{#invoke:Wikidata|formatStatements|property=P131}}? Matěj Suchánek (diskuse) 7. 11. 2016, 14:31 (CET)
Díky za vysvětlení a i za dobrý nápad, jak to obejít. Nenapadlo mě že v tomto případě existuje jednodušší způsob :-). Dneska si s tím zase budu hrát, když zbude čas. --Vojtěch Dostál (diskuse) 7. 11. 2016, 21:32 (CET)

Uživatelský návod

Mohl bych poprosit o aspoň základ jakéhosi uživatelsky přívětivého návodu, který by třeba na častých příkladech ukázal, jak se má modul využívat, resp. jak se má vkládat např. do infoboxů, aby dělal právě to, co bychom od něj obvykle mohli chtít? Viz např. en:Module:Wikidata. Ze současné dokumentace nejsem moc rozumný, je to programátorská hatmatilka, pro mě cizí řeč vzdálenější než ta angličtina. :) --Bazi (diskuse) 29. 3. 2017, 15:23 (CEST)

Ahoj Bazi, já používám toto a jsem s tím spokojen: Wikipedista:Matěj Suchánek/Pískoviště/2. Je to lepší nebo též hatmatilka? :) --Vojtěch Dostál (diskuse) 29. 3. 2017, 17:18 (CEST)
Bohužel jsem to zatím nepřesunul někam, kde by to bylo vidět. Ono se to za tu dobu taky trochu změnilo... Matěj Suchánek (diskuse) 29. 3. 2017, 17:42 (CEST)
Ode dneška máme Wikipedie:Wikidata/Přebírání do infoboxů. Matěj Suchánek (diskuse) 1. 4. 2017, 16:13 (CEST)

Nefunguje addclass?

Přidal jsem novou funkci getId a při kontrolování testcases jsem si všiml, že najednou z ničeho nic přestal fungovat parametr addclass, ale myslím si, že s tím nemám nic společného. Že by odpovídající funkci odebrali z API? Petr Matas 6. 6. 2017, 21:35 (CEST)

OpravenoOpraveno Opraveno. Ne, to byl jen překlep způsobený kopírováním. Matěj Suchánek (diskuse) 6. 6. 2017, 22:15 (CEST)

GetRawValue s qualifiersOnly?

Ahoj, řeším drobný problém, možná způsobený mou neznalostí. Toto funguje správně:
{{#invoke:Wikidata|formatStatements|id=Q18002983|property=p1435|withqualifier=p642|showqualifier=p642|rank=best|qualifiersOnly=true}}
= část kulturní památky České republiky (Brno hl.n.)

Ale čekal bych že GetRawValue bude fungovat stejně (=že dostanu Q921772), ale nefunguje:
{{#invoke:Wikidata|getRawValue|id=Q18002983|property=p1435|withqualifier=p642|showqualifier=p642|rank=best|qualifiersOnly=true}}
= Q30118385

Poradíte prosím? Díky, --Vojtěch Dostál (diskuse) 7. 6. 2017, 18:26 (CEST)

A já zrovna pracuji na tom, abychom odstranili qualifiersOnly. Takže strpení, můžeš zatím zkoušet getRawQualifier. Matěj Suchánek (diskuse) 7. 6. 2017, 18:38 (CEST)
Skvělé, getRawQualifier skutečně funguje :-) --Vojtěch Dostál (diskuse) 7. 6. 2017, 18:51 (CEST)

[BREAKING] Změna výstupu formatStatements a jiné poslední změny

Jak vidíte, nahoře se objevil úkolníček a nyní se chystám odstranit hned ten první rest. (Toto oznámení se týká především editorů šablon.)

Dosud bylo nutné (nebo přinejmenším žádoucí) u každého volání modulu přidat parametr addclass=true, který výstup modulu obalí CSS třídou. Právě proto, že se to týká téměř všech užití (najde se pár výjimek), to nyní bude implicitní (pro všechna volání automatické). Jak už napovídá název funkce, její výstup je považován za zformátovaný, takže je určený přímo k zobrazení čtenáři.

Důsledkem toho se mohou poškodit některé infoboxy, pokud se v nich dotyčná funkce volá nesprávně. V případě, že se s výstupem modulu dále pracuje (např. se používá jako cíl odkazu), je nutné použít jinou funkci. Například místo tohoto volání (@Vojtěch Dostál:) by se měla volat funkce getRawValue, neboť šablona {{Infobox obrázek}} očekává pouze název obrázku, nijak nezformátovaný. Třebaže mezi zformátovanou a nezformátovanou hodnotou zatím není rozdíl, výstup modulu je deklarován jako zformátovaný a obsahuje HTML, takže výsledek bude vypadat takto: [[Soubor:<span class="wd">Example.jpg</span>]]. Kromě toho getRawValue vždy vrací nejvýš jednu hodnotu (opět srov. název funkce), což ale chybným voláním modulu nebylo omezeno.

Nedávno byl také změněn přístup modulu ke speciálním hodnotám (tzv. „snaktype“) novalue a somevalue. Předtím se tyto hodnoty odfiltrovávaly pomocí parametru showspecial=false (který je možné z šablon odmazávat), nyní jsou z tvrzení odfiltrovávány implicitně. K této změně mě vedly tyto skutečnosti:

  1. v současné době není jejich význam ve většině případů definovaný a ani nemá oporu v doporučeních
  2. tvůrci šablon při zavádění přebírání s nimi většinou nepočítají
  3. čtenáři by se mohli setkávat s matoucími výrazy jako žádná hodnota

Jako náhradu jsem přidal dva nové parametry somevalue= a novalue=. Jejich použitím editor šablony deklaruje, že s nimi počítá, a rovnou jim přiděluje i vzhled. Parametry snesou primitivní wikitext. Tato změna se týká i getRawValue, kde ovšem stačí jako obsah parametru klíčové slovo true.

Další výraznější změnou je implementace převodu mezi juliánským a gregoriánským kalendářem, viz např. James Watt. K tomu implicitně dochází u časových údajů v juliánském kalendáři v období 1582–1930. Kalendář lze vždy změnit editací daného časového údaje na Wikidatech. Matěj Suchánek (diskuse) 25. 9. 2017, 22:56 (CEST)

Děkujeme za nahlášení změny, pokusím se co nejrychleji přeučit :-). Existuje způsob, jak chyby vytipovat a hromadně opravit? --Vojtěch Dostál (diskuse) 26. 9. 2017, 09:40 (CEST)
Většinu jsem už před nějakou dobou opravil. Jelikož se chyba týká v podstatě jen vlastností s datovým typem odvozeným z řetězce (především těch obrázků), stačí se zaměřit na vyhledávání volání jako [1]. Ale jsem si jistý, že skoro všechno je už opravené. Matěj Suchánek (diskuse) 26. 9. 2017, 16:04 (CEST)
Nasazeno HotovoHotovo Matěj Suchánek (diskuse) 7. 10. 2017, 17:32 (CEST)

P2439

Hi. Please remove P2439 in Modul:Wikidata/lib. Thanks. --Pasleim (diskuse) 1. 4. 2018, 23:11 (CEST)

HotovoHotovo Hotovo. Thanks. Matěj Suchánek (diskuse) 2. 4. 2018, 14:44 (CEST)

getId neumí zpracovat dva parametry

Již dva měsíce funguje pro mw.wikibase.getEntityIdForTitle i možnost jako druhý parametr zadat cílovou wiki (více info). Bylo by možné tuto funkci přidat i sem? --Dvorapa (diskuse) 11. 4. 2018, 22:07 (CEST)

Do modulu byla zavedena ještě dřív, než začala fungovat:
{{#invoke:Wikidata|getId|Praha}} → Q1085; {{#invoke:Wikidata|getRawValue|page=Praha|property=P17}} → Q213.
Matěj Suchánek (diskuse) 12. 4. 2018, 08:50 (CEST)
Omlouvám se, nevšiml jsem si, že je myšleno rozšíření o ten nový parametr. Podívám se na to. Matěj Suchánek (diskuse) 12. 4. 2018, 08:52 (CEST)
HotovoHotovo Hotovo.
{{#invoke:Wikidata|getId|Prague|wiki=enwiki}} → Q1085; {{#invoke:Wikidata|getRawValue|page=Prague|wiki=enwiki|property=P17}} → Q213.
Matěj Suchánek (diskuse) 12. 4. 2018, 09:00 (CEST)
Děkuji. Mimochodem, narazil jsem tu na modul Wikibase, šel by sem sloučit? (jak jsme se bavili o té hromadě nadbytečných duplicitních modulů) --Dvorapa (diskuse) 12. 4. 2018, 09:38 (CEST)
Ten modul je dost zastaralý, prakticky na smazání. Podívám se, kde se využívá jeho API, a pak ho smažu. Matěj Suchánek (diskuse) 12. 4. 2018, 10:11 (CEST)

Číselný údaj na zadaný počet řádů

Řeším problém v článku Jaroměřice nad Rokytnou, kde testuji přebírání rozlohy v infoboxu z Wikidat. Importuji oreferencovaná data z databáze ČSÚ, ale jsou poněkud příliš přesná pro využítí v infoboxu. Zvládl by tento modul zaokrouhlovat údaje na zadaný počet desetinných míst? Děkuji za radu, --Vojtěch Dostál (diskuse) 28. 8. 2018, 18:04 (CEST)

round=# Matěj Suchánek (diskuse) 29. 8. 2018, 08:46 (CEST)
Moc děkuji! --Vojtěch Dostál (diskuse) 29. 8. 2018, 09:06 (CEST)
Vojto, nezvážíš aspoň 2 desetinný místa? --frettie.net (diskuse) 29. 8. 2018, 10:51 (CEST)

FormatStatements a odkazy na jiný Wikimedia projekt

Je možné zformátovat {{#invoke:Wikidata|formatStatements|property=p527}} tak, aby v případě existence článků na určitém (zadaném) projektu Wikimedia zobrazovala odkazy na tyto články, namísto klasického cswiki? --Vojtěch Dostál (diskuse) 6. 8. 2019, 21:55 (CEST)

Tady je víc možností, jak to pojmout, můžeš z pohledu uživatele uvést konkrétní příklad (včetně zvláštních případů a zobrazeného textu)? --Matěj Suchánek (diskuse) 7. 8. 2019, 11:55 (CEST)
Jasně, nechtěl jsem do toho zabíhat ale praktický příklad je vždy nejlepší. Konkrétně je to tato šablona na Wikiknihách, u níž bych chtěl, aby u toho p527 byly odkazy na články na cswiki (teď neřešme, že to použití vlastnosti p527 je pravděpodobně u chemických pokusů nesmyslné - vědí to a změní se to). --Vojtěch Dostál (diskuse) 7. 8. 2019, 13:47 (CEST)
Jasně, takže by to chtělo parametr link=cswiki nebo tak nějak. Trochu to komplikuje fakt, že v Lua nemám funkci wiki->interwiki, ale snad to půjde. --Matěj Suchánek (diskuse) 7. 8. 2019, 15:03 (CEST)
@Matěj Suchánek: Koukám, že jsi to implementoval, díky moc! :) funguje, viz např. b:Chemické pokusy/Chromatografie (na křídě) --Vojtěch Dostál (diskuse) 29. 8. 2019, 12:14 (CEST)

ISBN v referencích

Dle Modul:Wikidata/cite vidím, že podpora referencí je asi zatím rozpracovaná a tuším, že dá hodně práce správně seřadit a naformátovat všechny části citace dle norem. Ale jedna věc by hodně pomohla a nemusela by být tak náročná, a to přebírání ISBN a DOI. Tyto identifikátory se dají zformátovat tak, aby odkazovaly do databází, které poskytnou jednoznačnou identifikaci díla. Pro testování ISBN - možno použít první referenci v článku Ladislav Machoň. Případné velké díky, --Vojtěch Dostál (diskuse) 6. 10. 2019, 11:27 (CEST)

Přidal jsem je tam. Bylo by fajn, kdyby se to podařilo dokončit. --Matěj Suchánek (diskuse) 6. 10. 2019, 13:26 (CEST)
Moc děkuju za ty identifikátory :). Je to teď mnohem lepší. --Vojtěch Dostál (diskuse) 6. 10. 2019, 13:51 (CEST)

Vyextrahovat ze složitých vyplnění název článku pro getId?

Ahoj, je možné ze složitých hodnot v infoboxech, např. [[Název článku|Názvu článku]] (poznámka v závorce)<ref>Reference k informaci</ref> vyextrahovat surový název článku (tedy "Název článku") pro další práci s ním, např. pro GetId? Hledal jsem nějaký modul pro extrakci z textu, samozřejmě to nebude fungovat na 100%, ale stačí mi 99%... --Vojtěch Dostál (diskuse) 26. 1. 2020, 09:58 (CET)

@Vojtěch Dostál: Modul na extrakci z textu je Modul:String. A pak záleží na tom, jaký způsobem je hodnota vyplněná. Pokud je požadovaný název vždy v prvním odkazu nebo třeba jako plaintext na začátku, zřejmě by to šlo.
Alternativně je možnost zkusit hodnoty nějak sjednotit roboticky, případně z nich refy odsunout do samosatného parametru... JAn (diskuse) 27. 1. 2020, 10:33 (CET)

Formátovač "vlajka a název"

Ahoj. Pokud jsem to prolétl dobře, tak zatím není možné z wikidat přebrat parametr, co obsahuje více hodnot, a obalit je do {{Vlajka a název|hodnota[i]}} a nadto separovat pomocí </br>. Pokud parametr obsahuje jednu hodnotu, řešení existuje a v několika infoboxech se používá, ale máme řeky protékající dvěma a více státy, hory na rozhraní více států a taky koprodukční filmy na nichž se podílelo více států. V několika infoboxech se zase podaří vytáhnout a naformátovat vícero hodnot, ale jen jako odkazy, bez vlaječky kterou poskytuje šablonka vlajka a název. Nebo panuje vůči omalovánkám skepse a kdo chce vlajky tak ať si vyplňuje růčo infobox a nechce takovou zhůvěřilost po automatickém přebírání a formátování z wd? Chrzwzcz (diskuse) 28. 8. 2019, 23:46 (CEST)

Však bez vlaječek se to teprve pěkně sjednotí, ne? Vivat unifikace! --Bazi (diskuse) 28. 8. 2019, 23:53 (CEST)
Vlajky se při ručním vyplňování používají. Při automatickém přebírání se taky používají v nejednom infoboxu. Ale zatím (to vypadá že) nelze vlajky použít při vícenásobné hodnotě. Takže nevím, proč taková divná reakce od pana unifikovaného šedivého proužka. Chrzwzcz (diskuse) 29. 8. 2019, 00:02 (CEST)
Paradoxem je, že i v případě „šedivého proužku“ zastáváte unifikační pozici. Ale to sem vůbec nepatří, tak uděláte líp, když to sem zatahovat nebudete. --Bazi (diskuse) 29. 8. 2019, 00:14 (CEST)
Já zastávám unifikaci konzistentně, ne účelově. Pro variantu bez vlajek v infoboxech technické řešení existuje. Pro variantu s vlajkami neexistuje pokud má parametr víc hodnot, jde to udělat jen tak že se zobrazí jen ta první. Ať si vyberou u každého infoboxu co chtějí a nerozhodujme za ně centrálně tím, že jedna z možností nebude technicky možná. Při přebírání z wikidat tím myslím, samozřejmě. Chrzwzcz (diskuse) 29. 8. 2019, 00:31 (CEST)
@Chrzwzcz Myslím že to technicky možné je, ale jinak, než se to dosud dělá. Nemáte příklad položky kde je více hodnot? --Vojtěch Dostál (diskuse) 29. 8. 2019, 12:07 (CEST)
Implementace je jedna věc, konsenzus na používání druhá. Připravil jsem formátovač, který použije přímo šablonu {{Vlajka a název}} (byl bych raději, kdyby už nemusel). --Matěj Suchánek (diskuse) 29. 8. 2019, 16:05 (CEST)
Matěji, to nešlo udělat pomocí stávajícího "pattern"? (Obalit názvy států šablonou)? --Vojtěch Dostál (diskuse) 29. 8. 2019, 16:34 (CEST)
Jednoduché řešení není vždy to nejčistší. pattern je prosté najít a nahradit, tedy operace, kterou lze vykonat pouze nad stringy. Na rozdíl od položky, kterou lze přirovnat k objektu. Kdybych zavedl pattern do formátovače položek, čím bych měl nahradit $1? Identifikátorem položky? To by v našem případě nefungovalo... Štítkem? Co když český neexistuje? Odkazem sem? To samé... --Matěj Suchánek (diskuse) 29. 8. 2019, 16:45 (CEST)
Dobře, každopádně díky za řešení :)--Vojtěch Dostál (diskuse) 29. 8. 2019, 17:16 (CEST)
@Matěj Suchánek: Díky díky díky, a mohl bych pro jistotu poprosit i o zkušební implementaci do Infobox film u "data4"? Ať vidím jak se to přesně napíše, ověřit se do dá např. u filmu Bathory, ten tahá z wikidat. Chrzwzcz (diskuse) 29. 8. 2019, 18:00 (CEST)
Budiž. Pokud se objeví nějaký problém, revertujte a uveďte článek. --Matěj Suchánek (diskuse) 29. 8. 2019, 18:18 (CEST)
Je to krásné, jsem dojat, díky. Ještě dotaz. Zobrazení jednoho státu i s vlajkou uměl tento zápis
{{{země<includeonly>|{{#if: {{#invoke:Wikidata|getSitelink|of=p495}} | <span class="wd">{{Vlajka a název|{{#invoke:Wikidata|getSitelink|of=p495}}}}</span>}}</includeonly>}}}
Vaše řešení s novým formátovačem je vhodné pro parametr s mnoha hodnotami i jednou hodnotou
{{{země<includeonly>|{{#invoke:Wikidata|formatStatements|property=p495|value-formatter=flag|separator=<br />|conjunction=<br />}}</includeonly>}}}
Myslíte, že má smysl přepsat infoboxy na ten nový způsob (i ty, kde se s více hodnotami nepočítá), je to univerzálnější a elegantnější? Chrzwzcz (diskuse) 29. 8. 2019, 18:25 (CEST)
Jistě, po otestování se to přímo nabízí. --Matěj Suchánek (diskuse) 29. 8. 2019, 18:35 (CEST)
Fajn. Máte nějaké tipy, kde by to mohlo zlobit? Články, které hodnotu nemají vyplněnou, články co mají hodnot moc - nebo něco takového? Chrzwzcz (diskuse) 29. 8. 2019, 18:38 (CEST)
Spíš mám na mysli nepodporované státy/vlajky (na Wikidatech je toho přeci jen možné víc). Když se před nějakou dobou podobným způsobem začalo přistupovat k LocMapám, objevilo se pár červených chybových hlášek, taky kvůli nepodporovaným státům.
Abych nezapomněl, měl bych možná upozornit, že vlajka se zobrazí pouze, pokud tady existuje o státu článek. Bez něj se objeví pouze štítek (bez odkazu). To by se (kvůli „granularitě“ Wikidat) mohlo stát i u docela triviálních případů a pak by bylo vhodné zvážit, jestli to i přesto „za to stojí“. --Matěj Suchánek (diskuse) 29. 8. 2019, 18:55 (CEST)
Šablonu Data státu máme pro všechny státy, i zaniklé, články jakbysmet, takže v tom by snad problém být neměl. Leda by to tam někdo naklikal blbě, to je pak chyba nastavených dat a ne modulu, aspoň to chybová hláška objeví. Ale naopak pro USA/Spojené státy americké máme separátní šablony Data státu, ale do wikidat podle všeho nejde dávat "USA", protože takový článek není, je to prosté přesměrování. A pro některé státy máme víc šablon kvůli tomu, že měnily vlajku nebo nedejbože název, a přitom článek mají jediný společný, ale takové problémy by byly už se starým způsobem, to není specialita nového formátovače. Chrzwzcz (diskuse) 29. 8. 2019, 19:05 (CEST)
KomentářKomentář Opravdu nechápu, proč když už máme funkční řešení, je po třeba ho zas takto „vylepšovat“. Navíc se zrušením lokálního vyplňování, což ne každý ocení. (Možná jsem to měl rovnou napsat pod lípu...) --Matěj Suchánek (diskuse) 2. 9. 2019, 09:43 (CEST)
Zrušení lokálního vyplňování je krajně nevhodné. --Bazi (diskuse) 2. 9. 2019, 14:47 (CEST)
No, díky tomuto pokusování se podařilo zajistit 300 filmů a seriálů, které neměly vůbec vyplněnou informaci o zemi původu na wikidatech ještě jich pár zbývá, ale to se dorazí. To jsem povyplňoval já, pochválit se musím klasicky sám, protože tady se dočkáte jen poplivání. Dobrá práce, Chrzwzczi, díky. Takže ve chvíli, kdy to už všechni mají na wikidatech, k čemu slouží lokální vyplnění? Ideálně k přebití hodnot kvůli nějakým specialitkám, se kterými si formátovač zatím neporadí. To je minimum případů, drtivá většina je formátování dat na 1000 způsobů. Jaký by byl doporučený postup k sjednocení naformátování hodnot? Odmazávat lokální nastavení ze všech článů z infoboxů, u nichž lokální hodnota není ničím zajímavá a automatika z wikidat zastane svou práci? Chrzwzcz (diskuse) 2. 9. 2019, 20:34 (CEST)
„Vylepšení“, které jsem myslel, je ta konstrukce s {{Nahradit}}, jejíž účel je mi teď naprosto zřejmý. Vylepšení 300 položek (díky, množství jsem nezaznamenal) s tím nesouvisí.
Odmazávat lokální nastavení ze všech článů z infoboxů, u nichž lokální hodnota není ničím zajímavá a automatika z wikidat zastane svou práci? – Jistě, proč ne? Ale akce vyvolá reakci. --Matěj Suchánek (diskuse) 3. 9. 2019, 09:07 (CEST)
Kdykoli někdo z méně zkušených wikipedistů založí nový článek o filmu, měl by mít možnost vyplnit údaje do infoboxu lokálně, bez jakékoli znalosti práce s Wikidaty. Nelze tedy ponechat nějaký parametr výhradně na Wikidatech nebo Wikidata upřednostnit před lokální hodnotou. --Bazi (diskuse) 3. 9. 2019, 12:58 (CEST)
Upřednostnění Wikidat by vámi zmiňovaný případ vyřešilo - nejdřív wikidata a když v nich nic není, tak lokál. A pravidelná kontrola nové údržbové kategorie, do které takové případy automaticky spadnou, taky řeší situaci. Neříkám ne lokálním hodnotám, ale říká si to o úklid, promazat nepotřebné případy, které přinášejí totéž co zvládne automatické načtení a naformátování (lépe a pravidelněji). Jak moc vysoko, no kde přesně, se takové odmazávání objednává, nebo se to musí kvůli kontrole procházet ručně? Jednoduché "rovná se" pro porovnávání nestačí, potřebovali bychom "rovná se, když si odmyslíte rozdílná formátování, a možná i pořadí". Vzrušené reakce přináší už kdeco, ale nevím co zásadního by mělo vadit, když tohle by nemazalo informace z wikipedie, jen odmazalo kus jejich nedokonalého dublování. Chrzwzcz (diskuse) 4. 9. 2019, 14:40 (CEST)
Je nepravděpodobné, že to komunita přijme s povděkem. Žok hovoří jasně: Upřednostnit v šabloně lokální vyplnění. To by mělo vždy přebít informaci na Wikidatech. To umožní i nováčkům, aby informaci snadno opravili přímo ve Wikipedii, pokud ji vidí jako chybnou. To ovšem neznamená že by nebylo možné parametry z infoboxů a dalších šablon odstraňovat ve prospěch Wikidat, pokud jsou lokální data nekvalitní. Vždy by ale toto mělo být prodiskutováno (viz výše). Pokud chcete postupovat jinak, pak bude asi nutné vyvolat o tom širší diskuzi. Osobně si velmi vážím nastavené rovnováhy a křehkého "příměří" a nerad bych, aby porušování výsledků Žoku vyvolalo nějaké hlasy nevole.--Vojtěch Dostál (diskuse) 4. 9. 2019, 16:42 (CEST)
Takže na Wikidata nástěnce oznámit záměr hromadně odstranit nekvalitní a celkově nadbytečná lokální vyplnění konkrétního parametru "země" u filmového a televizního infoboxu. Přebíjení by se nerušilo, tak komunita může zůstat v klidu, akorát by bylo zatraceně vzácné až neexistující (jen pro nově založené články do doby vyplnění na wikidatech). ŽoK to snad žádný neruší, takže rovnováha neohrožena. K unifikaci se dá dostat třemi způsoby. 1) Porušit ŽoK a na lokální data kašlat. 2) Parametr ve všech článcích promazat. 3) parametr ve všech článcích nastavit tak, aby odpovídal unifikovanému formátu. Varianta 1 je rychlá a bezbolestná a rychle předvede jak by měl požadovaný cílový stav vypadat. Varianta 2 je čistá ale pracná. Varianta 3 je pracnější a není odolná proti budoucí změně názoru ohledně naformátování. Chrzwzcz (diskuse) 4. 9. 2019, 17:09 (CEST)
Ano, nejčistčí bude otevřít na nástěnce novou diskuzi a nechat si schválit odstranění vyplnění parametru z infoboxů. Pokud bude přesvědčivě prokázáno, že parametr je na české Wikipedii vyplněn nekvalitně (jsou tam chyby) tak by to mohlo projít. --Vojtěch Dostál (diskuse) 4. 9. 2019, 18:06 (CEST)

@Matěj Suchánek: Po čase... Existuje prosím způsob, aby formátovač zafungoval nejen na wikidata, ale i na lokálně vyplněný parametr země? {{{země<includeonly>|{{#invoke:Wikidata|formatStatements|property=p495|value-formatter=flag|separator=<br />|conjunction=<br />}}</includeonly>}}} A pokud ano, šlo by taky vyplnit třeba "země= Francie;Japonsko" a formátovač už by si v tom podle oddělovače našel pole o dvou hodnotách a formátoval by je separátně, stejně jako když z wikidat přijde víc hodnot? Chrzwzcz (diskuse) 19. 2. 2020, 11:45 (CET)

V rámci tohoto formátovače určitě ne, ten je určený pouze pro formátování jednotlivých údajů na Wikidatech. Nicméně něco velmi podobného před časem zavedl kolega Dvorapa v infoboxu {{Infobox - železniční stanice}} (parametr služby ve stanici, Modul:Parse) a na tom bych to postavil. --Matěj Suchánek (diskuse) 19. 2. 2020, 18:28 (CET)
Ano, modul Parse (pravděpodobně jsem mu dal blbé jméno jak nad tím přemýšlím teď), by měl sloužit přesně pro tyto účely, v budoucnu jsem s ním chtěl právě problém více zemí v parametru infoboxů řešit. Nyní ale nemám zrovna moc času se tím zabývat. --Dvorapa (diskuse) 19. 2. 2020, 19:22 (CET)
Dík za odpovědi. Takže nemá smysl se teď zabývat úpravou formátování lokálních dat na jednotný formát? Až bude připraven způsob, tak se naposledy upraví lokální vyplnění na takovou formu, aby se jejich formátování řešilo až centrálně na úrovni šablony (která tedy zatím umí takhle pěkně vyřešit jen wikidata). Tak?Chrzwzcz (diskuse) 19. 2. 2020, 19:30 (CET)
Tady je prototyp: {{#invoke:Parse|countriesWithFlags|Francie,Japonsko}}
FrancieFrancie Francie
JaponskoJaponsko Japonsko
--Matěj Suchánek (diskuse) 20. 2. 2020, 12:41 (CET)
To vůbec není marné, výsledek by ale měl být oddělen novým řádkem. Muselo by se jen vychytat, jaké zápisy jsou legální a jaké v tom dělají zmatek jiné zápisy než prostý text. A jestli to bude fungovat na všechny státy, i ty s rozlišovačem nebo čárkou v názvu: BonaireBonaire Bonaire
Svatý Eustach a Saba Svatý Eustach a Saba. A jestli jde ještě připojit nějakou poznámku "Francie (do 1992),Japonsko (od 1993)" a podobně :) Zkusíme to do nějakého infoboxu? Takového, kde právě nezkazíme formátování... Já bych navrhnul Infobox - televizní stanice, tam byla diskuze a ideální by bylo roboticky připravit pro parsovač a pak jen v šabloně zvolit nějaký formát a zkusit. Chrzwzcz (diskuse) 20. 2. 2020, 18:35 (CET)
Fungovat by mělo vše, co umí zpracovat {{Vlajka a název}}, a je tam pojistka, aby pokud je v tom nějaký wikitext, se zobrazil ten. Problémy budou v čárkách (v názvu země možná jdou obejít zkratkami) a referencích. Doplnil jsem o zalomení řádku. --Matěj Suchánek (diskuse) 21. 2. 2020, 12:15 (CET)
Ty státy s čárkou v názvu, to je docela nepříjemnost, nejde to přetvořit na jiný separátor? Sice takových moc není a moc se používat nebudou, ale stejně. Já si tedy zkusím co to dělá s všelijakými honotami v jednom rozháraném infoboxu. Chrzwzcz (diskuse) 21. 2. 2020, 18:13 (CET) Pokus u mě na písku že s takovým neujednoceným infoboxem to moc nepomůže a musí se to dostrkat do formy vhodné pro parsovač... A něco stejně ani potom neschlamstne. Ale jako základ výtečné, jen přímé využití bez robota zatím asi nemožné. Chrzwzcz (diskuse) 21. 2. 2020, 19:09 (CET)
Asi by ještě šly středník, & nebo +. Každopádně by bylo vhodné teď ujasnit cíl a až po nějaké shodě začít řešit implementaci. Bude tedy nutné podporovat více typů vstupů a které? Jen dočasně? Protože pokud například budou podporovány nějaké šablony, musí se zajistit, aby ten znak nebyl v jejich výstupu (třeba ; lze očekávat v <span style="..."> apod. --Matěj Suchánek (diskuse) 22. 2. 2020, 11:35 (CET)
Tak pokud bychom se shodli, že parametry v infoboxu nemají mít refy a plevel co nejde strčit do šablony Vlajka a název, a že nám hodnoty předpřipraví robot, tak asi jen tu čárku, abychom mohli používat i pro ty státy s čárkou v názvu. Pokud ale budeme chtít využít i ty refy a podobně, bude to složitější. A úplně největší dělo by bylo, kdyby to parsovač uměl oholit a pak opětovně naformátovat, tj. že i z hodnoty "[[Francie]]<br/>[[Japonsko]]" by dokázal nejprve odseparovat Francie, Japonsko a pak naformátovat. A taky budeme asi pak chtít parsovač bratříčka, co to jenom obalí odkazem, ne vlajkou (to má být jedna z hlavních výhod - zapnout vlajku ve všech instancích infoboxu jen a pouze změnou CoutriesWithFlag na CountriesWithoutFlag. K tomu by byla asi potřeba nejprve šablona "Nevlajka a název" :) Chrzwzcz (diskuse) 22. 2. 2020, 11:55 (CET)
@Matěj Suchánek, Chrzwzcz: Parsování odkazů by vyřešilo problém čárkami, protože oddělovač by byla vlastně závorka ]. Takhle to funguje právě u toho infoboxu železniční stanice. Parsování <br> by fungovalo asi nejvíce univerzálně z uvedených oddělovačů. Je však nutné vždy v jednom infoboxu dodržovat jeden formát a nemíchat je, komplikovaný parsovač všech možných vyplnění by byl náročný na údržbu. Pak tu je ještě jiný parsovač v šabloně Periodická tabulka, který funguje trochu na jiném principu, ale ve výsledku dělá přesně to samé. Nápad s vypínáním vlajek dle druhu infoboxu pomocí CSS třídy považuji za naprosto geniální nápad. --Dvorapa (diskuse) 25. 4. 2020, 11:42 (CEST)
Asi už ta diskuze dlouho neprobíhala, abych do toho zas snadno naskočil :) Ani nevím, jestli ten geniální nápad se obrací ke mně, já totiž o CSS nic neříkal :) Hlavně tedy: Bude možné řídit vypínání vlajek jen jednoduchým přepnutím v kódu daného infoboxu, a kolik práce zabere úprava všech instancí toho infoboxu v článcích, aby se hodnoty přizpůsobily a parsovač je sežral jak má. Chrzwzcz (diskuse) 25. 4. 2020, 17:18 (CEST)
Úplně neříkal, ale víceméně říkal :) Jo, přidáním jednoho slova (max jednoho kratičkého řádku) do infoboxu by to vyplo všechny vlaječky v infoboxu ve všech jeho výskytech. --Dvorapa (diskuse) 25. 4. 2020, 20:27 (CEST)
No ano, ale ty vyplněné infoboxy je nejdřív nutné tomu nějak přizpůsobit, můžou mít hodnoty vyplněné na tisíc způsobů... Nebo jsem to špatně pochopil a parsovač bude tak chytrý, že si poradí s jakýmkoliv vyplněním a přeformátuje je na jednotný styl. Chrzwzcz (diskuse) 25. 4. 2020, 20:33 (CEST)
To samozřejmě ano. Tahle funkce samozřejmě vypíná vlaječky jen pocházející ze šablon Flagicon a Vlajka a název, nikoliv u přímo vložených obrázků. --Dvorapa (diskuse) 25. 4. 2020, 21:25 (CEST)
Aha, nojo, tak to asi rozumím jen tak napůl nebo vůbec. Jako že do při vyplňování hodnot pro infobox se dá i flagicon nebo vlajka a název a infobox je svým kódem bude umět potlačit, ale nebude je umět přidávat tam, kde nebyly. To by teda zas takové terno nebylo. Nebo už jsem úplně mimo a chtěl bych vědět jak by se to teda dalo zavést třeba u zmiňovaného IB televizní stanice, aby teda byly vlajky na jden klik všude nebo nikde, co je prakticky potřeba udělat. Chrzwzcz (diskuse) 25. 4. 2020, 23:36 (CEST)
Aby byly na jeden klik všude to úplně nejde no. --Dvorapa (diskuse) 26. 4. 2020, 00:11 (CEST)
Chápu tedy ten váš návrh správně, že by se vyplňovaly hodnoty ve smyslu | země = {{vlajka a název|Francie}}<br />{{vlajka a název|Itálie}}<br />{{vlajka a název|Španělsko}} a kód infoboxu by uměl případně ty vlajky smazat? Ale když někdo vyplní jen | země = [[Francie]]<br />[[Itálie]]<br />[[Španělsko]], tak by kód infoboxu neuměl žádné vlajky přidat? To asi není úplně to, co tady bylo diskutováno, chtěl jsem to připodobnit tomu automatickému formátování hodnot vytáhnutých z wikidat - to je prostý seznam, se kterým si můžeme dělat co chceme, a proto bych si taky představoval, že se do parametru země vyplní lokálně seznam, nějakým způsobem zadefinovaný, třeba přes ty čárky země = Francie, Itálie, Španělsko a další kouzla už udělá jen parsovač infoboxu. Jen jsou tam ty problémy, pokud chce někdo přidat i něco dalšího nebo reference země = Francie (do roku 2010), Itálie<ref>[https://blabla blabla]</ref>, Španělsko. Chrzwzcz (diskuse) 26. 4. 2020, 09:38 (CEST)
Tak jasně, to je ten druhý návrh, co se zde řešil, parsovač si mimochodem s referencemi dokáže skvěle poradit. --Dvorapa (diskuse) 26. 4. 2020, 11:16 (CEST)
Nějak nevidím smysl této diskuse. Víme už (existuje konsenzus), jak se budou hodnoty v infoboxech vyplňovat? Pokud je potřeba upřesnění, tak (neřeším, jestli a kde to je implementované):
  • Bude možné řídit vypínání vlajek jen jednoduchým přepnutím v kódu daného infoboxu – ano.
  • [[Francie]]<br/>[[Japonsko]] – ano, tohle (ale jenom tohle) by zpracovat šlo (ovšem pokud tam nechceme vlajky, nemá smysl se tím zabývat)
  • | země = {{vlajka a název|Francie}}<br />{{vlajka a název|Itálie}}<br />{{vlajka a název|Španělsko}} – tohle v podstatě máme dnes, takže pokud to vyhovuje, proč to měnit
  • [Vypínání] vlajek dle druhu infoboxu pomocí CSS třídy – nesmysl (proč tedy nechat modul/šablonu ty vlajky vytvářet?)
--Matěj Suchánek (diskuse) 26. 4. 2020, 14:03 (CEST)
Tak nevím, jsme tři a možná každý říkáme trochu něco jiného. Za mě - pojďme do praxe: 0) připravit pilotní infobox, na kterém se to zkusí, navrhl jsem televizní stanici 1) roboticky z něj vyházet šablony flagicon nebo vlajka a název, vyházet [[ a ]] vyházet oddělovač <br />, všechno sjednotit přibližně do tvaru: země = Francie (do roku 2010), Itálie<ref>[https://blabla blabla]</ref>, Španělsko 2) připravit parsovač tak, aby se s takovým zápisem vypořádal 3) v kódu infoboxu nastavit parsovač tak, aby výsledkem bylo buď a) země = {{vlajka a název|Francie}} (do roku 2010)<br />{{vlajka a název|Itálie}}<ref>[https://blabla blabla]</ref><br />{{vlajka a název|Španělsko}} nebo b) země = [[Francie]] (do roku 2010)<br />[[Itálie]]<ref>[https://blabla blabla]</ref><br />[[Španělsko]]
K bodu 2) ještě by bylo možno udělat v parsovači volitelný oddělovač, nejen br, ale třeba čárku a podobně. Chrzwzcz (diskuse) 26. 4. 2020, 17:18 (CEST)
Bod 2) víceméně hotov, chybí už jen ta závorka (do roku 2010). --Dvorapa (diskuse) 26. 4. 2020, 17:35 (CEST)
No... ta závorka bude někdy potřeba pro odlišovač. Možná by se dalo pomocí nowiki obalit části, které nechceme pouštět do překladu, protože kromě závorek nás můžou postihnout jiné legrace jako země = Francie (do roku 2010), Itálie<ref>[https://blabla blabla]</ref>, Španělsko a 100 dalších nebo země = celosvětově anebo čárka uvnitř reference: země = Francie (do roku 2010), Itálie<ref>[https://blabla Francie, Itálie, Španělsko a Řecko má novou TV stanici]</ref>Chrzwzcz (diskuse) 26. 4. 2020, 17:55 (CEST)
Navíc si myslím, že kvůli těmhle pokusům bude potřeba zavést novou šablonu {{název|, pro státy a území, které mají v názvu rozlišovač, jako třeba New York (stát), ale chceme je zobrazit bez rozlišovače, tj. {{název|New York (stát)}} udělá [[New York (stát)|New York]]. Chrzwzcz (diskuse) 26. 4. 2020, 18:11 (CEST)
Čárka v referencích nevadí, parsovač obsah reference nevidí (=ignoruje). Takovou šablonu už máme, jmenuje se Název bez rozlišovače. --Dvorapa (diskuse) 26. 4. 2020, 22:29 (CEST)
Takovou šablonu nemáme, protože nejde jen o rozlišovače. Chrzwzcz (diskuse) 26. 4. 2020, 22:46 (CEST)

Tady namátkou pár příkladů, s jakými by si to mělo poradit při unifikaci, až bude pravý sloupec ukazovat všechno normálně, tak by se dal nasadit, zatím má dost problémů vč. refeferencí:

zápis výsledek
Česko, {{flagicon|SVK}} Slovensko (česká verze) ČeskoČesko Česko
Slovensko Slovensko (česká verze)
[[Česko]], [[Slovensko]] (česká verze) Česko
Slovensko (česká verze)
[[Dánsko|Dánské království]] Dánské království
[[Itálie]], [[Spojené státy americké|USA]] v případě vysílání pro Ameriku Itálie
USA v případě vysílání pro Ameriku
[[Slovensko]], [[Česko]]<ref>[http://www.radiotv.cz/p_tv/a_tv/novy-kanal-doku-cs-zamereny-na-cesko-slovenske-dokumenty ref , s, čárkami, čárka]</ref> Slovensko
Česko
[[Soubor:Flag of [1].svg|22x15px|border|[1]]] [[[1]]]
okraj link= [[|]]
{{Vlajka a název|Česko}} {{Vlajka a název|Slovensko}} ČeskoČesko Česko SlovenskoSlovensko Slovensko
{{Vlajka a název|Česko}}<br />{{Vlajka a název|Maďarsko}}<br />{{Vlajka a název|Slovensko}} ČeskoČesko Česko
MaďarskoMaďarsko Maďarsko
SlovenskoSlovensko Slovensko
59 zemích světa včetně [[Česko|Česka]] 59 zemích světa včetně Česka
celosvětově (163 zemí světa) celosvětově (163 zemí světa) celosvětově (163 zemí světa)
celosvětově, 155 zemí celosvětově celosvětově
155 zemí 155 zemí

Chrzwzcz (diskuse) 30. 4. 2020, 10:15 (CEST)

Import číselných hodnot do seřaditelných sloupečků v tabulce

Konkrétní ukázka: Seznam bank působících v Česku - když si to seřadíte podle aktiv, tak pořadí očividně nefunguje. Je nějaký způsob jak to vyřešit? Jediné, co mě napadá je udělat nějakou prasárnu která data vytáhne ještě jednou, ale nezformátovaná, a to vložit do tabulkového tagu (viz en:Help:Sorting#Numerical sorting problems).

Jestli tomu správně rozumím, tak tento problém už je zařazený v seznamu úkolů (aktuálně šestá odrážka odspoda). Jako řešení mě napadá speciální parametr přímo na použití v tabulkách, který vypíše i hodnotu nenaformátovanou, a už zabalenou v tagu, tzn.

data-sort-value="neformátovaná hodnota" | hodnota

Systémovější řešení by asi bylo pofixovat kód na řazení tak, aby detekoval i české zkratky násobků, nevím ale téměř nic o architektuře wiki, takže nevím kde by se tohle muselo implementovat.

Matej.volfik (diskuse) - dne 16. 8. 2020, 18:12 (CEST)

Problém tabulky v odkazovaném článku není chybné řazení, ale především chybné údaje. V záhlaví je uvedeno, že aktiva jsou uvedena „v mld Kč“ a Česká spořitelna má uvedenou hodnotu „1,4 bil. Kč“ – takže ve výsledku to dává (jestli dobře počítám) 1,4 triliard Kč²…
Do buněk by se (při stávajícím záhlaví) mělo vkládat něco jako {{formatnum: {{#expr: <neformátovaná hodnota> / 1E9 round 1 }} }}. Předpokládám, že se tím vyřeší i řazení, ale nemám odzkoušeno.--Shlomo (diskuse) 16. 8. 2020, 19:10 (CEST)
Jo, to je vlastně špatně i v tomto. Ale kdyby z nějakého důvodu měla existovat tabulka, která bude takto obsahovat různé násobky, jak to má být řešeno? Matej.volfik (diskuse) - dne 16. 8. 2020, 19:14 (CEST)
Jako že v některých řádcích bude uvedena hodnota v tisících korun a v jiných řádcích v milionech? A jak potom čtenář pozná, kde v kterém řádku má jaký násobek? Jednotka uvedená v záhlaví by se měla dodržet v celém sloupci. Nebo je možné jednotku v záhlaví neuvádět a uvést ji pro každou buňku jednotlivě. Pak samozřejmě není problém uvést v jednom řádku údaj v maďarských fillérech a v druhém řádku v biliardách zimbabwských dolarů. Řazení takové tabulky by ale bez explicitně uvedené data-sort-value byl asi docela problém.--Shlomo (diskuse) 16. 8. 2020, 19:23 (CEST)
Upravil jsem formátování hodnot v odkazovaném příkladu. Řazení funguje i bez uvádění data-sort-value, a dokonce i bez data-sort-type. Nepříjemné je, že a) jsme tím přišli o reference (na WD jsou samozřejmě stále dostupné), b) formatnum: zřejmě neumí doplnit vhodný počet nevýznamných nul na konci desetinné části, takže hodnoty nejsou zarovnané. Zarovnané nebyly ani předtím, nicméně jsem doufal, že teď by být mohly. Škoda.
Oba tyto nedostatky by se daly řešit, ale podstatně snadněji v rámci modulu než wikikódem přímo ve stránce.--Shlomo (diskuse) 20. 8. 2020, 08:23 (CEST)
Krom toho mi tento způsob přebírání wikidat připadá … poněkud nešťastný. Údaje za rok 2018 jsou stabilní, nelze očekávat, že by byly upravovány a v jejich tahání po jednom z WD (navíc ne jednoduchou šablonou, nýbrž dost nepřehledným invokačním rituálem) neshledávám žádnou výhodu oproti explicitnímu uvedení hodnoty. Smysluplné by bylo vytvořit šablonu ve stylu třeba {{Seznam bank podle velikosti|stát=Q213|kriterium=P2403|rok=2018|počet=10}}, která by si sama vyhledala deset největších bank a údaje k nim a sama z nich vytvořila tabulku nebo graf, nebo obojí. Pak by se aktualizoval pouze rok, pro který chceme údaje vytvořit (případně by se nemusel uvádět ani ten a šablona by si ho „domyslela“ podle aktuálního data.--Shlomo (diskuse) 17. 8. 2020, 08:52 (CEST)
Dovedu si představit šablonu, která by přijímala nezpracovaný údaj a vracela zformátovaný údaj současně opatřený data-sort-value. Tedy něco jako:
| {{WD data-sort-value|{{#invoke:Wikidata|getRawValue|...}}|formatter=round}}
nebo dokonce zabudované přímo do modulu.
Do architektury wiki bych nezasahoval, data-sort-value je tu přesně pro tento problém.
Alternativou pro tvorbu tabulek z údajů na Wikidatech může být ListeriaBot. --Matěj Suchánek (diskuse) 17. 8. 2020, 14:27 (CEST)
Do Modul:Wikidata bych formátovací záležitosti tohoto typu nepřidával, to by měla dělat šablona (nebo modul), která ta vycucaná data a přijme zformátuje požadovaným způsobem (což nemusí být nutně tabulka…).--Shlomo (diskuse) 19. 8. 2020, 08:01 (CEST)

Jediná vyplněná neaktuální hodnota

V rámci Šablona:Infobox - firma (ale i Šablona:Infobox - budova) jsem narazil na následující situaci. Je vyplněna jediná, tato je však zastaralá (tedy má vyplněno do (P582), není tedy deprecated). To je z hledisky syntaxe Wikidat korektní, ale způsobuje to problém, když tato zastaralá hodnota se při použití rank preferred, normal bez dalšího zobrazí. Bylo by možné:

Zkus showqualifier=time, myslím, že to fungovalo celkem pěkně.--Vojtěch Dostál (diskuse) 29. 12. 2020, 17:04 (CET)
hodnotu zobrazit, ale s vymezeními – to by měl dělat showqualifier=time (pokud se při posledních updatech něco nerozbilo).
Další možností je date=#now, který odfiltruje údaje s do (P582) v minulosti.
Univerzální přístup asi neexistuje, konkrétní údaj bude vždycky nutné řešit zvlášť. --Matěj Suchánek (diskuse) 29. 12. 2020, 17:45 (CET)

getLabel a getDescription

Dneska jsem s těmito funkcemi (volanými pro vlastnosti, tedy Pxx, nikoliv pro položky Qxx) trochu zápolil při tvorbě dokumentace šablony {{taxonbar}} a vycházelo mi toto:

  • getLabel při zadání lang=cs vypisuje štítky pouze v češtině (asi předpokládané chování?), getDescription ovšem v případě neexistence popisu v češtině vypisuje popis v náhradním jazyce (obvykle angličtina)
    • A bez zadání jazyka getLabel i getDescription vypisují popis v náhradním jazyce (předpokládané chování?).
  • getLabel ani getDescription nereagovaly na identifikaci vlastnosti přes of ({{#invoke:Wikidata|getDescription|of=P{{{1|}}}|lang=cs}} ), pomohla identifikace přes id ({{#invoke:Wikidata|getDescription|id=P{{{1|}}}|lang=cs}} ). Nevím, jestli jsem něco dělal špatně já, nebo je chyba někde v modulu.

Viz editace na stránce Šablona:Taxonbar/položka. --Vachovec1 (diskuse) 6. 1. 2021, 22:05 (CET)

  1. Ta nekonzistence chování u popisků je trochu kompromisní. Zatímco funkce, která načte buď štítek v (jakémkoliv) daném jazyce, nebo nic, dostupná je, pro popisky není (ve Phabricatoru na to už možná je žádost). V tom případě je potřeba načíst celou položku/vlastnost a popisek v ní najít. Což může být při takovém počtu vlastností na jedné stránce problematické. Nicméně pokud skutečně není žádoucí načíst záložní štítek, vidím způsob, jak to obejít i bez načítání celé položky/vlastnosti.
  2. Tady rozhodně chceš použít id= (který přesně odpovídá parametru from= u parserové funkce). of= se používá pro dohledávání údajů z položek odkazovaných pomocí vlastnosti. Např. {{#invoke:Wikidata|getDescription|id=Q213|of=P37|lang=cs}} vrátí „západoslovanský jazyk“ (viz d:Q213#P37).
--Matěj Suchánek (diskuse) 7. 1. 2021, 10:42 (CET)

Přesnější datum

Když použiji showqualifier=p585 na datum (P585) zadanou s přesností na den, zobrazí se mi pouze rok. Jak docílím zobrazení data s přesností na den? --Jklamo (diskuse) 11. 7. 2021, 00:19 (CEST)

qualifiers precision=11 --Matěj Suchánek (diskuse) 11. 7. 2021, 10:27 (CEST)
Výborně,funguje.
A ještě jedna specialitka, co když potřebuju vytáhnout hodnotu určitého vymezení a to pouze v případě, že má vlastnost jistou hodnotu? Kokrétně třeba z pandemie covidu-19 (Q81068910) potřebuju zobrazit covid-19 (Q84263196), který je vymezením čeho (P642) hodnoty propuknutí nákazy (Q3241045) vlasnosti instance (čeho) (P31). Přepokládám, že by to mělo nějak jít přes getQualifier, ale #invoke:Wikidata|getQualifier|property=p31|withtarget=q3241045|qualifier=p642 mi kýžený výsledek nepřináší.--Jklamo (diskuse) 11. 7. 2021, 13:19 (CEST)
Řekl bych, že musíš napsat Q3241045 s velkým Q. --Matěj Suchánek (diskuse) 11. 7. 2021, 13:28 (CEST)