Diskuse k modulu:Wikidata

Obsah stránky není podporován v jiných jazycích.
Přidat téma
Z Wikipedie, otevřené encyklopedie
Poslední komentář: před 9 měsíci od uživatele Matěj Suchánek v tématu „Rozsekání více hodnot
Archivy
Archivy


Filtrovat zobrazené hodnoty podle vlastností v nich?[editovat zdroj]

Šablona:Části české obce (za kterou se stydím, zasloužila by si asi vlastní modul) zobrazuje nižší správní celky (P150) pomocí tohoto callu: {{#invoke:Wikidata|formatStatements|property=P150|id={{{1|<noinclude>Q1085</noinclude>}}}|sort=alpha|separator=</li><li>|conjunction=</li><li>|showqualifier=time|addclass=false}}</li> }}. Je možné dodatečně zobrazené hodnoty filtrovat a zobrazit jen ty, které např. mají vyplněnou vlastnost kód části obce podle RÚIAN (P2788)? @Matěj Suchánek: jestli to někdo bude vědět, tak ty :-). --Vojtěch Dostál (diskuse) 10. 1. 2023, 11:25 (CET)Odpovědět

Zatím není, ale můžeme to doimplementovat. Bude nutné vyjasnit vztah ke specialitám typu „žádná hodnota“, „neznámá hodnota“, případně nějaká parametrizace. --Matěj Suchánek (diskuse) 10. 1. 2023, 19:06 (CET)Odpovědět
@Matěj Suchánek Omlouvám se za pozdní odpověď. Kdyby sis na to někdy udělal čas, bylo by to super. Neznámé a žádné hodnoty bude určitě potřeba nějak ošetřit. Při té příležitosti by bylo super rovnou implementovat i filtry na konkrétní hodnoty vlastností (čili nikoliv jen parametr "hasproperty", ale i "haspropertyvalue"). --Vojtěch Dostál (diskuse) 18. 2. 2023, 16:46 (CET)Odpovědět
Otázka jsou také ranky. Mně osobně připadá nejpraktičtější jako výchozí "bestrank". Je otázka zda by někdo potřeboval i možnost "všechny truth statementy" a ještě větší otázka je, jakými parametry by se to definovalo. --Vojtěch Dostál (diskuse) 18. 2. 2023, 16:48 (CET)Odpovědět
VyřešenoVyřešeno Jako hasproperty= a haspropertyvalue=. --Matěj Suchánek (diskuse) 18. 2. 2023, 18:25 (CET)Odpovědět
@Matěj Suchánek Moc děkuji! --Vojtěch Dostál (diskuse) 27. 2. 2023, 21:04 (CET)Odpovědět

Přebírání z Wikidat si neví rady s trans ženami[editovat zdroj]

Tápu, kde se co jak musí upravit, aby se v infoboxu vypsala slova u profesí v ženském rodě u osob, které mají pohlaví (P21) vyplněno jako trans žena (Q1052281) (příklad). Vím o Šablona:Pohlaví z WD, která zná jen muž (Q6581097) a žena (Q6581072) a která zároveň plní skrytou kategorii Osoby nejistého pohlaví na Wikidatech osobami se známou identitou, ale nevím, jestli stačí opravit tu (a jak), nebo jsou to dva různé problémy a je potřeba upravit i modul nebo něco dalšího. --TFerenczy (diskuse) 26. 1. 2023, 13:00 (CET)Odpovědět

@TFerenczy: Jsou to dvě různé věci. Přechylování profesí dělá modul tady: Modul:Wikidata/Formatters/wikibase-entityid#L-66.
{{Pohlaví z WD}} je zodpovědné za přechylování popisků, např. {{Pohlaví z WD|Znám|Známá|Znám(á)}} jako v infoboxu osoba, nebo za onu kategorii.
Není problém obojí změnit, předpokládám, že tak, aby se u transžen používal ženský rod a nepřidávala kategorie? --Matěj Suchánek (diskuse) 29. 1. 2023, 11:59 (CET)Odpovědět
@Matěj Suchánek Díky za dopátrání! Ano, změnit přesně jak říkáš. --TFerenczy (diskuse) 29. 1. 2023, 12:52 (CET)Odpovědět
HotovoHotovo Hotovo. --Matěj Suchánek (diskuse) 29. 1. 2023, 13:08 (CET)Odpovědět

Rozsekání více hodnot[editovat zdroj]

@Matěj Suchánek: Na Wikizdrojích bývala hodně historická verze modulu. Používali jsme tam například kategorizaci na základě povolání pomocí {{#invoke:Wikidata|formatStatements|property=P106|wrap=[[Kategorie:Autoři:Podle povolání/$1]]|separator=|conjunction=}}, takže se k osobě přiřadily například kategorie básník a pedagog. Po aktualizaci modulu ale dostanu jediný řetězec básník a pedagog a kategorie (nově zadaná pomocí pattern=) se nevytvoří. Jde s tímto modulem docílit požadované, nebo je třeba výsledek rozsekat nějak jinak (třeba pomocí Modul:String)? --JAnD (diskuse) 24. 7. 2023, 08:00 (CEST)Odpovědět

Pattern z určitých důvodů funguje pouze pro data, která mají povahu řetězce. Buď nějak rozsekat, nebo přepsat do Lua na způsob:
local Wikidata = require 'Modul:Wikidata'
local lib = require 'Modul:Wikidata/lib'
local out = {}
for _, value in ipairs(Wikidata.getRawValues{ property = property }) do
  local label = mw.wikibase.getLabel(value)
  if label then
    table.insert(out, lib.formatFromPattern(label, pattern))
  end
end
return table.concat(out, '')
nebo pomocí nějakého vlastního formátovače. --Matěj Suchánek (diskuse) 24. 7. 2023, 09:24 (CEST)Odpovědět
@Matěj Suchánek Díky, chápu, že to tedy nejde, ale ani jedno tebou navržené řešení mi kvůli mojí neznalosti lua nefunguje:
Mohl bys tomu, prosím, věnovat chvíli času? s:Diskuse k šabloně:Monitoring Wikidata --JAnD (diskuse) 24. 7. 2023, 11:42 (CEST)Odpovědět
Dokončil jsem svoji myšlenku tady: s:Speciální:Trvalý odkaz/290500. U formátovače je problém, že modul stále bude cpát čárky mezi kategorie. To se dá obejít třeba CSS hackem. Ale formátovač bych zatím nechal být.
A také pozor na zápis pattern={{Kategorie|Wikidata:P31 $1}}. Ten se totiž rozbaluje ve chvíli, kdy modul tento parametr čte. Tedy modul uvidí už rozbalený wikitext. (A naopak parser sám o sobě nerozbalí pattern={{Kategorie|...}}, pokud je vrácený z modulu, rozbalení musí zajistit modul, jinak se text chová, jako by byl obalený <nowiki>.) --Matěj Suchánek (diskuse) 24. 7. 2023, 12:49 (CEST)Odpovědět