Wikipedia diqwiki https://diq.wikipedia.org/wiki/Pela_Seri MediaWiki 1.47.0-wmf.22 first-letter Medya Xısusi Werênayış Karber Werênayışê karberi Wikipediya Werênayışê Wikipediya Dosya Werênayışê dosya MedyaWiki Werênayışê MedyaWikiyi Şablon Werênayışê şabloni Peşti Werênayışê peşti Kategoriye Werênayışê kategoriye Portal Werênayışê portali TimedText TimedText talk Modul Werênayışê moduli Event Event talk Canan 0 49 557873 328256 2026-10-03T15:23:59Z Maviulke 34834 557873 wikitext text/x-wiki '''Canan''' (Cananey, cananvaney); merdımê kı erdanê axayan, ê wêrandê erdandê bolınan bı nime karenê, yan zi wınênê erdan ra, mal u mülkdê axayan ra inan rê vanê canan. Ê [[zenat]]i rê zi vanê cananey. Jew-jew canan esto wêrandê erdan ra yan zi ê axlerê kı hetı gırweyêno inan ra meeşı u werdê xo gêno u hemver cı cı rê karê cananey keno. Merdımo kı cananey keno vanê [[zıreat]] u kardê zerzewat, [[meywe]] u tene karıtenı ra zi weş fahm bıkero u ê çi sero tecrübey cı estı bo. Karê cananey zi karê do rıhat niyo. Cı rê nefesê do hera u zanayenı lazım a. Wext beno canan wekileya wêrdê erdan zi keno u karkeri (recberi) dano gırweynayenı. Kardê cananey rê vanê cananinı, canani kerdenı-kerdış. {{Portal|Huner}} {{Kar u Senate}} [[Kategoriye:Kar u Senate]] 7khpjmwenqozvmygzj7u0ekjvk3nccm Çarşeme 0 4175 557913 484575 2026-10-03T18:20:12Z Maviulke 34834 557913 wikitext text/x-wiki {{Databox }}'''Çarşeme''', hewt rocanê [[hefte]]y ra roca çarına. == Be varyantanê binan ra == * [[Çarseme]] * [[Çarşembe]] * [[Çarşıme]] * [[Çorseme]] {{Rocê Heftey}} [[Kategoriye:Rocê heftey]] oj934wanjrx0rmzv74ve25m2v7jljnu 1814 0 20604 557949 303313 2026-10-04T10:51:24Z Maviulke 34834 557949 wikitext text/x-wiki {{Pusula|1814}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 4jyo0rane4xi2q9yhnc92m4u7np3epa 1865 0 20605 557954 303204 2026-10-04T10:52:56Z Maviulke 34834 557954 wikitext text/x-wiki {{Pusula|1865}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 59m6he7wmefv2rci6bd5ej2e2bmzcqy 1886 0 20607 557945 303354 2026-10-04T10:49:33Z Maviulke 34834 557945 wikitext text/x-wiki {{Pusula|1886}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] gy69gdn56jqsretje314x5zqg9f1o4k 1853 0 20609 557962 303183 2026-10-04T10:55:40Z Maviulke 34834 557962 wikitext text/x-wiki {{Pusula|1853}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] emps8ilwyrjs3t7f6pxayph57iopdp5 1864 0 20610 557955 303202 2026-10-04T10:53:14Z Maviulke 34834 557955 wikitext text/x-wiki {{Pusula|1864}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] a5tllwbzb1ujnan43u5xq439bi7lyhd 1848 0 20612 557964 303172 2026-10-04T10:56:26Z Maviulke 34834 557964 wikitext text/x-wiki {{Pusula|1848}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] o67qn8turzy27y16mewwea3oboq8au6 1881 0 20645 557948 303349 2026-10-04T10:51:03Z Maviulke 34834 557948 wikitext text/x-wiki {{Pusula|1881}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Biyayışi == *[[Abdullah Cevdet]] *[[Adnan Adıvar]] *[[Mustafa Kemal Atatürk]] *[[Galip Deniz]] *[[Kâzım Dirik]] *[[Şevket Galatalı]] *[[Hasan Hayri Bey]] *[[Rauf Orbay]] *[[Pablo Pikasso]] *[[Mustafa Zeki Saltık]] *[[Refik Saydam]] == Merdışi == *[[Fyodor Dostoyevskiy]] {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] roedxf46ap9lzp2gc5h8ua2465worp7 1849 0 20646 557963 303174 2026-10-04T10:56:01Z Maviulke 34834 557963 wikitext text/x-wiki {{Pusula|1849}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 6upyw1nzdbo6l3a4xc8jtvk0gn8oxdw 1847 0 20647 557965 303170 2026-10-04T10:56:40Z Maviulke 34834 557965 wikitext text/x-wiki {{Pusula|1847}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 4cua2qd9sfwn8ec6i5958oj2c2dwcnp 1845 0 20649 557966 303166 2026-10-04T10:57:03Z Maviulke 34834 557966 wikitext text/x-wiki {{Pusula|1845}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 3uq4ka0uis0q20rjn1i858uk7vibjex 1844 0 20650 557957 303164 2026-10-04T10:54:00Z Maviulke 34834 557957 wikitext text/x-wiki {{Pusula|1844}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 1ilvccwqje0pchdrmzvxxgarrtscrob 1840 0 20654 557928 303156 2026-10-04T10:37:21Z Maviulke 34834 Pelê tewr keheni rocane kerdis 557928 wikitext text/x-wiki {{Pusula|1840}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] kjq046wxrzsqqzps1qdkhrc53x54zx3 1842 0 20656 557943 303160 2026-10-04T10:46:41Z Maviulke 34834 557943 wikitext text/x-wiki {{Pusula|1842}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 95nxk7x3vrndnbz318fckyl84ekn6ma 1863 0 20659 557956 303200 2026-10-04T10:53:35Z Maviulke 34834 557956 wikitext text/x-wiki {{Pusula|1863}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] f9iv42zgrw3nr59kbqqx3mg8xnnhogc 1871 0 21002 557942 303396 2026-10-04T10:46:09Z Maviulke 34834 557942 wikitext text/x-wiki {{Pusula|1871}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] sgbdjpzzg1s2h6puwlwn5btibtx34r1 1855 0 21004 557961 303186 2026-10-04T10:55:21Z Maviulke 34834 557961 wikitext text/x-wiki {{Pusula|1855}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] soba7z0qqiy1sm26t5o8j6hk4o0f3te 1857 0 21006 557960 303190 2026-10-04T10:55:02Z Maviulke 34834 557960 wikitext text/x-wiki {{Pusula|1857}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] c2mbjxp9n8t40ule4mo09spl3r6k62l 1860 0 21008 557959 303195 2026-10-04T10:54:40Z Maviulke 34834 557959 wikitext text/x-wiki {{Pusula|1860}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 0q4i9hac1o9xjhlgqfpwwa39twcvbyb 1870 0 21009 557950 303211 2026-10-04T10:51:41Z Maviulke 34834 557950 wikitext text/x-wiki {{Pusula|1870}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] otnrh4cae3sbb1d20jw3sz8ip0l1ynp 1879 0 21010 557937 303373 2026-10-04T10:43:04Z Maviulke 34834 557937 wikitext text/x-wiki {{Pusula|1879}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] f3drotgciaojqyblffua5w39i5fvbxg 1862 0 21092 557958 303198 2026-10-04T10:54:20Z Maviulke 34834 557958 wikitext text/x-wiki {{Pusula|1862}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 6c4it7jevdrjm64ml0v46xjyj6nxrc5 1867 0 21093 557953 303207 2026-10-04T10:52:36Z Maviulke 34834 557953 wikitext text/x-wiki {{Pusula|1867}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] am06hd9962ff0kfuii8rptzae75n77d 1868 0 21094 557952 303208 2026-10-04T10:52:17Z Maviulke 34834 557952 wikitext text/x-wiki {{Pusula|1868}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] lo3wxrteryg4n4trctn4y9umqz2lwsb 1869 0 21095 557951 303209 2026-10-04T10:52:01Z Maviulke 34834 557951 wikitext text/x-wiki {{Pusula|1869}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] fcuoryl0xu4d7dga7ux6ne0sn7k6ph4 1880 0 21096 557934 303372 2026-10-04T10:41:46Z Maviulke 34834 557934 wikitext text/x-wiki {{Pusula|1880}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] qlq2d1felxppuq520chrynh61uk50ge 1890 0 21097 557931 303358 2026-10-04T10:40:34Z Maviulke 34834 557931 wikitext text/x-wiki {{Pusula|1890}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == *[[Tahsin Coşkan]] *[[Abidin Özmen]] *[[Nazmi Sevgen]] *[[Şükrü Sökmensüer]] *[[Nuri Yamut]] == Merdışi == *[[Vincent van Gogh]] {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] gvz2eq5e7xnet59behiapikmwos7fe2 1888 0 21098 557929 303356 2026-10-04T10:38:50Z Maviulke 34834 557929 wikitext text/x-wiki {{Pusula|1888}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 19daamowmc0aihwk401bpkc6rv2b6np 1889 0 21099 557930 303357 2026-10-04T10:39:34Z Maviulke 34834 557930 wikitext text/x-wiki {{Pusula|1889}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == *[[Charlie Chaplin]] *[[Şemsettin Erkuş]] *[[Süleyman Necati Güneri]] *[[Adolf Hitler]] *[[Salih Omurtak]] *[[Recep Peker]] == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 23d7qp97kx0legj1mrk9axtm2rlycfh 1887 0 21100 557944 303355 2026-10-04T10:49:15Z Maviulke 34834 557944 wikitext text/x-wiki {{Pusula|1887}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] o77gihq8w9q1vi9n6184xgpqopaypho 1877 0 21101 557939 303375 2026-10-04T10:44:33Z Maviulke 34834 557939 wikitext text/x-wiki {{Pusula|1877}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 6mkrsp12qpeixyyfs6117igm132pvma 1878 0 21102 557938 303374 2026-10-04T10:43:48Z Maviulke 34834 557938 wikitext text/x-wiki {{Pusula|1878}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == *[[Abdullah Alpdoğan]] *[[Joseph Stalin]] *[[Seid Nûrsi]] *[[Rıza Şah Pehlewi]] *[[Tahsin Uzer]] *[[Ali Haydar Yuluğ]] == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 5udkgor136kg60ehz03u56vf7ddejef 1872 0 21107 557941 303395 2026-10-04T10:45:36Z Maviulke 34834 557941 wikitext text/x-wiki {{Pusula|1872}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 3qx8ips46prke70myp2ye20zdaiugid 1874 0 21108 557940 303393 2026-10-04T10:45:02Z Maviulke 34834 557940 wikitext text/x-wiki {{Pusula|1874}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 9buzcxyl6gyf0e2h3xec5hj7oxqp901 1884 0 21112 557946 303352 2026-10-04T10:49:59Z Maviulke 34834 557946 wikitext text/x-wiki {{Pusula|1884}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] nos31fowvnqzlnngy6q0a32huywdrft 1883 0 21113 557947 303351 2026-10-04T10:50:15Z Maviulke 34834 557947 wikitext text/x-wiki {{Pusula|1883}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] dentd2iayfm1fmykm31jq307ss3cjsv 1894 0 21114 557933 303362 2026-10-04T10:41:28Z Maviulke 34834 557933 wikitext text/x-wiki {{Pusula|1894}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] di7vg66rn00earx3pykf4ubyt0bfw20 1893 0 21115 557935 303361 2026-10-04T10:42:22Z Maviulke 34834 557935 wikitext text/x-wiki {{Pusula|1893}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == *[[Hüseyin Aksu]] *[[Celadet Alî Bedirxan]] *[[İzzettin Çağpar]] *[[Nuri Dersimi]] *[[Nazif Ergin]] *[[Hermann Göring]] *[[James Bedford]] *[[Fahri Korutürk]] == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] cbavhlgpt01ecxwbqio518eveotlnlz 1892 0 21116 557936 303360 2026-10-04T10:42:46Z Maviulke 34834 557936 wikitext text/x-wiki {{Pusula|1892}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] ihu7x0345k232y6wraeqcs5enjrrf74 1891 0 21117 557932 303359 2026-10-04T10:40:57Z Maviulke 34834 557932 wikitext text/x-wiki {{Pusula|1891}} {{Serra Teqwimi}} == Seramey == === Welat === === Cihan === == Biyayışi == == Merdışi == == Sewbi == {{Portal|Cıwiyayış|Tarix|Biyografiye}} {{Kronolociye}} [[Kategoriye:Serri]] 054s0o3kuy4r844n1lxi650wf0pjqn0 Fırdayış 0 32737 557875 328245 2026-10-03T15:25:37Z Maviulke 34834 557875 wikitext text/x-wiki [[File:Jumping to fly.jpg|thumb|Fırdayışê jû [[qılançıke]]]] '''Fırdayış''', yew [[cınde]]y ya zi [[wasıta heway]] ke erd ra temasê xo bırna u perra ra asmên de raye gırewte, dey rê vaciyeno. {{Kontrolê_otoriteyi}} [[Kategoriye:Fır]] 8rauisw9orw150mll5nv6zl8hxj7zos Saeta İrania Standarde 0 34750 557877 327968 2026-10-03T15:26:53Z Maviulke 34834 557877 wikitext text/x-wiki [[Dosya:Iran (orthographic projection).svg|thumb|right|300px|Cayê İrani]] '''Saeta İrania Standarde''' (''IRST'') ([[Farski]]: ساعت استاندارد ایران, bıwane: ''Sâate stândârde İrân'') saeta [[İran]]ia resmiya.<ref>http://timeanddate.com/worldclock/timezone.html?n=246</ref> ==Referansi== <references/> {{İran}} [[Kategoriye:İran]] [[Kategoriye:Zeman]] t62f5jznm3l2lq86xvgd8mlxid98sg5 557922 557877 2026-10-03T19:34:24Z Asmen 19 557922 wikitext text/x-wiki [[Dosya:Iran (orthographic projection).svg|thumb|right|300px|Cayê İrani]] '''Saeta İrani'a Standarde''' (''IRST'') ([[Farski]]: ساعت استاندارد ایران, bıwane: ''Sā'at-e estāndārd-e Īrān'') saeta [[İran|İrani'a]]ia resmiya.<ref>http://timeanddate.com/worldclock/timezone.html?n=246</ref> Saeta İrani gorey [[UTC]] (Wextê Dınya'o Têvıste) 3:30 (hirê saeti u nêm) ferq kena. ==Referansi== <references/> {{İran}} [[Kategoriye:İran]] [[Kategoriye:Zeman]] 9oj8wjuit7tdnay3zosjydgd0x9ymkf Cumhuriyeto islami 0 34758 557867 327112 2026-10-03T15:18:53Z Maviulke 34834 557867 wikitext text/x-wiki [[Dosya:Islamic republics.png|thumb|right|300px|Cumurêtê İslami]] '''Cumhurêtê İslami''' yew sistemê idareyo. Dewletanê [[İran]], [[Pakıstan]], [[Efğanıstan]] u [[Moritanya]] de sistemê idarey cumhuriyeto islamiyo. Dınya de raveri [[Pakıstan]] serra [[1956]] de biya yew cumhuriyeto islami. Bahdo serra 28 Tışrıno Verên de [[Moritanya]] bya,[[1979]] de İran biya jew cumhuriyeto islami. Tewr pey [[Efğanıstan]] serra 2001yıne de dewrê Talibani de cumhuriyeto islami biya. Cumhuriyeto islami de qanuno esasi [[Şeriet|şeriet]]o. [[Şeriet]] de hoseriya merduman u merduman miyande ekualite (equality) zaf kemiyo. A ri ra dewletê ke sistemê cı cumhuriyeto islamiyo, ê rêza hoseriya merduman de tewr peyên rêze derê. {{Cumhuriyetê İslami}} [[Kategoriye:İslam]] rne4c3wxhau2dwo669so6f5bmso24lp Homa merdo 0 44324 557880 327791 2026-10-03T15:28:35Z Maviulke 34834 557880 wikitext text/x-wiki '''Homa merdo''' (nameo oricinal: "Gott ist tot") ya zi '''Homa Merdeyo''', '''Mergê Homa''' jew vateyo (qıseyo) filozofê [[Alman]] [[Friedrich Nietzsche]]yo u eno vate zaf mıxlelif cay de nusiyao. Eno vate raveri serra 1882 de Şınasiya Şen de (Almanki: Die fröhlinche Wissenschaft) 108. (Çabay Newa), 125. (Gêc) u hirıne de 343. (Menay keyfê ma) de meydan veciyo. Kıtabê Nietzsche [[Ani vato Zerduşt]] de eno vate (qıse) zaf ca gêno u eno kıtabê Nietzsche ra peyni biyo deha namdar. * [[Friedrich Nietzsche]] qandê eno vatey cı, kıtabê cı ''Gêc'' de vano ki: '' [[Homa ]] merdo. Homa ra peyni yew merde mendo u mao ki ey (Homa) kışto. Çiyo ke Homa ra mendo, dur ra yeno. Ma senin do yewbinan teselli bıkero?, mao ki kıştoğê kıştoğano? Çiyo ke binê kardiyanê ma de gan groto/grewto, cı rê se biyo? çiyo tewr ziyage u gırdo ke cihan wayirê cı biyo: kam do eno goyni serê ma ra bestero? Kamci ou (aw) esta ki ma bıkera pur u pak? Kamci merasimo teselli, ma zorê kamci kayo ziyage (muqades) icatkerdışi de manıme? Piliya eno daway ma rê zaf gırd u pil niyo? Qandê eno rê ameyene gani/gerek ma Homa bıbo? '' <ref>http://www.jstor.org/discover/10.2307/2709291?uid=3739192&uid=2&uid=4&sid=21103992286111</ref> ==Referansi== <references/> {{Nietzsche}} {{Kontrolê_otoriteyi}} [[Kategoriye:Felsefe]] [[Kategoriye:Antiteizm]] [[Kategoriye:Ateizm]] [[Kategoriye:İfadeyê Almanki]] [[Kategoriye:Friedrich Nietzsche]] [[Kategoriye:Nihilizm]] c0zh4ilquehnltyxj7ldttikaay2kq4 557923 557880 2026-10-03T19:34:57Z Asmen 19 Vırnayışê hesabê 557880 ke terefê [[Karber:Maviulke|Maviulke]] ra peyser gêriyao 557923 wikitext text/x-wiki '''Homa merdo''' (nameo oricinal: "Gott ist tot") ya zi '''Homa Merdeyo''', '''Mergê Homa''' jew vateyo (qıseyo) filozofê [[Alman]] [[Friedrich Nietzsche]]yo u eno vate zaf mıxlelif cay de nusiyao. Eno vate raveri serra 1882 de Şınasiya Şen de (Almanki: Die fröhlinche Wissenschaft) 108. (Çabay Newa), 125. (Gêc) u hirıne de 343. (Menay keyfê ma) de meydan veciyo. Kıtabê Nietzsche [[Ani vato Zerduşt]] de eno vate (qıse) zaf ca gêno u eno kıtabê Nietzsche ra peyni biyo deha namdar. * [[Friedrich Nietzsche]] qandê eno vatey cı, kıtabê cı ''Gêc'' de vano ki: '' [[Homa ]] merdo. Homa ra peyni yew merde mendo u mao ki ey (Homa) kışto. Çiyo ke Homa ra mendo, dur ra yeno. Ma senin do yewbinan teselli bıkero?, mao ki kıştoğê kıştoğano? Çiyo ke binê kardiyanê ma de gan groto/grewto, cı rê se biyo? çiyo tewr ziyage u gırdo ke cihan wayirê cı biyo: kam do eno goyni serê ma ra bestero? Kamci ou (aw) esta ki ma bıkera pur u pak? Kamci merasimo teselli, ma zorê kamci kayo ziyage (muqades) icatkerdışi de manıme? Piliya eno daway ma rê zaf gırd u pil niyo? Qandê eno rê ameyene gani/gerek ma Homa bıbo? '' <ref>http://www.jstor.org/discover/10.2307/2709291?uid=3739192&uid=2&uid=4&sid=21103992286111</ref> ==Referansi== <references/> {{Nietzsche}} [[Kategoriye:Felsefe]] [[Kategoriye:Antiteizm]] [[Kategoriye:Ateizm]] [[Kategoriye:İfadeyê Almanki]] [[Kategoriye:Friedrich Nietzsche]] [[Kategoriye:Nihilizm]] pvkpc2d1lwq3ewo7060fqpkx7rw6l8j Çıçeyıni 0 44669 557901 418846 2026-10-03T17:51:15Z Maviulke 34834 557901 wikitext text/x-wiki {{Databox }} [[Dosya:קיבוץ בית אורן (78).JPG|resmoqıckek|Çıçeyıni]] '''Çıçıyıni''' (be [[Latinki]]: ''mammalia'') alemê heywananê, êyê kê pa [[çıçe]] esto, inan rê vanê. {{Kontrolê_otoriteyi}} {{Taxonbar}} [[Kategoriye:Çıçeyıni]] j2rcbjdgrqfg8iyxuzb4m73f0kj8t6b Mıriçıki 0 44708 557900 534943 2026-10-03T17:50:14Z Maviulke 34834 557900 wikitext text/x-wiki {{Databox}} '''Mıriçıki''' (be [[Latinki]]: ''Aves''), [[muwın]], [[perzaneyın]] u pê [[Hak]]ana zêde biyayen formê ganınano. Nezdi 10.000 tewriya [[Tetrapod]] zaf verni dero. Şema cı 5 santimetre ra hetana 2 metre ra zeder tewri estê. Mıriçıkan de [[hewnê zımıstani]] çıniyo (bê [[Caprimulgiformes]]). Mıriçıki payızi zıme ra şınê vera ekvatori u wesari zi ekvator ra şınê zıme u veroci. [[Dosya:Bird_Diversity_2013.png|thumb]] == Anatomiye == * [[Anatomiya Mıriçıkan]] {{Taxonbar}} [[Kategoriye:Mıriçıki]] t2oe6tmbtx48g1d98nomuiv83lq8rua Even-toed ungulate 0 44711 557967 327230 2026-10-04T11:16:22Z EmausBot 2965 Berterefkerdena reynayışi [[Dı sımeyıni]] ra heta [[Dısımıni]] keno raşt 557967 wikitext text/x-wiki #HETENAYIŞ [[Dısımıni]] 6aeeexptqgy3fxzfnor6nrr2zfbnieb Dısımıni 0 44870 557882 327232 2026-10-03T15:29:25Z Maviulke 34834 557882 wikitext text/x-wiki {{Dora tewran | name = Even-toed ungulates | fossil_range = {{Fossil range|54|0}} | image = Artiodactyla feet.png | image_caption = Bones of right fore feet of existing Artiodactyla. From left to right: Pig (''[[Sus scrofa]]''), [[Red deer]] (Cervus elaphus), and [[Camel]] (Camelus bactrianus). U = [[ulna]], R = [[Radius (bone)|radius]], c = [[Cuneiform (anatomy)|cuneiform]], l = [[Lunar bone|lunar]], s = [[Scaphoid]], u = [[Unciform]], m = [[Magnum bone|Magnum]], td = [[Trapezoid bone|Trapezoid]]. In the Sheep and the Camel, the long compound bone, supporting the two main (or only) toes is the [[cannon bone]]. | image_width = 275px | regnum = [[Animal]]ia | phylum = [[Chordate|Chordata]] | classis = [[Mammalia]] | infraclassis = [[Eutheria]] | superordo = [[Laurasiatheria]] | superordo = [[Laurasiatheria]] | ordo = '''Artiodactyla''' | ordo_authority = [[Richard Owen|Owen]], 1848 | subdivision_ranks = Suborders | subdivision = * [[Tylopoda]] * [[Suina]] * [[Cetruminantia]] }} Heywanê ke [[Pa]]y cı dı leteyê inan rê vanê dı sımeyêni. {{Taxonbar}} [[Kategoriye:Heywani]] odyt17mqq0jgfqbcr6s2dvjgprrmqt8 557918 557882 2026-10-03T19:25:16Z Asmen 19 "sımeyin" niyo, "sımın"o. "pa" qıseyê do xoser niyo, "lınge" vanê 557918 wikitext text/x-wiki {{Dora tewran | name = Even-toed ungulates | fossil_range = {{Fossil range|54|0}} | image = Artiodactyla feet.png | image_caption = Bones of right fore feet of existing Artiodactyla. From left to right: Pig (''[[Sus scrofa]]''), [[Red deer]] (Cervus elaphus), and [[Camel]] (Camelus bactrianus). U = [[ulna]], R = [[Radius (bone)|radius]], c = [[Cuneiform (anatomy)|cuneiform]], l = [[Lunar bone|lunar]], s = [[Scaphoid]], u = [[Unciform]], m = [[Magnum bone|Magnum]], td = [[Trapezoid bone|Trapezoid]]. In the Sheep and the Camel, the long compound bone, supporting the two main (or only) toes is the [[cannon bone]]. | image_width = 275px | regnum = [[Animal]]ia | phylum = [[Chordate|Chordata]] | classis = [[Mammalia]] | infraclassis = [[Eutheria]] | superordo = [[Laurasiatheria]] | superordo = [[Laurasiatheria]] | ordo = '''Artiodactyla''' | ordo_authority = [[Richard Owen|Owen]], 1848 | subdivision_ranks = Suborders | subdivision = * [[Tylopoda]] * [[Suina]] * [[Cetruminantia]] }} Heywanê ke [[Pa|lıngê]]y cı dı leteyê, inan rê vanê dısımıni ya ci sımıkıni. {{Taxonbar}} [[Kategoriye:Heywani]] 5y7qx97hyg3rgv3dflyt0ts0telring 557919 557918 2026-10-03T19:25:45Z Asmen 19 Asmen, pela [[Dı sımeyıni]] ra kırışt pela [[Dısımıni]]: Raştkerdış (gramer, imla ûçb.) 557918 wikitext text/x-wiki {{Dora tewran | name = Even-toed ungulates | fossil_range = {{Fossil range|54|0}} | image = Artiodactyla feet.png | image_caption = Bones of right fore feet of existing Artiodactyla. From left to right: Pig (''[[Sus scrofa]]''), [[Red deer]] (Cervus elaphus), and [[Camel]] (Camelus bactrianus). U = [[ulna]], R = [[Radius (bone)|radius]], c = [[Cuneiform (anatomy)|cuneiform]], l = [[Lunar bone|lunar]], s = [[Scaphoid]], u = [[Unciform]], m = [[Magnum bone|Magnum]], td = [[Trapezoid bone|Trapezoid]]. In the Sheep and the Camel, the long compound bone, supporting the two main (or only) toes is the [[cannon bone]]. | image_width = 275px | regnum = [[Animal]]ia | phylum = [[Chordate|Chordata]] | classis = [[Mammalia]] | infraclassis = [[Eutheria]] | superordo = [[Laurasiatheria]] | superordo = [[Laurasiatheria]] | ordo = '''Artiodactyla''' | ordo_authority = [[Richard Owen|Owen]], 1848 | subdivision_ranks = Suborders | subdivision = * [[Tylopoda]] * [[Suina]] * [[Cetruminantia]] }} Heywanê ke [[Pa|lıngê]]y cı dı leteyê, inan rê vanê dısımıni ya ci sımıkıni. {{Taxonbar}} [[Kategoriye:Heywani]] 5y7qx97hyg3rgv3dflyt0ts0telring Teizmo agnostik 0 44915 557881 327695 2026-10-03T15:28:51Z Maviulke 34834 557881 wikitext text/x-wiki '''Teizmo agnostik''' jew vinayışo felsefiyo ke [[Teizm|tezim]] u [[Agnostisizm|agnostisizm]] keno jew.<ref>http://books.google.com.tr/books?ei=0Xt_T5mMH8KUiQLrlq3HAw&id=FI7ZAAAAMAAJ&dq=atheism+the+case+against+god&q=agnostic+theist&redir_esc=y#search_anchor</ref> Jew teisto agnostik teyna jew [[Homa]] inam keno emma raştiya ya zi vıraniya no hareketi ho nızano, yani vano Homa esto vatene nışınasiyeno. Jew teisto agnostik şeno Homay cı sero [[Agnostisizm|agnostik]] bo.<ref>http://plato.stanford.edu/entries/epistemology/</ref> ==Referansi== <references/> {{Kontrolê_otoriteyi}} [[Kategoriye:Agnostisizm]] [[Kategoriye:Teizm]] jr1cdycpk762ft4cdmfikzdsojldztq 557921 557881 2026-10-03T19:26:42Z Asmen 19 Vırnayışê hesabê 557881 ke terefê [[Karber:Maviulke|Maviulke]] ra peyser gêriyao 557921 wikitext text/x-wiki '''Teizmo agnostik''' jew vinayışo felsefiyo ke [[Teizm|tezim]] u [[Agnostisizm|agnostisizm]] keno jew.<ref>http://books.google.com.tr/books?ei=0Xt_T5mMH8KUiQLrlq3HAw&id=FI7ZAAAAMAAJ&dq=atheism+the+case+against+god&q=agnostic+theist&redir_esc=y#search_anchor</ref> Jew teisto agnostik teyna jew [[Homa]] inam keno emma raştiya ya zi vıraniya no hareketi ho nızano, yani vano Homa esto vatene nışınasiyeno. Jew teisto agnostik şeno Homay cı sero [[Agnostisizm|agnostik]] bo.<ref>http://plato.stanford.edu/entries/epistemology/</ref> ==Referansi== <references/> [[Kategoriye:Agnostisizm]] [[Kategoriye:Teizm]] m3q10miie7hvdifej7rw08qo2n2oj73 Merdumo peyên 0 44954 557879 327799 2026-10-03T15:28:14Z Maviulke 34834 557879 wikitext text/x-wiki '''Merdumo peyên''' ([[Almanki]]: '''der letzte Mensch''') jew terimo ke kıtabi [[Friedrich Nietzsche]] [[Anit vato Zerduşt]] de ca gêno. Merdumo peyên [[Sermerdum|sermerdum]]o u ğeyaliyo. Merdumo peyên cuwiyayış ra ğına gıroto, risk nıgêno, tenya xuzur u itimad wazıno. ==Sewbi== {{Nietzsche}} [[Kategoriye:Friedrich Nietzsche]] pvq8qmp6og48xsg4z46v8c495pvgw0r Toltek 0 44962 557878 327862 2026-10-03T15:27:25Z Maviulke 34834 557878 wikitext text/x-wiki [[File:El Castillo Chitzen Itza.jpg|thumb|right|300px|Jew piramito ke domi Tolteki ra mendo]] '''Toltek''' zuani inan de '''Wirrarika/Merdumi İlimi''' jew şar u sivilizasyono ke gorey şınasdarun (Antropolog) ra seserruni 9. - 12. miyan de [[Amerikay Veroci]] de biyo. ==Şari Tolteki kanca de vıraziya?== Ewro ra hınzar serruni ra ver, erdi [[Meksika]]y veroci de şari Tolteki veciyi. [[Spritualizm]] kari Toltekuni seri biya. Suka Teotihuacan suka Toltekunia seri biya. Ewro ki Meksika u cayi Amerikay bini de Tolteki esti. Hata istıleyi Ewrupayıcun, Tolteki uca de cuwiyi. İstıley Ewropayıcun ra peyni suki Tolteki biyi xırabe. Ê xeyli mıxtelif cayun rê şiyi u beni letey zey: Wirrarika, Aztek u Maya. Tolteki suki inun ri piramiti vıraşti. Tolteki cênıki inuni ke ebe spritualizm ra gırey ho biya, inun rê ''cênıki ilimi'', camerdi ke bı spritualizm ra gırey ho biyo, cı inun rê ''camerdi ilmi'' vati. Kamo ki spritualizm musayo, cı ri '''Nagual''' vaciyao. İşğal u istıley Ewrupayıcun ra dıma, şari Tolteki ebe zor u quweti ra dini cı vurni u xıristiyano katolik biyê. Ewro zaf kemi Tolteki, qıtay Amerika de cuwini. ==Sivilizasyoni Tolteki== Sivilizasyoni Tolteki jew sivilizasyono de kıhano u zaf pey rê şıno. Tebiet, heywani, resnayoği, [[Roc|roc]], aşme sivilizasyoni Tolteki de ziyageyi. Toltek ho jew parçey kainati vinıno. Tolteki de cênık u camerd cıra nêbeni. Zoni Tolteki de qandê vatey '''O/A''' tenya jew vate esto. Yani zey zoni ma, hem ''O'' hem ki ''A'' çıniyo. Çunkê gorey Toltekun ra her çi bicınsiyeti. Tolteki de [[Roc]] u [[Va]] camerd temsıl keni, [[Dınya]] u Ou (Aw) cênık temsıl keni. Sembol u figuri Toltekun '''Quetzalcoatl''' biyo u Quetzalcoatl jew mara ke muyi cı esta. No sembol hem zeman de qıtay [[Atlantis]]i ki temsıl keno. Tolteki de peyğember ya zi jew dino esasi niesto u gorey inun ra gerek inun rê zi çıniyo. Kamci merdumo/a ki merdumo/a biniyo/a ke niweşo/a, ey/ay keni weş, ey/ay rê '''Curandera''' (Weşkerdoğ) vaciyao. ==Sivilizasyoni Tolteki de terimi== * '''Nagual''' = Musayoğ u Roşniye * '''Tonal''' = Astare * '''Mitote''' = Dumano ke [[Mezg|mezgê]] merduman de esto ==Bıvenên== * [[Aztek]] * [[Maya]] * [[Atlantis]] * [[Mu]] * [[Spritualizm]] {{Kontrolê_otoriteyi}} [[Kategoriye:Amerika]] of1qmi9vmgquz2n82bap3xbre7z1ggd İgnostisizm 0 44997 557872 328299 2026-10-03T15:23:15Z Maviulke 34834 557872 wikitext text/x-wiki '''İgnostisizm''' ya zi '''İgteizm''' jew vınayışo ke vano [[Homa]] u werênayışi estiya Homa de mena çıniya. İgnostisizm de [[Homa]] sero werênayene u qalikerdene vengo u menay cı çıniya. İgnostisizm jew vınayışo teolociko. {{Kontrolê_otoriteyi}} [[Kategoriye:Felsefe]] [[Kategoriye:Homa]] dhdsfzjvtzle1ytwep2t23de1ulndpt Plajê Sarımsaklı 0 45011 557876 328059 2026-10-03T15:26:11Z Maviulke 34834 557876 wikitext text/x-wiki [[File:Sarimsakli beach.jpg|thumb|Plajê sarımsaklı de merdumi]] '''Plajê Sarımsaklı''' (be [[Tırki]]: ''Sarımsaklı Plajı'') jew plajo ke [[Tırkiya]] de suka [[Balıkesir]]i de [[Ayvalık]] de ca gêno. Cay cı merkez ra 8 km düro. Dergiya plaji 7 kmo u plaj se metre (100) herayo. Plaj de merkezi cakerdışi, tesisi vındışi, kafetaryay, restoranti u gazinoy esti. [[Kategoriye:Plaji]] [[Kategoriye:Coğrafya yê Balıkesiri]] 6a56skplygmfeeonzniacqrmfwnvzuk Darüşşafaka 0 45076 557871 328319 2026-10-03T15:22:33Z Maviulke 34834 557871 wikitext text/x-wiki [[Dosya:Darüssafaka.jpg|thumb|right|250px|Darüşşafaka]] '''Darüşşafaka''' (be [[Usmanıcki]]: <font size="3">'''دارالشفاقه اعدادیسی'''</font>) yew organizasyono ke serra 1863 de suka [[Estanbol]]i de vıraziyo. Darüşşafaka organizasyono musnayışiyo ke pere nigêno. Qıci (doman) ke ma u pi cı vini kerdi u destegi cı çıniyo, Darüşşafaka inan ri desteg beni.<ref>http://www.darussafaka.k12.tr/tr/dacka/bizkimiz</ref> Qıci ke sınıfi poncın verıno, Darüşşafaka hata peyniya lisa ra inan ri yardım keni u musayışi inan ho sero gêno. Her serre imtihani beni u be eni imitahanan, qıci (domani) ke kewnê Darüşşafaka, belli beni. Serra 1955 ra hata ınka Darüşşafaka zıwanê [[İngılızki]] sero musnayış dano. Serra 1863 de be name "Cemiyet-i Tedrisiyye-i İslamiye" (جمییت تدرسیه اسلامیه) ra [[Kapalıçarşı]] de vıraziyao. Bado cay cı vurniyao u ame [[Fatih]]. 1873 de pêro fealiyet verayo. ==Referansi== <references/> [[Kategoriye:Organizasyoni]] [[Kategoriye:Xızmeto sosyal]] [[Kategoriye:Organizasyonê ke 1973 de vıraziyê]] s3sxmk2bf3ju3bl277w8ovdmlwsluyo Mehter 0 45094 557870 328427 2026-10-03T15:21:21Z Maviulke 34834 557870 wikitext text/x-wiki [[File:Mehterhane.jpg|right|350px|thumb|Mehterê Usmanıcan]] '''Mehter''', [[İmperatoriya Usmanıcan]] de jew [[Band|bando]] eskeriyo ke tarixi xo zaf kıhano. Vatey mehteri zuanê [[Farski]] rao. Zuanê [[Farski]] de mehter yeno mena ''en gırd''. Verê [[İslam]]i de mehter be name bini ra est bi la dıma [[İslam]]i ra eno band vurniyao u bı mehter. Mehteri Usmanıcan de zurna, boru, kurrenay, kös, davul, neqqare, zil, çevgan biyi. Tarixi vıraziyayışi mehteri nışınasiyeno emma qabul beno ki seserra 14ıne de dewri [[Murad I]]i de vıraziyao. [[Hacı Bektaş Veli]] pilê mehterano u pilê [[Yeniçeri|yeniçeriyano]]. Mehter biyo dı letey: tabi-u Alem u mehteri esnafan. Serra 1826 be fermani [[Mahmud II]] ra mehter u yeniçeri peyni diyi u erdi [[İmperatoriya Usmanıcan]] de çiyê [[Bektaşi]]yan [[İllegal|illegal]] biyê. Dıma eno tarixi mehter hêdi hêdi biyo vini. Mehter serra 1914ıne de be [[İsmail Enver]]i ra be name ''mehter-i hakaniyye'' ra oncia vıraziyao. == Bestekari == [[File:Mehter march.jpg|right|350px|thumb|Jew mehtero modern]] === Seserra 16. === * Nefirî Behram * Emir-i Hac * Hasan Can * II. Gazi Giray * Şah kulu *Mehmet Paşa === Seserra 17. === [[File:Mehter boru.jpg|thumb|Mehteri aver şıni]] * Zurnazen Edirneli daî Ahmed Çelebi * Zurnazenbaşı İbrahim Ağa * Hammalî * Çenkî İbrahim Ağa * Edirneli Mehmed Çelebi * Eyyubî Mehmed Çelebi * Derviş Mehmed Çelebi * Solakzade Mehmed Hemdemî * Acemiler (lacê ecemi) === Seserra 18. === * Hızır Ağa * Müstakim Ağa * Mehterbaşı Ağa (name ho nışınasiyeno) * Şah Murad "Sultan IV. Murad" * Kemanî Hızır Ağa {{Kontrolê_otoriteyi}} {{İmperatoriya Usmanıcan}} [[Kategoriye:İmperatoriya Usmanıcan]] [[Kategoriye:Marşi]] [[Kategoriye:Muzikê Usmanıcan]] 4mj586en8bfgoeklapmkqbjz28ixs9t Kapital 0 45163 557868 328641 2026-10-03T15:20:00Z Maviulke 34834 557868 wikitext text/x-wiki '''Kapital''' [[Ekonomiye|ekonomiye]] de name aletanê serba/semedê jew çi vıraştene gureyeni. [[Makine]], fabrika kapitalê, kapital namê aletê fizikiyo. Kapitalo [[Ekonomiye|ekonomik]] u kapitalê finansi jewbinan ra cıraya. Finas de kapital jew mali sero heqê mulkiyetiya. Bonoyo ke şeno pere bo, senedê hisse u çiyê binani kapitali qabul beni. {{Ekonomiye}} {{Kontrolê_otoriteyi}} [[Kategoriye:Ekonomiye]] hg6hppe4r86y233jjxiql4cxmp2gui5 Parşomanê Oramani 0 45183 557869 328704 2026-10-03T15:20:42Z Maviulke 34834 557869 wikitext text/x-wiki '''Parşomanê Oramani''' namê hiri parşomanano ke serra 1909 de [[İran]] de mınqıta [[Hewraman|Oraman]]i de veciyi. Nê parşomani [[Teng-i Ver]], [[Kuh-e Salan]] u [[Shahr Oraman]] ra veciyi. Dıma veciyayışi ra nê parşomani terefê jew dewıci ra roşiyayi u serra 1913 de uca ra ame [[Londra]]. Verdey dokumanan verê İsay serrê 87/88 u dıma İsay serra 30i miyan deri. Zonê parşomanan, dı parşomani be zonê [[Yunanki]] nusiyayi u jew parşoman zi zonê [[Partki]]<ref>http://www.iranicaonline.org/articles/avroman-documents-three-parchments-found-in-a-cave-in-the-kuh-e-salan-near-ar-e-owraman-see-avroman-and-brought-in-191</ref> ra nusiyayi. Parşomanan de qıralê [[Ermenıstan]]i Tigran II sero, keynek u ceniyê ey sero nuştey esti. Filolog Ellis H. Minns zonê parşomanan diyo u zonê çarnao İngılızki ra, dıma qazetey Journal of Hellenic Studiesi de çap kerdo.<ref>https://en.wikipedia.org/wiki/Parchments_of_Awraman#cite_note-SOAS-1</ref><ref>http://www.jstor.org/discover/10.2307/624881?uid=3739192&uid=2&uid=4&sid=21105154149733</ref> ==Referansi== <references/> {{İran}} [[Kategoriye:İran]] okaxlpu70pv8i0m406lov684sp78kyr Şablon:Kontrolê otoriteyi 10 47517 557908 557671 2026-10-03T18:02:17Z Maviulke 34834 557908 wikitext text/x-wiki {{Navbox |title = Kontrolê otoriteyi |titlestyle = background:goldenrod;color:black;border:1px solid blue; |list1 = {{#invoke:Authority control|authorityControl}} }} ivea6b7d46rxafzck722by9gcddmlc9 557909 557908 2026-10-03T18:09:17Z Maviulke 34834 557909 wikitext text/x-wiki {{Navbox |title = Kontrolê otoriteyi |navbar=off |titlestyle = background:goldenrod;color:black;border:1px solid blue; |list1 = {{#invoke:Authority control|authorityControl}} }} gsi5633jm5j5nejvpjmxyd9mrhhi8fa 557916 557909 2026-10-03T18:24:10Z Maviulke 34834 557916 wikitext text/x-wiki {{Navbox |title = Kontrolê otoriteyi |navbar=plain |titlestyle = background:goldenrod;color:black;border:1px solid blue; |list1 = {{#invoke:Authority control|authorityControl}} }} sd205vh5gsxwqxq1qrwnzq0g2b2oe9j 557917 557916 2026-10-03T18:24:50Z Maviulke 34834 557917 wikitext text/x-wiki {{#invoke:Authority control|authorityControl}} jjl8ao5e5w0a9uwjyyz9inth9k2abrm Çehar payıni 0 49158 557903 473198 2026-10-03T17:53:44Z Maviulke 34834 557903 wikitext text/x-wiki {{Databox}} '''Çehar payıni''' ([[Latinki]]: ''Tetrapoda'') hometa heywana miyan de, tewrê ke [[Cıwiyena awe|cıwiyena awe]] ra vêrenê era [[Cıwiyena erdi|cıwiyena erdi]], ê heywanan rê vaciyeno. {Taxonbar}} [[Kategoriye:Çehar payıni]] 5vyhoi0rhyjp228tkiul5hejv05d355 557904 557903 2026-10-03T17:53:58Z Maviulke 34834 557904 wikitext text/x-wiki {{Databox}} '''Çehar payıni''' ([[Latinki]]: ''Tetrapoda'') hometa heywana miyan de, tewrê ke [[Cıwiyena awe|cıwiyena awe]] ra vêrenê era [[Cıwiyena erdi|cıwiyena erdi]], ê heywanan rê vaciyeno. {{Taxonbar}} [[Kategoriye:Çehar payıni]] 5hy25l6vwnqt13351p5h0t82nuxudz1 Portal:Kanada 100 57065 557927 546829 2026-10-04T08:23:18Z Maviulke 34834 557927 wikitext text/x-wiki {{Portalbox1 |reng1 = black |reng2 = gold |reng3 = khaki |reng4 = red |name1 = Nuşte |zerrek1 = Nuşte |name2 = Vênayış |zerrek2 = Vênayış |name3 = Fotraf |zerrek3 = Fotraf |name4 = Kategoriy |zerrek4 = Kategoriy |name5 = Eleqeyın |zerrek5 = Eleqeyın }} [[Kategoriye:Portali]] [[Kategoriye:Portalê coğrafya]] 6czs4kuqew0pa3xw2ssr5iomw4q7fbu Fahriye Evcen 0 62013 557924 518210 2026-10-04T00:43:12Z InternetArchiveBot 21954 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.6 557924 wikitext text/x-wiki {{Merdumi}} '''Fahriye Evcen''' (b. 4 Heziran 1986, [[Solingen]]), [[kayker]]a [[Tırk]]a. Pê roldê xo [[Film|film]]ê [[têlevizyon]]i ''[[Yaprak Dökümü]]'' Necla biya namdare. A kışta [[maye|mae]] ra Çerkesa, kışta [[pi]]y ra zi [[Kavala]] ra goç kerdo.<ref>{{Cite news | url = http://www.hurriyet.com.tr/guzelligin-yaninda-zekan-da-varsa-hicbir-sey-sana-kulfet-olmaz-21475644 | başlık = Güzelliğin yanında zekan da varsa hiçbir şey sana külfet olmaz | yayıncı = | arşivurl = http://web.archive.org/web/20161028060718/http://www.hurriyet.com.tr/guzelligin-yaninda-zekan-da-varsa-hicbir-sey-sana-kulfet-olmaz-21475644 | arşivtarihi = 28 Ekim 2016}}</ref> A [[Solingen]] dı marda xo ra ameya dınya. Key kı biya qıteke, ê keydê xo [[Almanya]] dı weşiya xo ramıta. Serra hewtıne dı Neo-Naziyan adır cı da keyey inan, coka roşniya keyey xo paday.<ref>{{Cite news | url = http://www.takvim.com.tr/Guncel/2013/04/09/basrolde-nazi | başlık = ''Başrolde Nazi'' | yayıncı = Takvim | tarih =9 Nisan 2013| arşivurl = http://web.archive.org/web/20160504084803/http://www.takvim.com.tr/Guncel/2013/04/09/basrolde-nazi | arşivtarihi = 4 Mayıs 2016}}</ref><ref>{{Cite news | url = http://www.ankarahaber.com/haber/Almanya-Fahriye-Evcen-i-de-yaktı/133599 | başlık = Almanya, Fahriye Evcen'i de yaktı | yayıncı = Ankara Haber | tarih = 9 Nisan 2013 | arşivurl = http://web.archive.org/web/20160304212429/http://www.ankarahaber.com/haber/Almanya-Fahriye-Evcen-i-de-yakt%C4%B1/133599 | arşivtarihi = 4 Mart 2016 | title = Archive copy | access-date = 2019-09-21 | archivedate = 2013-12-01 | archiveurl = https://web.archive.org/web/20131201023924/http://www.ankarahaber.com/haber/Almanya-Fahriye-Evcen-i-de-yakt%C4%B1/133599}}</ref><ref>{{Cite news | url = http://www.sinemalar.com/haber/561/fahriye-evcen-ozel-roportaji | başlık = ''Fahriye Evcen Özel Röportajı'' | yayıncı = sinemalar.com | tip = Röportaj | ad = Serkan | soyadı = Tavşanoğlu | arşivurl = http://web.archive.org/web/20160305033340/http://www.sinemalar.com/haber/561/Fahriye-Evcen-Ozel-Roportaji | arşivtarihi = 5 Mart 2016}}</ref> Key kı a ameya [[Tırkiya]] tatil bıkero, şiya programê [[Oya Aydoğan]]i u biya meyman. Aydoğani, Evcen şınasnê produktur İbrahim Mertoğlu. <ref>{{Cite news | url = http://www.hurriyet.com.tr/kelebek/paparazzi/29979756.asp | başlık = Ünlüler nasıl keşfedildi? | tarih = 4 Eylül 2015 | yayıncı = [[Hürriyet (gazete)|Hürriyet]] | erişimtarihi = 8 Eylül 2015 | arşivurl = http://web.archive.org/web/20150927142818/http://www.hurriyet.com.tr/kelebek/paparazzi/29979756.asp | arşivtarihi = 27 Eylül 2015 | archiveurl = https://web.archive.org/web/20150927142818/http://www.hurriyet.com.tr/kelebek/paparazzi/29979756.asp | archivedate = 2015-09-27 | title = Archive copy | access-date = 2019-09-21}}</ref> Hıni biya namdare. == Filmografiya aye == === Sinema û filmi === {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 90%;" ! colspan="4" style="background: LightSteelBlue;" |Film |- align="center" bgcolor="#cccccc" |'''Serre''' |'''Name''' |'''Roli''' |'''Noti''' |- |2007 |''[[Cennet]]'' |Kız |Rolo serên |- |2008 |''[[Aşk Tutulması]]'' |Pınar |Rolo serên |- |2009 |''[[Alvin ve Sincaplar 2]]'' | - |Tırki veng da |- |2010 |''[[Takiye: Allah Yolunda]]'' |Sevde Aksu |Rolo serên |- |2011 |''[[Sinyora Enrica ile İtalyan Olmak]]'' |Genç Sinyora Enrica |Rolo serên |- |2012 |''[[Evim Sensin]]'' |Leyla |Rolo serên |- |2015 |''[[Aşk Sana Benzer]]'' |Deniz/Defne |Rolo serên |- |2017 |[[Sonsuz Aşk]] |Zeynep |Rolo serên<ref>http://www.sinematurk.com/film/66201-sonsuz-ask/</ref> |} === Filmê têlevizyoni === {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 90%;" ! colspan="4" style="background: LightSteelBlue;" |Têlevizyon |- align="center" bgcolor="#cccccc" |'''Serre''' |'''Name''' |'''Roli''' |'''Noti''' |- |2005 |''[[Asla Unutma]]'' |Pınar |Karaktera kışte |- |2006 |''Hasret'' |Songül |Rolo serên |- |2006-2010 |''[[Yaprak Dökümü]]'' |Necla Tekin Aydinoğlu |Rolo serên |- |2011 |''[[Yalancı Bahar]]'' |Zeynep Karaman |Rolo serên |- |2012 |''[[Veda]]'' |Mehpare |Rolo serên |- |2013-2014 |''[[Çalıkuşu]]'' |Feride |Rolo serên |- |2014 |''[[Kurt Seyit u Şura|Kurt Seyit u Şura]]'' |Murka/Mürvet |Rolo serên |- |2017 |Ölene Kadar |Selvi/Vildan |Rolo serên |} == Referansi == {{Reflist}} [[Kategoriye:Kaykerê Tırki]] [[Kategoriye:Çerkesi]] [[Kategoriye:Şarê Almanya]] [[Kategoriye:Şarê Solingeni]] 2rzg89irz9sbankvxb7yipt5zawh4jg Şablon:Taxonbar 10 65781 557893 408012 2026-10-03T17:27:12Z Maviulke 34834 557893 wikitext text/x-wiki {{Button|{{#invoke:Taxonbar|authorityControlTaxon}}}}<noinclude>{{Documentation}}</noinclude> 3x3dunqppuahmde46k3dj46a0671o2z 557894 557893 2026-10-03T17:28:29Z Maviulke 34834 557894 wikitext text/x-wiki {{#invoke:Taxonbar|authorityControlTaxon}}<noinclude>{{Documentation}}</noinclude> f1texyp8mx8wr0b6mrnk9jtz859pne9 Modul:Taxonbar 828 65782 557895 547423 2026-10-03T17:38:05Z Maviulke 34834 557895 Scribunto text/plain require('strict') local conf = require( 'Module:Taxonbar/conf' ) --configuration module local TaxonItalics = require( 'Module:TaxonItalics' ) --use a function from Module:TaxonItalics to italicize a taxon name --[[==========================================================================]] --[[ Local functions ]] --[[==========================================================================]] local function isNilOrEmpty( thing ) if thing == nil or thing == '' then return true end return nil end local function getIdFromWikidata( item, property ) local id = nil if property == 'PWikispecies:$1' then local siteLinks = item.sitelinks if siteLinks then local speciesWiki = item.sitelinks.specieswiki if speciesWiki then id = speciesWiki.title end end return id elseif item.claims[property] == nil then return id end for _, statement in pairs( item.claims[property] ) do if statement.mainsnak.datavalue then id = statement.mainsnak.datavalue.value break end end return id end local function getLink( property, val ) local link, returnVal = '', {} returnVal.isError = false if mw.ustring.find( val, '//' ) then link = val else if type(property) == 'number' and property > 0 then local entityObject = mw.wikibase.getEntity('P'..property) local dataType if entityObject then dataType = entityObject.datatype else returnVal.isError = true end if dataType == 'external-id' then local formatterURL = nil if property == 3746 or --Wildflowers of Israel property == 3795 or --Flora of Israel Online property == 5397 --Tierstimmenarchiv then formatterURL = entityObject:getBestStatements('P1630')[2] --use 2nd formatterURL for English version end if formatterURL == nil then formatterURL = entityObject:getBestStatements('P1630')[1] end --default to [1] if formatterURL then if formatterURL.mainsnak.datavalue and formatterURL.mainsnak.datavalue.value then --nil check for ABA link = formatterURL.mainsnak.datavalue.value end end elseif dataType == 'url' then local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end elseif dataType == 'string' then local formatterURL = entityObject:getBestStatements('P1630')[1] if formatterURL then link = formatterURL.mainsnak.datavalue.value else local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end end else returnVal.isError = true end elseif type(property) == 'string' then link = property end local valurl = val if mw.ustring.find( link, 'antweb.org' ) then valurl = mw.ustring.gsub(valurl, ' ', '%%20') end if type(property) == 'number' then --doublecheck language for Wildflowers of Israel ID if property == 3746 then link = mw.ustring.gsub(link, '/hebrew/', '/english/') end --format spaces in PfaF binomials, e.g. "Elaeagnus x ebbingei" if property == 4301 then valurl = mw.ustring.gsub(valurl, ' ', '+') end --format spaces in FoAO2 binomials, e.g. "Scaevola basedowii" if property == 6756 then valurl = mw.ustring.gsub(valurl, ' ', '+') end end valurl = mw.ustring.gsub(valurl,'%%','%%%%') link = mw.ustring.gsub(link, '$1', valurl) end link = mw.ustring.gsub(link, '^[Hh][Tt][Tt][Pp]([Ss]?)&#58;//', 'http%1://') -- fix wikidata URL val = mw.ustring.match(val, '([^=/]*)/?$') -- get display name from end of URL if mw.ustring.find( link, '//' ) then returnVal.text = '['..link..' '..mw.text.encode(mw.uri.decode(val, 'PATH'),'%[%]')..']' elseif link == '' then returnVal.text = val else returnVal.text = '<span class="external">[['..link..'|'..val..']]</span>' end return returnVal end local function createRow( id, label, rawValue, link, withUid ) if link then local outStr = '<span style="white-space:nowrap;">' .. label .. ' <span' if withUid then outStr = outStr..' class="uid"' end return outStr..'>' .. link .. '</span></span>\n' else return '* ' .. mw.text.tag('span', {class='error'}, 'The identifier ' .. id .. ' ' .. rawValue .. ' is not valid.') .. '\n' end end local function copyTable(inTable) if type(inTable) ~= 'table' then return inTable end local outTable = setmetatable({}, getmetatable(inTable)) for key, value in pairs (inTable) do outTable[copyTable(key)] = copyTable(value) end return outTable end local p = {} --[[==========================================================================]] --[[ Main ]] --[[==========================================================================]] function p.authorityControlTaxon( frame ) local resolveEntity = require( 'Module:ResolveEntityId' ) local parentArgs = copyTable(frame:getParent().args) local currentTitle = mw.title.getCurrentTitle() local currentEntityId = mw.wikibase.getEntityIdForCurrentPage() local stringArgs = false local fromTitleCount, firstRow, rowCount = 1, 0, 0 local outString, errors = '', '' local tFroms = {} --non-sequential table of unique froms local iFroms = 0 --integer size of tFroms, b/c Lua local categories = { '[[Category:Taxonbars without from parameter]]', '[[Category:Taxonbars desynced from Wikidata]]', '', -- [3] placeholder for [[Category:Taxonbars using multiple manual Wikidata items]] '', -- [4] placeholder for [[Category:Taxonbars with invalid from parameters]] '', -- [5] placeholder for [[Category:Taxonbars using manual taxon IDs]] '', -- [6] placeholder for [[Category:Taxonbar pages requiring a Wikidata item]] '', -- [7] placeholder for [[Category:Taxonbars without primary Wikidata taxon IDs]] '', -- [8] placeholder for [[Category:Taxonbars without secondary Wikidata taxon IDs]] '', -- [9] placeholder for [[Category:Taxonbars with duplicate from parameters]] '', --[10] placeholder for [[Category:Taxonbars with manual taxon IDs differing from Wikidata]] '', --[11] placeholder for [[Category:Taxonbars with manual taxon IDs identical to Wikidata]] '', --[12] placeholder for [[Category:Taxonbars on possible non-taxon pages]] '', --[13] placeholder for [[Category:Taxonbars with automatically added basionyms]] '', --[14] placeholder for [[Category:Taxonbars with automatically added original combinations]] '', --[15] placeholder for [[Category:Taxonbars with automatically added monotypic genera]] '', --[16] placeholder for [[Category:Taxonbars of monotypic species missing genera]] '', --[17] placeholder for [[Category:Taxonbars with unknown parameters]] '', --[18] placeholder for [[Category:Taxonbars with 20–24 taxon IDs]] '', --[19] placeholder for [[Category:Taxonbars with 25–29 taxon IDs]] '', --[20] placeholder for [[Category:Taxonbars with 30–34 taxon IDs]] '', --[21] placeholder for [[Category:Taxonbars with 35–39 taxon IDs]] '', --[22] placeholder for [[Category:Taxonbars with 40+ taxon IDs]] } local acceptableInstanceOf_Strict = { ['Q16521'] = 'taxon', --strict ['Q310890'] = 'monotypic taxon', --strict ['Q2568288'] = 'ichnotaxon', --strict ['Q23038290'] = 'fossil taxon', --strict ['Q47487597'] = 'monotypic fossil taxon', --strict } local acceptableInstanceOf_All = { ['Q16521'] = 'taxon', --strict ['Q310890'] = 'monotypic taxon', --strict ['Q2568288'] = 'ichnotaxon', --strict ['Q23038290'] = 'fossil taxon', --strict ['Q47487597'] = 'monotypic fossil taxon', --strict ['Q42621'] = 'hybrid', --lax ['Q235536'] = 'incertae sedis', --lax ['Q713623'] = 'clade', --lax ['Q848328'] = 'serotype', --lax ['Q857968'] = 'candidatus', --lax ['Q17487588'] = 'unavailable combination', --lax } --Assess the page's relationship with Wikidata local currentItem = nil if currentTitle.namespace == 10 then --i.e. Module:Taxonbar/sandbox, Template:Taxonbar/doc, etc. if resolveEntity._id(parentArgs['from']) then currentItem = mw.wikibase.getEntity(parentArgs['from']) end if currentItem == nil then if resolveEntity._id(parentArgs['from1']) then currentItem = mw.wikibase.getEntity(parentArgs['from1']) end end elseif resolveEntity._id(currentEntityId) then currentItem = mw.wikibase.getEntity(currentEntityId) else --currentEntityId == nil/unresolvable categories[6] = '[[Category:Taxonbar pages requiring a Wikidata item]]' end if currentItem then categories[12] = '[[Category:Taxonbars on possible non-taxon pages]]' --unset if acceptable found for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_All[instanceOf] then categories[12] = '' break end end end --Cleanup args for k, v in pairs( frame:getParent().args ) do if type(k) == 'string' then --make args case insensitive local lowerk = mw.ustring.lower(k) if isNilOrEmpty( parentArgs[lowerk] ) then parentArgs[k] = nil parentArgs[lowerk] = v end --remap abc to abc1 if mw.ustring.find(lowerk,'%d$') == nil then --if no number at end of param if isNilOrEmpty( parentArgs[lowerk..'1'] ) then parentArgs[lowerk] = nil lowerk = lowerk..'1' parentArgs[lowerk] = v end end if v and v ~= '' then --remap 'for' to 'title' if mw.ustring.sub(lowerk,1,3) == 'for' then local forTitle = mw.ustring.gsub(lowerk,'^for','title',1) if isNilOrEmpty( parentArgs[forTitle] ) then parentArgs[lowerk] = nil lowerk = forTitle parentArgs[lowerk] = v end end --find highest from or title param if mw.ustring.sub(lowerk,1,4) == 'from' then local fromNumber = tonumber(mw.ustring.sub(lowerk,5,-1)) if fromNumber and fromNumber >= fromTitleCount then fromTitleCount = fromNumber end --look for duplicate froms while we're here if mw.ustring.find(v, '^Q%d') then if tFroms[v] then categories[9] = '[[Category:Taxonbars with duplicate from parameters]]' tFroms[v] = tFroms[v] + 1 else tFroms[v] = 1 iFroms = iFroms + 1 end if iFroms == 2 then categories[3] = '[[Category:Taxonbars using multiple manual Wikidata items]]' end end elseif mw.ustring.sub(lowerk,1,5) == 'title' then local titleNumber = tonumber(mw.ustring.sub(lowerk,4,-1)) if titleNumber and titleNumber >= fromTitleCount then fromTitleCount = titleNumber end elseif mw.ustring.lower(v) ~= 'no' then stringArgs = true categories[5] = '[[Category:Taxonbars using manual taxon IDs]]' end end end end --Check for unknown parameters --create knowns list local acceptableArgs = { from = true, } --master list of l/c acceptable args for _, d in pairs( conf.databases ) do if d[1] ~= 'Wikidata' then --made obsolete by from acceptableArgs[mw.ustring.lower(d[1])] = true end end for _, a in pairs( conf.aliases ) do acceptableArgs[mw.ustring.lower(a[1])] = true end --create trimmed parents list local baseParentArgs = {} --condensed list of l/c parent args w/o trailing #s for k, v in pairs( parentArgs ) do if type(k) == 'string' then --ignore unnamed params, which have keys of type 'number' local lowerk = mw.ustring.lower(k) local base = mw.ustring.gsub(lowerk, '[%d]*$', '') baseParentArgs[base] = true end end --compare lists and spit out unknowns local unknownParams = {} for k, v in pairs( baseParentArgs ) do if acceptableArgs[k] == nil then categories[17] = '[[Category:Taxonbars with unknown parameters|' .. k ..']]' unknownParams[#unknownParams + 1] = k end end --warn if unknown(s) present if #unknownParams > 0 then local plural = nil local itthem = nil if #unknownParams == 1 then plural = '' itthem = 'it' else plural = 's' itthem = 'them' end if frame:preprocess( '{{REVISIONID}}' ) == '' then errors = errors..'<div class="hatnote" style="color:red">'.. '<strong>Warning:</strong> unknown parameter'..plural..' <strong>'..table.concat(unknownParams, ', ')..'</strong>.<br />'.. 'Please correct '..itthem..' or consider adding '..itthem..' to Wikidata.<br />'.. 'This message is only shown in preview.</div>' end end --Append basionym to arg list, if not already provided if currentItem then local currentBasState = currentItem:getBestStatements('P566')[1] --basionym if currentBasState then local basionymId = currentBasState.mainsnak.datavalue.value.id if basionymId and resolveEntity._id(basionymId) and tFroms[basionymId] == nil then --check that basionym is a strict instance of taxon local basionymItem = mw.wikibase.getEntity(basionymId) if basionymItem then for _, instanceOfState in pairs ( basionymItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[basionymId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append basionym & track parentArgs['from'..fromTitleCount] = basionymId categories[13] = '[[Category:Taxonbars with automatically added basionyms]]' break end end end end end end --Append original combination to arg list, if not already provided if currentItem then local currentOCState = currentItem:getBestStatements('P1403')[1] --original combination if currentOCState then local orcoId = currentOCState.mainsnak.datavalue.value.id if orcoId and resolveEntity._id(orcoId) and tFroms[orcoId] == nil then --check that orco is a strict instance of taxon local orcoItem = mw.wikibase.getEntity(orcoId) if orcoItem then for _, instanceOfState in pairs ( orcoItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[orcoId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append orco & track parentArgs['from'..fromTitleCount] = orcoId categories[14] = '[[Category:Taxonbars with automatically added original combinations]]' break end end end end end end --Append monotypic genus/species to arg list of monotypic species/genus, if not already provided if currentItem then for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local taxonRank = nil local parentItem = nil local parentTaxon = nil local parentTaxonRank = nil local parentMonoGenus = nil --holy grail/tbd local instanceOf = instanceOfState.mainsnak.datavalue.value.id if instanceOf and (instanceOf == 'Q310890' or instanceOf == 'Q47487597') then --monotypic/fossil taxon local taxonRankState = currentItem:getBestStatements('P105')[1] --taxon rank if taxonRankState then taxonRank = taxonRankState.mainsnak.datavalue.value.id end if taxonRank and taxonRank == 'Q7432' then --species --is monotypic species; add genus local parentTaxonState = currentItem:getBestStatements('P171')[1] --parent taxon if parentTaxonState then parentTaxon = parentTaxonState.mainsnak.datavalue.value.id end --confirm parent taxon rank == genus & monotypic if parentTaxon and resolveEntity._id(parentTaxon) then parentItem = mw.wikibase.getEntity(parentTaxon) if parentItem then local parentTaxonRankState = parentItem:getBestStatements('P105')[1] --taxon rank if parentTaxonRankState then parentTaxonRank = parentTaxonRankState.mainsnak.datavalue.value.id end if parentTaxonRank and parentTaxonRank == 'Q34740' then --parent == genus for _, parentInstanceOfState in pairs ( parentItem:getBestStatements('P31') ) do --instance of local parentInstanceOf = parentInstanceOfState.mainsnak.datavalue.value.id if parentInstanceOf and (parentInstanceOf == 'Q310890' or parentInstanceOf == 'Q47487597') then --monotypic/fossil taxon parentMonoGenus = parentTaxon --confirmed break end end if parentMonoGenus and tFroms[parentMonoGenus] == nil then --housekeeping tFroms[parentMonoGenus] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append monotypic genus & track parentArgs['from'..fromTitleCount] = parentMonoGenus categories[15] = '[[Category:Taxonbars with automatically added monotypic genera]]' break end end end end if parentMonoGenus == nil or tFroms[parentMonoGenus] == nil then categories[16] = '[[Category:Taxonbars of monotypic species missing genera]]' break end elseif taxonRank and taxonRank == 'Q34740' then --genus --is monotypic genus; add species --... end end end end --if currentItem --Setup navbox local navboxParams = { name = 'Taxonbar', bodyclass = 'hlist', listclass = '', groupstyle = 'text-align: left;', } for f = 1, fromTitleCount, 1 do local elements, title = {}, nil --cleanup parameters if parentArgs['from'..f] == '' then parentArgs['from'..f] = nil end if parentArgs['title'..f] == '' then parentArgs['title'..f] = nil end --remap aliases for _, a in pairs( conf.aliases ) do local alias, name = mw.ustring.lower(a[1]), mw.ustring.lower(a[2]) if parentArgs[alias..f] and parentArgs[name..f] == nil then parentArgs[name..f] = parentArgs[alias..f] parentArgs[alias..f] = nil end end --Fetch Wikidata item local from = resolveEntity._id(parentArgs['from'..f]) local item = mw.wikibase.getEntity(from) local label = nil if type(item) == 'table' then local statements = item:getBestStatements('P225')[1] --taxon name if statements then local datavalue = statements.mainsnak.datavalue if datavalue then label = datavalue.value end end label = label or item:getLabel() else if parentArgs['from'..f] then categories[1] = '' categories[4] = '[[Category:Taxonbars with invalid from parameters]]' errors = errors .. mw.text.tag('strong', {class='error'}, 'Error: "' .. parentArgs['from'..f] .. '" is not a valid Wikidata entity ID.<br />') end end if label and label ~= '' then title = mw.title.new(label) end if title == nil and parentArgs['title'..f] then title = mw.title.new(parentArgs['title'..f]) end if title == nil and f == 1 then title = currentTitle end if title then if isNilOrEmpty( parentArgs['wikidata'..f] ) and (title.namespace == 0) then if parentArgs['from'..f] then parentArgs['wikidata'..f] = parentArgs['from'..f] elseif item then parentArgs['wikidata'..f] = item.id end end if title.namespace == 0 or stringArgs then --only in mainspace or if manual overrides exist local sourceCount = 0 for _, params in pairs( conf.databases ) do params[1] = mw.ustring.lower(params[1]) local propId = params[3] --Wikidata fallback if requested if (item and item.claims) and (type(propId) == 'string' or (type(propId) == 'number' and propId > 0)) then local wikidataId = getIdFromWikidata( item, 'P' .. propId ) local v = parentArgs[params[1]..f] if wikidataId then if isNilOrEmpty(v) then parentArgs[params[1]..f] = wikidataId else if v and v ~= 'no' and v ~= wikidataId then categories[10] = '[[Category:Taxonbars with manual taxon IDs differing from Wikidata]]' elseif v and v == wikidataId then categories[11] = '[[Category:Taxonbars with manual taxon IDs identical to Wikidata]]' end end end end local val = parentArgs[params[1]..f] if val and val ~= '' and mw.ustring.lower(val) ~= 'no' then if type(propId) == 'number' then if propId < 0 then propId = -propId end --allow link if propId > 0 then --link table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, val ).text, true ) ) else --propId == 0; no link table.insert( elements, createRow( params[1], params[2]..':', val, val, true ) ) end else table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, val ).text, true ) ) end if params[1] ~= 'wikidata' and params[1] ~= 'wikispecies' then sourceCount = sourceCount + 1 end end end if sourceCount >= 40 then categories[22] = '[[Category:Taxonbars with 40+ taxon IDs]]' elseif sourceCount >= 35 then categories[21] = '[[Category:Taxonbars with 35–39 taxon IDs]]' --endashes elseif sourceCount >= 30 then categories[20] = '[[Category:Taxonbars with 30–34 taxon IDs]]' elseif sourceCount >= 25 then categories[19] = '[[Category:Taxonbars with 25–29 taxon IDs]]' elseif sourceCount >= 20 then categories[18] = '[[Category:Taxonbars with 20–24 taxon IDs]]' end --Generate navbox title if sourceCount > 0 then rowCount = rowCount + 1 if firstRow == 0 then firstRow = f end --set title from wikidata if it doesn't exist if isNilOrEmpty( parentArgs['title'..f] ) then parentArgs['noTitle'..f] = true parentArgs['title'..f] = title.text end --if it exists now, set row heading to title if not isNilOrEmpty( parentArgs['title'..f] ) then navboxParams['group'..f] = TaxonItalics.italicizeTaxonName(parentArgs['title'..f], false) else navboxParams['group'..f] = '' end navboxParams['list'..f] = table.concat( elements ) elseif currentEntityId and (currentEntityId == parentArgs['from'..f] or fromTitleCount == 1) then categories[7] = '[[Category:Taxonbars without primary Wikidata taxon IDs]]' else categories[8] = '[[Category:Taxonbars without secondary Wikidata taxon IDs]]' end --Categorize if not isNilOrEmpty( parentArgs['from'..f] ) then --blank "missing from" if 'from' exists categories[1] = '' --blank "desynced" if 'from' matches current page if parentArgs['from'..f] == currentEntityId then categories[2] = '' end end --cannot be "desynced" if no 'from' params if categories[1] ~= '' then categories[2] = '' end end end end --for f = 1, fromTitleCount, 1 if rowCount > 0 then local Navbox = require('Module:Navbox') if rowCount > 1 then --remove duplicates and move page title to top local rowIDs = {} for f = 1,fromTitleCount,1 do if not isNilOrEmpty( parentArgs['title'..f] ) then if rowIDs[parentArgs['wikidata'..f]] then --remove duplicate navboxParams['group'..f] = nil navboxParams['list'..f] = nil else rowIDs[parentArgs['wikidata'..f]] = true if f > firstRow and (parentArgs['title'..f] == currentTitle.text or parentArgs['wikidata'..f] == currentEntityId) then --move item linked to page to top if navboxParams['group'..f] and navboxParams['group'..f] ~= '' and navboxParams['list'..f] and navboxParams['list'..f] ~= '' then local tempGroup, tempList = navboxParams['group'..f], navboxParams['list'..f] navboxParams['group'..f], navboxParams['list'..f] = navboxParams['group'..firstRow], navboxParams['list'..firstRow] navboxParams['group'..firstRow], navboxParams['list'..firstRow] = tempGroup, tempList end end end end end --adjust navbox for number of rows navboxParams['title'] = '[[Help:Şınasnayışê taksoni|Şınasnayış]]' if rowCount >= 5 then navboxParams['navbar'] = 'plain' else navboxParams['state'] = 'on' navboxParams['navbar'] = 'on' end elseif parentArgs['Title'..firstRow] then navboxParams['group'..firstRow] = '[[Help:Şınasnayışê taksoni|Şınasnayış]]' else navboxParams['group'..firstRow] = '[[Help:Şınasnayışê taksoni|Şınasnayış]]<br />' .. navboxParams['group'..firstRow] end --return navbox outString = Navbox._navbox(navboxParams) end --if rowCount > 0 --Add categories if string.sub(currentTitle.subpageText,1,9) == 'testcases' then parentArgs['demo'] = true end if not isNilOrEmpty( parentArgs['demo'] ) then outString = outString .. mw.text.nowiki(table.concat(categories)) .. '<br />' elseif currentTitle.namespace == 0 then outString = outString .. table.concat(categories) end return outString .. errors end return p 6mniznjkyciq4nkrvrs977x5qk8r2lp 557897 557895 2026-10-03T17:41:44Z Maviulke 34834 557897 Scribunto text/plain require('strict') local conf = require( 'Module:Taxonbar/conf' ) --configuration module local TaxonItalics = require( 'Module:TaxonItalics' ) --use a function from Module:TaxonItalics to italicize a taxon name --[[==========================================================================]] --[[ Local functions ]] --[[==========================================================================]] local function isNilOrEmpty( thing ) if thing == nil or thing == '' then return true end return nil end local function getIdFromWikidata( item, property ) local id = nil if property == 'PWikispecies:$1' then local siteLinks = item.sitelinks if siteLinks then local speciesWiki = item.sitelinks.specieswiki if speciesWiki then id = speciesWiki.title end end return id elseif item.claims[property] == nil then return id end for _, statement in pairs( item.claims[property] ) do if statement.mainsnak.datavalue then id = statement.mainsnak.datavalue.value break end end return id end local function getLink( property, val ) local link, returnVal = '', {} returnVal.isError = false if mw.ustring.find( val, '//' ) then link = val else if type(property) == 'number' and property > 0 then local entityObject = mw.wikibase.getEntity('P'..property) local dataType if entityObject then dataType = entityObject.datatype else returnVal.isError = true end if dataType == 'external-id' then local formatterURL = nil if property == 3746 or --Wildflowers of Israel property == 3795 or --Flora of Israel Online property == 5397 --Tierstimmenarchiv then formatterURL = entityObject:getBestStatements('P1630')[2] --use 2nd formatterURL for English version end if formatterURL == nil then formatterURL = entityObject:getBestStatements('P1630')[1] end --default to [1] if formatterURL then if formatterURL.mainsnak.datavalue and formatterURL.mainsnak.datavalue.value then --nil check for ABA link = formatterURL.mainsnak.datavalue.value end end elseif dataType == 'url' then local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end elseif dataType == 'string' then local formatterURL = entityObject:getBestStatements('P1630')[1] if formatterURL then link = formatterURL.mainsnak.datavalue.value else local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end end else returnVal.isError = true end elseif type(property) == 'string' then link = property end local valurl = val if mw.ustring.find( link, 'antweb.org' ) then valurl = mw.ustring.gsub(valurl, ' ', '%%20') end if type(property) == 'number' then --doublecheck language for Wildflowers of Israel ID if property == 3746 then link = mw.ustring.gsub(link, '/hebrew/', '/english/') end --format spaces in PfaF binomials, e.g. "Elaeagnus x ebbingei" if property == 4301 then valurl = mw.ustring.gsub(valurl, ' ', '+') end --format spaces in FoAO2 binomials, e.g. "Scaevola basedowii" if property == 6756 then valurl = mw.ustring.gsub(valurl, ' ', '+') end end valurl = mw.ustring.gsub(valurl,'%%','%%%%') link = mw.ustring.gsub(link, '$1', valurl) end link = mw.ustring.gsub(link, '^[Hh][Tt][Tt][Pp]([Ss]?)&#58;//', 'http%1://') -- fix wikidata URL val = mw.ustring.match(val, '([^=/]*)/?$') -- get display name from end of URL if mw.ustring.find( link, '//' ) then returnVal.text = '['..link..' '..mw.text.encode(mw.uri.decode(val, 'PATH'),'%[%]')..']' elseif link == '' then returnVal.text = val else returnVal.text = '<span class="external">[['..link..'|'..val..']]</span>' end return returnVal end local function createRow( id, label, rawValue, link, withUid ) if link then local outStr = '<span style="white-space:nowrap;">' .. label .. ' <span' if withUid then outStr = outStr..' class="uid"' end return outStr..'>' .. link .. '</span></span>\n' else return '* ' .. mw.text.tag('span', {class='error'}, 'The identifier ' .. id .. ' ' .. rawValue .. ' is not valid.') .. '\n' end end local function copyTable(inTable) if type(inTable) ~= 'table' then return inTable end local outTable = setmetatable({}, getmetatable(inTable)) for key, value in pairs (inTable) do outTable[copyTable(key)] = copyTable(value) end return outTable end local p = {} --[[==========================================================================]] --[[ Main ]] --[[==========================================================================]] function p.authorityControlTaxon( frame ) local resolveEntity = require( 'Module:ResolveEntityId' ) local parentArgs = copyTable(frame:getParent().args) local currentTitle = mw.title.getCurrentTitle() local currentEntityId = mw.wikibase.getEntityIdForCurrentPage() local stringArgs = false local fromTitleCount, firstRow, rowCount = 1, 0, 0 local outString, errors = '', '' local tFroms = {} --non-sequential table of unique froms local iFroms = 0 --integer size of tFroms, b/c Lua local categories = { '[[Category:Taxonbars without from parameter]]', '[[Category:Taxonbars desynced from Wikidata]]', '', -- [3] placeholder for [[Category:Taxonbars using multiple manual Wikidata items]] '', -- [4] placeholder for [[Category:Taxonbars with invalid from parameters]] '', -- [5] placeholder for [[Category:Taxonbars using manual taxon IDs]] '', -- [6] placeholder for [[Category:Taxonbar pages requiring a Wikidata item]] '', -- [7] placeholder for [[Category:Taxonbars without primary Wikidata taxon IDs]] '', -- [8] placeholder for [[Category:Taxonbars without secondary Wikidata taxon IDs]] '', -- [9] placeholder for [[Category:Taxonbars with duplicate from parameters]] '', --[10] placeholder for [[Category:Taxonbars with manual taxon IDs differing from Wikidata]] '', --[11] placeholder for [[Category:Taxonbars with manual taxon IDs identical to Wikidata]] '', --[12] placeholder for [[Category:Taxonbars on possible non-taxon pages]] '', --[13] placeholder for [[Category:Taxonbars with automatically added basionyms]] '', --[14] placeholder for [[Category:Taxonbars with automatically added original combinations]] '', --[15] placeholder for [[Category:Taxonbars with automatically added monotypic genera]] '', --[16] placeholder for [[Category:Taxonbars of monotypic species missing genera]] '', --[17] placeholder for [[Category:Taxonbars with unknown parameters]] '', --[18] placeholder for [[Category:Taxonbars with 20–24 taxon IDs]] '', --[19] placeholder for [[Category:Taxonbars with 25–29 taxon IDs]] '', --[20] placeholder for [[Category:Taxonbars with 30–34 taxon IDs]] '', --[21] placeholder for [[Category:Taxonbars with 35–39 taxon IDs]] '', --[22] placeholder for [[Category:Taxonbars with 40+ taxon IDs]] } local acceptableInstanceOf_Strict = { ['Q16521'] = 'taxon', --strict ['Q310890'] = 'monotypic taxon', --strict ['Q2568288'] = 'ichnotaxon', --strict ['Q23038290'] = 'fossil taxon', --strict ['Q47487597'] = 'monotypic fossil taxon', --strict } local acceptableInstanceOf_All = { ['Q16521'] = 'taxon', --strict ['Q310890'] = 'monotypic taxon', --strict ['Q2568288'] = 'ichnotaxon', --strict ['Q23038290'] = 'fossil taxon', --strict ['Q47487597'] = 'monotypic fossil taxon', --strict ['Q42621'] = 'hybrid', --lax ['Q235536'] = 'incertae sedis', --lax ['Q713623'] = 'clade', --lax ['Q848328'] = 'serotype', --lax ['Q857968'] = 'candidatus', --lax ['Q17487588'] = 'unavailable combination', --lax } --Assess the page's relationship with Wikidata local currentItem = nil if currentTitle.namespace == 10 then --i.e. Module:Taxonbar/sandbox, Template:Taxonbar/doc, etc. if resolveEntity._id(parentArgs['from']) then currentItem = mw.wikibase.getEntity(parentArgs['from']) end if currentItem == nil then if resolveEntity._id(parentArgs['from1']) then currentItem = mw.wikibase.getEntity(parentArgs['from1']) end end elseif resolveEntity._id(currentEntityId) then currentItem = mw.wikibase.getEntity(currentEntityId) else --currentEntityId == nil/unresolvable categories[6] = '[[Category:Taxonbar pages requiring a Wikidata item]]' end if currentItem then categories[12] = '[[Category:Taxonbars on possible non-taxon pages]]' --unset if acceptable found for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_All[instanceOf] then categories[12] = '' break end end end --Cleanup args for k, v in pairs( frame:getParent().args ) do if type(k) == 'string' then --make args case insensitive local lowerk = mw.ustring.lower(k) if isNilOrEmpty( parentArgs[lowerk] ) then parentArgs[k] = nil parentArgs[lowerk] = v end --remap abc to abc1 if mw.ustring.find(lowerk,'%d$') == nil then --if no number at end of param if isNilOrEmpty( parentArgs[lowerk..'1'] ) then parentArgs[lowerk] = nil lowerk = lowerk..'1' parentArgs[lowerk] = v end end if v and v ~= '' then --remap 'for' to 'title' if mw.ustring.sub(lowerk,1,3) == 'for' then local forTitle = mw.ustring.gsub(lowerk,'^for','title',1) if isNilOrEmpty( parentArgs[forTitle] ) then parentArgs[lowerk] = nil lowerk = forTitle parentArgs[lowerk] = v end end --find highest from or title param if mw.ustring.sub(lowerk,1,4) == 'from' then local fromNumber = tonumber(mw.ustring.sub(lowerk,5,-1)) if fromNumber and fromNumber >= fromTitleCount then fromTitleCount = fromNumber end --look for duplicate froms while we're here if mw.ustring.find(v, '^Q%d') then if tFroms[v] then categories[9] = '[[Category:Taxonbars with duplicate from parameters]]' tFroms[v] = tFroms[v] + 1 else tFroms[v] = 1 iFroms = iFroms + 1 end if iFroms == 2 then categories[3] = '[[Category:Taxonbars using multiple manual Wikidata items]]' end end elseif mw.ustring.sub(lowerk,1,5) == 'title' then local titleNumber = tonumber(mw.ustring.sub(lowerk,4,-1)) if titleNumber and titleNumber >= fromTitleCount then fromTitleCount = titleNumber end elseif mw.ustring.lower(v) ~= 'no' then stringArgs = true categories[5] = '[[Category:Taxonbars using manual taxon IDs]]' end end end end --Check for unknown parameters --create knowns list local acceptableArgs = { from = true, } --master list of l/c acceptable args for _, d in pairs( conf.databases ) do if d[1] ~= 'Wikidata' then --made obsolete by from acceptableArgs[mw.ustring.lower(d[1])] = true end end for _, a in pairs( conf.aliases ) do acceptableArgs[mw.ustring.lower(a[1])] = true end --create trimmed parents list local baseParentArgs = {} --condensed list of l/c parent args w/o trailing #s for k, v in pairs( parentArgs ) do if type(k) == 'string' then --ignore unnamed params, which have keys of type 'number' local lowerk = mw.ustring.lower(k) local base = mw.ustring.gsub(lowerk, '[%d]*$', '') baseParentArgs[base] = true end end --compare lists and spit out unknowns local unknownParams = {} for k, v in pairs( baseParentArgs ) do if acceptableArgs[k] == nil then categories[17] = '[[Category:Taxonbars with unknown parameters|' .. k ..']]' unknownParams[#unknownParams + 1] = k end end --warn if unknown(s) present if #unknownParams > 0 then local plural = nil local itthem = nil if #unknownParams == 1 then plural = '' itthem = 'it' else plural = 's' itthem = 'them' end if frame:preprocess( '{{REVISIONID}}' ) == '' then errors = errors..'<div class="hatnote" style="color:red">'.. '<strong>Warning:</strong> unknown parameter'..plural..' <strong>'..table.concat(unknownParams, ', ')..'</strong>.<br />'.. 'Please correct '..itthem..' or consider adding '..itthem..' to Wikidata.<br />'.. 'This message is only shown in preview.</div>' end end --Append basionym to arg list, if not already provided if currentItem then local currentBasState = currentItem:getBestStatements('P566')[1] --basionym if currentBasState then local basionymId = currentBasState.mainsnak.datavalue.value.id if basionymId and resolveEntity._id(basionymId) and tFroms[basionymId] == nil then --check that basionym is a strict instance of taxon local basionymItem = mw.wikibase.getEntity(basionymId) if basionymItem then for _, instanceOfState in pairs ( basionymItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[basionymId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append basionym & track parentArgs['from'..fromTitleCount] = basionymId categories[13] = '[[Category:Taxonbars with automatically added basionyms]]' break end end end end end end --Append original combination to arg list, if not already provided if currentItem then local currentOCState = currentItem:getBestStatements('P1403')[1] --original combination if currentOCState then local orcoId = currentOCState.mainsnak.datavalue.value.id if orcoId and resolveEntity._id(orcoId) and tFroms[orcoId] == nil then --check that orco is a strict instance of taxon local orcoItem = mw.wikibase.getEntity(orcoId) if orcoItem then for _, instanceOfState in pairs ( orcoItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[orcoId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append orco & track parentArgs['from'..fromTitleCount] = orcoId categories[14] = '[[Category:Taxonbars with automatically added original combinations]]' break end end end end end end --Append monotypic genus/species to arg list of monotypic species/genus, if not already provided if currentItem then for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local taxonRank = nil local parentItem = nil local parentTaxon = nil local parentTaxonRank = nil local parentMonoGenus = nil --holy grail/tbd local instanceOf = instanceOfState.mainsnak.datavalue.value.id if instanceOf and (instanceOf == 'Q310890' or instanceOf == 'Q47487597') then --monotypic/fossil taxon local taxonRankState = currentItem:getBestStatements('P105')[1] --taxon rank if taxonRankState then taxonRank = taxonRankState.mainsnak.datavalue.value.id end if taxonRank and taxonRank == 'Q7432' then --species --is monotypic species; add genus local parentTaxonState = currentItem:getBestStatements('P171')[1] --parent taxon if parentTaxonState then parentTaxon = parentTaxonState.mainsnak.datavalue.value.id end --confirm parent taxon rank == genus & monotypic if parentTaxon and resolveEntity._id(parentTaxon) then parentItem = mw.wikibase.getEntity(parentTaxon) if parentItem then local parentTaxonRankState = parentItem:getBestStatements('P105')[1] --taxon rank if parentTaxonRankState then parentTaxonRank = parentTaxonRankState.mainsnak.datavalue.value.id end if parentTaxonRank and parentTaxonRank == 'Q34740' then --parent == genus for _, parentInstanceOfState in pairs ( parentItem:getBestStatements('P31') ) do --instance of local parentInstanceOf = parentInstanceOfState.mainsnak.datavalue.value.id if parentInstanceOf and (parentInstanceOf == 'Q310890' or parentInstanceOf == 'Q47487597') then --monotypic/fossil taxon parentMonoGenus = parentTaxon --confirmed break end end if parentMonoGenus and tFroms[parentMonoGenus] == nil then --housekeeping tFroms[parentMonoGenus] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append monotypic genus & track parentArgs['from'..fromTitleCount] = parentMonoGenus categories[15] = '[[Category:Taxonbars with automatically added monotypic genera]]' break end end end end if parentMonoGenus == nil or tFroms[parentMonoGenus] == nil then categories[16] = '[[Category:Taxonbars of monotypic species missing genera]]' break end elseif taxonRank and taxonRank == 'Q34740' then --genus --is monotypic genus; add species --... end end end end --if currentItem --Setup navbox local navboxParams = { name = 'Taxonbar', bodyclass = 'hlist', listclass = '', groupstyle = 'text-align: left;', } for f = 1, fromTitleCount, 1 do local elements, title = {}, nil --cleanup parameters if parentArgs['from'..f] == '' then parentArgs['from'..f] = nil end if parentArgs['title'..f] == '' then parentArgs['title'..f] = nil end --remap aliases for _, a in pairs( conf.aliases ) do local alias, name = mw.ustring.lower(a[1]), mw.ustring.lower(a[2]) if parentArgs[alias..f] and parentArgs[name..f] == nil then parentArgs[name..f] = parentArgs[alias..f] parentArgs[alias..f] = nil end end --Fetch Wikidata item local from = resolveEntity._id(parentArgs['from'..f]) local item = mw.wikibase.getEntity(from) local label = nil if type(item) == 'table' then local statements = item:getBestStatements('P225')[1] --taxon name if statements then local datavalue = statements.mainsnak.datavalue if datavalue then label = datavalue.value end end label = label or item:getLabel() else if parentArgs['from'..f] then categories[1] = '' categories[4] = '[[Category:Taxonbars with invalid from parameters]]' errors = errors .. mw.text.tag('strong', {class='error'}, 'Error: "' .. parentArgs['from'..f] .. '" is not a valid Wikidata entity ID.<br />') end end if label and label ~= '' then title = mw.title.new(label) end if title == nil and parentArgs['title'..f] then title = mw.title.new(parentArgs['title'..f]) end if title == nil and f == 1 then title = currentTitle end if title then if isNilOrEmpty( parentArgs['wikidata'..f] ) and (title.namespace == 0) then if parentArgs['from'..f] then parentArgs['wikidata'..f] = parentArgs['from'..f] elseif item then parentArgs['wikidata'..f] = item.id end end if title.namespace == 0 or stringArgs then --only in mainspace or if manual overrides exist local sourceCount = 0 for _, params in pairs( conf.databases ) do params[1] = mw.ustring.lower(params[1]) local propId = params[3] --Wikidata fallback if requested if (item and item.claims) and (type(propId) == 'string' or (type(propId) == 'number' and propId > 0)) then local wikidataId = getIdFromWikidata( item, 'P' .. propId ) local v = parentArgs[params[1]..f] if wikidataId then if isNilOrEmpty(v) then parentArgs[params[1]..f] = wikidataId else if v and v ~= 'no' and v ~= wikidataId then categories[10] = '[[Category:Taxonbars with manual taxon IDs differing from Wikidata]]' elseif v and v == wikidataId then categories[11] = '[[Category:Taxonbars with manual taxon IDs identical to Wikidata]]' end end end end local val = parentArgs[params[1]..f] if val and val ~= '' and mw.ustring.lower(val) ~= 'no' then if type(propId) == 'number' then if propId < 0 then propId = -propId end --allow link if propId > 0 then --link table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, val ).text, true ) ) else --propId == 0; no link table.insert( elements, createRow( params[1], params[2]..':', val, val, true ) ) end else table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, val ).text, true ) ) end if params[1] ~= 'wikidata' and params[1] ~= 'wikispecies' then sourceCount = sourceCount + 1 end end end if sourceCount >= 40 then categories[22] = '[[Category:Taxonbars with 40+ taxon IDs]]' elseif sourceCount >= 35 then categories[21] = '[[Category:Taxonbars with 35–39 taxon IDs]]' --endashes elseif sourceCount >= 30 then categories[20] = '[[Category:Taxonbars with 30–34 taxon IDs]]' elseif sourceCount >= 25 then categories[19] = '[[Category:Taxonbars with 25–29 taxon IDs]]' elseif sourceCount >= 20 then categories[18] = '[[Category:Taxonbars with 20–24 taxon IDs]]' end --Generate navbox title if sourceCount > 0 then rowCount = rowCount + 1 if firstRow == 0 then firstRow = f end --set title from wikidata if it doesn't exist if isNilOrEmpty( parentArgs['title'..f] ) then parentArgs['noTitle'..f] = true parentArgs['title'..f] = title.text end --if it exists now, set row heading to title if not isNilOrEmpty( parentArgs['title'..f] ) then navboxParams['group'..f] = TaxonItalics.italicizeTaxonName(parentArgs['title'..f], false) else navboxParams['group'..f] = '' end navboxParams['list'..f] = table.concat( elements ) elseif currentEntityId and (currentEntityId == parentArgs['from'..f] or fromTitleCount == 1) then categories[7] = '[[Category:Taxonbars without primary Wikidata taxon IDs]]' else categories[8] = '[[Category:Taxonbars without secondary Wikidata taxon IDs]]' end --Categorize if not isNilOrEmpty( parentArgs['from'..f] ) then --blank "missing from" if 'from' exists categories[1] = '' --blank "desynced" if 'from' matches current page if parentArgs['from'..f] == currentEntityId then categories[2] = '' end end --cannot be "desynced" if no 'from' params if categories[1] ~= '' then categories[2] = '' end end end end --for f = 1, fromTitleCount, 1 if rowCount > 0 then local Navbox = require('Module:Navbox') if rowCount > 1 then --remove duplicates and move page title to top local rowIDs = {} for f = 1,fromTitleCount,1 do if not isNilOrEmpty( parentArgs['title'..f] ) then if rowIDs[parentArgs['wikidata'..f]] then --remove duplicate navboxParams['group'..f] = nil navboxParams['list'..f] = nil else rowIDs[parentArgs['wikidata'..f]] = true if f > firstRow and (parentArgs['title'..f] == currentTitle.text or parentArgs['wikidata'..f] == currentEntityId) then --move item linked to page to top if navboxParams['group'..f] and navboxParams['group'..f] ~= '' and navboxParams['list'..f] and navboxParams['list'..f] ~= '' then local tempGroup, tempList = navboxParams['group'..f], navboxParams['list'..f] navboxParams['group'..f], navboxParams['list'..f] = navboxParams['group'..firstRow], navboxParams['list'..firstRow] navboxParams['group'..firstRow], navboxParams['list'..firstRow] = tempGroup, tempList end end end end end --adjust navbox for number of rows navboxParams['title'] = '[[Help:Şınasnayışê taksoni|Şınasnayış]]' if rowCount >= 5 then navboxParams['navbar'] = 'plain' else navboxParams['state'] = 'off' navboxParams['navbar'] = 'off' end elseif parentArgs['Title'..firstRow] then navboxParams['above'..firstRow] = '[[Help:Şınasnayışê taksoni|Şınasnayış]]' else navboxParams['above'..firstRow] = '[[Help:Şınasnayışê taksoni|Şınasnayış]]<br />' .. navboxParams['group'..firstRow] end --return navbox outString = Navbox._navbox(navboxParams) end --if rowCount > 0 --Add categories if string.sub(currentTitle.subpageText,1,9) == 'testcases' then parentArgs['demo'] = true end if not isNilOrEmpty( parentArgs['demo'] ) then outString = outString .. mw.text.nowiki(table.concat(categories)) .. '<br />' elseif currentTitle.namespace == 0 then outString = outString .. table.concat(categories) end return outString .. errors end return p 9ns6tsc51v02u4x0zhz3klglhh8vulo 557898 557897 2026-10-03T17:44:20Z Maviulke 34834 557898 Scribunto text/plain require('strict') local conf = require( 'Module:Taxonbar/conf' ) --configuration module local TaxonItalics = require( 'Module:TaxonItalics' ) --use a function from Module:TaxonItalics to italicize a taxon name --[[==========================================================================]] --[[ Local functions ]] --[[==========================================================================]] local function isNilOrEmpty( thing ) if thing == nil or thing == '' then return true end return nil end local function getIdFromWikidata( item, property ) local id = nil if property == 'PWikispecies:$1' then local siteLinks = item.sitelinks if siteLinks then local speciesWiki = item.sitelinks.specieswiki if speciesWiki then id = speciesWiki.title end end return id elseif item.claims[property] == nil then return id end for _, statement in pairs( item.claims[property] ) do if statement.mainsnak.datavalue then id = statement.mainsnak.datavalue.value break end end return id end local function getLink( property, val ) local link, returnVal = '', {} returnVal.isError = false if mw.ustring.find( val, '//' ) then link = val else if type(property) == 'number' and property > 0 then local entityObject = mw.wikibase.getEntity('P'..property) local dataType if entityObject then dataType = entityObject.datatype else returnVal.isError = true end if dataType == 'external-id' then local formatterURL = nil if property == 3746 or --Wildflowers of Israel property == 3795 or --Flora of Israel Online property == 5397 --Tierstimmenarchiv then formatterURL = entityObject:getBestStatements('P1630')[2] --use 2nd formatterURL for English version end if formatterURL == nil then formatterURL = entityObject:getBestStatements('P1630')[1] end --default to [1] if formatterURL then if formatterURL.mainsnak.datavalue and formatterURL.mainsnak.datavalue.value then --nil check for ABA link = formatterURL.mainsnak.datavalue.value end end elseif dataType == 'url' then local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end elseif dataType == 'string' then local formatterURL = entityObject:getBestStatements('P1630')[1] if formatterURL then link = formatterURL.mainsnak.datavalue.value else local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end end else returnVal.isError = true end elseif type(property) == 'string' then link = property end local valurl = val if mw.ustring.find( link, 'antweb.org' ) then valurl = mw.ustring.gsub(valurl, ' ', '%%20') end if type(property) == 'number' then --doublecheck language for Wildflowers of Israel ID if property == 3746 then link = mw.ustring.gsub(link, '/hebrew/', '/english/') end --format spaces in PfaF binomials, e.g. "Elaeagnus x ebbingei" if property == 4301 then valurl = mw.ustring.gsub(valurl, ' ', '+') end --format spaces in FoAO2 binomials, e.g. "Scaevola basedowii" if property == 6756 then valurl = mw.ustring.gsub(valurl, ' ', '+') end end valurl = mw.ustring.gsub(valurl,'%%','%%%%') link = mw.ustring.gsub(link, '$1', valurl) end link = mw.ustring.gsub(link, '^[Hh][Tt][Tt][Pp]([Ss]?)&#58;//', 'http%1://') -- fix wikidata URL val = mw.ustring.match(val, '([^=/]*)/?$') -- get display name from end of URL if mw.ustring.find( link, '//' ) then returnVal.text = '['..link..' '..mw.text.encode(mw.uri.decode(val, 'PATH'),'%[%]')..']' elseif link == '' then returnVal.text = val else returnVal.text = '<span class="external">[['..link..'|'..val..']]</span>' end return returnVal end local function createRow( id, label, rawValue, link, withUid ) if link then local outStr = '<span style="white-space:nowrap;">' .. label .. ' <span' if withUid then outStr = outStr..' class="uid"' end return outStr..'>' .. link .. '</span></span>\n' else return '* ' .. mw.text.tag('span', {class='error'}, 'The identifier ' .. id .. ' ' .. rawValue .. ' is not valid.') .. '\n' end end local function copyTable(inTable) if type(inTable) ~= 'table' then return inTable end local outTable = setmetatable({}, getmetatable(inTable)) for key, value in pairs (inTable) do outTable[copyTable(key)] = copyTable(value) end return outTable end local p = {} --[[==========================================================================]] --[[ Main ]] --[[==========================================================================]] function p.authorityControlTaxon( frame ) local resolveEntity = require( 'Module:ResolveEntityId' ) local parentArgs = copyTable(frame:getParent().args) local currentTitle = mw.title.getCurrentTitle() local currentEntityId = mw.wikibase.getEntityIdForCurrentPage() local stringArgs = false local fromTitleCount, firstRow, rowCount = 1, 0, 0 local outString, errors = '', '' local tFroms = {} --non-sequential table of unique froms local iFroms = 0 --integer size of tFroms, b/c Lua local categories = { '[[Category:Taxonbars without from parameter]]', '[[Category:Taxonbars desynced from Wikidata]]', '', -- [3] placeholder for [[Category:Taxonbars using multiple manual Wikidata items]] '', -- [4] placeholder for [[Category:Taxonbars with invalid from parameters]] '', -- [5] placeholder for [[Category:Taxonbars using manual taxon IDs]] '', -- [6] placeholder for [[Category:Taxonbar pages requiring a Wikidata item]] '', -- [7] placeholder for [[Category:Taxonbars without primary Wikidata taxon IDs]] '', -- [8] placeholder for [[Category:Taxonbars without secondary Wikidata taxon IDs]] '', -- [9] placeholder for [[Category:Taxonbars with duplicate from parameters]] '', --[10] placeholder for [[Category:Taxonbars with manual taxon IDs differing from Wikidata]] '', --[11] placeholder for [[Category:Taxonbars with manual taxon IDs identical to Wikidata]] '', --[12] placeholder for [[Category:Taxonbars on possible non-taxon pages]] '', --[13] placeholder for [[Category:Taxonbars with automatically added basionyms]] '', --[14] placeholder for [[Category:Taxonbars with automatically added original combinations]] '', --[15] placeholder for [[Category:Taxonbars with automatically added monotypic genera]] '', --[16] placeholder for [[Category:Taxonbars of monotypic species missing genera]] '', --[17] placeholder for [[Category:Taxonbars with unknown parameters]] '', --[18] placeholder for [[Category:Taxonbars with 20–24 taxon IDs]] '', --[19] placeholder for [[Category:Taxonbars with 25–29 taxon IDs]] '', --[20] placeholder for [[Category:Taxonbars with 30–34 taxon IDs]] '', --[21] placeholder for [[Category:Taxonbars with 35–39 taxon IDs]] '', --[22] placeholder for [[Category:Taxonbars with 40+ taxon IDs]] } local acceptableInstanceOf_Strict = { ['Q16521'] = 'taxon', --strict ['Q310890'] = 'monotypic taxon', --strict ['Q2568288'] = 'ichnotaxon', --strict ['Q23038290'] = 'fossil taxon', --strict ['Q47487597'] = 'monotypic fossil taxon', --strict } local acceptableInstanceOf_All = { ['Q16521'] = 'taxon', --strict ['Q310890'] = 'monotypic taxon', --strict ['Q2568288'] = 'ichnotaxon', --strict ['Q23038290'] = 'fossil taxon', --strict ['Q47487597'] = 'monotypic fossil taxon', --strict ['Q42621'] = 'hybrid', --lax ['Q235536'] = 'incertae sedis', --lax ['Q713623'] = 'clade', --lax ['Q848328'] = 'serotype', --lax ['Q857968'] = 'candidatus', --lax ['Q17487588'] = 'unavailable combination', --lax } --Assess the page's relationship with Wikidata local currentItem = nil if currentTitle.namespace == 10 then --i.e. Module:Taxonbar/sandbox, Template:Taxonbar/doc, etc. if resolveEntity._id(parentArgs['from']) then currentItem = mw.wikibase.getEntity(parentArgs['from']) end if currentItem == nil then if resolveEntity._id(parentArgs['from1']) then currentItem = mw.wikibase.getEntity(parentArgs['from1']) end end elseif resolveEntity._id(currentEntityId) then currentItem = mw.wikibase.getEntity(currentEntityId) else --currentEntityId == nil/unresolvable categories[6] = '[[Category:Taxonbar pages requiring a Wikidata item]]' end if currentItem then categories[12] = '[[Category:Taxonbars on possible non-taxon pages]]' --unset if acceptable found for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_All[instanceOf] then categories[12] = '' break end end end --Cleanup args for k, v in pairs( frame:getParent().args ) do if type(k) == 'string' then --make args case insensitive local lowerk = mw.ustring.lower(k) if isNilOrEmpty( parentArgs[lowerk] ) then parentArgs[k] = nil parentArgs[lowerk] = v end --remap abc to abc1 if mw.ustring.find(lowerk,'%d$') == nil then --if no number at end of param if isNilOrEmpty( parentArgs[lowerk..'1'] ) then parentArgs[lowerk] = nil lowerk = lowerk..'1' parentArgs[lowerk] = v end end if v and v ~= '' then --remap 'for' to 'title' if mw.ustring.sub(lowerk,1,3) == 'for' then local forTitle = mw.ustring.gsub(lowerk,'^for','title',1) if isNilOrEmpty( parentArgs[forTitle] ) then parentArgs[lowerk] = nil lowerk = forTitle parentArgs[lowerk] = v end end --find highest from or title param if mw.ustring.sub(lowerk,1,4) == 'from' then local fromNumber = tonumber(mw.ustring.sub(lowerk,5,-1)) if fromNumber and fromNumber >= fromTitleCount then fromTitleCount = fromNumber end --look for duplicate froms while we're here if mw.ustring.find(v, '^Q%d') then if tFroms[v] then categories[9] = '[[Category:Taxonbars with duplicate from parameters]]' tFroms[v] = tFroms[v] + 1 else tFroms[v] = 1 iFroms = iFroms + 1 end if iFroms == 2 then categories[3] = '[[Category:Taxonbars using multiple manual Wikidata items]]' end end elseif mw.ustring.sub(lowerk,1,5) == 'title' then local titleNumber = tonumber(mw.ustring.sub(lowerk,4,-1)) if titleNumber and titleNumber >= fromTitleCount then fromTitleCount = titleNumber end elseif mw.ustring.lower(v) ~= 'no' then stringArgs = true categories[5] = '[[Category:Taxonbars using manual taxon IDs]]' end end end end --Check for unknown parameters --create knowns list local acceptableArgs = { from = true, } --master list of l/c acceptable args for _, d in pairs( conf.databases ) do if d[1] ~= 'Wikidata' then --made obsolete by from acceptableArgs[mw.ustring.lower(d[1])] = true end end for _, a in pairs( conf.aliases ) do acceptableArgs[mw.ustring.lower(a[1])] = true end --create trimmed parents list local baseParentArgs = {} --condensed list of l/c parent args w/o trailing #s for k, v in pairs( parentArgs ) do if type(k) == 'string' then --ignore unnamed params, which have keys of type 'number' local lowerk = mw.ustring.lower(k) local base = mw.ustring.gsub(lowerk, '[%d]*$', '') baseParentArgs[base] = true end end --compare lists and spit out unknowns local unknownParams = {} for k, v in pairs( baseParentArgs ) do if acceptableArgs[k] == nil then categories[17] = '[[Category:Taxonbars with unknown parameters|' .. k ..']]' unknownParams[#unknownParams + 1] = k end end --warn if unknown(s) present if #unknownParams > 0 then local plural = nil local itthem = nil if #unknownParams == 1 then plural = '' itthem = 'it' else plural = 's' itthem = 'them' end if frame:preprocess( '{{REVISIONID}}' ) == '' then errors = errors..'<div class="hatnote" style="color:red">'.. '<strong>Warning:</strong> unknown parameter'..plural..' <strong>'..table.concat(unknownParams, ', ')..'</strong>.<br />'.. 'Please correct '..itthem..' or consider adding '..itthem..' to Wikidata.<br />'.. 'This message is only shown in preview.</div>' end end --Append basionym to arg list, if not already provided if currentItem then local currentBasState = currentItem:getBestStatements('P566')[1] --basionym if currentBasState then local basionymId = currentBasState.mainsnak.datavalue.value.id if basionymId and resolveEntity._id(basionymId) and tFroms[basionymId] == nil then --check that basionym is a strict instance of taxon local basionymItem = mw.wikibase.getEntity(basionymId) if basionymItem then for _, instanceOfState in pairs ( basionymItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[basionymId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append basionym & track parentArgs['from'..fromTitleCount] = basionymId categories[13] = '[[Category:Taxonbars with automatically added basionyms]]' break end end end end end end --Append original combination to arg list, if not already provided if currentItem then local currentOCState = currentItem:getBestStatements('P1403')[1] --original combination if currentOCState then local orcoId = currentOCState.mainsnak.datavalue.value.id if orcoId and resolveEntity._id(orcoId) and tFroms[orcoId] == nil then --check that orco is a strict instance of taxon local orcoItem = mw.wikibase.getEntity(orcoId) if orcoItem then for _, instanceOfState in pairs ( orcoItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[orcoId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append orco & track parentArgs['from'..fromTitleCount] = orcoId categories[14] = '[[Category:Taxonbars with automatically added original combinations]]' break end end end end end end --Append monotypic genus/species to arg list of monotypic species/genus, if not already provided if currentItem then for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local taxonRank = nil local parentItem = nil local parentTaxon = nil local parentTaxonRank = nil local parentMonoGenus = nil --holy grail/tbd local instanceOf = instanceOfState.mainsnak.datavalue.value.id if instanceOf and (instanceOf == 'Q310890' or instanceOf == 'Q47487597') then --monotypic/fossil taxon local taxonRankState = currentItem:getBestStatements('P105')[1] --taxon rank if taxonRankState then taxonRank = taxonRankState.mainsnak.datavalue.value.id end if taxonRank and taxonRank == 'Q7432' then --species --is monotypic species; add genus local parentTaxonState = currentItem:getBestStatements('P171')[1] --parent taxon if parentTaxonState then parentTaxon = parentTaxonState.mainsnak.datavalue.value.id end --confirm parent taxon rank == genus & monotypic if parentTaxon and resolveEntity._id(parentTaxon) then parentItem = mw.wikibase.getEntity(parentTaxon) if parentItem then local parentTaxonRankState = parentItem:getBestStatements('P105')[1] --taxon rank if parentTaxonRankState then parentTaxonRank = parentTaxonRankState.mainsnak.datavalue.value.id end if parentTaxonRank and parentTaxonRank == 'Q34740' then --parent == genus for _, parentInstanceOfState in pairs ( parentItem:getBestStatements('P31') ) do --instance of local parentInstanceOf = parentInstanceOfState.mainsnak.datavalue.value.id if parentInstanceOf and (parentInstanceOf == 'Q310890' or parentInstanceOf == 'Q47487597') then --monotypic/fossil taxon parentMonoGenus = parentTaxon --confirmed break end end if parentMonoGenus and tFroms[parentMonoGenus] == nil then --housekeeping tFroms[parentMonoGenus] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append monotypic genus & track parentArgs['from'..fromTitleCount] = parentMonoGenus categories[15] = '[[Category:Taxonbars with automatically added monotypic genera]]' break end end end end if parentMonoGenus == nil or tFroms[parentMonoGenus] == nil then categories[16] = '[[Category:Taxonbars of monotypic species missing genera]]' break end elseif taxonRank and taxonRank == 'Q34740' then --genus --is monotypic genus; add species --... end end end end --if currentItem --Setup navbox local navboxParams = { name = 'Taxonbar', bodyclass = 'hlist', listclass = '', groupstyle = 'text-align: left;', } for f = 1, fromTitleCount, 1 do local elements, title = {}, nil --cleanup parameters if parentArgs['from'..f] == '' then parentArgs['from'..f] = nil end if parentArgs['title'..f] == '' then parentArgs['title'..f] = nil end --remap aliases for _, a in pairs( conf.aliases ) do local alias, name = mw.ustring.lower(a[1]), mw.ustring.lower(a[2]) if parentArgs[alias..f] and parentArgs[name..f] == nil then parentArgs[name..f] = parentArgs[alias..f] parentArgs[alias..f] = nil end end --Fetch Wikidata item local from = resolveEntity._id(parentArgs['from'..f]) local item = mw.wikibase.getEntity(from) local label = nil if type(item) == 'table' then local statements = item:getBestStatements('P225')[1] --taxon name if statements then local datavalue = statements.mainsnak.datavalue if datavalue then label = datavalue.value end end label = label or item:getLabel() else if parentArgs['from'..f] then categories[1] = '' categories[4] = '[[Category:Taxonbars with invalid from parameters]]' errors = errors .. mw.text.tag('strong', {class='error'}, 'Error: "' .. parentArgs['from'..f] .. '" is not a valid Wikidata entity ID.<br />') end end if label and label ~= '' then title = mw.title.new(label) end if title == nil and parentArgs['title'..f] then title = mw.title.new(parentArgs['title'..f]) end if title == nil and f == 1 then title = currentTitle end if title then if isNilOrEmpty( parentArgs['wikidata'..f] ) and (title.namespace == 0) then if parentArgs['from'..f] then parentArgs['wikidata'..f] = parentArgs['from'..f] elseif item then parentArgs['wikidata'..f] = item.id end end if title.namespace == 0 or stringArgs then --only in mainspace or if manual overrides exist local sourceCount = 0 for _, params in pairs( conf.databases ) do params[1] = mw.ustring.lower(params[1]) local propId = params[3] --Wikidata fallback if requested if (item and item.claims) and (type(propId) == 'string' or (type(propId) == 'number' and propId > 0)) then local wikidataId = getIdFromWikidata( item, 'P' .. propId ) local v = parentArgs[params[1]..f] if wikidataId then if isNilOrEmpty(v) then parentArgs[params[1]..f] = wikidataId else if v and v ~= 'no' and v ~= wikidataId then categories[10] = '[[Category:Taxonbars with manual taxon IDs differing from Wikidata]]' elseif v and v == wikidataId then categories[11] = '[[Category:Taxonbars with manual taxon IDs identical to Wikidata]]' end end end end local val = parentArgs[params[1]..f] if val and val ~= '' and mw.ustring.lower(val) ~= 'no' then if type(propId) == 'number' then if propId < 0 then propId = -propId end --allow link if propId > 0 then --link table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, val ).text, true ) ) else --propId == 0; no link table.insert( elements, createRow( params[1], params[2]..':', val, val, true ) ) end else table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, val ).text, true ) ) end if params[1] ~= 'wikidata' and params[1] ~= 'wikispecies' then sourceCount = sourceCount + 1 end end end if sourceCount >= 40 then categories[22] = '[[Category:Taxonbars with 40+ taxon IDs]]' elseif sourceCount >= 35 then categories[21] = '[[Category:Taxonbars with 35–39 taxon IDs]]' --endashes elseif sourceCount >= 30 then categories[20] = '[[Category:Taxonbars with 30–34 taxon IDs]]' elseif sourceCount >= 25 then categories[19] = '[[Category:Taxonbars with 25–29 taxon IDs]]' elseif sourceCount >= 20 then categories[18] = '[[Category:Taxonbars with 20–24 taxon IDs]]' end --Generate navbox title if sourceCount > 0 then rowCount = rowCount + 1 if firstRow == 0 then firstRow = f end --set title from wikidata if it doesn't exist if isNilOrEmpty( parentArgs['title'..f] ) then parentArgs['noTitle'..f] = true parentArgs['title'..f] = title.text end --if it exists now, set row heading to title if not isNilOrEmpty( parentArgs['title'..f] ) then navboxParams['group'..f] = TaxonItalics.italicizeTaxonName(parentArgs['title'..f], false) else navboxParams['group'..f] = '' end navboxParams['list'..f] = table.concat( elements ) elseif currentEntityId and (currentEntityId == parentArgs['from'..f] or fromTitleCount == 1) then categories[7] = '[[Category:Taxonbars without primary Wikidata taxon IDs]]' else categories[8] = '[[Category:Taxonbars without secondary Wikidata taxon IDs]]' end --Categorize if not isNilOrEmpty( parentArgs['from'..f] ) then --blank "missing from" if 'from' exists categories[1] = '' --blank "desynced" if 'from' matches current page if parentArgs['from'..f] == currentEntityId then categories[2] = '' end end --cannot be "desynced" if no 'from' params if categories[1] ~= '' then categories[2] = '' end end end end --for f = 1, fromTitleCount, 1 if rowCount > 0 then local Navbox = require('Module:Navbox') if rowCount > 1 then --remove duplicates and move page title to top local rowIDs = {} for f = 1,fromTitleCount,1 do if not isNilOrEmpty( parentArgs['title'..f] ) then if rowIDs[parentArgs['wikidata'..f]] then --remove duplicate navboxParams['group'..f] = nil navboxParams['list'..f] = nil else rowIDs[parentArgs['wikidata'..f]] = true if f > firstRow and (parentArgs['title'..f] == currentTitle.text or parentArgs['wikidata'..f] == currentEntityId) then --move item linked to page to top if navboxParams['group'..f] and navboxParams['group'..f] ~= '' and navboxParams['list'..f] and navboxParams['list'..f] ~= '' then local tempGroup, tempList = navboxParams['group'..f], navboxParams['list'..f] navboxParams['group'..f], navboxParams['list'..f] = navboxParams['group'..firstRow], navboxParams['list'..firstRow] navboxParams['group'..firstRow], navboxParams['list'..firstRow] = tempGroup, tempList end end end end end --adjust navbox for number of rows navboxParams['title'] = '[[Help:Şınasnayışê taksoni|Şınasnayış]]' if rowCount >= 5 then navboxParams['navbar'] = 'plain' else navboxParams['state'] = 'off' navboxParams['navbar'] = 'off' end elseif parentArgs['Title'..firstRow] then navboxParams['title'..firstRow] = '[[Help:Şınasnayışê taksoni|Şınasnayış]]' else navboxParams['title'..firstRow] = '[[Help:Şınasnayışê taksoni|Şınasnayış]]<br />' .. navboxParams['group'..firstRow] end --return navbox outString = Navbox._navbox(navboxParams) end --if rowCount > 0 --Add categories if string.sub(currentTitle.subpageText,1,9) == 'testcases' then parentArgs['demo'] = true end if not isNilOrEmpty( parentArgs['demo'] ) then outString = outString .. mw.text.nowiki(table.concat(categories)) .. '<br />' elseif currentTitle.namespace == 0 then outString = outString .. table.concat(categories) end return outString .. errors end return p g50fz5tozn3ube8uhsnfwsl1p0vg1jq 557899 557898 2026-10-03T17:48:55Z Maviulke 34834 557899 Scribunto text/plain require('strict') local conf = require( 'Module:Taxonbar/conf' ) --configuration module local TaxonItalics = require( 'Module:TaxonItalics' ) --use a function to conditionally italicize taxon names --[[==========================================================================]] --[[ Local functions ]] --[[==========================================================================]] local function isNilOrEmpty( thing ) if thing == nil or thing == '' then return true end return nil end local function getIdFromWikidata( item, property ) local id = nil if property == 'PWikispecies:$1' then local siteLinks = item.sitelinks if siteLinks then local speciesWiki = item.sitelinks.specieswiki if speciesWiki then id = speciesWiki.title end end return id elseif item.claims[property] == nil then return id end --[[ this code picks up deprecated values on wikidata; better to use getBestStatements for _, statement in pairs( item.claims[property] ) do if statement.mainsnak.datavalue then id = statement.mainsnak.datavalue.value break end end ]] local statements = item:getBestStatements(property)[1] if statements and statements.mainsnak and statements.mainsnak.datavalue and statements.mainsnak.datavalue.value then id = statements.mainsnak.datavalue.value end return id end local function getLink( property, db, val ) local link, returnVal = '', {} returnVal.isError = false if mw.ustring.find( val, '//' ) then link = val else if type(property) == 'number' and property > 0 then local entityObject = mw.wikibase.getEntity('P'..property) local dataType if entityObject then dataType = entityObject.datatype else returnVal.isError = true end if dataType == 'external-id' then local formatterURL = nil if property == 3746 or --Wildflowers of Israel property == 3795 or --Flora of Israel Online property == 5397 --Tierstimmenarchiv then formatterURL = entityObject:getBestStatements('P1630')[2] --use 2nd formatterURL for English version end if formatterURL == nil then formatterURL = entityObject:getBestStatements('P1630')[1] end --default to [1] if formatterURL then if formatterURL.mainsnak.datavalue and formatterURL.mainsnak.datavalue.value then --nil check for ABA link = formatterURL.mainsnak.datavalue.value end end if db == 'bow' then -- for birds of world which uses eBird identifier link = 'https://birdsoftheworld.org/bow/species/$1' elseif db == 'speciesfungorum' then -- SpeciesFungorum uses Index Fungorum identifier link = 'https://www.speciesfungorum.org/Names/NamesRecord.asp?RecordID=$1' elseif db == 'fossilworks' then link = 'https://paleobiodb.org/classic/basicTaxonInfo?taxon_no=$1' end elseif dataType == 'url' then local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end elseif dataType == 'string' then local formatterURL = entityObject:getBestStatements('P1630')[1] if formatterURL then link = formatterURL.mainsnak.datavalue.value else local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end end else returnVal.isError = true end elseif type(property) == 'string' then link = property end --local valurl = val local valurl = mw.uri.encode( val, 'PATH' ) valurl = string.gsub (valurl, '%%2F', '/') --escape '/' (e.g. issue with P5354); see wikidata T128078 and https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/664820/3/lib/includes/PropertyInfoSnakUrlExpander.php if type(property) == 'number' then --doublecheck language for Wildflowers of Israel ID if property == 3746 then link = mw.ustring.gsub(link, '/hebrew/', '/english/') end --format spaces in PfaF binomials, e.g. "Elaeagnus x ebbingei" if property == 4301 then valurl = mw.ustring.gsub(valurl, '%%20', '+') end end valurl = mw.ustring.gsub(valurl,'%%','%%%%') link = mw.ustring.gsub(link, '$1', valurl) end link = mw.ustring.gsub(link, '^[Hh][Tt][Tt][Pp]([Ss]?)&#58;//', 'http%1://') --fix wikidata URL val = mw.ustring.match(val, '([^=/]*)/?$') --get display name from end of URL if mw.ustring.find( link, '//' ) then returnVal.text = '['..link..' '..mw.text.encode(mw.uri.decode(val, 'PATH'),'%[%]')..']' elseif link == '' then returnVal.text = val else returnVal.text = '<span class="external">[['..link..'|'..val..']]</span>' end return returnVal end local function createRow( id, label, rawValue, link, withUid ) if link then local outStr = '*<span style="white-space:nowrap;">'..label..' <span' if withUid then outStr = outStr..' class="uid"' end return outStr..'>'..link..'</span></span>\n' else return '* '..mw.text.tag('span', {class='error'}, 'The identifier '..id..' '..rawValue..' is not valid.')..'\n' end end local function copyTable(inTable) if type(inTable) ~= 'table' then return inTable end local outTable = setmetatable({}, getmetatable(inTable)) for key, value in pairs (inTable) do outTable[copyTable(key)] = copyTable(value) end return outTable end local p = {} --[[==========================================================================]] --[[ Main ]] --[[==========================================================================]] function p.authorityControlTaxon( frame ) local resolveEntity = require( 'Module:ResolveEntityId' ) local whitelist = require( 'Module:Taxonbar/whitelist' ).whitelist --to create acceptableInstanceOf_Strict & acceptableInstanceOf_All local parentArgs = copyTable(frame:getParent().args) local currentTitle = mw.title.getCurrentTitle() local currentEntityId = mw.wikibase.getEntityIdForCurrentPage() local stringArgs = false local fromTitleCount, firstRow, rowCount = 1, 0, 0 local outString, errors = '', '' local iFroms = 0 --integer size of tFroms, b/c Lua local tFroms = {} --non-sequential table of unique froms local tCats = { '[[Category:Taxonbars without from parameter]]', '[[Category:Taxonbars desynced from Wikidata]]', '', -- [3] placeholder for [[Category:Taxonbar pages requiring a Wikidata item]] '', -- [4] placeholder for [[Category:Taxonbars on possible non-taxon pages]] '', -- [5] placeholder for [[Category:Taxonbars with invalid from parameters]] '', -- [6] placeholder for [[Category:Taxonbars with duplicate from parameters]] '', -- [7] placeholder for [[Category:Taxonbars with from2 matching article title]] '', -- [8] placeholder for [[Category:Taxonbars with from2 matching article title & QID]] '', -- [9] placeholder for [[Category:Taxonbars with manual taxon IDs]] '', --[10] placeholder for [[Category:Taxonbars with manual taxon IDs identical to Wikidata]] '', --[11] placeholder for [[Category:Taxonbars with manual taxon IDs differing from Wikidata]] '', --[12] placeholder for [[Category:Taxonbars with unknown parameters]] '', --[13] placeholder for [[Category:Taxonbars with unnamed parameters]] '', --[14] placeholder for [[Category:Taxonbars with multiple manual Wikidata items]] '', --[15] placeholder for [[Category:Taxonbars with automatically added basionyms]] '', --[16] placeholder for [[Category:Taxonbars with automatically added original combinations]] '', --[17] placeholder for [[Category:Taxonbars with automatically added monotypic species]] '', --[18] placeholder for [[Category:Taxonbars with automatically added monotypic genera]] '', --[19] placeholder for [[Category:Taxonbars of monotypic species missing genera on Wikidata]] '', --[20] placeholder for [[Category:Taxonbars of monotypic genera missing species on Wikidata]] '', --[21] placeholder for [[Category:Taxonbars without primary Wikidata taxon IDs]] '', --[22] placeholder for [[Category:Taxonbars without secondary Wikidata taxon IDs]] '', --[23] placeholder for [[Category:Taxonbars with 20–24 taxon IDs]] '', --[24] placeholder for [[Category:Taxonbars with 25–29 taxon IDs]] '', --[25] placeholder for [[Category:Taxonbars with 30–34 taxon IDs]] '', --[26] placeholder for [[Category:Taxonbars with 35–39 taxon IDs]] '', --[27] placeholder for [[Category:Taxonbars with 40–44 taxon IDs]] '', --[28] placeholder for [[Category:Taxonbars with 45+ taxon IDs]] '', --[29] placeholder for [[Category:Taxonbars of monotypic species missing genera on Wikipedia]] '', --[30] placeholder for [[Category:Taxonbars of monotypic genera missing species on Wikipedia]] } local acceptableInstanceOf_Strict = whitelist{ args = { 'strict' } } local acceptableInstanceOf_All = whitelist{ args = { 'all' } } --monotypic flags for WP-side check local mono = nil local monoWPok = nil local monoGenus = nil local monoSpecies = nil local monoParent = nil --parent taxon name --Assess the page's relationship with Wikidata local currentItem = nil if currentTitle.namespace == 10 then --i.e. Module:Taxonbar/sandbox, Template:Taxonbar/doc, etc. if resolveEntity._id(parentArgs['from']) then currentItem = mw.wikibase.getEntity(parentArgs['from']) end if currentItem == nil then if resolveEntity._id(parentArgs['from1']) then currentItem = mw.wikibase.getEntity(parentArgs['from1']) end end elseif resolveEntity._id(currentEntityId) then currentItem = mw.wikibase.getEntity(currentEntityId) else --currentEntityId == nil/unresolvable tCats[3] = '[[Category:Taxonbar pages requiring a Wikidata item]]' end if currentItem then tCats[4] = '[[Category:Taxonbars on possible non-taxon pages]]' --unset if acceptable found for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_All[instanceOf] then tCats[4] = '' break end end end --Cleanup args for k, v in pairs( frame:getParent().args ) do if type(k) == 'string' then --make args case insensitive local lowerk = mw.ustring.lower(k) if isNilOrEmpty( parentArgs[lowerk] ) then parentArgs[k] = nil parentArgs[lowerk] = v end --remap abc to abc1 if mw.ustring.find(lowerk,'%d$') == nil then --if no number at end of param if isNilOrEmpty( parentArgs[lowerk..'1'] ) then parentArgs[lowerk] = nil lowerk = lowerk..'1' parentArgs[lowerk] = v end end if v and v ~= '' then --remap 'for' to 'title' if mw.ustring.sub(lowerk,1,3) == 'for' then local forTitle = mw.ustring.gsub(lowerk,'^for','title',1) if isNilOrEmpty( parentArgs[forTitle] ) then parentArgs[lowerk] = nil lowerk = forTitle parentArgs[lowerk] = v end end --find highest from or title param if mw.ustring.sub(lowerk,1,4) == 'from' then local fromNumber = tonumber(mw.ustring.sub(lowerk,5,-1)) if fromNumber and fromNumber >= fromTitleCount then fromTitleCount = fromNumber end --look for duplicate froms while we're here if mw.ustring.find(v, '^Q%d') then if tFroms[v] then tCats[6] = '[[Category:Taxonbars with duplicate from parameters]]' tFroms[v] = tFroms[v] + 1 else tFroms[v] = 1 iFroms = iFroms + 1 end if iFroms == 2 then tCats[14] = '[[Category:Taxonbars with multiple manual Wikidata items]]' end end elseif mw.ustring.sub(lowerk,1,5) == 'title' then local titleNumber = tonumber(mw.ustring.sub(lowerk,4,-1)) if titleNumber and titleNumber >= fromTitleCount then fromTitleCount = titleNumber end elseif mw.ustring.lower(v) ~= 'no' and mw.ustring.lower(v) ~= 'yes' then stringArgs = true tCats[9] = '[[Category:Taxonbars with manual taxon IDs]]' end end end --if type(k) == 'string' end --for --Check for unknown parameters --create knowns list local acceptableArgs = { from = true, } --master list of l/c acceptable args for _, d in pairs( conf.databases ) do if d[1] ~= 'Wikidata' then --made obsolete by from acceptableArgs[mw.ustring.lower(d[1])] = true end end for _, a in pairs( conf.aliases ) do acceptableArgs[mw.ustring.lower(a[1])] = true end --create trimmed parents list local baseParentArgs = {} --condensed list of l/c parent args w/o trailing #s for k, _ in pairs( parentArgs ) do if type(k) == 'string' then local lowerk = mw.ustring.lower(k) local base = mw.ustring.gsub(lowerk, '[%d]*$', '') baseParentArgs[base] = true elseif type(k) == 'number' then tCats[13] = '[[Category:Taxonbars with unnamed parameters|'..k..']]' end end --compare lists and spit out unknowns local unknownParams = {} for k, _ in pairs( baseParentArgs ) do if acceptableArgs[k] == nil then tCats[12] = '[[Category:Taxonbars with unknown parameters|'..k..']]' unknownParams[#unknownParams + 1] = k end end --warn if unknown(s) present if #unknownParams > 0 then local plural = 's' local itthem = 'them' if #unknownParams == 1 then plural = '' itthem = 'it' end errors = errors..require('Module:If preview')._warning({ mw.ustring.format( 'Unknown parameter%s <code>%s</code>. Please correct %s or consider adding %s to Wikidata.', plural, table.concat(unknownParams, '</code>, <code>'), itthem, itthem ) }) end --Append basionym to arg list, if not already provided if currentItem then local currentBasState = currentItem:getBestStatements('P566')[1] --basionym if currentBasState then local datavalue = currentBasState.mainsnak.datavalue local basionymId = datavalue and datavalue.value.id if basionymId and resolveEntity._id(basionymId) and tFroms[basionymId] == nil then --check that basionym is a strict instance of taxon local basionymItem = mw.wikibase.getEntity(basionymId) if basionymItem then for _, instanceOfState in pairs ( basionymItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[basionymId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append basionym & track parentArgs['from'..fromTitleCount] = basionymId tCats[15] = '[[Category:Taxonbars with automatically added basionyms]]' break end end end end end end --Append original combination to arg list, if not already provided if currentItem then local currentOCState = currentItem:getBestStatements('P1403')[1] --original combination if currentOCState then local orcoId = currentOCState.mainsnak.datavalue.value.id if orcoId and resolveEntity._id(orcoId) and tFroms[orcoId] == nil then --check that orco is a strict instance of taxon local orcoItem = mw.wikibase.getEntity(orcoId) if orcoItem then for _, instanceOfState in pairs ( orcoItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[orcoId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append orco & track parentArgs['from'..fromTitleCount] = orcoId tCats[16] = '[[Category:Taxonbars with automatically added original combinations]]' break end end end end end end --Append monotypic genus/species to arg list of monotypic species/genus, if not already provided if currentItem then for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local taxonRank = nil local parentItem = nil local parentTaxon = nil local parentTaxonRank = nil local parentMonoGenus = nil --holy grail/tbd local childItem = nil local childTaxon = nil local childTaxonRank = nil local childMonoSpecies = nil --holy grail/tbd local instanceOf = instanceOfState.mainsnak.datavalue.value.id if instanceOf and (instanceOf == 'Q310890' or instanceOf == 'Q47487597') then --monotypic/fossil taxon --find & save monoParent for future WP-side check if monoParent == nil then mono = true local label = nil local taxonName = currentItem:getBestStatements('P225')[1] --taxon name if taxonName then local datavalue = taxonName.mainsnak.datavalue if datavalue then label = datavalue.value end end label = label or currentItem:getLabel() if label then monoParent = mw.ustring.gsub(label, ' .+', '') end end local missingP171orP427sortkey = '*' local taxonRankState = currentItem:getBestStatements('P105')[1] --taxon rank if taxonRankState then taxonRank = taxonRankState.mainsnak.datavalue.value.id end if taxonRank and taxonRank == 'Q7432' then --species --is monotypic species; add genus monoSpecies = true local parentTaxonState = currentItem:getBestStatements('P171')[1] --parent taxon if parentTaxonState then parentTaxon = parentTaxonState.mainsnak.datavalue.value.id else tCats[19] = '[[Category:Taxonbars of monotypic species missing genera on Wikidata|'..missingP171orP427sortkey..']]' break end --confirm parent taxon rank == genus & monotypic if parentTaxon and resolveEntity._id(parentTaxon) then parentItem = mw.wikibase.getEntity(parentTaxon) if parentItem then local parentTaxonRankState = parentItem:getBestStatements('P105')[1] --taxon rank if parentTaxonRankState then parentTaxonRank = parentTaxonRankState.mainsnak.datavalue.value.id end if parentTaxonRank and parentTaxonRank == 'Q34740' then --parent == genus for _, parentInstanceOfState in pairs ( parentItem:getBestStatements('P31') ) do --instance of local parentInstanceOf = parentInstanceOfState.mainsnak.datavalue.value.id if parentInstanceOf and (parentInstanceOf == 'Q310890' or parentInstanceOf == 'Q47487597') then --monotypic/fossil taxon parentMonoGenus = parentTaxon --confirmed break end end if parentMonoGenus and tFroms[parentMonoGenus] == nil then --housekeeping tFroms[parentMonoGenus] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append monotypic genus & track parentArgs['from'..fromTitleCount] = parentMonoGenus tCats[18] = '[[Category:Taxonbars with automatically added monotypic genera]]' break end end end end if parentMonoGenus == nil or tFroms[parentMonoGenus] == nil then tCats[19] = '[[Category:Taxonbars of monotypic species missing genera on Wikidata]]' break end elseif taxonRank and taxonRank == 'Q34740' then --genus --is monotypic genus; add species --(https://www.wikidata.org/wiki/Wikidata:Property_proposal/child_monotypic_taxon unnecessary thanks to P427!) monoGenus = true local childTaxonState = currentItem:getBestStatements('P427')[1] --taxonomic type if childTaxonState then childTaxon = childTaxonState.mainsnak.datavalue.value.id else tCats[20] = '[[Category:Taxonbars of monotypic genera missing species on Wikidata|'..missingP171orP427sortkey..']]' break end --confirm child taxon rank == species & monotypic if childTaxon and resolveEntity._id(childTaxon) then childItem = mw.wikibase.getEntity(childTaxon) if childItem then local childTaxonRankState = childItem:getBestStatements('P105')[1] --taxon rank if childTaxonRankState then childTaxonRank = childTaxonRankState.mainsnak.datavalue.value.id end if childTaxonRank and childTaxonRank == 'Q7432' then --child == species for _, childInstanceOfState in pairs ( childItem:getBestStatements('P31') ) do --instance of local childInstanceOf = childInstanceOfState.mainsnak.datavalue.value.id if childInstanceOf and (childInstanceOf == 'Q310890' or childInstanceOf == 'Q47487597') then --monotypic/fossil taxon childMonoSpecies = childTaxon --confirmed break end end if childMonoSpecies and tFroms[childMonoSpecies] == nil then --housekeeping tFroms[childMonoSpecies] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append monotypic species & track parentArgs['from'..fromTitleCount] = childMonoSpecies tCats[17] = '[[Category:Taxonbars with automatically added monotypic species]]' break end end end end if childMonoSpecies == nil or tFroms[childMonoSpecies] == nil then tCats[20] = '[[Category:Taxonbars of monotypic genera missing species on Wikidata]]' break end end --monotype searches end --monotype handling end --for end --if currentItem --Setup navbox local navboxParams = { name = 'Taxonbar', bodyclass = 'hlist', listclass = '', groupstyle = 'text-align: left;', } for f = 1, fromTitleCount, 1 do local elements, title = {}, nil --cleanup parameters if parentArgs['from'..f] == '' then parentArgs['from'..f] = nil end if parentArgs['title'..f] == '' then parentArgs['title'..f] = nil end --remap aliases for _, a in pairs( conf.aliases ) do local alias, name = mw.ustring.lower(a[1]), mw.ustring.lower(a[2]) if parentArgs[alias..f] and parentArgs[name..f] == nil then parentArgs[name..f] = parentArgs[alias..f] parentArgs[alias..f] = nil end end --Fetch Wikidata item local from = resolveEntity._id(parentArgs['from'..f]) local item = mw.wikibase.getEntity(from) local label = nil if type(item) == 'table' then local statements = item:getBestStatements('P225')[1] --taxon name if statements then local datavalue = statements.mainsnak.datavalue if datavalue then label = datavalue.value end end label = label or item:getLabel() else if parentArgs['from'..f] then tCats[1] = '' tCats[5] = '[[Category:Taxonbars with invalid from parameters]]' errors = errors..mw.text.tag('strong', {class='error'}, 'Error: "'.. parentArgs['from'..f]..'" is not a valid Wikidata entity ID.<br />') end end if label and label ~= '' then title = mw.title.new(label) end if title == nil and parentArgs['title'..f] then title = mw.title.new(parentArgs['title'..f]) end if title == nil and f == 1 then title = currentTitle end if title then if isNilOrEmpty( parentArgs['wikidata'..f] ) and (title.namespace == 0) then if parentArgs['from'..f] then parentArgs['wikidata'..f] = parentArgs['from'..f] elseif item then parentArgs['wikidata'..f] = item.id end end if title.namespace == 0 or stringArgs then --only in mainspace or if manual overrides exist local sourceCount = 0 for _, params in pairs( conf.databases ) do params[1] = mw.ustring.lower(params[1]) local propId = params[3] --Wikidata fallback if requested if (item and item.claims) and (type(propId) == 'string' or (type(propId) == 'number' and propId > 0)) then local wikidataId = getIdFromWikidata( item, 'P'..propId ) local v = parentArgs[params[1]..f] if wikidataId then if isNilOrEmpty(v) then parentArgs[params[1]..f] = wikidataId else if v and v ~= 'no' and v ~= wikidataId then tCats[11] = '[[Category:Taxonbars with manual taxon IDs differing from Wikidata]]' elseif v and v == wikidataId then tCats[10] = '[[Category:Taxonbars with manual taxon IDs identical to Wikidata]]' end end end end if (item and item.claims) and ( (type(propId) == 'number' and propId < 0)) then local wikidataId = getIdFromWikidata( item, 'P'..-propId ) --mw.addWarning ("propId=" .. tostring(propId) .. "; wikidata=" .. tostring(wikidataId)) local v = parentArgs[params[1]..f] if v == 'yes' then if wikidataId then parentArgs[params[1]..f] = wikidataId else parentArgs[params[1]..f] = nil -- don't want to use 'yes' as id end end end local val = parentArgs[params[1]..f] if val and val ~= '' and mw.ustring.lower(val) ~= 'no' then if type(propId) == 'number' then if propId < 0 then propId = -propId end --allow link if propId > 0 then --link table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, params[1], val ).text, true ) ) if params[1] == 'fossilworks' then -- fossilworks being use to link to PBDB if elements[#elements] == elements[#elements-1] then -- check if identical PBDB entry already set --mw.addWarning("item has both Fossilworks and PBDB identifers:" .. val) elements[#elements] = nil end end else --propId == 0; no link table.insert( elements, createRow( params[1], params[2]..':', val, val, true ) ) end else table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, params[1], val ).text, true ) ) end if params[1] ~= 'wikidata' and params[1] ~= 'wikispecies' then sourceCount = sourceCount + 1 end end end --for _, params in pairs( conf.databases ) do if sourceCount >= 45 then tCats[28] = '[[Category:Taxonbars with 45+ taxon IDs]]' elseif sourceCount >= 40 then tCats[27] = '[[Category:Taxonbars with 40–44 taxon IDs]]' --endashes elseif sourceCount >= 35 then tCats[26] = '[[Category:Taxonbars with 35–39 taxon IDs]]' elseif sourceCount >= 30 then tCats[25] = '[[Category:Taxonbars with 30–34 taxon IDs]]' elseif sourceCount >= 25 then tCats[24] = '[[Category:Taxonbars with 25–29 taxon IDs]]' elseif sourceCount >= 20 then tCats[23] = '[[Category:Taxonbars with 20–24 taxon IDs]]' end --Generate navbox title if sourceCount > 0 then rowCount = rowCount + 1 if firstRow == 0 then firstRow = f end --set title from wikidata if it doesn't exist if isNilOrEmpty( parentArgs['title'..f] ) then parentArgs['noTitle'..f] = true parentArgs['title'..f] = title.text end --if it exists now, set row heading to title if not isNilOrEmpty( parentArgs['title'..f] ) then navboxParams['group'..f] = TaxonItalics.italicizeTaxonName(parentArgs['title'..f], false) else navboxParams['group'..f] = '' end navboxParams['list'..f] = table.concat( elements ) elseif currentEntityId and (currentEntityId == parentArgs['from'..f] or fromTitleCount == 1) then tCats[21] = '[[Category:Taxonbars without primary Wikidata taxon IDs]]' else tCats[22] = '[[Category:Taxonbars without secondary Wikidata taxon IDs]]' end --Tracking cats if not isNilOrEmpty( parentArgs['from'..f] ) then tCats[1] = '' --blank "missing from" if 'from' exists if parentArgs['from'..f] == currentEntityId then tCats[2] = '' --blank "desynced" if 'from' matches current page end end if tCats[1] ~= '' then tCats[2] = '' --cannot be "desynced" if no 'from' params end if mono and monoWPok == nil then if monoSpecies then if monoParent == label then monoWPok = true tCats[29] = '' else tCats[29] = '[[Category:Taxonbars of monotypic species missing genera on Wikipedia]]' end end if monoGenus then local labelGenus = mw.ustring.gsub(label, ' .+', '') local labelIsBinomial = mw.ustring.match(label, '^[A-Z][a-z]+ [a-z]+') if labelIsBinomial and monoParent == labelGenus then monoWPok = true tCats[30] = '' else tCats[30] = '[[Category:Taxonbars of monotypic genera missing species on Wikipedia]]' end end end end --if title.namespace == 0 or stringArgs end --if title end --for f = 1, fromTitleCount, 1 if rowCount > 0 then local Navbox = require('Module:Navbox') if rowCount > 1 then --remove duplicates and don't bother moving page title to top local rowIDs = {} for f = 1, fromTitleCount, 1 do if not isNilOrEmpty( parentArgs['title'..f] ) then if rowIDs[parentArgs['wikidata'..f]] then --remove duplicate navboxParams['group'..f] = nil navboxParams['list'..f] = nil else rowIDs[parentArgs['wikidata'..f]] = true end end end if parentArgs['title'..2] and parentArgs['title'..2] == currentTitle.text then if currentItem and parentArgs['from'..2] == currentItem['id'] then tCats[8] = '[[Category:Taxonbars with from2 matching article title & QID]]' else tCats[7] = '[[Category:Taxonbars with from2 matching article title]]' end end --adjust navbox for number of rows navboxParams['title'] = '[[Help:Taxon identifiers|Taxon identifiers]]' if rowCount >= 4 then navboxParams['navbar'] = 'plain' else navboxParams['state'] = 'off' navboxParams['navbar'] = 'off' end elseif parentArgs['noTitle'..firstRow] then --show title & taxon for 1-row taxonbars, per talk navboxParams['title'] = '[[Help:Taxon identifiers|Taxon identifiers]]' navboxParams['state'] = 'off' navboxParams['navbar'] = 'off' else navboxParams['group'..firstRow] = '[[Help:Taxon identifiers|Şınasnayışê taksoni]]<br />'..navboxParams['group'..firstRow] end --return navbox outString = Navbox._navbox(navboxParams) end --if rowCount > 0 --Add categories if string.sub(currentTitle.subpageText,1,9) == 'testcases' then parentArgs['demo'] = true end if not isNilOrEmpty( parentArgs['demo'] ) then outString = outString..mw.text.nowiki(table.concat(tCats))..'<br />' elseif currentTitle.namespace == 0 then outString = outString..table.concat(tCats) end return outString..errors end function p.taxonbar(frame) return p.authorityControlTaxon( frame:newChild{title = frame:getTitle()} ) end return p gu2whlsygefjqtgridejhgiwfl1bpuc 557905 557899 2026-10-03T17:56:18Z Maviulke 34834 557905 Scribunto text/plain require('strict') local conf = require( 'Module:Taxonbar/conf' ) --configuration module local TaxonItalics = require( 'Module:TaxonItalics' ) --use a function to conditionally italicize taxon names --[[==========================================================================]] --[[ Local functions ]] --[[==========================================================================]] local function isNilOrEmpty( thing ) if thing == nil or thing == '' then return true end return nil end local function getIdFromWikidata( item, property ) local id = nil if property == 'PWikispecies:$1' then local siteLinks = item.sitelinks if siteLinks then local speciesWiki = item.sitelinks.specieswiki if speciesWiki then id = speciesWiki.title end end return id elseif item.claims[property] == nil then return id end --[[ this code picks up deprecated values on wikidata; better to use getBestStatements for _, statement in pairs( item.claims[property] ) do if statement.mainsnak.datavalue then id = statement.mainsnak.datavalue.value break end end ]] local statements = item:getBestStatements(property)[1] if statements and statements.mainsnak and statements.mainsnak.datavalue and statements.mainsnak.datavalue.value then id = statements.mainsnak.datavalue.value end return id end local function getLink( property, db, val ) local link, returnVal = '', {} returnVal.isError = false if mw.ustring.find( val, '//' ) then link = val else if type(property) == 'number' and property > 0 then local entityObject = mw.wikibase.getEntity('P'..property) local dataType if entityObject then dataType = entityObject.datatype else returnVal.isError = true end if dataType == 'external-id' then local formatterURL = nil if property == 3746 or --Wildflowers of Israel property == 3795 or --Flora of Israel Online property == 5397 --Tierstimmenarchiv then formatterURL = entityObject:getBestStatements('P1630')[2] --use 2nd formatterURL for English version end if formatterURL == nil then formatterURL = entityObject:getBestStatements('P1630')[1] end --default to [1] if formatterURL then if formatterURL.mainsnak.datavalue and formatterURL.mainsnak.datavalue.value then --nil check for ABA link = formatterURL.mainsnak.datavalue.value end end if db == 'bow' then -- for birds of world which uses eBird identifier link = 'https://birdsoftheworld.org/bow/species/$1' elseif db == 'speciesfungorum' then -- SpeciesFungorum uses Index Fungorum identifier link = 'https://www.speciesfungorum.org/Names/NamesRecord.asp?RecordID=$1' elseif db == 'fossilworks' then link = 'https://paleobiodb.org/classic/basicTaxonInfo?taxon_no=$1' end elseif dataType == 'url' then local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end elseif dataType == 'string' then local formatterURL = entityObject:getBestStatements('P1630')[1] if formatterURL then link = formatterURL.mainsnak.datavalue.value else local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end end else returnVal.isError = true end elseif type(property) == 'string' then link = property end --local valurl = val local valurl = mw.uri.encode( val, 'PATH' ) valurl = string.gsub (valurl, '%%2F', '/') --escape '/' (e.g. issue with P5354); see wikidata T128078 and https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/664820/3/lib/includes/PropertyInfoSnakUrlExpander.php if type(property) == 'number' then --doublecheck language for Wildflowers of Israel ID if property == 3746 then link = mw.ustring.gsub(link, '/hebrew/', '/english/') end --format spaces in PfaF binomials, e.g. "Elaeagnus x ebbingei" if property == 4301 then valurl = mw.ustring.gsub(valurl, '%%20', '+') end end valurl = mw.ustring.gsub(valurl,'%%','%%%%') link = mw.ustring.gsub(link, '$1', valurl) end link = mw.ustring.gsub(link, '^[Hh][Tt][Tt][Pp]([Ss]?)&#58;//', 'http%1://') --fix wikidata URL val = mw.ustring.match(val, '([^=/]*)/?$') --get display name from end of URL if mw.ustring.find( link, '//' ) then returnVal.text = '['..link..' '..mw.text.encode(mw.uri.decode(val, 'PATH'),'%[%]')..']' elseif link == '' then returnVal.text = val else returnVal.text = '<span class="external">[['..link..'|'..val..']]</span>' end return returnVal end local function createRow( id, label, rawValue, link, withUid ) if link then local outStr = '*<span style="white-space:nowrap;">'..label..' <span' if withUid then outStr = outStr..' class="uid"' end return outStr..'>'..link..'</span></span>\n' else return '* '..mw.text.tag('span', {class='error'}, 'The identifier '..id..' '..rawValue..' is not valid.')..'\n' end end local function copyTable(inTable) if type(inTable) ~= 'table' then return inTable end local outTable = setmetatable({}, getmetatable(inTable)) for key, value in pairs (inTable) do outTable[copyTable(key)] = copyTable(value) end return outTable end local p = {} --[[==========================================================================]] --[[ Main ]] --[[==========================================================================]] function p.authorityControlTaxon( frame ) local resolveEntity = require( 'Module:ResolveEntityId' ) local whitelist = require( 'Module:Taxonbar/whitelist' ).whitelist --to create acceptableInstanceOf_Strict & acceptableInstanceOf_All local parentArgs = copyTable(frame:getParent().args) local currentTitle = mw.title.getCurrentTitle() local currentEntityId = mw.wikibase.getEntityIdForCurrentPage() local stringArgs = false local fromTitleCount, firstRow, rowCount = 1, 0, 0 local outString, errors = '', '' local iFroms = 0 --integer size of tFroms, b/c Lua local tFroms = {} --non-sequential table of unique froms local tCats = { '[[Category:Taxonbars without from parameter]]', '[[Category:Taxonbars desynced from Wikidata]]', '', -- [3] placeholder for [[Category:Taxonbar pages requiring a Wikidata item]] '', -- [4] placeholder for [[Category:Taxonbars on possible non-taxon pages]] '', -- [5] placeholder for [[Category:Taxonbars with invalid from parameters]] '', -- [6] placeholder for [[Category:Taxonbars with duplicate from parameters]] '', -- [7] placeholder for [[Category:Taxonbars with from2 matching article title]] '', -- [8] placeholder for [[Category:Taxonbars with from2 matching article title & QID]] '', -- [9] placeholder for [[Category:Taxonbars with manual taxon IDs]] '', --[10] placeholder for [[Category:Taxonbars with manual taxon IDs identical to Wikidata]] '', --[11] placeholder for [[Category:Taxonbars with manual taxon IDs differing from Wikidata]] '', --[12] placeholder for [[Category:Taxonbars with unknown parameters]] '', --[13] placeholder for [[Category:Taxonbars with unnamed parameters]] '', --[14] placeholder for [[Category:Taxonbars with multiple manual Wikidata items]] '', --[15] placeholder for [[Category:Taxonbars with automatically added basionyms]] '', --[16] placeholder for [[Category:Taxonbars with automatically added original combinations]] '', --[17] placeholder for [[Category:Taxonbars with automatically added monotypic species]] '', --[18] placeholder for [[Category:Taxonbars with automatically added monotypic genera]] '', --[19] placeholder for [[Category:Taxonbars of monotypic species missing genera on Wikidata]] '', --[20] placeholder for [[Category:Taxonbars of monotypic genera missing species on Wikidata]] '', --[21] placeholder for [[Category:Taxonbars without primary Wikidata taxon IDs]] '', --[22] placeholder for [[Category:Taxonbars without secondary Wikidata taxon IDs]] '', --[23] placeholder for [[Category:Taxonbars with 20–24 taxon IDs]] '', --[24] placeholder for [[Category:Taxonbars with 25–29 taxon IDs]] '', --[25] placeholder for [[Category:Taxonbars with 30–34 taxon IDs]] '', --[26] placeholder for [[Category:Taxonbars with 35–39 taxon IDs]] '', --[27] placeholder for [[Category:Taxonbars with 40–44 taxon IDs]] '', --[28] placeholder for [[Category:Taxonbars with 45+ taxon IDs]] '', --[29] placeholder for [[Category:Taxonbars of monotypic species missing genera on Wikipedia]] '', --[30] placeholder for [[Category:Taxonbars of monotypic genera missing species on Wikipedia]] } local acceptableInstanceOf_Strict = whitelist{ args = { 'strict' } } local acceptableInstanceOf_All = whitelist{ args = { 'all' } } --monotypic flags for WP-side check local mono = nil local monoWPok = nil local monoGenus = nil local monoSpecies = nil local monoParent = nil --parent taxon name --Assess the page's relationship with Wikidata local currentItem = nil if currentTitle.namespace == 10 then --i.e. Module:Taxonbar/sandbox, Template:Taxonbar/doc, etc. if resolveEntity._id(parentArgs['from']) then currentItem = mw.wikibase.getEntity(parentArgs['from']) end if currentItem == nil then if resolveEntity._id(parentArgs['from1']) then currentItem = mw.wikibase.getEntity(parentArgs['from1']) end end elseif resolveEntity._id(currentEntityId) then currentItem = mw.wikibase.getEntity(currentEntityId) else --currentEntityId == nil/unresolvable tCats[3] = '[[Category:Taxonbar pages requiring a Wikidata item]]' end if currentItem then tCats[4] = '[[Category:Taxonbars on possible non-taxon pages]]' --unset if acceptable found for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_All[instanceOf] then tCats[4] = '' break end end end --Cleanup args for k, v in pairs( frame:getParent().args ) do if type(k) == 'string' then --make args case insensitive local lowerk = mw.ustring.lower(k) if isNilOrEmpty( parentArgs[lowerk] ) then parentArgs[k] = nil parentArgs[lowerk] = v end --remap abc to abc1 if mw.ustring.find(lowerk,'%d$') == nil then --if no number at end of param if isNilOrEmpty( parentArgs[lowerk..'1'] ) then parentArgs[lowerk] = nil lowerk = lowerk..'1' parentArgs[lowerk] = v end end if v and v ~= '' then --remap 'for' to 'title' if mw.ustring.sub(lowerk,1,3) == 'for' then local forTitle = mw.ustring.gsub(lowerk,'^for','title',1) if isNilOrEmpty( parentArgs[forTitle] ) then parentArgs[lowerk] = nil lowerk = forTitle parentArgs[lowerk] = v end end --find highest from or title param if mw.ustring.sub(lowerk,1,4) == 'from' then local fromNumber = tonumber(mw.ustring.sub(lowerk,5,-1)) if fromNumber and fromNumber >= fromTitleCount then fromTitleCount = fromNumber end --look for duplicate froms while we're here if mw.ustring.find(v, '^Q%d') then if tFroms[v] then tCats[6] = '[[Category:Taxonbars with duplicate from parameters]]' tFroms[v] = tFroms[v] + 1 else tFroms[v] = 1 iFroms = iFroms + 1 end if iFroms == 2 then tCats[14] = '[[Category:Taxonbars with multiple manual Wikidata items]]' end end elseif mw.ustring.sub(lowerk,1,5) == 'title' then local titleNumber = tonumber(mw.ustring.sub(lowerk,4,-1)) if titleNumber and titleNumber >= fromTitleCount then fromTitleCount = titleNumber end elseif mw.ustring.lower(v) ~= 'no' and mw.ustring.lower(v) ~= 'yes' then stringArgs = true tCats[9] = '[[Category:Taxonbars with manual taxon IDs]]' end end end --if type(k) == 'string' end --for --Check for unknown parameters --create knowns list local acceptableArgs = { from = true, } --master list of l/c acceptable args for _, d in pairs( conf.databases ) do if d[1] ~= 'Wikidata' then --made obsolete by from acceptableArgs[mw.ustring.lower(d[1])] = true end end for _, a in pairs( conf.aliases ) do acceptableArgs[mw.ustring.lower(a[1])] = true end --create trimmed parents list local baseParentArgs = {} --condensed list of l/c parent args w/o trailing #s for k, _ in pairs( parentArgs ) do if type(k) == 'string' then local lowerk = mw.ustring.lower(k) local base = mw.ustring.gsub(lowerk, '[%d]*$', '') baseParentArgs[base] = true elseif type(k) == 'number' then tCats[13] = '[[Category:Taxonbars with unnamed parameters|'..k..']]' end end --compare lists and spit out unknowns local unknownParams = {} for k, _ in pairs( baseParentArgs ) do if acceptableArgs[k] == nil then tCats[12] = '[[Category:Taxonbars with unknown parameters|'..k..']]' unknownParams[#unknownParams + 1] = k end end --warn if unknown(s) present if #unknownParams > 0 then local plural = 's' local itthem = 'them' if #unknownParams == 1 then plural = '' itthem = 'it' end errors = errors..require('Module:If preview')._warning({ mw.ustring.format( 'Unknown parameter%s <code>%s</code>. Please correct %s or consider adding %s to Wikidata.', plural, table.concat(unknownParams, '</code>, <code>'), itthem, itthem ) }) end --Append basionym to arg list, if not already provided if currentItem then local currentBasState = currentItem:getBestStatements('P566')[1] --basionym if currentBasState then local datavalue = currentBasState.mainsnak.datavalue local basionymId = datavalue and datavalue.value.id if basionymId and resolveEntity._id(basionymId) and tFroms[basionymId] == nil then --check that basionym is a strict instance of taxon local basionymItem = mw.wikibase.getEntity(basionymId) if basionymItem then for _, instanceOfState in pairs ( basionymItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[basionymId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append basionym & track parentArgs['from'..fromTitleCount] = basionymId tCats[15] = '[[Category:Taxonbars with automatically added basionyms]]' break end end end end end end --Append original combination to arg list, if not already provided if currentItem then local currentOCState = currentItem:getBestStatements('P1403')[1] --original combination if currentOCState then local orcoId = currentOCState.mainsnak.datavalue.value.id if orcoId and resolveEntity._id(orcoId) and tFroms[orcoId] == nil then --check that orco is a strict instance of taxon local orcoItem = mw.wikibase.getEntity(orcoId) if orcoItem then for _, instanceOfState in pairs ( orcoItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[orcoId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append orco & track parentArgs['from'..fromTitleCount] = orcoId tCats[16] = '[[Category:Taxonbars with automatically added original combinations]]' break end end end end end end --Append monotypic genus/species to arg list of monotypic species/genus, if not already provided if currentItem then for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local taxonRank = nil local parentItem = nil local parentTaxon = nil local parentTaxonRank = nil local parentMonoGenus = nil --holy grail/tbd local childItem = nil local childTaxon = nil local childTaxonRank = nil local childMonoSpecies = nil --holy grail/tbd local instanceOf = instanceOfState.mainsnak.datavalue.value.id if instanceOf and (instanceOf == 'Q310890' or instanceOf == 'Q47487597') then --monotypic/fossil taxon --find & save monoParent for future WP-side check if monoParent == nil then mono = true local label = nil local taxonName = currentItem:getBestStatements('P225')[1] --taxon name if taxonName then local datavalue = taxonName.mainsnak.datavalue if datavalue then label = datavalue.value end end label = label or currentItem:getLabel() if label then monoParent = mw.ustring.gsub(label, ' .+', '') end end local missingP171orP427sortkey = '*' local taxonRankState = currentItem:getBestStatements('P105')[1] --taxon rank if taxonRankState then taxonRank = taxonRankState.mainsnak.datavalue.value.id end if taxonRank and taxonRank == 'Q7432' then --species --is monotypic species; add genus monoSpecies = true local parentTaxonState = currentItem:getBestStatements('P171')[1] --parent taxon if parentTaxonState then parentTaxon = parentTaxonState.mainsnak.datavalue.value.id else tCats[19] = '[[Category:Taxonbars of monotypic species missing genera on Wikidata|'..missingP171orP427sortkey..']]' break end --confirm parent taxon rank == genus & monotypic if parentTaxon and resolveEntity._id(parentTaxon) then parentItem = mw.wikibase.getEntity(parentTaxon) if parentItem then local parentTaxonRankState = parentItem:getBestStatements('P105')[1] --taxon rank if parentTaxonRankState then parentTaxonRank = parentTaxonRankState.mainsnak.datavalue.value.id end if parentTaxonRank and parentTaxonRank == 'Q34740' then --parent == genus for _, parentInstanceOfState in pairs ( parentItem:getBestStatements('P31') ) do --instance of local parentInstanceOf = parentInstanceOfState.mainsnak.datavalue.value.id if parentInstanceOf and (parentInstanceOf == 'Q310890' or parentInstanceOf == 'Q47487597') then --monotypic/fossil taxon parentMonoGenus = parentTaxon --confirmed break end end if parentMonoGenus and tFroms[parentMonoGenus] == nil then --housekeeping tFroms[parentMonoGenus] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append monotypic genus & track parentArgs['from'..fromTitleCount] = parentMonoGenus tCats[18] = '[[Category:Taxonbars with automatically added monotypic genera]]' break end end end end if parentMonoGenus == nil or tFroms[parentMonoGenus] == nil then tCats[19] = '[[Category:Taxonbars of monotypic species missing genera on Wikidata]]' break end elseif taxonRank and taxonRank == 'Q34740' then --genus --is monotypic genus; add species --(https://www.wikidata.org/wiki/Wikidata:Property_proposal/child_monotypic_taxon unnecessary thanks to P427!) monoGenus = true local childTaxonState = currentItem:getBestStatements('P427')[1] --taxonomic type if childTaxonState then childTaxon = childTaxonState.mainsnak.datavalue.value.id else tCats[20] = '[[Category:Taxonbars of monotypic genera missing species on Wikidata|'..missingP171orP427sortkey..']]' break end --confirm child taxon rank == species & monotypic if childTaxon and resolveEntity._id(childTaxon) then childItem = mw.wikibase.getEntity(childTaxon) if childItem then local childTaxonRankState = childItem:getBestStatements('P105')[1] --taxon rank if childTaxonRankState then childTaxonRank = childTaxonRankState.mainsnak.datavalue.value.id end if childTaxonRank and childTaxonRank == 'Q7432' then --child == species for _, childInstanceOfState in pairs ( childItem:getBestStatements('P31') ) do --instance of local childInstanceOf = childInstanceOfState.mainsnak.datavalue.value.id if childInstanceOf and (childInstanceOf == 'Q310890' or childInstanceOf == 'Q47487597') then --monotypic/fossil taxon childMonoSpecies = childTaxon --confirmed break end end if childMonoSpecies and tFroms[childMonoSpecies] == nil then --housekeeping tFroms[childMonoSpecies] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append monotypic species & track parentArgs['from'..fromTitleCount] = childMonoSpecies tCats[17] = '[[Category:Taxonbars with automatically added monotypic species]]' break end end end end if childMonoSpecies == nil or tFroms[childMonoSpecies] == nil then tCats[20] = '[[Category:Taxonbars of monotypic genera missing species on Wikidata]]' break end end --monotype searches end --monotype handling end --for end --if currentItem --Setup navbox local navboxParams = { name = 'Taxonbar', bodyclass = 'hlist', listclass = '', groupstyle = 'text-align: left;', } for f = 1, fromTitleCount, 1 do local elements, title = {}, nil --cleanup parameters if parentArgs['from'..f] == '' then parentArgs['from'..f] = nil end if parentArgs['title'..f] == '' then parentArgs['title'..f] = nil end --remap aliases for _, a in pairs( conf.aliases ) do local alias, name = mw.ustring.lower(a[1]), mw.ustring.lower(a[2]) if parentArgs[alias..f] and parentArgs[name..f] == nil then parentArgs[name..f] = parentArgs[alias..f] parentArgs[alias..f] = nil end end --Fetch Wikidata item local from = resolveEntity._id(parentArgs['from'..f]) local item = mw.wikibase.getEntity(from) local label = nil if type(item) == 'table' then local statements = item:getBestStatements('P225')[1] --taxon name if statements then local datavalue = statements.mainsnak.datavalue if datavalue then label = datavalue.value end end label = label or item:getLabel() else if parentArgs['from'..f] then tCats[1] = '' tCats[5] = '[[Category:Taxonbars with invalid from parameters]]' errors = errors..mw.text.tag('strong', {class='error'}, 'Error: "'.. parentArgs['from'..f]..'" is not a valid Wikidata entity ID.<br />') end end if label and label ~= '' then title = mw.title.new(label) end if title == nil and parentArgs['title'..f] then title = mw.title.new(parentArgs['title'..f]) end if title == nil and f == 1 then title = currentTitle end if title then if isNilOrEmpty( parentArgs['wikidata'..f] ) and (title.namespace == 0) then if parentArgs['from'..f] then parentArgs['wikidata'..f] = parentArgs['from'..f] elseif item then parentArgs['wikidata'..f] = item.id end end if title.namespace == 0 or stringArgs then --only in mainspace or if manual overrides exist local sourceCount = 0 for _, params in pairs( conf.databases ) do params[1] = mw.ustring.lower(params[1]) local propId = params[3] --Wikidata fallback if requested if (item and item.claims) and (type(propId) == 'string' or (type(propId) == 'number' and propId > 0)) then local wikidataId = getIdFromWikidata( item, 'P'..propId ) local v = parentArgs[params[1]..f] if wikidataId then if isNilOrEmpty(v) then parentArgs[params[1]..f] = wikidataId else if v and v ~= 'no' and v ~= wikidataId then tCats[11] = '[[Category:Taxonbars with manual taxon IDs differing from Wikidata]]' elseif v and v == wikidataId then tCats[10] = '[[Category:Taxonbars with manual taxon IDs identical to Wikidata]]' end end end end if (item and item.claims) and ( (type(propId) == 'number' and propId < 0)) then local wikidataId = getIdFromWikidata( item, 'P'..-propId ) --mw.addWarning ("propId=" .. tostring(propId) .. "; wikidata=" .. tostring(wikidataId)) local v = parentArgs[params[1]..f] if v == 'yes' then if wikidataId then parentArgs[params[1]..f] = wikidataId else parentArgs[params[1]..f] = nil -- don't want to use 'yes' as id end end end local val = parentArgs[params[1]..f] if val and val ~= '' and mw.ustring.lower(val) ~= 'no' then if type(propId) == 'number' then if propId < 0 then propId = -propId end --allow link if propId > 0 then --link table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, params[1], val ).text, true ) ) if params[1] == 'fossilworks' then -- fossilworks being use to link to PBDB if elements[#elements] == elements[#elements-1] then -- check if identical PBDB entry already set --mw.addWarning("item has both Fossilworks and PBDB identifers:" .. val) elements[#elements] = nil end end else --propId == 0; no link table.insert( elements, createRow( params[1], params[2]..':', val, val, true ) ) end else table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, params[1], val ).text, true ) ) end if params[1] ~= 'wikidata' and params[1] ~= 'wikispecies' then sourceCount = sourceCount + 1 end end end --for _, params in pairs( conf.databases ) do if sourceCount >= 45 then tCats[28] = '[[Category:Taxonbars with 45+ taxon IDs]]' elseif sourceCount >= 40 then tCats[27] = '[[Category:Taxonbars with 40–44 taxon IDs]]' --endashes elseif sourceCount >= 35 then tCats[26] = '[[Category:Taxonbars with 35–39 taxon IDs]]' elseif sourceCount >= 30 then tCats[25] = '[[Category:Taxonbars with 30–34 taxon IDs]]' elseif sourceCount >= 25 then tCats[24] = '[[Category:Taxonbars with 25–29 taxon IDs]]' elseif sourceCount >= 20 then tCats[23] = '[[Category:Taxonbars with 20–24 taxon IDs]]' end --Generate navbox title if sourceCount > 0 then rowCount = rowCount + 1 if firstRow == 0 then firstRow = f end --set title from wikidata if it doesn't exist if isNilOrEmpty( parentArgs['title'..f] ) then parentArgs['noTitle'..f] = true parentArgs['title'..f] = title.text end --if it exists now, set row heading to title if not isNilOrEmpty( parentArgs['title'..f] ) then navboxParams['group'..f] = TaxonItalics.italicizeTaxonName(parentArgs['title'..f], false) else navboxParams['group'..f] = '' end navboxParams['list'..f] = table.concat( elements ) elseif currentEntityId and (currentEntityId == parentArgs['from'..f] or fromTitleCount == 1) then tCats[21] = '[[Category:Taxonbars without primary Wikidata taxon IDs]]' else tCats[22] = '[[Category:Taxonbars without secondary Wikidata taxon IDs]]' end --Tracking cats if not isNilOrEmpty( parentArgs['from'..f] ) then tCats[1] = '' --blank "missing from" if 'from' exists if parentArgs['from'..f] == currentEntityId then tCats[2] = '' --blank "desynced" if 'from' matches current page end end if tCats[1] ~= '' then tCats[2] = '' --cannot be "desynced" if no 'from' params end if mono and monoWPok == nil then if monoSpecies then if monoParent == label then monoWPok = true tCats[29] = '' else tCats[29] = '[[Category:Taxonbars of monotypic species missing genera on Wikipedia]]' end end if monoGenus then local labelGenus = mw.ustring.gsub(label, ' .+', '') local labelIsBinomial = mw.ustring.match(label, '^[A-Z][a-z]+ [a-z]+') if labelIsBinomial and monoParent == labelGenus then monoWPok = true tCats[30] = '' else tCats[30] = '[[Category:Taxonbars of monotypic genera missing species on Wikipedia]]' end end end end --if title.namespace == 0 or stringArgs end --if title end --for f = 1, fromTitleCount, 1 if rowCount > 0 then local Navbox = require('Module:Navbox') if rowCount > 1 then --remove duplicates and don't bother moving page title to top local rowIDs = {} for f = 1, fromTitleCount, 1 do if not isNilOrEmpty( parentArgs['title'..f] ) then if rowIDs[parentArgs['wikidata'..f]] then --remove duplicate navboxParams['group'..f] = nil navboxParams['list'..f] = nil else rowIDs[parentArgs['wikidata'..f]] = true end end end if parentArgs['title'..2] and parentArgs['title'..2] == currentTitle.text then if currentItem and parentArgs['from'..2] == currentItem['id'] then tCats[8] = '[[Category:Taxonbars with from2 matching article title & QID]]' else tCats[7] = '[[Category:Taxonbars with from2 matching article title]]' end end --adjust navbox for number of rows navboxParams['title'] = '[[Help:Taxon identifiers|Taksonamiya şınasnayoği]]' if rowCount >= 4 then navboxParams['navbar'] = 'plain' else navboxParams['state'] = 'off' navboxParams['navbar'] = 'off' end elseif parentArgs['noTitle'..firstRow] then --show title & taxon for 1-row taxonbars, per talk navboxParams['title'] = '[[Help:Taxon identifiers|Taxon identifiers]]' navboxParams['state'] = 'off' navboxParams['navbar'] = 'off' else navboxParams['group'..firstRow] = '[[Help:Taxon identifiers|Şınasnayışê taksoni]]<br />'..navboxParams['group'..firstRow] end --return navbox outString = Navbox._navbox(navboxParams) end --if rowCount > 0 --Add categories if string.sub(currentTitle.subpageText,1,9) == 'testcases' then parentArgs['demo'] = true end if not isNilOrEmpty( parentArgs['demo'] ) then outString = outString..mw.text.nowiki(table.concat(tCats))..'<br />' elseif currentTitle.namespace == 0 then outString = outString..table.concat(tCats) end return outString..errors end function p.taxonbar(frame) return p.authorityControlTaxon( frame:newChild{title = frame:getTitle()} ) end return p szpdoubpykslrktnjuj3vvu7pvndn7g 557907 557905 2026-10-03T17:59:06Z Maviulke 34834 557907 Scribunto text/plain require('strict') local conf = require( 'Module:Taxonbar/conf' ) --configuration module local TaxonItalics = require( 'Module:TaxonItalics' ) --use a function to conditionally italicize taxon names --[[==========================================================================]] --[[ Local functions ]] --[[==========================================================================]] local function isNilOrEmpty( thing ) if thing == nil or thing == '' then return true end return nil end local function getIdFromWikidata( item, property ) local id = nil if property == 'PWikispecies:$1' then local siteLinks = item.sitelinks if siteLinks then local speciesWiki = item.sitelinks.specieswiki if speciesWiki then id = speciesWiki.title end end return id elseif item.claims[property] == nil then return id end --[[ this code picks up deprecated values on wikidata; better to use getBestStatements for _, statement in pairs( item.claims[property] ) do if statement.mainsnak.datavalue then id = statement.mainsnak.datavalue.value break end end ]] local statements = item:getBestStatements(property)[1] if statements and statements.mainsnak and statements.mainsnak.datavalue and statements.mainsnak.datavalue.value then id = statements.mainsnak.datavalue.value end return id end local function getLink( property, db, val ) local link, returnVal = '', {} returnVal.isError = false if mw.ustring.find( val, '//' ) then link = val else if type(property) == 'number' and property > 0 then local entityObject = mw.wikibase.getEntity('P'..property) local dataType if entityObject then dataType = entityObject.datatype else returnVal.isError = true end if dataType == 'external-id' then local formatterURL = nil if property == 3746 or --Wildflowers of Israel property == 3795 or --Flora of Israel Online property == 5397 --Tierstimmenarchiv then formatterURL = entityObject:getBestStatements('P1630')[2] --use 2nd formatterURL for English version end if formatterURL == nil then formatterURL = entityObject:getBestStatements('P1630')[1] end --default to [1] if formatterURL then if formatterURL.mainsnak.datavalue and formatterURL.mainsnak.datavalue.value then --nil check for ABA link = formatterURL.mainsnak.datavalue.value end end if db == 'bow' then -- for birds of world which uses eBird identifier link = 'https://birdsoftheworld.org/bow/species/$1' elseif db == 'speciesfungorum' then -- SpeciesFungorum uses Index Fungorum identifier link = 'https://www.speciesfungorum.org/Names/NamesRecord.asp?RecordID=$1' elseif db == 'fossilworks' then link = 'https://paleobiodb.org/classic/basicTaxonInfo?taxon_no=$1' end elseif dataType == 'url' then local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end elseif dataType == 'string' then local formatterURL = entityObject:getBestStatements('P1630')[1] if formatterURL then link = formatterURL.mainsnak.datavalue.value else local subjectItem = entityObject:getBestStatements('P1629')[1] if subjectItem then local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements('P856')[1] if officialWebsite then link = officialWebsite.mainsnak.datavalue.value end end end else returnVal.isError = true end elseif type(property) == 'string' then link = property end --local valurl = val local valurl = mw.uri.encode( val, 'PATH' ) valurl = string.gsub (valurl, '%%2F', '/') --escape '/' (e.g. issue with P5354); see wikidata T128078 and https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/664820/3/lib/includes/PropertyInfoSnakUrlExpander.php if type(property) == 'number' then --doublecheck language for Wildflowers of Israel ID if property == 3746 then link = mw.ustring.gsub(link, '/hebrew/', '/english/') end --format spaces in PfaF binomials, e.g. "Elaeagnus x ebbingei" if property == 4301 then valurl = mw.ustring.gsub(valurl, '%%20', '+') end end valurl = mw.ustring.gsub(valurl,'%%','%%%%') link = mw.ustring.gsub(link, '$1', valurl) end link = mw.ustring.gsub(link, '^[Hh][Tt][Tt][Pp]([Ss]?)&#58;//', 'http%1://') --fix wikidata URL val = mw.ustring.match(val, '([^=/]*)/?$') --get display name from end of URL if mw.ustring.find( link, '//' ) then returnVal.text = '['..link..' '..mw.text.encode(mw.uri.decode(val, 'PATH'),'%[%]')..']' elseif link == '' then returnVal.text = val else returnVal.text = '<span class="external">[['..link..'|'..val..']]</span>' end return returnVal end local function createRow( id, label, rawValue, link, withUid ) if link then local outStr = '*<span style="white-space:nowrap;">'..label..' <span' if withUid then outStr = outStr..' class="uid"' end return outStr..'>'..link..'</span></span>\n' else return '* '..mw.text.tag('span', {class='error'}, 'The identifier '..id..' '..rawValue..' is not valid.')..'\n' end end local function copyTable(inTable) if type(inTable) ~= 'table' then return inTable end local outTable = setmetatable({}, getmetatable(inTable)) for key, value in pairs (inTable) do outTable[copyTable(key)] = copyTable(value) end return outTable end local p = {} --[[==========================================================================]] --[[ Main ]] --[[==========================================================================]] function p.authorityControlTaxon( frame ) local resolveEntity = require( 'Module:ResolveEntityId' ) local whitelist = require( 'Module:Taxonbar/whitelist' ).whitelist --to create acceptableInstanceOf_Strict & acceptableInstanceOf_All local parentArgs = copyTable(frame:getParent().args) local currentTitle = mw.title.getCurrentTitle() local currentEntityId = mw.wikibase.getEntityIdForCurrentPage() local stringArgs = false local fromTitleCount, firstRow, rowCount = 1, 0, 0 local outString, errors = '', '' local iFroms = 0 --integer size of tFroms, b/c Lua local tFroms = {} --non-sequential table of unique froms local tCats = { '[[Category:Taxonbars without from parameter]]', '[[Category:Taxonbars desynced from Wikidata]]', '', -- [3] placeholder for [[Category:Taxonbar pages requiring a Wikidata item]] '', -- [4] placeholder for [[Category:Taxonbars on possible non-taxon pages]] '', -- [5] placeholder for [[Category:Taxonbars with invalid from parameters]] '', -- [6] placeholder for [[Category:Taxonbars with duplicate from parameters]] '', -- [7] placeholder for [[Category:Taxonbars with from2 matching article title]] '', -- [8] placeholder for [[Category:Taxonbars with from2 matching article title & QID]] '', -- [9] placeholder for [[Category:Taxonbars with manual taxon IDs]] '', --[10] placeholder for [[Category:Taxonbars with manual taxon IDs identical to Wikidata]] '', --[11] placeholder for [[Category:Taxonbars with manual taxon IDs differing from Wikidata]] '', --[12] placeholder for [[Category:Taxonbars with unknown parameters]] '', --[13] placeholder for [[Category:Taxonbars with unnamed parameters]] '', --[14] placeholder for [[Category:Taxonbars with multiple manual Wikidata items]] '', --[15] placeholder for [[Category:Taxonbars with automatically added basionyms]] '', --[16] placeholder for [[Category:Taxonbars with automatically added original combinations]] '', --[17] placeholder for [[Category:Taxonbars with automatically added monotypic species]] '', --[18] placeholder for [[Category:Taxonbars with automatically added monotypic genera]] '', --[19] placeholder for [[Category:Taxonbars of monotypic species missing genera on Wikidata]] '', --[20] placeholder for [[Category:Taxonbars of monotypic genera missing species on Wikidata]] '', --[21] placeholder for [[Category:Taxonbars without primary Wikidata taxon IDs]] '', --[22] placeholder for [[Category:Taxonbars without secondary Wikidata taxon IDs]] '', --[23] placeholder for [[Category:Taxonbars with 20–24 taxon IDs]] '', --[24] placeholder for [[Category:Taxonbars with 25–29 taxon IDs]] '', --[25] placeholder for [[Category:Taxonbars with 30–34 taxon IDs]] '', --[26] placeholder for [[Category:Taxonbars with 35–39 taxon IDs]] '', --[27] placeholder for [[Category:Taxonbars with 40–44 taxon IDs]] '', --[28] placeholder for [[Category:Taxonbars with 45+ taxon IDs]] '', --[29] placeholder for [[Category:Taxonbars of monotypic species missing genera on Wikipedia]] '', --[30] placeholder for [[Category:Taxonbars of monotypic genera missing species on Wikipedia]] } local acceptableInstanceOf_Strict = whitelist{ args = { 'strict' } } local acceptableInstanceOf_All = whitelist{ args = { 'all' } } --monotypic flags for WP-side check local mono = nil local monoWPok = nil local monoGenus = nil local monoSpecies = nil local monoParent = nil --parent taxon name --Assess the page's relationship with Wikidata local currentItem = nil if currentTitle.namespace == 10 then --i.e. Module:Taxonbar/sandbox, Template:Taxonbar/doc, etc. if resolveEntity._id(parentArgs['from']) then currentItem = mw.wikibase.getEntity(parentArgs['from']) end if currentItem == nil then if resolveEntity._id(parentArgs['from1']) then currentItem = mw.wikibase.getEntity(parentArgs['from1']) end end elseif resolveEntity._id(currentEntityId) then currentItem = mw.wikibase.getEntity(currentEntityId) else --currentEntityId == nil/unresolvable tCats[3] = '[[Category:Taxonbar pages requiring a Wikidata item]]' end if currentItem then tCats[4] = '[[Category:Taxonbars on possible non-taxon pages]]' --unset if acceptable found for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_All[instanceOf] then tCats[4] = '' break end end end --Cleanup args for k, v in pairs( frame:getParent().args ) do if type(k) == 'string' then --make args case insensitive local lowerk = mw.ustring.lower(k) if isNilOrEmpty( parentArgs[lowerk] ) then parentArgs[k] = nil parentArgs[lowerk] = v end --remap abc to abc1 if mw.ustring.find(lowerk,'%d$') == nil then --if no number at end of param if isNilOrEmpty( parentArgs[lowerk..'1'] ) then parentArgs[lowerk] = nil lowerk = lowerk..'1' parentArgs[lowerk] = v end end if v and v ~= '' then --remap 'for' to 'title' if mw.ustring.sub(lowerk,1,3) == 'for' then local forTitle = mw.ustring.gsub(lowerk,'^for','title',1) if isNilOrEmpty( parentArgs[forTitle] ) then parentArgs[lowerk] = nil lowerk = forTitle parentArgs[lowerk] = v end end --find highest from or title param if mw.ustring.sub(lowerk,1,4) == 'from' then local fromNumber = tonumber(mw.ustring.sub(lowerk,5,-1)) if fromNumber and fromNumber >= fromTitleCount then fromTitleCount = fromNumber end --look for duplicate froms while we're here if mw.ustring.find(v, '^Q%d') then if tFroms[v] then tCats[6] = '[[Category:Taxonbars with duplicate from parameters]]' tFroms[v] = tFroms[v] + 1 else tFroms[v] = 1 iFroms = iFroms + 1 end if iFroms == 2 then tCats[14] = '[[Category:Taxonbars with multiple manual Wikidata items]]' end end elseif mw.ustring.sub(lowerk,1,5) == 'title' then local titleNumber = tonumber(mw.ustring.sub(lowerk,4,-1)) if titleNumber and titleNumber >= fromTitleCount then fromTitleCount = titleNumber end elseif mw.ustring.lower(v) ~= 'no' and mw.ustring.lower(v) ~= 'yes' then stringArgs = true tCats[9] = '[[Category:Taxonbars with manual taxon IDs]]' end end end --if type(k) == 'string' end --for --Check for unknown parameters --create knowns list local acceptableArgs = { from = true, } --master list of l/c acceptable args for _, d in pairs( conf.databases ) do if d[1] ~= 'Wikidata' then --made obsolete by from acceptableArgs[mw.ustring.lower(d[1])] = true end end for _, a in pairs( conf.aliases ) do acceptableArgs[mw.ustring.lower(a[1])] = true end --create trimmed parents list local baseParentArgs = {} --condensed list of l/c parent args w/o trailing #s for k, _ in pairs( parentArgs ) do if type(k) == 'string' then local lowerk = mw.ustring.lower(k) local base = mw.ustring.gsub(lowerk, '[%d]*$', '') baseParentArgs[base] = true elseif type(k) == 'number' then tCats[13] = '[[Category:Taxonbars with unnamed parameters|'..k..']]' end end --compare lists and spit out unknowns local unknownParams = {} for k, _ in pairs( baseParentArgs ) do if acceptableArgs[k] == nil then tCats[12] = '[[Category:Taxonbars with unknown parameters|'..k..']]' unknownParams[#unknownParams + 1] = k end end --warn if unknown(s) present if #unknownParams > 0 then local plural = 's' local itthem = 'them' if #unknownParams == 1 then plural = '' itthem = 'it' end errors = errors..require('Module:If preview')._warning({ mw.ustring.format( 'Unknown parameter%s <code>%s</code>. Please correct %s or consider adding %s to Wikidata.', plural, table.concat(unknownParams, '</code>, <code>'), itthem, itthem ) }) end --Append basionym to arg list, if not already provided if currentItem then local currentBasState = currentItem:getBestStatements('P566')[1] --basionym if currentBasState then local datavalue = currentBasState.mainsnak.datavalue local basionymId = datavalue and datavalue.value.id if basionymId and resolveEntity._id(basionymId) and tFroms[basionymId] == nil then --check that basionym is a strict instance of taxon local basionymItem = mw.wikibase.getEntity(basionymId) if basionymItem then for _, instanceOfState in pairs ( basionymItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[basionymId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append basionym & track parentArgs['from'..fromTitleCount] = basionymId tCats[15] = '[[Category:Taxonbars with automatically added basionyms]]' break end end end end end end --Append original combination to arg list, if not already provided if currentItem then local currentOCState = currentItem:getBestStatements('P1403')[1] --original combination if currentOCState then local orcoId = currentOCState.mainsnak.datavalue.value.id if orcoId and resolveEntity._id(orcoId) and tFroms[orcoId] == nil then --check that orco is a strict instance of taxon local orcoItem = mw.wikibase.getEntity(orcoId) if orcoItem then for _, instanceOfState in pairs ( orcoItem:getBestStatements('P31') ) do --instance of local instanceOf = instanceOfState.mainsnak.datavalue.value.id if acceptableInstanceOf_Strict[instanceOf] then --housekeeping tFroms[orcoId] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append orco & track parentArgs['from'..fromTitleCount] = orcoId tCats[16] = '[[Category:Taxonbars with automatically added original combinations]]' break end end end end end end --Append monotypic genus/species to arg list of monotypic species/genus, if not already provided if currentItem then for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of local taxonRank = nil local parentItem = nil local parentTaxon = nil local parentTaxonRank = nil local parentMonoGenus = nil --holy grail/tbd local childItem = nil local childTaxon = nil local childTaxonRank = nil local childMonoSpecies = nil --holy grail/tbd local instanceOf = instanceOfState.mainsnak.datavalue.value.id if instanceOf and (instanceOf == 'Q310890' or instanceOf == 'Q47487597') then --monotypic/fossil taxon --find & save monoParent for future WP-side check if monoParent == nil then mono = true local label = nil local taxonName = currentItem:getBestStatements('P225')[1] --taxon name if taxonName then local datavalue = taxonName.mainsnak.datavalue if datavalue then label = datavalue.value end end label = label or currentItem:getLabel() if label then monoParent = mw.ustring.gsub(label, ' .+', '') end end local missingP171orP427sortkey = '*' local taxonRankState = currentItem:getBestStatements('P105')[1] --taxon rank if taxonRankState then taxonRank = taxonRankState.mainsnak.datavalue.value.id end if taxonRank and taxonRank == 'Q7432' then --species --is monotypic species; add genus monoSpecies = true local parentTaxonState = currentItem:getBestStatements('P171')[1] --parent taxon if parentTaxonState then parentTaxon = parentTaxonState.mainsnak.datavalue.value.id else tCats[19] = '[[Category:Taxonbars of monotypic species missing genera on Wikidata|'..missingP171orP427sortkey..']]' break end --confirm parent taxon rank == genus & monotypic if parentTaxon and resolveEntity._id(parentTaxon) then parentItem = mw.wikibase.getEntity(parentTaxon) if parentItem then local parentTaxonRankState = parentItem:getBestStatements('P105')[1] --taxon rank if parentTaxonRankState then parentTaxonRank = parentTaxonRankState.mainsnak.datavalue.value.id end if parentTaxonRank and parentTaxonRank == 'Q34740' then --parent == genus for _, parentInstanceOfState in pairs ( parentItem:getBestStatements('P31') ) do --instance of local parentInstanceOf = parentInstanceOfState.mainsnak.datavalue.value.id if parentInstanceOf and (parentInstanceOf == 'Q310890' or parentInstanceOf == 'Q47487597') then --monotypic/fossil taxon parentMonoGenus = parentTaxon --confirmed break end end if parentMonoGenus and tFroms[parentMonoGenus] == nil then --housekeeping tFroms[parentMonoGenus] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append monotypic genus & track parentArgs['from'..fromTitleCount] = parentMonoGenus tCats[18] = '[[Category:Taxonbars with automatically added monotypic genera]]' break end end end end if parentMonoGenus == nil or tFroms[parentMonoGenus] == nil then tCats[19] = '[[Category:Taxonbars of monotypic species missing genera on Wikidata]]' break end elseif taxonRank and taxonRank == 'Q34740' then --genus --is monotypic genus; add species --(https://www.wikidata.org/wiki/Wikidata:Property_proposal/child_monotypic_taxon unnecessary thanks to P427!) monoGenus = true local childTaxonState = currentItem:getBestStatements('P427')[1] --taxonomic type if childTaxonState then childTaxon = childTaxonState.mainsnak.datavalue.value.id else tCats[20] = '[[Category:Taxonbars of monotypic genera missing species on Wikidata|'..missingP171orP427sortkey..']]' break end --confirm child taxon rank == species & monotypic if childTaxon and resolveEntity._id(childTaxon) then childItem = mw.wikibase.getEntity(childTaxon) if childItem then local childTaxonRankState = childItem:getBestStatements('P105')[1] --taxon rank if childTaxonRankState then childTaxonRank = childTaxonRankState.mainsnak.datavalue.value.id end if childTaxonRank and childTaxonRank == 'Q7432' then --child == species for _, childInstanceOfState in pairs ( childItem:getBestStatements('P31') ) do --instance of local childInstanceOf = childInstanceOfState.mainsnak.datavalue.value.id if childInstanceOf and (childInstanceOf == 'Q310890' or childInstanceOf == 'Q47487597') then --monotypic/fossil taxon childMonoSpecies = childTaxon --confirmed break end end if childMonoSpecies and tFroms[childMonoSpecies] == nil then --housekeeping tFroms[childMonoSpecies] = 1 iFroms = iFroms + 1 fromTitleCount = fromTitleCount + 1 --append monotypic species & track parentArgs['from'..fromTitleCount] = childMonoSpecies tCats[17] = '[[Category:Taxonbars with automatically added monotypic species]]' break end end end end if childMonoSpecies == nil or tFroms[childMonoSpecies] == nil then tCats[20] = '[[Category:Taxonbars of monotypic genera missing species on Wikidata]]' break end end --monotype searches end --monotype handling end --for end --if currentItem --Setup navbox local navboxParams = { name = 'Taxonbar', bodyclass = 'hlist', listclass = '', groupstyle = 'text-align: left;', } for f = 1, fromTitleCount, 1 do local elements, title = {}, nil --cleanup parameters if parentArgs['from'..f] == '' then parentArgs['from'..f] = nil end if parentArgs['title'..f] == '' then parentArgs['title'..f] = nil end --remap aliases for _, a in pairs( conf.aliases ) do local alias, name = mw.ustring.lower(a[1]), mw.ustring.lower(a[2]) if parentArgs[alias..f] and parentArgs[name..f] == nil then parentArgs[name..f] = parentArgs[alias..f] parentArgs[alias..f] = nil end end --Fetch Wikidata item local from = resolveEntity._id(parentArgs['from'..f]) local item = mw.wikibase.getEntity(from) local label = nil if type(item) == 'table' then local statements = item:getBestStatements('P225')[1] --taxon name if statements then local datavalue = statements.mainsnak.datavalue if datavalue then label = datavalue.value end end label = label or item:getLabel() else if parentArgs['from'..f] then tCats[1] = '' tCats[5] = '[[Category:Taxonbars with invalid from parameters]]' errors = errors..mw.text.tag('strong', {class='error'}, 'Error: "'.. parentArgs['from'..f]..'" is not a valid Wikidata entity ID.<br />') end end if label and label ~= '' then title = mw.title.new(label) end if title == nil and parentArgs['title'..f] then title = mw.title.new(parentArgs['title'..f]) end if title == nil and f == 1 then title = currentTitle end if title then if isNilOrEmpty( parentArgs['wikidata'..f] ) and (title.namespace == 0) then if parentArgs['from'..f] then parentArgs['wikidata'..f] = parentArgs['from'..f] elseif item then parentArgs['wikidata'..f] = item.id end end if title.namespace == 0 or stringArgs then --only in mainspace or if manual overrides exist local sourceCount = 0 for _, params in pairs( conf.databases ) do params[1] = mw.ustring.lower(params[1]) local propId = params[3] --Wikidata fallback if requested if (item and item.claims) and (type(propId) == 'string' or (type(propId) == 'number' and propId > 0)) then local wikidataId = getIdFromWikidata( item, 'P'..propId ) local v = parentArgs[params[1]..f] if wikidataId then if isNilOrEmpty(v) then parentArgs[params[1]..f] = wikidataId else if v and v ~= 'no' and v ~= wikidataId then tCats[11] = '[[Category:Taxonbars with manual taxon IDs differing from Wikidata]]' elseif v and v == wikidataId then tCats[10] = '[[Category:Taxonbars with manual taxon IDs identical to Wikidata]]' end end end end if (item and item.claims) and ( (type(propId) == 'number' and propId < 0)) then local wikidataId = getIdFromWikidata( item, 'P'..-propId ) --mw.addWarning ("propId=" .. tostring(propId) .. "; wikidata=" .. tostring(wikidataId)) local v = parentArgs[params[1]..f] if v == 'yes' then if wikidataId then parentArgs[params[1]..f] = wikidataId else parentArgs[params[1]..f] = nil -- don't want to use 'yes' as id end end end local val = parentArgs[params[1]..f] if val and val ~= '' and mw.ustring.lower(val) ~= 'no' then if type(propId) == 'number' then if propId < 0 then propId = -propId end --allow link if propId > 0 then --link table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, params[1], val ).text, true ) ) if params[1] == 'fossilworks' then -- fossilworks being use to link to PBDB if elements[#elements] == elements[#elements-1] then -- check if identical PBDB entry already set --mw.addWarning("item has both Fossilworks and PBDB identifers:" .. val) elements[#elements] = nil end end else --propId == 0; no link table.insert( elements, createRow( params[1], params[2]..':', val, val, true ) ) end else table.insert( elements, createRow( params[1], params[2]..':', val, getLink( propId, params[1], val ).text, true ) ) end if params[1] ~= 'wikidata' and params[1] ~= 'wikispecies' then sourceCount = sourceCount + 1 end end end --for _, params in pairs( conf.databases ) do if sourceCount >= 45 then tCats[28] = '[[Category:Taxonbars with 45+ taxon IDs]]' elseif sourceCount >= 40 then tCats[27] = '[[Category:Taxonbars with 40–44 taxon IDs]]' --endashes elseif sourceCount >= 35 then tCats[26] = '[[Category:Taxonbars with 35–39 taxon IDs]]' elseif sourceCount >= 30 then tCats[25] = '[[Category:Taxonbars with 30–34 taxon IDs]]' elseif sourceCount >= 25 then tCats[24] = '[[Category:Taxonbars with 25–29 taxon IDs]]' elseif sourceCount >= 20 then tCats[23] = '[[Category:Taxonbars with 20–24 taxon IDs]]' end --Generate navbox title if sourceCount > 0 then rowCount = rowCount + 1 if firstRow == 0 then firstRow = f end --set title from wikidata if it doesn't exist if isNilOrEmpty( parentArgs['title'..f] ) then parentArgs['noTitle'..f] = true parentArgs['title'..f] = title.text end --if it exists now, set row heading to title if not isNilOrEmpty( parentArgs['title'..f] ) then navboxParams['group'..f] = TaxonItalics.italicizeTaxonName(parentArgs['title'..f], false) else navboxParams['group'..f] = '' end navboxParams['list'..f] = table.concat( elements ) elseif currentEntityId and (currentEntityId == parentArgs['from'..f] or fromTitleCount == 1) then tCats[21] = '[[Category:Taxonbars without primary Wikidata taxon IDs]]' else tCats[22] = '[[Category:Taxonbars without secondary Wikidata taxon IDs]]' end --Tracking cats if not isNilOrEmpty( parentArgs['from'..f] ) then tCats[1] = '' --blank "missing from" if 'from' exists if parentArgs['from'..f] == currentEntityId then tCats[2] = '' --blank "desynced" if 'from' matches current page end end if tCats[1] ~= '' then tCats[2] = '' --cannot be "desynced" if no 'from' params end if mono and monoWPok == nil then if monoSpecies then if monoParent == label then monoWPok = true tCats[29] = '' else tCats[29] = '[[Category:Taxonbars of monotypic species missing genera on Wikipedia]]' end end if monoGenus then local labelGenus = mw.ustring.gsub(label, ' .+', '') local labelIsBinomial = mw.ustring.match(label, '^[A-Z][a-z]+ [a-z]+') if labelIsBinomial and monoParent == labelGenus then monoWPok = true tCats[30] = '' else tCats[30] = '[[Category:Taxonbars of monotypic genera missing species on Wikipedia]]' end end end end --if title.namespace == 0 or stringArgs end --if title end --for f = 1, fromTitleCount, 1 if rowCount > 0 then local Navbox = require('Module:Navbox') if rowCount > 1 then --remove duplicates and don't bother moving page title to top local rowIDs = {} for f = 1, fromTitleCount, 1 do if not isNilOrEmpty( parentArgs['title'..f] ) then if rowIDs[parentArgs['wikidata'..f]] then --remove duplicate navboxParams['group'..f] = nil navboxParams['list'..f] = nil else rowIDs[parentArgs['wikidata'..f]] = true end end end if parentArgs['title'..2] and parentArgs['title'..2] == currentTitle.text then if currentItem and parentArgs['from'..2] == currentItem['id'] then tCats[8] = '[[Category:Taxonbars with from2 matching article title & QID]]' else tCats[7] = '[[Category:Taxonbars with from2 matching article title]]' end end --adjust navbox for number of rows navboxParams['title'] = '[[Help:Taxon identifiers|Taksonamiya şınasnayoği]]' if rowCount >= 4 then navboxParams['navbar'] = 'plain' else navboxParams['state'] = 'off' navboxParams['navbar'] = 'off' end elseif parentArgs['noTitle'..firstRow] then --show title & taxon for 1-row taxonbars, per talk navboxParams['title'] = 'Taksonomiya şınasnayoği' navboxParams['state'] = 'off' navboxParams['navbar'] = 'off' else navboxParams['group'..firstRow] = '[[Help:Taxon identifiers|Şınasnayışê taksoni]]<br />'..navboxParams['group'..firstRow] end --return navbox outString = Navbox._navbox(navboxParams) end --if rowCount > 0 --Add categories if string.sub(currentTitle.subpageText,1,9) == 'testcases' then parentArgs['demo'] = true end if not isNilOrEmpty( parentArgs['demo'] ) then outString = outString..mw.text.nowiki(table.concat(tCats))..'<br />' elseif currentTitle.namespace == 0 then outString = outString..table.concat(tCats) end return outString..errors end function p.taxonbar(frame) return p.authorityControlTaxon( frame:newChild{title = frame:getTitle()} ) end return p lfeq89pubuc20ydh2ab20a9h9vxlxvf Everyday Is Christmas (album) 0 68582 557914 516466 2026-10-03T18:21:37Z Maviulke 34834 557914 wikitext text/x-wiki {{Databox}} '''''Everyday Is Christmas''''' yew albumê deyirvaca [[Sia]]ya. {{Kontrolê_otoriteyi}} {{Sia}} [[Kategoriye:Albumê Siaye]] [[Kategoriye:Albumê ke 2017 de veciyayê]] 3tptnkraa4h938jr8j80hzjzqamnf25 Cesset 0 78929 557915 539737 2026-10-03T18:23:05Z Maviulke 34834 557915 wikitext text/x-wiki {{Databox}} '''Cesset''', dewleta [[Fransa]] de, mıntıqaya [[Auvergne-Rhône-Alpes]] miyan de yew [[Komune|komuna]] wılayetê [[Allier]]iya. == Bıvênên == * [[Komunê Alyeyi]] {{Commonscat}} {{Kontrolê_otoriteyi}} {{Komunê Alyeyi}} [[Kategoriye:Komunê Alyeyi]] qjprsebvqd9e5zfsk1u3btuu7xllajn Ternana Calcio 0 79171 557925 443839 2026-10-04T02:10:48Z InternetArchiveBot 21954 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.6 557925 wikitext text/x-wiki {{Klubi }} '''Ternana Calcio''' yew klubê [[futbol]]iyê dewleta [[İtalya]]yo. ==Linkê Teberi== * [https://web.archive.org/web/20200808225349/https://ternanacalcio.com/ Siteyo Resmi] {{Serie A}} [[Kategoriye:Klubê futboliê İtalya]] d03pwjtg9aj397prcgdvwd6avyxa08a Modul:Databox 828 83930 557896 557709 2026-10-03T17:38:55Z Maviulke 34834 557896 Scribunto text/plain -- It is supposed to work for any language. -- Properties excluded for all Databoxes in Zazaki Wikipedia local site_excluded_properties = { 'P360', --is a list of 'P4224', --category contains 'P935', -- Commons gallery 'P1472', -- Commons Creator page 'P1612', -- Commons Institution page 'P373', -- Commons category 'P3722', -- Commons maps category 'P1151', -- topic's main Wikimedia portal 'P1424', -- topic's main template 'P910', -- topic's main category 'P1200', -- bodies of water basin category 'P1792', -- category of associated people 'P1464', -- category for people born here 'P1465', -- category for people who died here 'P1791', -- category of people buried here 'P1740', -- category for films shot at this location 'P2033', -- Category for pictures taken with camera 'P2517', -- category for recipients of this award 'P4195', -- category for employees of the organization 'P1754', -- category related to list 'P301', -- category's main topic 'P971', -- category combines topics 'P3876', -- category for alumni of educational institution 'P1753', -- list related to category 'P3921', -- Wikidata SPARQL query equivalent 'P1204', -- Wikimedia portal's main topic 'P1423', -- template's main topic 'P1709', -- equivalent class 'P3950', -- narrower external class 'P2888', -- exact match 'P1382', -- coincident with 'P527', -- has part 'P2670', -- has parts of the class 'P3113', -- does not have part 'P2737', -- union of 'P2738', -- disjoint union of 'P2445', -- metasubclass of 'P1963', -- properties for this type 'P3176', -- uses property 'P1889', -- different from 'P460', -- said to be the same as 'P2959', -- permanent duplicated item 'P2860', -- cites 'P5125', -- wikimedia outline 'P5008', -- on focus list of Wikimedia project 'P2559', -- Wikidata usage instructions 'P1343', -- described by source 'P972', -- catalogu 'P1282', -- OSM tag or key 'P4839', -- Wolfram Language entity code 'P6104', -- Maintained by Wikiproject 'P2357', -- Code Classification of Instructional Program 'P5996' -- Category for films in this language } function valuesToKeys(array) local result = {} for _, v in pairs(array) do result[v] = true end return result end local p = {} function p.databox(frame) local args = frame:getParent().args local argsLocal = frame.args local itemId = nil if args.item then itemId = args.item end local argsLocal = frame.args local useImage = nil if argsLocal.useImage then useImage = argsLocal["useImage"] end -- excludeProperties is a local parameter to exclude given properties for a Databox on a specific page local excludeProperties = {} if argsLocal.excludeProperties then for item in string.gmatch(argsLocal.excludeProperties, "[^,]+") do table.insert(excludeProperties, item) end end local lang = mw.language.getContentLanguage() local item = mw.wikibase.getEntity(itemId) if item == nil then mw.addWarning("Wikidata item not found") return "" end local databoxRoot = mw.html.create('div') :addClass('infobox') :css({ float = 'right', border = '1px solid #fff', ['max-width'] = '300px', padding = '0 0.4em', margin = '0 0 0.4em 0.4em', }) --Title databoxRoot:tag('div') :css({ ['text-align'] = 'center', ['background-color'] = 'goldenrod', padding = '0.5em 0', margin = '0.5em 0', ['font-size'] = '120%', ['font-weight'] = 'bold', }) :wikitext(item:getLabel() or mw.title.getCurrentTitle().text) --Image local databoxImage = nil if useImage and useImage ~= "" then local allWikidataImages = item:getAllStatements('P18') if #allWikidataImages >= 1 then for _, image in ipairs( allWikidataImages ) do if image.mainsnak.datavalue.value == useImage then databoxImage = useImage break end end end end if databoxImage == nil then local bestWikidataImages = item:getBestStatements('P18') if #bestWikidataImages >= 1 then databoxImage = bestWikidataImages[1].mainsnak.datavalue.value end end if databoxImage then databoxRoot :tag('div') :wikitext('[[File:' .. databoxImage .. '|frameless|300px]]') end --Table local dataTable = databoxRoot :tag('table') :css({ ['text-align'] = 'left', ['font-size'] = '90%', ['word-break'] = 'break-word', ['width'] = '100%', ['table-layout'] = 'fixed', }) dataTable:tag('caption') :addClass('notheme') :css({ ['background-color'] = 'goldenrod', ['font-weight'] = 'bold', ['margin-top'] = '0.2em', }) :wikitext(item:formatStatements('P31').value) local properties = mw.wikibase.orderProperties(item:getProperties()) local site_excluded_properties_hash = valuesToKeys(site_excluded_properties) site_excluded_properties_hash['P31'] = true --Special property local excludeProperties_hash = valuesToKeys(excludeProperties) local edit_message = mw.message.new('vector-view-edit'):plain() for _, property in pairs(properties) do local datatype = item.claims[property][1].mainsnak.datatype local valueCount = #item:getBestStatements(property) if datatype ~= 'commonsMedia' and datatype ~= 'external-id' and datatype ~= 'quantity' and datatype ~= 'wikibase-property' and datatype ~= 'geo-shape' and datatype ~= 'tabular-data' and not site_excluded_properties_hash[property] and not excludeProperties_hash[property] and valueCount > 0 and valueCount <= 5 then local propertyValue = item:formatStatements(property) dataTable:tag('tr') :tag('th') :attr('scope', 'row') :wikitext(lang:ucfirst(propertyValue.label)):done() :tag('td') :wikitext(frame:preprocess(propertyValue.value)) :wikitext('&nbsp;[[File:OOjs UI icon edit-ltr.svg|' .. edit_message .. '|12px|baseline|class=noviewer|link=https://www.wikidata.org/wiki/' .. item.id .. '#' .. property .. ']]') end end --Map local coordinates_statements = item:getBestStatements('P625') if #coordinates_statements >= 1 and coordinates_statements[1].mainsnak.datavalue and coordinates_statements[1].mainsnak.datavalue.value.globe == 'http://www.wikidata.org/entity/Q2' then --We build the call to mapframe local latitude = coordinates_statements[1].mainsnak.datavalue.value.latitude local longitude = coordinates_statements[1].mainsnak.datavalue.value.longitude local geojson = { type = 'Feature', geometry = { type = 'Point', coordinates = { longitude, latitude } }, properties = { title = item:getLabel() or mw.title.getCurrentTitle().text, ['marker-symbol'] = 'marker', ['marker-color'] = '#009900', } } databoxRoot:wikitext(frame:extensionTag('mapframe', mw.text.jsonEncode(geojson), { height = 300, width = 300, frameless = 'frameless', align = 'center', latitude = latitude, longitude = longitude, zoom = zoom })) end --Wikidata Link databoxRoot:tag('div') :css({ ['display'] = 'flex', padding = '0.3em 0', ['width'] = '100%', ['font-size'] = '90%', }) :addClass('databox-from-wikidata-link') :wikitext('&nbsp;[[File:Wikidata-logo.svg|22px|class=noviewer skin-invert|link=https://www.wikidata.org/wiki/' .. item.id .. ']]') :tag('div') :css({ margin = '0.05em 0 0 0', }) :wikitext('&nbsp;[[d:' .. item.id .. '|Wikidata sera]]') return tostring(databoxRoot) end return p fjy45qjkgunf79mntdd19topahdvg4n 557910 557896 2026-10-03T18:11:36Z Maviulke 34834 557910 Scribunto text/plain -- It is supposed to work for any language. -- Properties excluded for all Databoxes in Zazaki Wikipedia local site_excluded_properties = { 'P360', --is a list of 'P4224', --category contains 'P935', -- Commons gallery 'P1472', -- Commons Creator page 'P1612', -- Commons Institution page 'P373', -- Commons category 'P3722', -- Commons maps category 'P1151', -- topic's main Wikimedia portal 'P1424', -- topic's main template 'P910', -- topic's main category 'P1200', -- bodies of water basin category 'P1792', -- category of associated people 'P1464', -- category for people born here 'P1465', -- category for people who died here 'P1791', -- category of people buried here 'P1740', -- category for films shot at this location 'P2033', -- Category for pictures taken with camera 'P2517', -- category for recipients of this award 'P4195', -- category for employees of the organization 'P1754', -- category related to list 'P301', -- category's main topic 'P971', -- category combines topics 'P3876', -- category for alumni of educational institution 'P1753', -- list related to category 'P3921', -- Wikidata SPARQL query equivalent 'P1204', -- Wikimedia portal's main topic 'P1423', -- template's main topic 'P1709', -- equivalent class 'P3950', -- narrower external class 'P2888', -- exact match 'P1382', -- coincident with 'P527', -- has part 'P2670', -- has parts of the class 'P3113', -- does not have part 'P2737', -- union of 'P2738', -- disjoint union of 'P2445', -- metasubclass of 'P1963', -- properties for this type 'P3176', -- uses property 'P1889', -- different from 'P460', -- said to be the same as 'P2959', -- permanent duplicated item 'P2860', -- cites 'P5125', -- wikimedia outline 'P5008', -- on focus list of Wikimedia project 'P2559', -- Wikidata usage instructions 'P1343', -- described by source 'P972', -- catalogu 'P1282', -- OSM tag or key 'P4839', -- Wolfram Language entity code 'P6104', -- Maintained by Wikiproject 'P2357', -- Code Classification of Instructional Program 'P5996' -- Category for films in this language } function valuesToKeys(array) local result = {} for _, v in pairs(array) do result[v] = true end return result end local p = {} function p.databox(frame) local args = frame:getParent().args local argsLocal = frame.args local itemId = nil if args.item then itemId = args.item end local argsLocal = frame.args local useImage = nil if argsLocal.useImage then useImage = argsLocal["useImage"] end -- excludeProperties is a local parameter to exclude given properties for a Databox on a specific page local excludeProperties = {} if argsLocal.excludeProperties then for item in string.gmatch(argsLocal.excludeProperties, "[^,]+") do table.insert(excludeProperties, item) end end local lang = mw.language.getContentLanguage() local item = mw.wikibase.getEntity(itemId) if item == nil then mw.addWarning("Wikidata item not found") return "" end local databoxRoot = mw.html.create('div') :addClass('infobox') :css({ float = 'right', border = '1px solid goldenrod', ['max-width'] = '300px', padding = '0 0.4em', margin = '0 0 0.4em 0.4em', }) --Title databoxRoot:tag('div') :css({ ['text-align'] = 'center', ['background-color'] = 'goldenrod', padding = '0.5em 0', margin = '0.5em 0', ['font-size'] = '120%', ['font-weight'] = 'bold', }) :wikitext(item:getLabel() or mw.title.getCurrentTitle().text) --Image local databoxImage = nil if useImage and useImage ~= "" then local allWikidataImages = item:getAllStatements('P18') if #allWikidataImages >= 1 then for _, image in ipairs( allWikidataImages ) do if image.mainsnak.datavalue.value == useImage then databoxImage = useImage break end end end end if databoxImage == nil then local bestWikidataImages = item:getBestStatements('P18') if #bestWikidataImages >= 1 then databoxImage = bestWikidataImages[1].mainsnak.datavalue.value end end if databoxImage then databoxRoot :tag('div') :wikitext('[[File:' .. databoxImage .. '|frameless|300px]]') end --Table local dataTable = databoxRoot :tag('table') :css({ ['text-align'] = 'left', ['font-size'] = '90%', ['word-break'] = 'break-word', ['width'] = '100%', ['table-layout'] = 'fixed', }) dataTable:tag('caption') :addClass('notheme') :css({ ['background-color'] = 'goldenrod', ['font-weight'] = 'bold', ['margin-top'] = '0.2em', }) :wikitext(item:formatStatements('P31').value) local properties = mw.wikibase.orderProperties(item:getProperties()) local site_excluded_properties_hash = valuesToKeys(site_excluded_properties) site_excluded_properties_hash['P31'] = true --Special property local excludeProperties_hash = valuesToKeys(excludeProperties) local edit_message = mw.message.new('vector-view-edit'):plain() for _, property in pairs(properties) do local datatype = item.claims[property][1].mainsnak.datatype local valueCount = #item:getBestStatements(property) if datatype ~= 'commonsMedia' and datatype ~= 'external-id' and datatype ~= 'quantity' and datatype ~= 'wikibase-property' and datatype ~= 'geo-shape' and datatype ~= 'tabular-data' and not site_excluded_properties_hash[property] and not excludeProperties_hash[property] and valueCount > 0 and valueCount <= 5 then local propertyValue = item:formatStatements(property) dataTable:tag('tr') :tag('th') :attr('scope', 'row') :wikitext(lang:ucfirst(propertyValue.label)):done() :tag('td') :wikitext(frame:preprocess(propertyValue.value)) :wikitext('&nbsp;[[File:OOjs UI icon edit-ltr.svg|' .. edit_message .. '|12px|baseline|class=noviewer|link=https://www.wikidata.org/wiki/' .. item.id .. '#' .. property .. ']]') end end --Map local coordinates_statements = item:getBestStatements('P625') if #coordinates_statements >= 1 and coordinates_statements[1].mainsnak.datavalue and coordinates_statements[1].mainsnak.datavalue.value.globe == 'http://www.wikidata.org/entity/Q2' then --We build the call to mapframe local latitude = coordinates_statements[1].mainsnak.datavalue.value.latitude local longitude = coordinates_statements[1].mainsnak.datavalue.value.longitude local geojson = { type = 'Feature', geometry = { type = 'Point', coordinates = { longitude, latitude } }, properties = { title = item:getLabel() or mw.title.getCurrentTitle().text, ['marker-symbol'] = 'marker', ['marker-color'] = '#009900', } } databoxRoot:wikitext(frame:extensionTag('mapframe', mw.text.jsonEncode(geojson), { height = 300, width = 300, frameless = 'frameless', align = 'center', latitude = latitude, longitude = longitude, zoom = zoom })) end --Wikidata Link databoxRoot:tag('div') :css({ ['display'] = 'flex', padding = '0.3em 0', ['width'] = '100%', ['font-size'] = '90%', }) :addClass('databox-from-wikidata-link') :wikitext('&nbsp;[[File:Wikidata-logo.svg|22px|class=noviewer skin-invert|link=https://www.wikidata.org/wiki/' .. item.id .. ']]') :tag('div') :css({ margin = '0.05em 0 0 0', }) :wikitext('&nbsp;[[d:' .. item.id .. '|Wikidata sera]]') return tostring(databoxRoot) end return p oo1f2r0t99tsusrjaij4e7umon3a3m5 557911 557910 2026-10-03T18:15:36Z Maviulke 34834 557911 Scribunto text/plain -- It is supposed to work for any language. -- Properties excluded for all Databoxes in Zazaki Wikipedia local site_excluded_properties = { 'P360', --is a list of 'P4224', --category contains 'P935', -- Commons gallery 'P1472', -- Commons Creator page 'P1612', -- Commons Institution page 'P373', -- Commons category 'P3722', -- Commons maps category 'P1151', -- topic's main Wikimedia portal 'P1424', -- topic's main template 'P910', -- topic's main category 'P1200', -- bodies of water basin category 'P1792', -- category of associated people 'P1464', -- category for people born here 'P1465', -- category for people who died here 'P1791', -- category of people buried here 'P1740', -- category for films shot at this location 'P2033', -- Category for pictures taken with camera 'P2517', -- category for recipients of this award 'P4195', -- category for employees of the organization 'P1754', -- category related to list 'P301', -- category's main topic 'P971', -- category combines topics 'P3876', -- category for alumni of educational institution 'P1753', -- list related to category 'P3921', -- Wikidata SPARQL query equivalent 'P1204', -- Wikimedia portal's main topic 'P1423', -- template's main topic 'P1709', -- equivalent class 'P3950', -- narrower external class 'P2888', -- exact match 'P1382', -- coincident with 'P527', -- has part 'P2670', -- has parts of the class 'P3113', -- does not have part 'P2737', -- union of 'P2738', -- disjoint union of 'P2445', -- metasubclass of 'P1963', -- properties for this type 'P3176', -- uses property 'P1889', -- different from 'P460', -- said to be the same as 'P2959', -- permanent duplicated item 'P2860', -- cites 'P5125', -- wikimedia outline 'P5008', -- on focus list of Wikimedia project 'P2559', -- Wikidata usage instructions 'P1343', -- described by source 'P972', -- catalogu 'P1282', -- OSM tag or key 'P4839', -- Wolfram Language entity code 'P6104', -- Maintained by Wikiproject 'P2357', -- Code Classification of Instructional Program 'P5996' -- Category for films in this language } function valuesToKeys(array) local result = {} for _, v in pairs(array) do result[v] = true end return result end local p = {} function p.databox(frame) local args = frame:getParent().args local argsLocal = frame.args local itemId = nil if args.item then itemId = args.item end local argsLocal = frame.args local useImage = nil if argsLocal.useImage then useImage = argsLocal["useImage"] end -- excludeProperties is a local parameter to exclude given properties for a Databox on a specific page local excludeProperties = {} if argsLocal.excludeProperties then for item in string.gmatch(argsLocal.excludeProperties, "[^,]+") do table.insert(excludeProperties, item) end end local lang = mw.language.getContentLanguage() local item = mw.wikibase.getEntity(itemId) if item == nil then mw.addWarning("Wikidata item not found") return "" end local databoxRoot = mw.html.create('div') :addClass('infobox') :css({ float = 'right', border = '1px solid goldenrod', ['max-width'] = '300px', padding = '0 0.3em', margin = '0 0 0.3em 0.3em', }) --Title databoxRoot:tag('div') :css({ ['text-align'] = 'center', ['background-color'] = 'goldenrod', padding = '0.4em 0', margin = '0.4em 0', ['font-size'] = '130%', ['font-weight'] = 'bold', }) :wikitext(item:getLabel() or mw.title.getCurrentTitle().text) --Image local databoxImage = nil if useImage and useImage ~= "" then local allWikidataImages = item:getAllStatements('P18') if #allWikidataImages >= 1 then for _, image in ipairs( allWikidataImages ) do if image.mainsnak.datavalue.value == useImage then databoxImage = useImage break end end end end if databoxImage == nil then local bestWikidataImages = item:getBestStatements('P18') if #bestWikidataImages >= 1 then databoxImage = bestWikidataImages[1].mainsnak.datavalue.value end end if databoxImage then databoxRoot :tag('div') :wikitext('[[File:' .. databoxImage .. '|frameless|300px]]') end --Table local dataTable = databoxRoot :tag('table') :css({ ['text-align'] = 'left', ['font-size'] = '100%', ['word-break'] = 'break-word', ['width'] = '100%', ['table-layout'] = 'fixed', }) dataTable:tag('caption') :addClass('notheme') :css({ ['background-color'] = 'goldenrod', ['font-weight'] = 'bold', ['margin-top'] = '0.3em', }) :wikitext(item:formatStatements('P31').value) local properties = mw.wikibase.orderProperties(item:getProperties()) local site_excluded_properties_hash = valuesToKeys(site_excluded_properties) site_excluded_properties_hash['P31'] = true --Special property local excludeProperties_hash = valuesToKeys(excludeProperties) local edit_message = mw.message.new('vector-view-edit'):plain() for _, property in pairs(properties) do local datatype = item.claims[property][1].mainsnak.datatype local valueCount = #item:getBestStatements(property) if datatype ~= 'commonsMedia' and datatype ~= 'external-id' and datatype ~= 'quantity' and datatype ~= 'wikibase-property' and datatype ~= 'geo-shape' and datatype ~= 'tabular-data' and not site_excluded_properties_hash[property] and not excludeProperties_hash[property] and valueCount > 0 and valueCount <= 5 then local propertyValue = item:formatStatements(property) dataTable:tag('tr') :tag('th') :attr('scope', 'row') :wikitext(lang:ucfirst(propertyValue.label)):done() :tag('td') :wikitext(frame:preprocess(propertyValue.value)) :wikitext('&nbsp;[[File:OOjs UI icon edit-ltr.svg|' .. edit_message .. '|12px|baseline|class=noviewer|link=https://www.wikidata.org/wiki/' .. item.id .. '#' .. property .. ']]') end end --Map local coordinates_statements = item:getBestStatements('P625') if #coordinates_statements >= 1 and coordinates_statements[1].mainsnak.datavalue and coordinates_statements[1].mainsnak.datavalue.value.globe == 'http://www.wikidata.org/entity/Q2' then --We build the call to mapframe local latitude = coordinates_statements[1].mainsnak.datavalue.value.latitude local longitude = coordinates_statements[1].mainsnak.datavalue.value.longitude local geojson = { type = 'Feature', geometry = { type = 'Point', coordinates = { longitude, latitude } }, properties = { title = item:getLabel() or mw.title.getCurrentTitle().text, ['marker-symbol'] = 'marker', ['marker-color'] = '#0a07de', } } databoxRoot:wikitext(frame:extensionTag('mapframe', mw.text.jsonEncode(geojson), { height = 300, width = 300, frameless = 'frameless', align = 'center', latitude = latitude, longitude = longitude, zoom = zoom })) end --Wikidata Link databoxRoot:tag('div') :css({ ['display'] = 'flex', padding = '0.3em 0', ['width'] = '100%', ['font-size'] = '100%', }) :addClass('databox-from-wikidata-link') :wikitext('&nbsp;[[File:Wikidata-logo.svg|22px|class=noviewer skin-invert|link=https://www.wikidata.org/wiki/' .. item.id .. ']]') :tag('div') :css({ margin = '0.05em 0 0 0', }) :wikitext('&nbsp;[[d:' .. item.id .. '|Wikidata seri bıvênên]]') return tostring(databoxRoot) end return p mykpbywhfw7z1y2gd572pmejf616uvo 557912 557911 2026-10-03T18:16:19Z Maviulke 34834 557912 Scribunto text/plain -- It is supposed to work for any language. -- Properties excluded for all Databoxes in Zazaki Wikipedia local site_excluded_properties = { 'P360', --is a list of 'P4224', --category contains 'P935', -- Commons gallery 'P1472', -- Commons Creator page 'P1612', -- Commons Institution page 'P373', -- Commons category 'P3722', -- Commons maps category 'P1151', -- topic's main Wikimedia portal 'P1424', -- topic's main template 'P910', -- topic's main category 'P1200', -- bodies of water basin category 'P1792', -- category of associated people 'P1464', -- category for people born here 'P1465', -- category for people who died here 'P1791', -- category of people buried here 'P1740', -- category for films shot at this location 'P2033', -- Category for pictures taken with camera 'P2517', -- category for recipients of this award 'P4195', -- category for employees of the organization 'P1754', -- category related to list 'P301', -- category's main topic 'P971', -- category combines topics 'P3876', -- category for alumni of educational institution 'P1753', -- list related to category 'P3921', -- Wikidata SPARQL query equivalent 'P1204', -- Wikimedia portal's main topic 'P1423', -- template's main topic 'P1709', -- equivalent class 'P3950', -- narrower external class 'P2888', -- exact match 'P1382', -- coincident with 'P527', -- has part 'P2670', -- has parts of the class 'P3113', -- does not have part 'P2737', -- union of 'P2738', -- disjoint union of 'P2445', -- metasubclass of 'P1963', -- properties for this type 'P3176', -- uses property 'P1889', -- different from 'P460', -- said to be the same as 'P2959', -- permanent duplicated item 'P2860', -- cites 'P5125', -- wikimedia outline 'P5008', -- on focus list of Wikimedia project 'P2559', -- Wikidata usage instructions 'P1343', -- described by source 'P972', -- catalogu 'P1282', -- OSM tag or key 'P4839', -- Wolfram Language entity code 'P6104', -- Maintained by Wikiproject 'P2357', -- Code Classification of Instructional Program 'P5996' -- Category for films in this language } function valuesToKeys(array) local result = {} for _, v in pairs(array) do result[v] = true end return result end local p = {} function p.databox(frame) local args = frame:getParent().args local argsLocal = frame.args local itemId = nil if args.item then itemId = args.item end local argsLocal = frame.args local useImage = nil if argsLocal.useImage then useImage = argsLocal["useImage"] end -- excludeProperties is a local parameter to exclude given properties for a Databox on a specific page local excludeProperties = {} if argsLocal.excludeProperties then for item in string.gmatch(argsLocal.excludeProperties, "[^,]+") do table.insert(excludeProperties, item) end end local lang = mw.language.getContentLanguage() local item = mw.wikibase.getEntity(itemId) if item == nil then mw.addWarning("Wikidata item not found") return "" end local databoxRoot = mw.html.create('div') :addClass('infobox') :css({ float = 'right', border = '1px solid goldenrod', ['max-width'] = '300px', padding = '0 0.3em', margin = '0 0 0.3em 0.3em', }) --Title databoxRoot:tag('div') :css({ ['text-align'] = 'center', ['background-color'] = 'goldenrod', padding = '0.4em 0', margin = '0.4em 0', ['font-size'] = '130%', ['font-weight'] = 'bold', }) :wikitext(item:getLabel() or mw.title.getCurrentTitle().text) --Image local databoxImage = nil if useImage and useImage ~= "" then local allWikidataImages = item:getAllStatements('P18') if #allWikidataImages >= 1 then for _, image in ipairs( allWikidataImages ) do if image.mainsnak.datavalue.value == useImage then databoxImage = useImage break end end end end if databoxImage == nil then local bestWikidataImages = item:getBestStatements('P18') if #bestWikidataImages >= 1 then databoxImage = bestWikidataImages[1].mainsnak.datavalue.value end end if databoxImage then databoxRoot :tag('div') :wikitext('[[File:' .. databoxImage .. '|frameless|300px]]') end --Table local dataTable = databoxRoot :tag('table') :css({ ['text-align'] = 'left', ['font-size'] = '100%', ['word-break'] = 'break-word', ['width'] = '100%', ['table-layout'] = 'fixed', }) dataTable:tag('caption') :addClass('notheme') :css({ ['background-color'] = 'goldenrod', ['font-weight'] = 'bold', ['margin-top'] = '0.3em', }) :wikitext(item:formatStatements('P31').value) local properties = mw.wikibase.orderProperties(item:getProperties()) local site_excluded_properties_hash = valuesToKeys(site_excluded_properties) site_excluded_properties_hash['P31'] = true --Special property local excludeProperties_hash = valuesToKeys(excludeProperties) local edit_message = mw.message.new('vector-view-edit'):plain() for _, property in pairs(properties) do local datatype = item.claims[property][1].mainsnak.datatype local valueCount = #item:getBestStatements(property) if datatype ~= 'commonsMedia' and datatype ~= 'external-id' and datatype ~= 'quantity' and datatype ~= 'wikibase-property' and datatype ~= 'geo-shape' and datatype ~= 'tabular-data' and not site_excluded_properties_hash[property] and not excludeProperties_hash[property] and valueCount > 0 and valueCount <= 5 then local propertyValue = item:formatStatements(property) dataTable:tag('tr') :tag('th') :attr('scope', 'row') :wikitext(lang:ucfirst(propertyValue.label)):done() :tag('td') :wikitext(frame:preprocess(propertyValue.value)) :wikitext('&nbsp;[[File:OOjs UI icon edit-ltr.svg|' .. edit_message .. '|12px|baseline|class=noviewer|link=https://www.wikidata.org/wiki/' .. item.id .. '#' .. property .. ']]') end end --Map local coordinates_statements = item:getBestStatements('P625') if #coordinates_statements >= 1 and coordinates_statements[1].mainsnak.datavalue and coordinates_statements[1].mainsnak.datavalue.value.globe == 'http://www.wikidata.org/entity/Q2' then --We build the call to mapframe local latitude = coordinates_statements[1].mainsnak.datavalue.value.latitude local longitude = coordinates_statements[1].mainsnak.datavalue.value.longitude local geojson = { type = 'Feature', geometry = { type = 'Point', coordinates = { longitude, latitude } }, properties = { title = item:getLabel() or mw.title.getCurrentTitle().text, ['marker-symbol'] = 'marker', ['marker-color'] = '#0a07de', } } databoxRoot:wikitext(frame:extensionTag('mapframe', mw.text.jsonEncode(geojson), { height = 300, width = 300, frameless = 'frameless', align = 'center', latitude = latitude, longitude = longitude, zoom = zoom })) end --Wikidata Link databoxRoot:tag('div') :css({ ['display'] = 'flex', padding = '0.3em 0', ['width'] = '100%', ['font-size'] = '100%', }) :addClass('databox-from-wikidata-link') :wikitext('&nbsp;[[File:Wikidata-logo.svg|22px|class=noviewer skin-invert|link=https://www.wikidata.org/wiki/' .. item.id .. ']]') :tag('div') :css({ margin = '0.05em 0 0 0', }) :wikitext('&nbsp;[[d:' .. item.id .. '|Wikidata sero bıvênên]]') return tostring(databoxRoot) end return p 5clio4u5jtj4y31n7d63y9zhe6zjj9b Öykü Karayel 0 93538 557926 466235 2026-10-04T02:33:08Z InternetArchiveBot 21954 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.6 557926 wikitext text/x-wiki {{Merdumi}} '''Öykü Karayel''' (b. 1990, [[Estanbol]]), yew [[kayker]]a [[Tırk]]a. Karayel serra 1990 de,[[Estanbol]] de biya. Lisa Çemberlitaşi ra biya mezune. Yew waya ae esta.<ref>http://www.medyafaresi.com/haber/Oyku-Karayel-ikiz-kardesinin-yasadigi-zorlugu-anlatti_94259.html</ref> Ae Têatroê Kenteri de wendo, 2007 de kewto Universitey Estanboli Konservauarê Dewlete. Key ke oca biya wendekare, filmê ''Güzel Şeyler Bizim Tarafta'' de rol gırewto, kay kerdo. Ney ra tepeya kewta kadroê filmê [[Kuzey Güney]]i u rolê ''Cemre'' de kay kerdo.<ref>{{Cite web |archiveurl=https://web.archive.org/web/20150716232421/http://www.hurriyet.com.tr/kelebek/paparazzi/27770989.asp |archivedate=2015-07-16 |title=Archive copy |url=http://www.hurriyet.com.tr/kelebek/paparazzi/27770989.asp |access-date=2020-12-02}}</ref> Tewr peyên [[film]]ê [[Netflix]]i ''[[Bir Başkadır]]''i de kay kerdo. == Filmografiya xo == {| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 90%;" |- bgcolor="#B0C4DE" align="center" ! Serre ! Vıraştış ! Rol ! Noti ! Tewr |- | 2011-2013 || ''[[Kuzey Güney]]'' || Cemre Çayak Tekinoğlu || Rolo serên || Series |- | 2014-2015 || ''[[Kara Para Aşk]]'' || İpek || Rolo kınare || Series |- |2015 || ''[[Bulantı|Bulantı]]'' || Aslı || Rolo serên || [[Film]] |- | 2015 || ''[[Toz]]'' || Azra Naziri || Rolo serên || [[Film]] |- | 2016 || ''[[Muhteşem Yüzyıl Kösem ]]'' || Dilruba Sultan || Rolê kınare || Series |- | 2017-2018 || ''[[Kalp Atışı]] '' || Eylül Erdem || Rolo serên || Series |- | 2017 || ''[[İşe Yarar Bir Şey]]'' || Canan || Rolo serên || [[Film]] |- | 2018 || ''[[Put Şeylere]]'' || Elif || Rolo serên || [[Film]] |- | 2018-2019 || ''[[Muhteşem İkili|Muhteşem İkili]] || Yağmur Bulut|| Rolo peyên || Series |- | 2019 || ''[[Jet Sosyete]]'' || Sinem || Kaykero meyman (episodê 45) || Series |- | 2020 || ''[[Bir Başkadır]]'' || Meryem || Rolo serên || Filmê [[Netflix]]i |} == Referansi == {{Reflist}} [[Kategoriye:Şarê Estanboli]] [[Kategoriye:Kaykerê Tırkiya]] azelkb161tkqsw9ixs58oz5fxjdwkon Chordate 0 100705 557883 2026-10-03T15:30:42Z Maviulke 34834 Şıkıt era [[Goştwer]] ser 557883 wikitext text/x-wiki #REDIRECT[[Goştwer]] km3ymlawtw61xbnpztvx4rlkscsjo5x 557884 557883 2026-10-03T15:32:27Z Maviulke 34834 [[Goştwer]] ra serşıkıtış dariya we 557884 wikitext text/x-wiki == Sınıflandırma == * '''Şube Chordata''' ** Alt şube {{bt-lattr|Cephalochordata|Kafatassızlar}} ** Klad [[Olfactores]] *** Alt şube {{bt-lattr|Urochordata|Tulumlular}} *** Alt şube {{bt-lattr|Vertebrata|Omurgalılar}} **** İnfra şube {{bt-lattr|Agnatha|Çenesiz balıklar}} ***** Sınıf {{bt-lattr|Myxini {{!}}Myxini veya Hyperotreti|}} ***** Sınıf {{bt-lattr|Conodonta|Konodontlar}} ***** Sınıf {{bt-lattr|Hyperoartia|}} ***** Sınıf {{bt-lattr|Cephalaspidomorphi|Yuvarlak ağızlılar}} ***** Sınıf {{bt-lattr|Pteraspidomorphi|}} **** İnfra şube {{bt-lattr|Gnathostomata|Gerçek çeneliler}} ***** Sınıf {{bt-lattr|Placodermi|Zırhlı balıklar}} ***** Sınıf {{bt-lattr|Chondrichthyes|Kıkırdaklı balıklar}} ***** Sınıf {{bt-lattr|Acanthodii|Dikenli yüzgeçliler}} ***** Üst sınıf {{bt-lattr|Osteichthyes|Kemikli balıklar}} ****** Sınıf {{bt-lattr|Actinopterygii|Işınsal yüzgeçliler}} ****** Sınıf {{bt-lattr|Sarcopterygii|Et yüzgeçliler}} ***** Üst sınıf {{bt-lattr|Tetrapoda|Dört üyeliler|Dört bacaklı omurgalılar}} ****** Sınıf {{bt-lattr|Amphibia|amfibyumlar}} ****** Seri {{bt-lattr|Amniota|Amniyotik yumurtalılar}} ******* Sınıf {{bt-lattr|Sauropsida|Sürüngenler}} ******* Sınıf {{bt-lattr|Aves|Kuşlar}} ******* Sınıf {{bt-lattr|Synapsida|Memelimsi sürüngenler}} ******* Sınıf {{bt-lattr|Mammalia|Memeliler}} 28hd9p6pdg7q1l8ksts85fx63mg2dic 557885 557884 2026-10-03T15:33:20Z Maviulke 34834 557885 wikitext text/x-wiki == Sınıflandırma == * '''Şube Chordata''' ** bın şube {{bt-lattr|Cephalochordata|Kafatassızlar}} ** Klad [[Olfactores]] *** bın şube {{bt-lattr|Urochordata|Tulumlular}} *** bın şube {{bt-lattr|Vertebrata|Omurgalılar}} **** İnfra şube {{bt-lattr|Agnatha|Çenesiz balıklar}} ***** Sınıf {{bt-lattr|Myxini {{!}}Myxini veya Hyperotreti|}} ***** Sınıf {{bt-lattr|Conodonta|Konodontlar}} ***** Sınıf {{bt-lattr|Hyperoartia|}} ***** Sınıf {{bt-lattr|Cephalaspidomorphi|Yuvarlak ağızlılar}} ***** Sınıf {{bt-lattr|Pteraspidomorphi|}} **** İnfra şube {{bt-lattr|Gnathostomata|Gerçek çeneliler}} ***** Sınıf {{bt-lattr|Placodermi|Zırhlı balıklar}} ***** Sınıf {{bt-lattr|Chondrichthyes|Kıkırdaklı balıklar}} ***** Sınıf {{bt-lattr|Acanthodii|Dikenli yüzgeçliler}} ***** ser sınıf {{bt-lattr|Osteichthyes|Kemikli balıklar}} ****** Sınıf {{bt-lattr|Actinopterygii|Işınsal yüzgeçliler}} ****** Sınıf {{bt-lattr|Sarcopterygii|Et yüzgeçliler}} ***** ser sınıf {{bt-lattr|Tetrapoda|Dört üyeliler|Dört bacaklı omurgalılar}} ****** Sınıf {{bt-lattr|Amphibia|amfibyumlar}} ****** Seri {{bt-lattr|Amniota|Amniyotik yumurtalılar}} ******* Sınıf {{bt-lattr|Sauropsida|Sürüngenler}} ******* Sınıf {{bt-lattr|Aves|Kuşlar}} ******* Sınıf {{bt-lattr|Synapsida|Memelimsi sürüngenler}} ******* Sınıf {{bt-lattr|Mammalia|Memeliler}} 889h1cwamhtj8zn1p7uq22w1qd4n49p 557886 557885 2026-10-03T15:35:45Z Maviulke 34834 557886 wikitext text/x-wiki == Sınıflandırma == * '''Şube Chordata''' ** bın şube {{bt-latdiq|Cephalochordata|Kafatassızlar}} ** Klad [[Olfactores]] *** bın şube {{bt-latdiq|Urochordata|Tulumlular}} *** bın şube {{bt-latdiq|Vertebrata|Omurgalılar}} **** İnfra şube {{bt-latdiq|Agnatha|Çenesiz balıklar}} ***** Sınıf {{bt-latdiq|Myxini {{!}}Myxini veya Hyperotreti|}} ***** Sınıf {{bt-latdiq|Conodonta|Konodontlar}} ***** Sınıf {{bt-latdiq|Hyperoartia|}} ***** Sınıf {{bt-latdiq|Cephalaspidomorphi|Yuvarlak ağızlılar}} ***** Sınıf {{bt-latdiq|Pteraspidomorphi|}} **** İnfra şube {{bt-latdiq|Gnathostomata|Gerçek çeneliler}} ***** Sınıf {{bt-latdiq|Placodermi|Zırhlı balıklar}} ***** Sınıf {{bt-latdiq|Chondrichthyes|Kıkırdaklı balıklar}} ***** Sınıf {{bt-latdiq|Acanthodii|Dikenli yüzgeçliler}} ***** ser sınıf {{bt-latdiq|Osteichthyes|Kemikli balıklar}} ****** Sınıf {{bt-latdiq|Actinopterygii|Işınsal yüzgeçliler}} ****** Sınıf {{bt-latdiq|Sarcopterygii|Et yüzgeçliler}} ***** ser sınıf {{bt-latdiq|Tetrapoda|Dört üyeliler|Dört bacaklı omurgalılar}} ****** Sınıf {{bt-latdiq|Amphibia|amfibyumlar}} ****** Seri {{bt-lattr|Amniota|Amniyotik yumurtalılar}} ******* Sınıf {{bt-latdiq|Sauropsida|Sürüngenler}} ******* Sınıf {{bt-latdiq|Aves|Kuşlar}} ******* Sınıf {{bt-latdiq|Synapsida|Memelimsi sürüngenler}} ******* Sınıf {{bt-latdiq|Mammalia|Memeliler}} qk4orl6yx7kz6x5pvfuboyl3wnfg9nu 557887 557886 2026-10-03T15:36:00Z Maviulke 34834 added [[Category:Chordate]] using [[Help:Gadget-HotCat|HotCat]] 557887 wikitext text/x-wiki == Sınıflandırma == * '''Şube Chordata''' ** bın şube {{bt-latdiq|Cephalochordata|Kafatassızlar}} ** Klad [[Olfactores]] *** bın şube {{bt-latdiq|Urochordata|Tulumlular}} *** bın şube {{bt-latdiq|Vertebrata|Omurgalılar}} **** İnfra şube {{bt-latdiq|Agnatha|Çenesiz balıklar}} ***** Sınıf {{bt-latdiq|Myxini {{!}}Myxini veya Hyperotreti|}} ***** Sınıf {{bt-latdiq|Conodonta|Konodontlar}} ***** Sınıf {{bt-latdiq|Hyperoartia|}} ***** Sınıf {{bt-latdiq|Cephalaspidomorphi|Yuvarlak ağızlılar}} ***** Sınıf {{bt-latdiq|Pteraspidomorphi|}} **** İnfra şube {{bt-latdiq|Gnathostomata|Gerçek çeneliler}} ***** Sınıf {{bt-latdiq|Placodermi|Zırhlı balıklar}} ***** Sınıf {{bt-latdiq|Chondrichthyes|Kıkırdaklı balıklar}} ***** Sınıf {{bt-latdiq|Acanthodii|Dikenli yüzgeçliler}} ***** ser sınıf {{bt-latdiq|Osteichthyes|Kemikli balıklar}} ****** Sınıf {{bt-latdiq|Actinopterygii|Işınsal yüzgeçliler}} ****** Sınıf {{bt-latdiq|Sarcopterygii|Et yüzgeçliler}} ***** ser sınıf {{bt-latdiq|Tetrapoda|Dört üyeliler|Dört bacaklı omurgalılar}} ****** Sınıf {{bt-latdiq|Amphibia|amfibyumlar}} ****** Seri {{bt-lattr|Amniota|Amniyotik yumurtalılar}} ******* Sınıf {{bt-latdiq|Sauropsida|Sürüngenler}} ******* Sınıf {{bt-latdiq|Aves|Kuşlar}} ******* Sınıf {{bt-latdiq|Synapsida|Memelimsi sürüngenler}} ******* Sınıf {{bt-latdiq|Mammalia|Memeliler}} [[Kategoriye:Chordate]] qhpt2zmfq2vz3bs0qaao76or307z12l 557889 557887 2026-10-03T15:41:19Z Maviulke 34834 /* Sınıflandırma */ 557889 wikitext text/x-wiki == Sınıflandırma == * '''Şube Chordata''' ** bın şube {{bt-latdiq|Cephalochordata|Kafatassızlar}} ** Klad [[Olfactores]] *** bın şube {{bt-latdiq|Urochordata|Tulumlular}} *** bın şube {{bt-latdiq|Vertebrata|Omurgalılar}} **** İnfra şube {{bt-latdiq|Agnatha|Çenesiz balıklar}} ***** Sınıf {{bt-latdiq|Myxini {{!}}Myxini veya Hyperotreti|}} ***** Sınıf {{bt-latdiq|Conodonta|}} ***** Sınıf {{bt-latdiq|Hyperoartia|}} ***** Sınıf {{bt-latdiq|Cephalaspidomorphi|Klorek fekınıni}} ***** Sınıf {{bt-latdiq|Pteraspidomorphi|}} **** İnfra şube {{bt-latdiq|Gnathostomata|Raştay henıkıni}} ***** Sınıf {{bt-latdiq|Placodermi|Maseyê zırhıni}} ***** Sınıf {{bt-latdiq|Chondrichthyes|Kıkırdaklı balıklar}} ***** Sınıf {{bt-latdiq|Acanthodii|Dikenli yüzgeçliler}} ***** ser sınıf {{bt-latdiq|Osteichthyes|Kemikli balıklar}} ****** Sınıf {{bt-latdiq|Actinopterygii|Işınsal yüzgeçliler}} ****** Sınıf {{bt-latdiq|Sarcopterygii|Et yüzgeçliler}} ***** ser sınıf {{bt-latdiq|Tetrapoda|Çehar lıngıni}} ****** Sınıf {{bt-latdiq|Amphibia|amfibiki}} ****** Seri {{bt-latdiq|Amniota|Amniyotik hakınıni}} ******* Sınıf {{bt-latdiq|Sauropsida|Sürüngenler}} ******* Sınıf {{bt-latdiq|Aves|Mırıçıki}} ******* Sınıf {{bt-latdiq|Synapsida|Memelimsi sürüngenler}} ******* Sınıf {{bt-latdiq|Mammalia|Çıceyıni}} [[Kategoriye:Chordate]] 8b7wjeqe1f9lkaeztsp68uqg81ibohq 557890 557889 2026-10-03T15:42:04Z Maviulke 34834 557890 wikitext text/x-wiki == Rêznayış == * '''Şube Chordata''' ** bın şube {{bt-latdiq|Cephalochordata|Kafatassızlar}} ** Klad [[Olfactores]] *** bın şube {{bt-latdiq|Urochordata|Tulumlular}} *** bın şube {{bt-latdiq|Vertebrata|Omurgalılar}} **** İnfra şube {{bt-latdiq|Agnatha|Çenesiz balıklar}} ***** Sınıf {{bt-latdiq|Myxini {{!}}Myxini veya Hyperotreti|}} ***** Sınıf {{bt-latdiq|Conodonta|}} ***** Sınıf {{bt-latdiq|Hyperoartia|}} ***** Sınıf {{bt-latdiq|Cephalaspidomorphi|Klorek fekınıni}} ***** Sınıf {{bt-latdiq|Pteraspidomorphi|}} **** İnfra şube {{bt-latdiq|Gnathostomata|Raştay henıkıni}} ***** Sınıf {{bt-latdiq|Placodermi|Maseyê zırhıni}} ***** Sınıf {{bt-latdiq|Chondrichthyes|Kıkırdaklı balıklar}} ***** Sınıf {{bt-latdiq|Acanthodii|Dikenli yüzgeçliler}} ***** ser sınıf {{bt-latdiq|Osteichthyes|Kemikli balıklar}} ****** Sınıf {{bt-latdiq|Actinopterygii|Işınsal yüzgeçliler}} ****** Sınıf {{bt-latdiq|Sarcopterygii|Et yüzgeçliler}} ***** ser sınıf {{bt-latdiq|Tetrapoda|Çehar lıngıni}} ****** Sınıf {{bt-latdiq|Amphibia|amfibiki}} ****** Seri {{bt-latdiq|Amniota|Amniyotik hakınıni}} ******* Sınıf {{bt-latdiq|Sauropsida|Sürüngenler}} ******* Sınıf {{bt-latdiq|Aves|Mırıçıki}} ******* Sınıf {{bt-latdiq|Synapsida|Memelimsi sürüngenler}} ******* Sınıf {{bt-latdiq|Mammalia|Çıceyıni}} [[Kategoriye:Chordate]] c29trcaikjjy3d2jw8qjtipabzgn2i4 557891 557890 2026-10-03T15:42:25Z Maviulke 34834 557891 wikitext text/x-wiki == Rêznayış == * '''Şube Chordata''' ** bın şube {{bt-latdiq|Cephalochordata|Kafatassızlar}} ** Klad [[Olfactores]] *** bın şube {{bt-latdiq|Urochordata|Tulumlular}} *** bın şube {{bt-latdiq|Vertebrata|Omurgalılar}} **** İnfra şube {{bt-latdiq|Agnatha|Çenesiz balıklar}} ***** Sınıf {{bt-latdiq|Myxini {{!}}Myxini veya Hyperotreti|}} ***** Sınıf {{bt-latdiq|Conodonta|}} ***** Sınıf {{bt-latdiq|Hyperoartia|}} ***** Sınıf {{bt-latdiq|Cephalaspidomorphi|Klorek fekınıni}} ***** Sınıf {{bt-latdiq|Pteraspidomorphi|}} **** İnfra şube {{bt-latdiq|Gnathostomata|Raştay henıkıni}} ***** Sınıf {{bt-latdiq|Placodermi|Maseyê zırhıni}} ***** Sınıf {{bt-latdiq|Chondrichthyes|Kıkırdaklı balıklar}} ***** Sınıf {{bt-latdiq|Acanthodii|Dikenli yüzgeçliler}} ***** ser sınıf {{bt-latdiq|Osteichthyes|Kemikli balıklar}} ****** Sınıf {{bt-latdiq|Actinopterygii|Işınsal yüzgeçliler}} ****** Sınıf {{bt-latdiq|Sarcopterygii|Et yüzgeçliler}} ***** ser sınıf {{bt-latdiq|Tetrapoda|Çehar lıngıni}} ****** Sınıf {{bt-latdiq|Amphibia|amfibiki}} ****** Seri {{bt-latdiq|Amniota|Amniyotik hakınıni}} ******* Sınıf {{bt-latdiq|Sauropsida|Sürüngenler}} ******* Sınıf {{bt-latdiq|Aves|Mırıçıki}} ******* Sınıf {{bt-latdiq|Synapsida|Memelimsi sürüngenler}} ******* Sınıf {{bt-latdiq|Mammalia|Çıceyıni}} {{Taxonbar}} [[Kategoriye:Chordate]] j5cvsmyafv6ai45kqj1hoxfokfsty5r 557892 557891 2026-10-03T17:25:37Z Maviulke 34834 557892 wikitext text/x-wiki {{Databox }} == Rêznayış == * '''Şube Chordata''' ** bın şube {{bt-latdiq|Cephalochordata|Bêkafıki}} ** Klad [[Olfactores]] *** bın şube {{bt-latdiq|Urochordata|}} *** bın şube {{bt-latdiq|Vertebrata|}} **** İnfra şube {{bt-latdiq|Agnatha|Maseyê bêhenıkıni}} ***** Sınıf {{bt-latdiq|Myxini {{!}}Myxini veya Hyperotreti|}} ***** Sınıf {{bt-latdiq|Conodonta|}} ***** Sınıf {{bt-latdiq|Hyperoartia|}} ***** Sınıf {{bt-latdiq|Cephalaspidomorphi|Klorek fekınıni}} ***** Sınıf {{bt-latdiq|Pteraspidomorphi|}} **** İnfra şube {{bt-latdiq|Gnathostomata|Raştay henıkıni}} ***** Sınıf {{bt-latdiq|Placodermi|Maseyê zırhıni}} ***** Sınıf {{bt-latdiq|Chondrichthyes|}} ***** Sınıf {{bt-latdiq|Acanthodii|}} ***** ser sınıf {{bt-latdiq|Osteichthyes|Maseyê esteyıni}} ****** Sınıf {{bt-latdiq|Actinopterygii|}} ****** Sınıf {{bt-latdiq|Sarcopterygii|}} ***** ser sınıf {{bt-latdiq|Tetrapoda|Çehar lıngıni}} ****** Sınıf {{bt-latdiq|Amphibia|amfibiki}} ****** Seri {{bt-latdiq|Amniota|Amniyotik hakınıni}} ******* Sınıf {{bt-latdiq|Sauropsida|}} ******* Sınıf {{bt-latdiq|Aves|Mırıçıki}} ******* Sınıf {{bt-latdiq|Synapsida|}} ******* Sınıf {{bt-latdiq|Mammalia|Çıceyıni}} {{Taxonbar}} [[Kategoriye:Chordate]] kh06hisvq7ifd7f8rjgy1f2l2sgyiv3 557906 557892 2026-10-03T17:57:21Z Maviulke 34834 557906 wikitext text/x-wiki {{Databox }} == Rêznayış == * '''Şube Chordata''' ** bın şube {{bt-latdiq|Cephalochordata|Bêkafıki}} ** Klad [[Olfactores]] *** bın şube {{bt-latdiq|Urochordata|}} *** bın şube {{bt-latdiq|Vertebrata|}} **** İnfra şube {{bt-latdiq|Agnatha|Maseyê bêhenıkıni}} ***** Sınıf {{bt-latdiq|Myxini {{!}}Myxini veya Hyperotreti|}} ***** Sınıf {{bt-latdiq|Conodonta|}} ***** Sınıf {{bt-latdiq|Hyperoartia|}} ***** Sınıf {{bt-latdiq|Cephalaspidomorphi|Klorek fekınıni}} ***** Sınıf {{bt-latdiq|Pteraspidomorphi|}} **** İnfra şube {{bt-latdiq|Gnathostomata|Raştay henıkıni}} ***** Sınıf {{bt-latdiq|Placodermi|Maseyê zırhıni}} ***** Sınıf {{bt-latdiq|Chondrichthyes|}} ***** Sınıf {{bt-latdiq|Acanthodii|}} ***** ser sınıf {{bt-latdiq|Osteichthyes|Maseyê esteyıni}} ****** Sınıf {{bt-latdiq|Actinopterygii|}} ****** Sınıf {{bt-latdiq|Sarcopterygii|}} ***** ser sınıf {{bt-latdiq|Tetrapoda|Çehar lıngıni}} ****** Sınıf {{bt-latdiq|Amphibia|amfibiki}} ****** Seri {{bt-latdiq|Amniota|Amniyotik hakınıni}} ******* Sınıf {{bt-latdiq|Sauropsida|}} ******* Sınıf {{bt-latdiq|Aves|Mırıçıki}} ******* Sınıf {{bt-latdiq|Synapsida|}} ******* Sınıf {{bt-latdiq|Mammalia|Çıceyıni}} {{Kontrolê_otoriteyi}} {{Taxonbar}} [[Kategoriye:Chordate]] i2s8uzzyiyfd81f8f2bhhlazebim3d7 Şablon:Bt-latdiq 10 100706 557888 2026-10-03T15:37:27Z Maviulke 34834 Ebe zerrekê '<includeonly>{{#if:{{{s|}}}|{{#switch:{{{s}}}|0=|1=<span style{{Eq}}"color:#696969">|2=<nowiki>[</nowiki>[[syn.]]&#032;|3=<span style{{Eq}}"color:#696969"><nowiki>[</nowiki>[[syn.]]&#032;|<span style{{Eq}}"color:{{{s}}}">}} {{#if:{{{1|}}}|<span style{{Eq}}"font-style:italic;" xml:lang{{Eq}}"LA" lang{{Eq}}"LA">{{{1}}}</span>{{#if:{{{aut|}}}|<span style{{Eq}}"font-variant:small-caps;font-style:normal;">&#032;{{{aut}}}</span>}}{{#if:{{{txt|}}}|&#032;{{{t...' ra pela newiye vıraziye 557888 wikitext text/x-wiki <includeonly>{{#if:{{{s|}}}|{{#switch:{{{s}}}|0=|1=<span style{{Eq}}"color:#696969">|2=<nowiki>[</nowiki>[[syn.]]&#032;|3=<span style{{Eq}}"color:#696969"><nowiki>[</nowiki>[[syn.]]&#032;|<span style{{Eq}}"color:{{{s}}}">}} {{#if:{{{1|}}}|<span style{{Eq}}"font-style:italic;" xml:lang{{Eq}}"LA" lang{{Eq}}"LA">{{{1}}}</span>{{#if:{{{aut|}}}|<span style{{Eq}}"font-variant:small-caps;font-style:normal;">&#032;{{{aut}}}</span>}}{{#if:{{{txt|}}}|&#032;{{{txt}}}}}{{#if:{{{2|}}}|&#032;—&#032;}}}}{{#if:{{{2|}}}|{{{2}}}}}{{#if:{{{3|}}}| &#032;ya da {{{3}}}}}{{#if:{{{4|}}}|&#032;ya da {{{4}}}}}{{#if:{{{5|}}}|&#032;ya da {{{5}}}}}{{#if:{{{6|}}}|&#032;ya da {{{6}}}}}{{#switch:{{{s}}}|0=|1=</span>|2=]|3=]</span>|</span>}}|{{#if:{{{1|}}}|<span style{{Eq}}"font-style:italic;" xml:lang{{Eq}}"LA" lang{{Eq}}"LA">{{#if:{{{b|}}}|'''[[{{{1|}}}]]'''|[[{{{1}}}]]}}</span>{{#if:{{{aut|}}}|<span style{{Eq}}"font-variant:small-caps;font-style:normal;">&#032;{{{aut}}}</span>}}{{#if:{{{txt|}}}|&#032;{{{txt}}}}}{{#if:{{{2|}}}|&#032;—&#032;}}}}{{#if:{{{2|}}}|[[{{{2}}}]]}}{{#if:{{{3|}}}|&#032;ya da [[{{{3}}}]]}}{{#if:{{{4|}}}|&#032;ya da [[{{{4}}}]]}}{{#if:{{{5|}}}|&#032;ya da [[{{{5}}}]]}}{{#if:{{{6|}}}|&#032;ya da [[{{{6}}}]]}}}}</includeonly><noinclude>{{doc}}[[Kategori:Biyoloji şablonları|{{SAYFAADI}}]]</noinclude> 57lws6iwy1hktpq34hpl2hq6xyrvbm6 Modul:Taxonbar/whitelist 828 100707 557902 2026-10-03T17:52:54Z Maviulke 34834 Ebe zerrekê 'local p = {} --returns any combination of strict/lax/all acceptable instance-of's, --either as a table for use inside [[Module:Taxonbar]] or another module, --or as an ordered list for use in documentation. function p.whitelist( frame ) local listType = frame.args[1] local documentation = frame.args[2] local outList = {} local acceptableInstanceOf_Strict = { --table order == display order 'Q16521', --taxon 'Q310890', --monotypic taxon 'Q4...' ra pela newiye vıraziye 557902 Scribunto text/plain local p = {} --returns any combination of strict/lax/all acceptable instance-of's, --either as a table for use inside [[Module:Taxonbar]] or another module, --or as an ordered list for use in documentation. function p.whitelist( frame ) local listType = frame.args[1] local documentation = frame.args[2] local outList = {} local acceptableInstanceOf_Strict = { --table order == display order 'Q16521', --taxon 'Q310890', --monotypic taxon 'Q47487597', --monotypic fossil taxon 'Q2568288', --ichnotaxon 'Q23038290', --fossil taxon 'Q59278506', --ootaxon 'Q98961713', --extinct taxon 'Q58051350', --paraphyletic group (subclass of taxon) } local acceptableInstanceOf_Lax = { --table order == display order 'Q42621', --hybrid 'Q235536', --incertae sedis 'Q713623', --clade 'Q848328', --serotype 'Q857968', --candidatus 'Q17487588', --unavailable combination 'Q124477390', --taxon hypothesis } if listType == 'strict' then outList = acceptableInstanceOf_Strict elseif listType == 'lax' then outList = acceptableInstanceOf_Lax else --elseif listType == 'all' then --concatenate strict + lax IIF requested local acceptableInstanceOf_All = {} local i = 0 for _, v in pairs( acceptableInstanceOf_Strict ) do i = i + 1 acceptableInstanceOf_All[i] = v end for _, v in pairs( acceptableInstanceOf_Lax ) do i = i + 1 acceptableInstanceOf_All[i] = v end outList = acceptableInstanceOf_All end if (documentation == nil) or --module only (documentation and documentation == '') then local out = {} for k, v in pairs( outList ) do out[v] = k --output Q# as keys for easier searching within Module:Taxonbar end return out elseif (documentation == 'docdoc') then --self-documentation only local selfdocout = 'myWhitelist = {\n' for k, q in pairs( outList ) do selfdocout = selfdocout..'\t\''..q..'\' = '..k..',\n' end selfdocout = selfdocout..'}' local args = { ['lang'] = 'lua', ['code'] = selfdocout } out = frame:expandTemplate{ title = 'Syntaxhighlight', args = args } return out else --normal documentation only local out = '' for _, q in pairs( outList ) do local Q = frame:expandTemplate{ title = 'Q', args = { q } } out = out..'# '..Q..'\n' end out = mw.ustring.gsub(out, '%s+$', '') return out end end return p 40qycyg4pq5dgwa2t859ci1hk9zyx1n Dı sımeyıni 0 100708 557920 2026-10-03T19:25:45Z Asmen 19 Asmen, pela [[Dı sımeyıni]] ra kırışt pela [[Dısımıni]]: Raştkerdış (gramer, imla ûçb.) 557920 wikitext text/x-wiki #HETENAYIŞ [[Dısımıni]] 6aeeexptqgy3fxzfnor6nrr2zfbnieb