Wikifunctions
wikifunctionswiki
https://www.wikifunctions.org/wiki/Wikifunctions:Main_Page
MediaWiki 1.47.0-wmf.4
first-letter
Media
Special
Talk
User
User talk
Wikifunctions
Wikifunctions talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
TimedText
TimedText talk
Module
Module talk
Translations
Translations talk
Event
Event talk
Wikifunctions:Suggest a function
4
1176
278283
274325
2026-05-26T22:21:58Z
Arlo Barnes
1231
/* Mars focus */ blog post
278283
wikitext
text/x-wiki
{{Shortcut|[[WF:SAF]]|[[WF:RF]]}}
Do you have an idea for a new function? Suggest it here! It may help to refer to [[Wikifunctions:Glossary|our glossary]].
There is currently '''a limited set of types to choose from''' for functions' inputs and outputs. These include text, numbers, lists, and of course Wikidata entities. For the full list, see [[WF:Type]].
* If you know the exact input and output types in advance, '''you can [https://www.wikifunctions.org/wiki/Special:CreateZObject?zid=Z8 create the function] right away''' instead of commenting here.<!--
--> Then create test cases to specify the expected behaviour for the function. (This means that even if you can't make an implementation, someone else might be able to.)<!--
--><br>Once created, consider adding new Functions to [[Wikifunctions:Catalogue|the catalogue]].
* If a function requires a new type, consider [[WF:TP|proposing that type]] before adding suggestions here.
[[Category:Maintenance]]
== Drafted functions ==
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"
! Functions with connected test cases and disconnected implementations
|-
| {{#tag:div|
Taken from [[quarry:query/105111]], last updated {{#formatdate:2026-05-07}}.
* {{Z+|Z10225}}
* {{Z+|Z18418}}
* {{Z+|Z24400}}
* {{Z+|Z24442}}
* {{Z+|Z25052}}
* {{Z+|Z26871}}
* {{Z+|Z26922}}
* {{Z+|Z27610}}
* {{Z+|Z30573}}
* {{Z+|Z30931}}
* {{Z+|Z31575}}
* {{Z+|Z31583}}
* {{Z+|Z32807}}
* {{Z+|Z33304}}
==== Cryptography and encodings ====
* {{Z+|Z15575}}
* {{Z+|Z15581}}
* {{Z+|Z22030}}
* {{Z+|Z24602}}
* {{Z+|Z31965}}
* {{Z+|Z24460}}
==== Datetime ====
* {{Z+|Z20628}}
* {{Z+|Z25917}}
* {{Z+|Z28738}}
* {{Z+|Z31694}}
==== NLG ====
* {{Z+|Z12451}}
* {{Z+|Z14537}}
* {{Z+|Z16313}}
* {{Z+|Z16398}}
* {{Z+|Z17073}}
* {{Z+|Z17970}}
* {{Z+|Z18166}}
* {{Z+|Z19512}}
* {{Z+|Z20471}}
* {{Z+|Z20473}}
* {{Z+|Z20475}}
* {{Z+|Z20495}}
* {{Z+|Z21240}}
* {{Z+|Z22018}}
* {{Z+|Z26049}}
* {{Z+|Z26121}}
* {{Z+|Z26955}}
* {{Z+|Z27245}}
* {{Z+|Z29144}}
* {{Z+|Z29568}}
* {{Z+|Z29784}}
* {{Z+|Z29953}}
* {{Z+|Z30232}}
* {{Z+|Z30410}}
* {{Z+|Z30635}}
* {{Z+|Z31335}}
* {{Z+|Z32238}}
* {{Z+|Z32270}}
* {{Z+|Z32822}}
* {{Z+|Z32825}}
* {{Z+|Z33057}}
* {{Z+|Z33138}}
* {{Z+|Z33762}}
* {{Z+|Z33995}}
* {{Z+|Z34088}}
* {{Z+|Z34165}}
* {{Z+|Z34209}}
}}
|}
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"
! Functions with connected test cases but no partial implementations
|-
| {{#tag:div|
Taken from [[quarry:query/105112]], last updated {{#formatdate:2026-05-07}}.
* <del>{{Z+|Z22836}}</del>
* <del>{{Z+|Z24608}}</del>
* <del>{{Z+|Z25065}}</del>
* <del>{{Z+|Z28180}}</del>
* {{Z+|Z28420}}
* {{Z+|Z30853}}
* <del>{{Z+|Z31682}}</del>
* {{Z+|Z31840}}
* {{Z+|Z31842}}
* {{Z+|Z34560}}
==== Cryptography and encodings ====
* <del>{{Z+|Z10135}}</del>
* <del>{{Z+|Z10136}}</del>
* {{Z+|Z11670}}
* {{Z+|Z11674}}
* {{Z+|Z15867}}
* {{Z+|Z31890}}
==== Datetime ====
* <del>{{Z+|Z20277}}</del>
* <del>{{Z+|Z33163}}</del>
==== NLG ====
* {{Z+|Z10658}}
* {{Z+|Z10708}}
* {{Z+|Z12014}}
* {{Z+|Z12121}}
* {{Z+|Z12801}}
* {{Z+|Z20476}}
* {{Z+|Z20480}}
* {{Z+|Z20512}}
* {{Z+|Z20692}}
* {{Z+|Z20715}}
* {{Z+|Z22620}}
* {{Z+|Z27268}}
* {{Z+|Z27600}}
* {{Z+|Z29036}}
* {{Z+|Z29085}}
* {{Z+|Z30463}}
* {{Z+|Z30623}}
* <del>{{Z+|Z30847}}</del>
* <del>{{Z+|Z30848}}</del>
* <del>{{Z+|Z32958}}</del>
* {{Z+|Z33451}}
* {{Z+|Z34092}}
* {{Z+|Z34149}}
* {{Z+|Z34150}}
* {{Z+|Z34274}}
* {{Z+|Z34479}}
* {{Z+|Z34623}}
}}
|}
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"
! Functions with disconnected test cases and no implementations
|-
| {{#tag:div|
Taken from [[quarry:query/105163]], last updated {{#formatdate:2026-05-09}}.
* {{Z+|Z30708}}
* {{Z+|Z32060}}
* {{Z+|Z33024}}
==== Datetime ====
* {{Z+|Z30323}}
==== NLG ====
* {{Z+|Z10670}}
* {{Z+|Z19132}}
* {{Z+|Z20484}}
* {{Z+|Z20530}}
* {{Z+|Z21874}}
* {{Z+|Z23182}}
* {{Z+|Z30647}}
* {{Z+|Z30883}}
* {{Z+|Z32728}}
* {{Z+|Z33031}}
* {{Z+|Z33094}}
* {{Z+|Z34432}}
}}
|}
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"
! Functions with no test cases nor implementations
|-
| {{#tag:div|
Taken from [[quarry:query/103406]], last updated {{#formatdate:2026-05-09}}.
* {{Z+|Z10596}}
* {{Z+|Z12710}}
* {{Z+|Z15836}}
* {{Z+|Z18026}}
* {{Z+|Z18218}}
* {{Z+|Z19535}}
* {{Z+|Z19611}}
* {{Z+|Z22226}}
* {{Z+|Z22227}}
* {{Z+|Z22806}}
* {{Z+|Z25596}}
* {{Z+|Z30711}}
* {{Z+|Z31313}}
* {{Z+|Z32062}}
* {{Z+|Z32313}}
* {{Z+|Z33117}}
* {{Z+|Z33252}}
* {{Z+|Z33288}}
* {{Z+|Z33923}}
* {{Z+|Z33946}}
* {{Z+|Z34138}}
* {{Z+|Z34270}}
* {{Z+|Z34541}}
* {{Z+|Z34542}}
==== Cryptography and encodings ====
* {{Z+|Z10138}}
* {{Z+|Z10139}}
* {{Z+|Z10475}}
==== Datetime ====
* {{Z+|Z14626}}
* {{Z+|Z24639}}
* {{Z+|Z25575}}
* {{Z+|Z31315}}
==== NLG ====
* {{Z+|Z10033}}
* {{Z+|Z10953}}
* {{Z+|Z17963}}
* {{Z+|Z19607}}
* {{Z+|Z20610}}
* {{Z+|Z21131}}
* {{Z+|Z24879}}
* {{Z+|Z27188}}
* {{Z+|Z28734}}
* {{Z+|Z29596}}
* {{Z+|Z29812}}
* {{Z+|Z30649}}
* {{Z+|Z31204}}
* {{Z+|Z31261}}
* {{Z+|Z31887}}
* {{Z+|Z32218}}
* {{Z+|Z32487}}
* {{Z+|Z32706}}
* {{Z+|Z33072}}
* {{Z+|Z33102}}
* {{Z+|Z33118}}
* {{Z+|Z33132}}
* {{Z+|Z33162}}
* {{Z+|Z33437}}
* {{Z+|Z33438}}
}}
|}
== Requests from Abstract Wikipedia editors ==
{{main|abstract:Project:Suggested functions}}
{{see also|toolforge:abstract-data/functions}}
=== Infobox ===
I'm thinking we can adapt [[w:module:infobox]] to create infobox HTML in abstract articles. Maybe it can even use info from Wikidata to populate it, like it already does on some wikis. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 06:34, 28 April 2026 (UTC)
:[https://www.wikifunctions.org/view/en/Z27873?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z27873%22%2C%22Z27873K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z27926%22%2C%22Z27926K1%22%3A%5B%22Z89%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z27873%22%2C%22Z27873K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z27926%22%2C%22Z27926K1%22%3A%5B%22Z89%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z35017%22%2C%22Z35017K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z33457%22%2C%22Z33457K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z34953%22%2C%22Z34953K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22853%22%2C%22Z22853K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30120%22%2C%22Z30120K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3130%22%7D%2C%22Z30120K2%22%3A%5B%22Z6030%22%2C%22Z6033%22%2C%22Z6036%22%5D%2C%22Z30120K3%22%3A%5B%22Z60%22%5D%2C%22Z30120K4%22%3A%5B%22Z6092%22%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P625%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P571%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P1082%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P421%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P2564%22%7D%5D%7D%7D%2C%22Z34953K2%22%3A%22Z1002%22%7D%7D%2C%22Z35017K2%22%3A%7B%22Z1K1%22%3A%22Z40%22%2C%22Z40K1%22%3A%22Z41%22%7D%2C%22Z35017K3%22%3A%7B%22Z1K1%22%3A%22Z13518%22%2C%22Z13518K1%22%3A%222%22%7D%2C%22Z35017K4%22%3A%7B%22Z1K1%22%3A%22Z13518%22%2C%22Z13518K1%22%3A%221%22%7D%2C%22Z35017K5%22%3A%7B%22Z1K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z883%22%2C%22Z883K1%22%3A%22Z6%22%2C%22Z883K2%22%3A%22Z6%22%7D%2C%22K1%22%3A%5B%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z882%22%2C%22Z882K1%22%3A%22Z6%22%2C%22Z882K2%22%3A%22Z6%22%7D%5D%7D%7D%5D%7D%2C%22Z27873K2%22%3A%22tr%22%2C%22Z27873K3%22%3A%5B%22Z6%22%5D%2C%22Z27873K4%22%3A%5B%22Z6%22%5D%7D%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z35034%22%2C%22Z35034K1%22%3A%22Z1002%22%2C%22Z35034K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z23451%22%2C%22Z23451K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30120%22%2C%22Z30120K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3130%22%7D%2C%22Z30120K2%22%3A%5B%22Z6030%22%2C%22Z6033%22%2C%22Z6036%22%5D%2C%22Z30120K3%22%3A%5B%22Z60%22%5D%2C%22Z30120K4%22%3A%5B%22Z6092%22%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P625%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P571%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P1082%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P421%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P2564%22%7D%5D%7D%2C%22Z23451K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P625%22%7D%7D%7D%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z35034%22%2C%22Z35034K1%22%3A%22Z1002%22%2C%22Z35034K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z23451%22%2C%22Z23451K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30120%22%2C%22Z30120K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3130%22%7D%2C%22Z30120K2%22%3A%5B%22Z6030%22%2C%22Z6033%22%2C%22Z6036%22%5D%2C%22Z30120K3%22%3A%5B%22Z60%22%5D%2C%22Z30120K4%22%3A%5B%22Z6092%22%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P625%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P571%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P1082%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P421%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P2564%22%7D%5D%7D%2C%22Z23451K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P571%22%7D%7D%7D%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z35034%22%2C%22Z35034K1%22%3A%22Z1002%22%2C%22Z35034K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z23451%22%2C%22Z23451K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30120%22%2C%22Z30120K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3130%22%7D%2C%22Z30120K2%22%3A%5B%22Z6030%22%2C%22Z6033%22%2C%22Z6036%22%5D%2C%22Z30120K3%22%3A%5B%22Z60%22%5D%2C%22Z30120K4%22%3A%5B%22Z6092%22%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P625%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P571%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P1082%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P421%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P2564%22%7D%5D%7D%2C%22Z23451K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P1082%22%7D%7D%7D%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z35034%22%2C%22Z35034K1%22%3A%22Z1002%22%2C%22Z35034K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z23451%22%2C%22Z23451K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30120%22%2C%22Z30120K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3130%22%7D%2C%22Z30120K2%22%3A%5B%22Z6030%22%2C%22Z6033%22%2C%22Z6036%22%5D%2C%22Z30120K3%22%3A%5B%22Z60%22%5D%2C%22Z30120K4%22%3A%5B%22Z6092%22%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P625%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P571%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P1082%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P421%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P2564%22%7D%5D%7D%2C%22Z23451K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P421%22%7D%7D%7D%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z35034%22%2C%22Z35034K1%22%3A%22Z1002%22%2C%22Z35034K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z23451%22%2C%22Z23451K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30120%22%2C%22Z30120K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3130%22%7D%2C%22Z30120K2%22%3A%5B%22Z6030%22%2C%22Z6033%22%2C%22Z6036%22%5D%2C%22Z30120K3%22%3A%5B%22Z60%22%5D%2C%22Z30120K4%22%3A%5B%22Z6092%22%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P625%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P571%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P1082%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P421%22%7D%2C%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P2564%22%7D%5D%7D%2C%22Z23451K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P2564%22%7D%7D%7D%5D%7D%2C%22Z27873K2%22%3A%22table%22%2C%22Z27873K3%22%3A%5B%22Z6%22%2C%22class%22%2C%22float%22%5D%2C%22Z27873K4%22%3A%5B%22Z6%22%2C%22wikitable%22%2C%22inline-end%22%5D%7D I tried...] The timeouts are too much for this still. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 03:48, 10 May 2026 (UTC)
== Proposed functions requiring only available types ==
=== String ===
==== String character discard functions ====
==== String character replacement functions ====
Add the word 'the' to the start of a function. e.g United Kingdom - the United Kingdom. [[User:FantasticWikiUser|FantasticWikiUser]] ([[User talk:FantasticWikiUser|talk]]) 11:27, 25 March 2026 (UTC)
:Yes… simple enough to do but not entirely clear when it is required. We’ve been [https://t.me/Wikifunctions/29989 discussing it on Telegram]. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:10, 25 March 2026 (UTC)
::This was an issue I found on [[abstract:Q21]] when I couldn't add it there. [[User:FantasticWikiUser|FantasticWikiUser]] ([[User talk:FantasticWikiUser|talk]]) 12:16, 25 March 2026 (UTC)
:I worked on {{z|Z33138}} today. I'm not sure it covers all corner cases, feel free to try it out and add more tests :) [[User:So9q|So9q]] ([[User talk:So9q|talk]]) 20:32, 5 April 2026 (UTC)
==== String search functions ====
==== String escaping and unescaping functions ====
==== String encoding and decoding functions ====
* Unicode normalising functions (there are several types of normalisation)
* [https://html.spec.whatwg.org/#named-character-references HTML named character encode]
* [[wikidata:Q47466379|Punycode encode]] - {{z+|Z10178}} (part only, not whole url); see also {{z+|Z10185}}
* [[:en:Unified_English_Braille|Unified English Braille encode]] (discarding invalid characters?)
*[https://braille-autoriteit.org/standaarden/achtpuntsbraille/ Dutch eight-dot Braille] encode [[User:JhowieNitnek|JhowieNitnek]] ([[User talk:JhowieNitnek|talk]]) 21:38, 17 January 2026 (UTC)
*[https://braille-autoriteit.org/standaarden/achtpuntsbraille/ Dutch eight-dot Braille] decode [[User:JhowieNitnek|JhowieNitnek]] ([[User talk:JhowieNitnek|talk]]) 21:38, 17 January 2026 (UTC)
*[https://braille-autoriteit.org/versie-2019-van-zespunts-standaard/ Dutch six-dot Braille] encode [[User:JhowieNitnek|JhowieNitnek]] ([[User talk:JhowieNitnek|talk]]) 21:38, 17 January 2026 (UTC)
*[https://braille-autoriteit.org/versie-2019-van-zespunts-standaard/ Dutch six-dot Braille] decode [[User:JhowieNitnek|JhowieNitnek]] ([[User talk:JhowieNitnek|talk]]) 21:38, 17 January 2026 (UTC)
*[[google:ipa+braille&oq=IPA+Braille&gs_lcrp=EgZjaHJvbWUqDAgAECMYJxiABBiKBTIMCAAQIxgnGIAEGIoFMg0IARAAGIYDGIAEGIoFMg0IAhAAGIYDGIAEGIoFMgoIAxAAGIAEGKIEMgoIBBAAGIAEGKIEMgYIBRBFGDwyBggGEEUYPTIGCAcQRRg90gEHMjMyajBqN6gCALACAA&sourceid=chrome&ie=UTF-8|IPA Braille]] encode (IPA --> IPA Braille) [[User:JhowieNitnek|JhowieNitnek]] ([[User talk:JhowieNitnek|talk]]) 11:42, 18 January 2026 (UTC)
*[[google:ipa+braille&oq=IPA+Braille&gs_lcrp=EgZjaHJvbWUqDAgAECMYJxiABBiKBTIMCAAQIxgnGIAEGIoFMg0IARAAGIYDGIAEGIoFMg0IAhAAGIYDGIAEGIoFMgoIAxAAGIAEGKIEMgoIBBAAGIAEGKIEMgYIBRBFGDwyBggGEEUYPTIGCAcQRRg90gEHMjMyajBqN6gCALACAA&sourceid=chrome&ie=UTF-8|IPA Braille]] decode (IPA Braille --> IPA) [[User:JhowieNitnek|JhowieNitnek]] ([[User talk:JhowieNitnek|talk]]) 11:42, 18 January 2026 (UTC)
==== String presentation functions ====
* add [[:en:Quotation_mark|locale-specific quotation marks]] to string
** Shouldn't the output depend on the locale? See [[mw:Extension:Scribunto/Lua_reference_manual#mw.language:formatNum|mw.language:formatNum]]. —[[User:Dexxor|Dexxor]] ([[User talk:Dexxor|talk]]) 17:15, 4 September 2023 (UTC)
==== String colour notation functions ====
* Hue of color (since we already have [[Z13017]], [[Z18263]] and [[Z18268]])
==== String notation validation checks ====
* check if string is an [[:en:International_Chemical_Identifier]]
** {{Partly done}} see {{z+|Z21539}}. Supports the verification of the chemical formula and the stereochemical layer. There are 13 testcaes that I've written, all of which are passed by my JavaScript implementation. Note that a python implementation is not possible as the regex module is not available in Wikifunctions. [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 03:09, 11 January 2025 (UTC)
** To do:
*** Needs to verify the hydrogen and connection sections of the main layer
*** Support the charge layer
*** Support the isotopic layer
**[[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 03:09, 11 January 2025 (UTC)
***{{ping|MolecularPilot}} A python impl. is infact possible. I created a basic direct translation at {{z+|Z22823}}. Some tests are failing as the regex needs a bit of sorting out, out of scope for me, but you can give it a try! Keep in mind that you need to escape any \ with a \\ just before saving per [[Wikifunctions:Python_implementations#Known_limitations_as_of_October_2024]]. <span style="font-family:monospace;font-weight:bold">[[User:Bunnypranav|<span style="color:#63b3ed">~/Bunny</span><span style="color:#2c5282">pranav</span>]]:<[[User talk:Bunnypranav|<span style="color:#63b3ed">ping</span>]]></span> 06:14, 26 February 2025 (UTC)
* check if string is a [[:en:SMILES_arbitrary_target_specification|SMILES arbitrary target specification (SMARTS) notation]]
* check if string is an [[:en:ABC_notation|ABC notation]]
* check if string is a [[:en:LilyPond|LilyPond notation]]
* check if string is a [[:en:UIC_classification_of_locomotive_axle_arrangements|UIC classification of locomotive axle arrangements notation]]
* check if a string is a valid [[:en:Digital_object_identifier|DOI]]
** Something about implementation difficulties: https://stackoverflow.com/questions/27910/finding-a-doi-in-a-document-or-page [[User:Alexander-Mart-Earth|Alexander-Mart-Earth]] ([[User talk:Alexander-Mart-Earth|talk]]) 14:28, 21 December 2023 (UTC)
==== String validation checks ====
* check if string is a valid ISO 3166 country code
* check if string is a valid [[:en:ISO_8601#EDTF|EDTF]] date/time
====String analysis functions====
==== Monolingual text ====
==== String Wikitext operations ====
...
=== Natural number ===
=== Integer===
=== Byte ===
See [[Wikifunctions:Catalogue/Boolean operations#Byte functions|existing Byte functions]] in catalogue.
* next byte without overflow: byte → byte
* previous byte without overflow: byte → byte
* next byte by Gray code: byte → byte
* previous byte by Gray code: byte → byte
* all bits set: byte → boolean
* no bits set: byte → boolean
* add bytes without overflow: byte, byte → byte
* subtract bytes without overflow: byte, byte → byte
* multiply bytes without overflow: byte, byte → byte
* add bytes with overflow: byte, byte → byte
* subtract bytes with overflow: byte, byte → byte
* multiply bytes with overflow: byte, byte → byte
* modulo bytes: byte, byte → byte
* byte division: byte, byte → byte
* right shift: byte → byte
* left shift: byte → byte
* right shift by n: byte, natural number → byte
* left shift by n: byte, natural number → byte
* right shift as ring: byte → byte
* left shift as ring: byte → byte
* right shift by n as ring: byte, natural number → byte
* left shift by n as ring: byte, natural number → byte
=== Unicode code point ===
See [[Wikifunctions:Catalogue/Character operations#Unicode code points|existing code point functions in catalogue]].
* Codepoint to list of bytes for UTF-8
* Codepoint to list of bytes for UTF-16
* Codepoint to list of bytes for UTF-32
===Object===
=== List ===
==== Basic list/iterable functions ====
==== Complex list functions ====
==== CSV list operations ====
=== Functions with functions as arguments ===
* test whether certain functions have specific properties of [[:w:Homogeneous_relation|homogeneous relations]] for particular lists/sets
=== Gregorian calendar date ===
See [[Wikifunctions:Catalogue/Date operations#Gregorian calendar dates|catalogue of calendar date functions]] for existing functions.
* Create a reading function for Dagbani that handles all the possible formats (both the English-linke and the traditional ones, both the Gregorian and the Hijra calendars). [https://docs.google.com/document/d/1u7-ZeY7NHt75JICUPAYky3-7KgkvauD_W3fBjmvpFO0/edit?tab=t.0#heading=h.gf6hp9o3gi0j] [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 15:43, 31 May 2025 (UTC)
* same day of the year: date, date → boolean
* same day of the week: date, date → boolean
* within a year: date, date → boolean
* within a week: date, date → boolean
* within n days: date, date → boolean
* months between: date, date → natural number
* weeks between: date, date → natural number
* n days later: date, natural number → date
* n days earlier: date, natural number → date
* n weeks earlier: date, natural number → date
* n months later: date, natural number → date
* n months earlier: date, natural number → date
* n years later: date, natural number → date
* n years earlier: date, natural number → date
* Julian day number to date: integer → date
* how many leap days passed between two dates: date, date → natural number
* how many weekdays between two dates: date, date, day of the week → natural number
* within JavaScript's date implementation: date → boolean
* next time a day of the month is on a specific weekday: date, natural number, day of the week → date
* next Friday the 13th: date → date
* nth weekday of the month: date, day of the week, natural number → date
* nth working days after: date, list of wikidata item references (list of holidays), wikidata item reference (place) → date
=== Gregorian year ===
See [[Wikifunctions:Catalogue/Date operations#Gregorian year|catalogue of year functions]] for existing functions.
== Morphological functions ==
{{main|WF:HL}}
== Proposed functions requiring future types ==
'''Note these functions cannot be implemented properly until the needed types are requested and approved.'''
If one wishes to nevertheless attempt to define and implement them,
* the functions and implementations should indicate prominently in their labels that their input/output types must be adjusted once support for the appropriate replacement types become available; ''and''
* the functions should ''not'' be used in the implementations of any other functions, as the later adjustment of input/output types to appropriate replacements will break those implementations.
=== String manipulation functions ===
=== String analysis functions ===
* count distance between two letters in given alphabet (default to 26-charcater western alphabet. case insensitive. e.g. "a" & "A" ⇒ 0; "K" & "N" ⇒ 3)
=== String encoding and decoding functions ===
(would be better with types representing a stream of bytes)
* [[wikidata:Q113486941|BASE45 encode]]
* [[wikidata:Q113486941|BASE45 decode]]
* Hexadecimal UTF-8 encode ("ABC ₤" ⇒ "41 42 43 20 E2 82 A4")
* Hexadecimal UTF-8 decode ("41 42 43 20 E2 82 A4" ⇒ "ABC ₤")
* Decimal UTF-8 encode ("ABC ₤" ⇒ "65 66 67 32 226 130 164")
* Decimal UTF-8 decode ("65 66 67 32 226 130 164" ⇒ "ABC ₤")
* Octal UTF-8 encode ("ABC ₤" ⇒ "101 102 103 40 342 202 244")
* Octal UTF-8 decode ("101 102 103 40 342 202 244" ⇒ "ABC ₤")
* Binary UTF-8 encode ("ABC ₤" ⇒ "01000001 01000010 01000011 00100000 11100010 10000010 10100100")
* Binary UTF-8 decode ("01000001 01000010 01000011 00100000 11100010 10000010 10100100" ⇒ "ABC ₤")
* Unicode code point encode ("ABC ₤" ⇒ "41 42 43 20 20A4") - {{z+|Z10785}}
* Unicode code point decode ("41 42 43 20 20A4" ⇒ "ABC ₤")
* Create regular expression object/string (i.e: "test" & "i" to /test/i)
=== Natural language functions ===
* Choose singular or plural based on number (e.g. singularOrPlural("person",6") -> "people")
** Note that there are also dual and other [[:w:grammatical number|grammatical number]]s in other languages. [[User:魔琴|魔琴]] ([[User talk:魔琴|talk]]) 18:54, 26 October 2023 (UTC)
** relevant interwiki link: [[d:WD:property proposal/plural forms]] [[User:Arlo Barnes|Arlo Barnes]] ([[User talk:Arlo Barnes|talk]]) 04:15, 9 February 2024 (UTC)
**:Was rejected.
**:The similar proposal {{P|13986}} was accepted, but per the comments on your proposal, just having that set (and [[Z30455|mapping it to one of our enums]]) isn't sufficient since a language might have exceptions to its conjugation rules, or handle rational/real numbers in different ways.
**:Being able to make use of CLDR data might still be desirable to avoid hardcoding rules and exceptions into Functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 02:16, 18 December 2025 (UTC)
** This is duplicated with a suggestion above. There's some work done already: [[Z15977]]. We also have lightweight enums like {{Z|28215}} now. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 21:11, 30 November 2025 (UTC)
=== Cryptographic functions ===
(would be better with types representing a stream of bytes)
* {{todo}} [[wikidata:Q47477417|MD2]] - {{z+|Z10135}}
* {{todo}} [[wikidata:Q47462255|MD4]] - {{z+|Z10136}}
* {{todo}} [[wikidata:Q27036232|MD5]] - {{z+|Z10137}}
* {{todo}} [[wikidata:Q47208127|RIPEMD-128]] - {{z+|Z10138}}
* {{todo}} [[wikidata:Q47208127|RIPEMD-160]] - {{z+|Z10139}}
* {{todo}} [[wikidata:Q47463469|BLAKE2b-160]] - {{z+|Z10140}}
* {{todo}} [[wikidata:Q47463469|BLAKE2b-256]] - {{z+|Z10141}}
* {{todo}} [[wikidata:Q47463469|BLAKE2b-384]] - {{z+|Z10142}}
* {{todo}} [[wikidata:Q47463469|BLAKE2b-512]] - {{z+|Z10143}}
* {{todo}} [[wikidata:Q47463469|BLAKE2s-128]] - {{z+|Z10144}}
* {{todo}} [[wikidata:Q47463469|BLAKE2s-160]] - {{z+|Z10145}}
* {{todo}} [[wikidata:Q47463469|BLAKE2s-224]] - {{z+|Z10146}}
* {{todo}} [[wikidata:Q47463469|BLAKE2s-256]] - {{z+|Z10147}}
* {{todo}} [[wikidata:Q47465971|SHA-224]] - {{z+|Z10149}}
* {{todo}} [[wikidata:Q47465971|HMAC-SHA-256]]
* {{todo}} [[wikidata:Q87486893|SHAKE-128]] - {{z+|Z10150}}
* {{todo}} [[wikidata:Q87486893|SHAKE-256]] - {{z+|Z10151}}
* {{todo}} [[wikidata:Q56099240|ChaCha20]] - {{z+|Z25376}}
* {{todo}} [[wikidata:Q56099436|X25519]] - {{z+|Z25393}}
* {{todo}} [[wikidata:Q1190947|Keccak-f[1600]]] - {{z+|Z25399}}
=== Date, time, and calendric functions ===
See also:
* Discussion of types at [[WF:type#Calendar types]]
* {{q|139667974}} Lua module
==== Earth focus ====
[[file:Axial and apsidal precession.png|thumb|alt=diagram|orbit of Earth]]
===== Bengali calendar =====
{{z+|Z12926}}
===== Chinese calendar =====
===== French Republican Calendar =====
decimalises and secularises the Gregorian
* day names: {{z+|Z13006}}{{not done}} '''yet'''
===== Gregorian =====
widely used calendar derived from the Julian, basis for [[xkcd:1179|ISO 8601]]
* date to ISO week number {{q|2110154}}
* string to date
* date to ISO 8601 string
*: {{done}}, see {{z+|Z21842}}. --[[User:Sbb1413|Sbb1413]] ([[User talk:Sbb1413|talk]]) 18:47, 21 January 2025 (UTC)
* date to year (yyyy)
* date to month of the year (1-12)
* date to month name (January-December)
* date to day of the month (1-31)
* date to hour of the day (0-23)
* date to minutes (0-59)
* date to seconds (0-59)
Named Day from Date or day of year ; Input type : Date ; Output Type : String. ; The initial use case was automated population of On The Day, based on various collections of Holidays, festival days and observances. ? [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:35, 26 March 2025 (UTC)
: So If you gave it 2025-05-01 It said "All Fools Day" etc.. Possibly an additional input of enumrated type to indicate which data set to pull holidays, fesitvals and observances from.
[[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:35, 26 March 2025 (UTC)
Diary/calander Header function - Using the above and other date functions, generates a data set from a given date. Hence if you give it 2003-05-01 you get back a JOSN set contianing the {Day of week:String, Day in the Month, Observances} etc. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:35, 26 March 2025 (UTC)
===== Holocene calendar =====
* [[w:en:Holocene calendar#Conversion]]
*: {{done}}, see {{z+|Z21913}}. --[[User:Sbb1413|Sbb1413]] ([[User talk:Sbb1413|talk]]) 13:30, 25 January 2025 (UTC)
===== Indian national calendar =====
===== Islamic =====
a Lunar calendar, also called Hijri
===== Julian =====
mostly used by astronomers, some historians, and some Orthodox Christian denominations
===== Mesoamerican calendars =====
including civil and clerical forms
===== Persian =====
also called Jalali
===== Thai calendar =====
===== Hebrew calendar =====
==== Mars focus ====
[[file:Lowell - Mars (1894) - Diagram of the Orbits of Mars and the Earth.jpg|thumb|alt=diagram|orbit of Mars]]
[https://simia.net/wiki/Time_on_Mars blog post]
===== Asgardian calendar =====
Proposed time-keeping system for Mars; base on the [https://asgardia.space/en/calendar online converter]; see [[w:Asgardia|Asgardia]] for context
===== Darian calendar =====
Proposed time-keeping system for Mars, requires Julian Date/Time to calculate and a month enumeration: [[WF:type proposals#Something to think about]]
===== Lukashian calendars =====
Proposed simple perpetual calendar system designed to be extensible to other reference frames (for example a Mars-centric one). Eschews leap-units.
* [https://lukashian.org/download Java] reference implementation
* [https://github.com/The-Lukashian-Calendar/lukashian GitHub]
=== Basic numerical functions ===
* round up ("1.289" & "2" ⇒ "1.29"; "5678" & "2" ⇒ "5700")
*: So if the number is floating point, round to n decimal places, and if not, round to n significant figures. Is that right? [[User:BrightSunMan|BrightSunMan]] ([[User talk:BrightSunMan|talk]]) 19:36, 24 December 2023 (UTC)
*: {{done}} {{Z|20053}}/{{Z|21043}} and {{Z|27705}}/{{Z|21047}}
* round down
** {{done}} {{Z|20032}}/{{Z|20841}}
* return integer value (5678.678 ⇒ 5678)
** {{done}} {{Z|19841}}/{{Z|26315}}
* {{z+|Z13587}} (23 ⇒ "twenty-three")
* Convert money from US$ to anything else
** requires source of conversion rates, which is a hole in function-likeness
* Arabic numeral to Etruscan numeral
* Etruscan numeral to Arabic numeral
=== Data serialization functions ===
* parse a string as [[:en:JSON|JSON]]
* extract string from JSON object based on [[:d:Q121208951|JSONPath]] (<code>{"name":"Alice"}</code>, "$.name" ⇒ "Alice")
*:Why not first convert a JSON string to an object, and then have a function that extracts fields based on JSONPath? Doing Stringly-typed things like this proposal as defined isn't a good idea. [[User:0xDeadbeef|0xDeadbeef]] ([[User talk:0xDeadbeef|talk]]) 16:16, 5 August 2023 (UTC)
*::This seems to be a good idea, thanks! I moved and splitted the proposal accordingly. --[[User:1-Byte|1-Byte]] ([[User talk:1-Byte|talk]]) 09:51, 6 August 2023 (UTC)
*:: is it okay to go ahead to create this 'extract string from JSON object based on JSONPath' as a function ? [[User:Dolphyb|Dolphyb]] ([[User talk:Dolphyb|talk]]) 16:14, 15 February 2024 (UTC)
=== Basic list/iterable functions requiring numeric types ===
* [[w:en:Lehmer random number generator#Sample C99 code]]
* Sum the elements of a numeric list - {{z+|Z14038}}
* Product of the elements of a numeric list
** {{done}} {{Z|23909}}/{{Z|13558}}
* {{z+|Z12676}}
* Slice of list elements: for the supplied list, return a list of elements that are at indexes between a supplied range n:m
** Zero indexing is used (first element is index 0)?
** n and m are are included in the range?
** What happens if n and/or m are invalid indexes?
** {{done}} {{Z+|Z26556}}
* Remove slice of elements from list: return the supplied list with elements between a supplied range of indexes removed
** Zero indexing is used (first element is index 0)?
** n and m are are included in the range?
** What happens if n and/or m are invalid indexes?
* Every nth element of list: returns every nth element of the supplied list
** {{done}} {{Z+|Z28735}}
* Remove every nth element of list: removes every nth element of the supplied list -
* sample n objects from list (return up to n [[Wikifunctions:Determinism|random]] objects from the list)
* Jaccard similarity coefficient (see https://en.wikipedia.org/wiki/Jaccard_index)
* Weighted average. Supply a list of values, and a second list of the same length of their weights. Returns a weighted average
** Example Input: <code>values = [10, 20, 30]</code>, <code>weights = [1, 2, 3]</code>
** Output: <code>23.33</code>
** {{done}} {{Z+|Z28066}}
=== Geodetics functions ===
[[w:en:planetary coordinate system]], [[w:en:well-known text representation of coordinate reference systems]]
==== Earth ====
* convert coordinates outside of the ranges (-180, 180) for longitude and (-90, 90) for latitude to a canonical form
* [https://plus.codes Plus Codes] to/from geocoordinates
** functions should match the semantics of the [https://github.com/google/open-location-code/blob/main/Documentation/Specification/specification.md#api-requirements expected API]: <code>is valid Plus Code?</code>, <code>is shortened Plus Code?</code>, <code>is full Plus Code?</code>, {{z+|Z25963}}, <code>co-ordinates from Plus Code</code> ([https://github.com/google/open-location-code/blob/main/Documentation/Specification/specification.md#decoding SW corner]), <code>shorten Plus Code</code>, <code>recover nearest Plus Code</code>
** implementations for JS and Python are provided, Apache 2.0 licenced, not sure how self-contained they are
** most of the functions could also be implemented by composition
** sample data is provided for testing (it's ~500 cases for each of encode/decode and ~50 cases for each of the others, but they're grouped nicely so maybe take 1 from each)
==== Mars ====
[[w:en:areography#Cartography and geodesy]]
* convert coordinates outside of the ranges [0, 360) for longitude and (-90, 90) for latitude to a canonical form
==== Moon ====
[[w:en:selenography#Lunar cartography and toponymy]]
=== Unit conversion functions ===
* {{z+|Z15560}}
::The function has two implementations now. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 20:32, 20 February 2026 (UTC)
=== Conversion function : 2D Cartesian to 2D Polar ===
Input : matrix [x,y]
Output: matrix [θ,r]
Short text : Polar conversion of x,y to a polar space centred at 0,0 in the Cartesian.
Constraints: x,y,r are reals (float64), θ lies in the range -π<0<π (Sign determined in relation to standards used in STEM applications.
[[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 14:30, 26 March 2025 (UTC)
:The companion could also be provided. As I never did Geodetic functions, I am not sure how Lat, Long to map projection would work , but useful. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 14:30, 26 March 2025 (UTC)
:See also [[WF:Type proposals/complex128]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:17, 1 December 2025 (UTC)
=== Trigonometric functions ===
* {{Z|Z16463}}, {{Z|Z12473}},
*: Input : float64 Angle in radians.
*: Output : float64 desired trignometric value
[[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:40, 26 March 2025 (UTC)
* {{Z|Z29125}}
*:Inputs: 2D Point (float64s, Reals, or perhaps [[WF:Type_proposals/complex128|a single complex number]]), angle (float64 or Real)
*:Output: 2D Point (matching the input type)
*:Not necessarily one single function; one can be created for each input type
[[User:WrenFalcon|WrenFalcon]] ([[User talk:WrenFalcon|talk]]) 22:05, 31 July 2025 (UTC)
==== Function proposal : Decimalise angle of the form ('1:x' or '1 in x') to % (in 100) or ‰ (in 1000) ====
*Suggested name: gardient_decimal.
*Input type: Integer ( The 1 is implied.). Lower Bound +1: Upper Bound: 1000 (for most practical situations?)
*Output type: Real/float 64.
Proposer: [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:05, 28 March 2025 (UTC)
===Color Functions===
==== Colorspace Conversion ====
x,y,Y to sRGB (Illuminant D65).
Input : 3tuple of float64,
Output: 3 tuple of integer, where 0>=r<=255, 0>=g<=255 0>=b<=255.
Convert a color specfied as 3 float64 values, from x,y,Y colorspace to sRGB or raise an "Out of Gaumt" exception.
[[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:09, 7 April 2025 (UTC)
==== Spectral Approximate from sRGB or XYZ values. ====
I'd like to see the techniques detailed here: http://scottburns.us/reflectance-curves-from-srgb/ implemented in Wikifunctions as the provided spreadhseet later in the paper doesn't appear to work with Libre Office. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:32, 2 June 2025 (UTC)
==== Subtractive color mix (Pigment style) ====
Implement the mixing function from Spectral.js (https://github.com/rvanwijnen/spectral.js/blob/3.0.0/spectral.js )(MIT license), to allow 2 or more sRGB triplets to be mixed like pigment colors. This is different from the subtract colors function implemented previously.
=== Music Functions ===
It would be nice to have '''12 equal temperament pitch class''' and '''12 equal temperament pitch''' types, as they would be useful for calculating harmonies and melodies. The pitch classes could be stored as natural numbers from 0 to 11, and represented with symbols C, C♯, D, ..., B. The pitches could be stored as integers with -1 being B3, 0 being C4, 1 being C♯4, etc. Over time, we could expand the pitch class and pitch types to other temperaments and just intonation. As I'm new to Wikifunctions and my coding skills are next to zero, this is just a suggestion to the community. (edited) [[User:CaffeineP|CaffeineP]] ([[User talk:CaffeineP|talk]]) 14:48, 9 April 2025 (UTC)
:Yes… There are some notational challenges because of enharmonics as well as naming conventions varying by language/culture, so English A♯ is equivalent to German B and English B♭, for example. Ideally, I would want the (English) pitch class that is five semitones higher than G♭ to be displayed as C♭ rather than B.
:Also, given some reference pitch like A4 = 440 Hz, we should be able to return the frequency in hertz of a given pitch and, conversely, the nearest pitch for a given frequency and its offset in cents (or whatever). The computation is a lot simpler than representing the result (or capturing how the result should be represented)! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 20:08, 9 April 2025 (UTC)
:If you use the cardinal values for the pitches from the MIDI standard (or an extension to such, since they're limited to 0..<128) then you could make some of these functions already, no [[WF:Type_proposals|type proposal]] needed. Granted a lot of them would just be addition/subtraction. And if you semi-arbitrarily map A = 0, A# = 1, etc. then you could do all of them. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:33, 1 December 2025 (UTC)
* '''12-ET Pitch Class of a Pitch''': Return the 12 equal temperament pitch class of a given 12 equal temperament pitch. For example, C4 returns C.
* '''12-ET Pitch based on Pitch Class''': Return a 12 equal temperament pitch based on a given 12 equal temperament pitch class and a given integer. For example, C and 4 return C4.
* '''Interval between 12-ET Pitch Classes in Semitones''': Get the interval in semitones between two 12 equal temperament pitch classes, always assuming that the first is lower than (or the same as) the second, and the interval is less than an octave. For example, C and B return 11, while B and C return 1.
* '''Interval between 12-ET Pitches in Semitones''': Get the interval in semitones between two 12 equal temperament pitches. For example, C4 and B3 return -1, while C3 and B4 return 23.
** {{Z+|Z25219}}
* '''Raise 12-ET Pitch Class by Semitones''': Get a new 12 equal temperament pitch class through raising a given pitch class by the provided number of semitones. For example, raising B by 1 semitone returns C.
** {{Z+|Z25407}}
* '''Lower 12-ET Pitch Class by Semitones''': Same as above, but lower the pitch class instead of raising it.
** {{Z+|Z25407}}
* '''Raise 12-ET Pitch by Semitones''': Get a new 12 equal temperament pitch through raising a given pitch by the provided number of semitones. For example, raising B3 by 1 semitone returns C4.
* '''Lower 12-ET Pitch by Semitones''': Same as above, but lower the pitch instead of raising it.
* '''Frequency of a 12-ET Pitch''': Return a float64 frequency in Hz based on the provided 12 equal temperament pitch (and possibly a reference pitch with its frequency; if not provided, take default A4 = 440 Hz).
** {{Z+|Z25217}}
* '''Approximate 12-ET Pitch Class based on Frequency''': Return a 12 equal temperament pitch class approximately based on the provided frequency in Hz.
* '''Approximate 12-ET Pitch based on Frequency''': Return a 12 equal temperament pitch approximately based on the provided frequency in Hz.
=== SVG Functions ===
I would be nice to generate SVG (a XML-based vector image format which is basically a long string), it could allow to replace a lot of images on Commons or templates/tools. Here some examples:
* create simple forms,
* create graphs (line graph/bar graph for population or for production, elections diagrams like [[:File:1900Hawaii.svg]], etc.),
* create more complex visualisation like genealogical trees,
* create coat of arms (?),
* etc.
Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:47, 23 April 2025 (UTC)
:@[[User:VIGNERON|VIGNERON]]: Eventually that is something we might support, but there'll be nothing any time soon. It has a number of complex security and scalability concerns, sadly. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 13:21, 23 April 2025 (UTC)
::{{ping|Jdforrester (WMF)}} thanks. I talked about it for the last Corner but I wanted to leave a record here, if we have time, maybe I'll use that time to write some things to prepare (like listing templates and tools on the Wikimedia projects that generate SVG or visualisations). Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 15:28, 23 April 2025 (UTC)
:::Of course! I've explicitly added a section on this here: [[Wikifunctions:Embedded function calls#Non-text output]] — hope that helps assure you that we're thinking about it. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 21:40, 23 April 2025 (UTC)
:An intermediate step could be replicating some of the [https://w3.org/TR/SVG11/filters.html functions] contained within {{Q|1518348}} [[User:Arlo Barnes|Arlo Barnes]] ([[User talk:Arlo Barnes|talk]]) 06:22, 5 May 2026 (UTC)
=== Biology ===
==== Taxon functions ====
A taxon type could be useful, as could a taxon rank enum ({{Q|P31}} {{Q|Q427626}}). --[[User:WrenFalcon|WrenFalcon]] ([[User talk:WrenFalcon|talk]]) 16:49, 22 September 2025 (UTC)
* Wikidata item representing taxon rank ({{Q|P31}} {{Q|Q427626}}) is at genus level or below
** Should(?) be possible with the current Wikidata functionality, from what I understand. See [[:Wikifunctions:Project chat#Taxon rank function(s)]] for a more detailed explanation. --[[User:WrenFalcon|WrenFalcon]] ([[User talk:WrenFalcon|talk]]) 23:27, 16 May 2025 (UTC)
* compare taxon ranks
** Cases: a < b, a == b, a > b, undetermined/incomparable (if a or b are clades, this should be returned/used)
* get taxon code of nomenclature ({{Q|P944}})
* is parent taxon of / is child taxon of
** <code>is parent taxon of(Taxon a, Taxon b) => b.parent == a OR is parent taxon of(a, b.parent)</code>
* format taxon name (according to relevant rules of nomenclature)
** Include author and year citation? Maybe page too, if present?
== Object / type / function functions ==
== External function lists ==
* [[WF:importing]]
n90f20k5vnecjfkuib7s4xfq1jorq7v
Wikifunctions:Project chat
4
1184
278257
278250
2026-05-26T12:29:33Z
YoshiRulz
10156
/* Type documentation template */ new section
278257
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== “Key not found ()”? ==
What am I doing wrong in {{Z|Z34137}}? [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 00:39, 25 April 2026 (UTC)
:You were passing a [[Z6091]] to {{Z|32290}}, but it takes a [[Z6001]]. Fixed. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 07:10, 26 April 2026 (UTC)
::{{done|Thank you}}! [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 14:13, 26 April 2026 (UTC)
== Is it OK to connect the implementation? ==
Hello!
I recently applied for functioneer on [[WF:RFG]], and I was wondering whether I could connect the implementation for {{Z|Z34165}} despite its dependency {{Z|Z34149}} being currently unimplemented. That is <em>if</em> I get accepted.
I am planning on implementing it based on [[wikt:module:bg-nominal]], but am still having trouble figuring it out for now. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 09:04, 26 April 2026 (UTC)
== Past tense function ==
Is there a function like {{Z|Z26039}}, but for the past tense (e.g. "Leo Tolstoy <em>was</em> a writer.")?
If not, I will create it myself, I just want to make sure there's not a duplicate. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:10, 26 April 2026 (UTC)
: {{Done}} with {{Z|Z34224}}, but I have a few kinks to work out with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:35, 26 April 2026 (UTC)
:: I need to create some other similar functions for the past tense, I have some ideas:
::* {{Z|Z26095}}
::* {{Z|Z32643}}
::* {{Z|Z28016}}
::* {{Z|Z26570}}
::* {{Z|Z33975}}
::* {{Z|Z27243}}
::* <ins>{{Z|Z26627}}</ins>
::* <ins>{{Z|Z27627}}</ins>
::* <ins>{{Z|Z27173}}</ins>
::* <ins>{{Z|Z29591}}</ins>
::
:: Are there any I have missed? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:57, 26 April 2026 (UTC)
:I think that here we are starting to walk on dangerous waters: what does past mean? Is it a recent o a far past? Does it have ripercussions on the present or not? Is it just a thing that happened once, many times or for a continuative period of time?
:Consider that various languages distinguish between many different types of past. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:38, 26 April 2026 (UTC)
:: {{re|Dv103}} That is a fair point...
:: How do we go about solving this problem though? I don't think having every sentence on Abstract Wikipedia be "X is a Y" is a very good idea.
:: Maybe we have different functions for all these variations of past you mentioned that just map into "X was a Y." in English? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 13:31, 26 April 2026 (UTC)
:::To properly solve this problem, we should use a more complete abstract content representation model, like for example the proposal of [[Wikifunctions:Type proposals/Semantic unit|Semantic units]] (look at [[Wikifunctions:Type proposals/Semantic unit/Douglas Adams|the example]] to see how times could be handled). For now, since we're still stuck with single fragment generation functions (that I hope will be slowly replaced with the complete represenation model, when available), we could just restrict your function to a very specific meaning, like "subject was an instance of, for most of its existence" (which means for example that it could be used to say "Douglas Adams was a writer", but not "Abraham Lincoln was a president", since he only was a president for 4 years). Probably my definition is still too vague, and this is why we need to go beyond these fragment generating functions. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:47, 26 April 2026 (UTC)
::Nitpick... I don't like that it outputs a string instead of monolingual text. With {{Z|Z26039}} it's used so much that I think it's unfixable in that case beyond deprecating it if people care that much, but {{Z|Z34224}} doesn't even have any connected implementations yet. Consider it, maybe?
::Nitpick 2... {{Z|Z34227}} is missing a language parameter. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:08, 26 April 2026 (UTC)
::: I will consider that!
::: I just did that because that's what {{Z|Z26039}} does, so I assumed I should follow suit with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 26 April 2026 (UTC)
== Legacy functions ==
If and when more robust methods of abstractly representing and generating linguistic content come around, and more efficient ways of creating abstract content are devised and implemented, I suspect that our current methods will require some form of deprecation. This is a significant source of concern for me in relation to WF and AW, questioning how prone our current methods of doing things are and eventually will be prone to obsolescence, and how it will be worked around when it comes. We have over 1 250 articles on AW presently, and these are rather all over the place. I suspect the maintenance burden from keeping these articles up to code will eventually, err, creep up on us, I suppose, and some kind of major refactoring will be necessary. We are definitely in a period of experimentation and whatnot right now but eventually, like with enwiki, some sort of structure and rigor will form and I suspect it will start to become rather boring for me...
I, for one, very much enjoy experimenting with new and better ways to do things here. I don't personally mind changing things to use a new and better paradigm if need be, that sort of thing highly excites me, but of course there will be things that are left behind, and I suspect maybe bots will be employed to deal with this? A lot of Wikipedia sister sites seem to do that, e.g. going and fixing up use of deprecated templates. Considering the nature of Wikifunctions and Abstract Wikipedia I suspect certain maintenance tasks will be made simpler or even trivial by the typical uniformity of our implementations.
I guess I am just concerned if Wikifunctions or Abstract Wikipedia will ever accrue its own kind of "technical debt" with how we are plowing through things presently, and if there is a plan for how we will eventually seek to mitigate that. Maybe too early to ask this question, but I am a notoriously anxious person, so I thought it wouldn't hurt to raise the question regardless... — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 21:30, 26 April 2026 (UTC)
:I very much agree, thank you for expressing my position so well. {{ping|Immanuelle}} has been using an AI-generated tool (well, they haven't edited in a week, perhaps it's a break or perhaps they don't wish to contribute to the project any more) to create a bunch of articles en masse, which I have warned them multiple times is a bad idea (on top of evolving functions, all of the articles are one-sentence-per-paragraph, [[abstract:Q12184|like so]]). That's why I've been avoiding creating articles recently, I'd say I have a good fourth (no data to support, rough guess) of the comments on the wiki, yet less than a percentage of the article count (only three, including the [[abstract:Q319|first article]], though, so perhaps I'm the next [[w:Special:Permalink/908493298|office.bomis.com]]). [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:41, 27 April 2026 (UTC)
:: I feel that the overwhelming presence of these low-quality articles (which I admit I myself am [[abstract:Q1710970|guilty]]/[[abstract:Q7601858|of]]/[[abstract:Q39338|creating]], usually as testbeds) may incur a large maintenance burden. I do expect them to be easy to detect, however, as searching for the presence of "deprecated" NLG functions is trivial, and it is possible that replacing them with their future ''even abstracter™'' counterparts could be done automatically since they all have the same signatures and can be expected to create the same form of sentence. If it needs to be done manually for a while or for certain delinquent instances, my hope is that it will be fun, at least for a while.
:: I just hope that these hypothetical future waves of "this new and versatile way of abstractly representing linguistic content" obsoleting previous methods and requiring refactoring across all articles is only a one-time thing. We should strive to be as robust and flexible as possible from the outset as each brand new paradigm of abstraction is also a brand new maintenance burden for updating old articles. At the end of the day, at least ''some'' of these articles will still render to many different languages even if their methods of creating those sentences of theirs is completely outdated. Ergo, the time it takes for the switchover to be performed across our articles should not be a persistent inconvenience for users (as, of course, they will always still be able to read the content as it was before since these legacy functions aren't being deleted outright), and the increased availability that the new methods will bring about will likely act as motivation for them to join the effort in refactoring (「You're telling me that if I rewrite this article in this cool Lisp-looking stuff then I can probably read it in [[abstract:Q9307|Galician]]?? COOL!」). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 20:26, 27 April 2026 (UTC)
:::Totally agree. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:54, 28 April 2026 (UTC)
:::My vague plan is to implement a default function returning an {{Z|Z89}}, for each language-neutral function. A single function would convert any of these to a {{Z|Z11}}, so that a composition of the two can be implemented as the current default until such time as the language-neutral function is ready to return a [[Z89]]. We can already convert a [[Z11]] to a [[Z89]] so, although there is more to be done in this space, existing language-specific functions could be adapted to return a [[Z89]] quite mechanistically.
:::Although we certainly could deliver parallel Z89 functions for each existing Z11 function, I don’t think we should assume that particular outcome. Provided the Z89 captures a lang attribute from the Z11’s language tag, the two representations should be largely interchangeable, although I am expecting a Z89 to carry additional attributes at the span level that would be lost on conversion to a Z11 (along with any higher-level tags and attributes).
:::When I say there is “more to be done in this space”, I am referring to a new type that would allow HTML fragments to be represented as tractable Wikifunctions objects, but this is currently drafted only in my head! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:21, 29 April 2026 (UTC)
== Filtering types of objects ==
Hello!
I have tried to comb through my own edit history several times, but it's really hard to search for specifics because there's no differentiation between different types of objects (functions, implementations, tests, etc.) in the logs as far as I can tell.
Am I missing anything? I want it to work sort of like how filtering by namespace works. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 27 April 2026 (UTC)
:There is differentiation, it's just rather hard to look through. Since all ZObjects are just JSON data at their core, you can search for instances of <code>{ "Z1K1": "Z[type]"</code>. I haven't tried this so I'm not sure how well it would work and I know MediaWiki search syntax treats quotation marks as a special character, but I have seen Wikifunctions pages link to searches using this before. There is also [[Special:ListObjectsByType]] but it is sitewide rather than specific to your edit history in particular. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 18:59, 27 April 2026 (UTC)
::''[It doesn’t help directly here, but please see [[WF:Find]] for more details of how this works.]'' [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:24, 29 April 2026 (UTC)
:See the feature requests [[phab:T399244]]/[[phab:T373735]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:06, 28 April 2026 (UTC)
:The lack of filtering edits by namespace is exactly the problem that I was trying to solve with the [[User:Amire80/wikifunctionsanalytics]] tool.
:I even kind of succeeded, but it has two major problems:
:# It doesn't have any real frontend, so you have to know some SQL to use it (or ask other people who know SQL).
:# It doesn't get information from the live site, but from the dump, which appears to be updated once a month.
:I've made a [https://quarry.wmcloud.org/query/104794 sample query for you]. Unfortunately, it won't do anything at the moment because of the second problem—your edits started in April 2026, which isn't over yet, so the dump for it hasn't been processed. But I hope that early in May you'll be able to use the same query and see something useful.
:(I plan to add support for recent edits, but I haven't done it yet. Now that I more or less figured out how to process Wikifunctions edits, I'm focused on trying to understand Abstract Wikipedia edits. Processing up-to-date edits from both sites will possibly be the next thing I work on, but if you know some Python and want to try doing it yourself, don't wait for me—[https://gitlab.wikimedia.org/toolforge-repos/wikifunctions-analytics Patches welcome].) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 18:51, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]], I've just updated the data until the end of April. Now the query to which I linked above gives some results. You can also try running other queries if you know SQL. (Or try asking for other queries if you don't.) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 03:26, 3 May 2026 (UTC)
== [[Z34213]] ==
I'm not quite sure why this implementation is failing. Could someone take a look? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:24, 28 April 2026 (UTC)
:I've [https://phabricator.wikimedia.org/T419933#11863997 notified] the team that this is still occurring, the issue was marked as resolved. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:52, 28 April 2026 (UTC)
:Some useful tips:
:* create more testcases: sometimes it is a random error, so try to see how consistent it is between testcases
:* your implementation is very inefficient, since it fetches items and lexemes a lot of times. Ideally, each item and each lexeme should be only fetched once in all the execution tree.
:[[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 06:06, 28 April 2026 (UTC)
::Caching (''should?'') means that the lexeme and item data are cached, so the call doesn't actually execute multiple times. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 17:51, 28 April 2026 (UTC)
:::Are lexemes and items actually cached within the same function execution? Even if they are only partially fetched and/or fetched in bulk? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:54, 28 April 2026 (UTC)
::::I don't have any evidence to prove that it works but that's definitely A. what's supposed to happen and B. the ideal behavior. This happens because the Z680X functions can be cached just like any other. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 18:02, 28 April 2026 (UTC)
::::It is unclear. In general, I believe identical branches are resolved only once in orchestration, but there is also independent caching of Wikidata fetches.
::::According to @[[User:DMartin (WMF)|DMartin (WMF)]] ([https://t.me/Wikifunctions/30374 on Telegram]):
::::<blockquote>Well, no. We have caching of Wikidata entities that have been retrieved, but not of the results of nested function calls. There is a proposal for doing this in the context of the V2 composition language, when it's a bit more mature, and it's regarded as a relatively high priority.</blockquote>
::::It’s hard to tell whether fetches in nested calls are, in fact, cached and available for other nested calls in the same call, since it is not generally the actual fetch that consumes the most resources. Rather (I believe), it is construction and transmission of the result object, which is currently repeated afresh in each nested call (unless it is in an identical branch).
::::I hope that’s clear, and I apologise in advance if it happens to be inaccurate! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 29 April 2026 (UTC)
:::::Oh, I should clarify. There is a lot of caching going on, in several different places. Lexemes and items ''are'' cached by the orchestrator within the same function execution, even if they are only partially fetched and/or fetched in bulk. When I said that we don't have caching of the results of nested function calls, I meant that's not happening in general, for all nested function calls in compositions. But fetching of Wikidata entities gets special treatment, so yes, fetched content from Wikidata is cached, regardless if it was fetched by a top-level call or a nested call.
:::::It is also true that the construction of a ZObject from the fetched JSON might happen more than once within the same function execution, depending on how a composition has been structured. However, the construction of the ZObject is actually very fast, compared to the elapsed time of getting the JSON from Wikidata. [[User:DMartin (WMF)|DMartin (WMF)]] ([[User talk:DMartin (WMF)|talk]]) 18:04, 1 May 2026 (UTC)
== Question about cardinal numbers ==
I was about to edit {{Z|Z16435}} to add my function {{Z|Z34308}}, but I noticed that none of the other functions have a gender parameter.
Should I create a new wrapper function "Bulgarian cardinal, neuter", or should I just remove the gender parameter and always return neuter? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:39, 28 April 2026 (UTC)
:The “cardinal” functions should return the words used for “counting” numbers in the abstract.
:We should consider converting them to return a {{Z|Z11}} rather than a {{Z|Z6}}. It may even be appropriate to return a {{Z|Z12}} to cater for language variants. Either way, I think that would be the approach to adopt for inflected forms, unless reference to specific lexeme-forms is required. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:52, 28 April 2026 (UTC)
::This. If a native of your language were to count up, which form would they be most likely to use? [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:29, 28 April 2026 (UTC)
::: {{re|GrounderUK|Feeglgeef}} Thanks for both your input!
::: I relabeled the aforementioned function to {{Z|Z34308}}, and created a new wrapper function {{Z|Z34457}}.
::: Should I specify that my old function is a monolingual text in parentheses? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:26, 28 April 2026 (UTC)
::::You don't have to, unless you think that is something that would require distinction when viewing the function in a list of search results &c. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:36, 28 April 2026 (UTC)
== Optional/nullable function parameters ==
Hello!
Recently, I was informed that Wikifunctions has no optional/nullable function parameters as of now.
Are there any future plans to support this, and/or workarounds? Maybe create a union type system like "{{Z|6}} or {{Z|23}}". <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 17:53, 28 April 2026 (UTC)
:What I do for this is use an "is empty" function corresponding to the type of the parameter in an If statement. If it isn't empty, the function works as intended. Otherwise, it does something else. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:58, 28 April 2026 (UTC)
:Unions are not a thing (yet) on Wikifunctions, but you can always define an argument of type {{Z|Z1}}, which means that all types are allowed (I already did this for {{Z|Z26737}}; note that it is still a ugly workaround, don't use it for high level functions). Also, note that usually on Wikifunctions we use {{Z|Z24}} as the null value. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:00, 28 April 2026 (UTC)
:: {{re|JJPMaster|Dv103}} Thanks for your help!
:: @[[User:Dv103|Dv103]] told me a function call with a missing parameter is treated as an invalid function call, so how does the "is empty" function work with that?
:: Also, setting the type to {{Z|1}} seems naive, like setting the type as <code>any</code> in TypeScript...
:: Related question: Are there plans to add default values to parameters (outside of "if empty")? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 18:19, 28 April 2026 (UTC)
:::Setting the type to {{Z|Z1}} is actually naive, and that's why I advised you to only use it for low-level functions. Currently there is nothing better. Sometimes, type correctness is not actually checked, so it might seem that nullable types are possible. But it is still an hack, and it could broke anytime since it is not intended behavior.
:::I don't think that there are current plans to add default values (but correct me if I'm wrong). The closest thing that comes to my mind is that, if you incorporate Wikifunctions into Wikitext, you can leave empty some fields (only of some specific types) and Parsoid will replace them to their default value. This is done only depending on the type, and not on the functions. For example, {{Z|Z6091}} and {{Z|Z6001}} are assigned the QID associated to the page, and {{Z|Z20420}} is assigned the current date. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:56, 28 April 2026 (UTC)
:::@[[User:QuickQuokka|QuickQuokka]]: At the very least, [[Z10008]] accepts a null input. Maybe that feature is unique to the String type—I am not sure. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 19:10, 28 April 2026 (UTC)
::::I think it's just not checked, but it shouldn't be intended. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:20, 28 April 2026 (UTC)
::::Strings and typed lists can be “empty” in the sense that their length can be zero. Typed pairs may also be “empty” in a degenerate sense, but such an object will not be returned from a code implementation. A typed map with no entries will also fail to be returned from code, although it is fine in compositions.
::::For a genuinely optional parameter, I prefer a properly typed list, which at least encourages an argument of the correct type. {{Z|Z813}} is also typically faster than {{Z|Z10008}}. Quite a good example of this approach is {{Z|Z23723}}, where it helps to resolve the type union (using [[Z1]]) for both Z6003K1 and Z6003K3. Of course, there’s nothing to prevent more than one element in the list, but additional elements are easily ignored. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:55, 28 April 2026 (UTC)
:Pinging {{ping|Jdforrester (WMF)|prefix=|p=}}, I believe there are no current plans. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:02, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]]: I'm afraid there are no current plans to build out optional params, indeed; we would be happy to review this if a compelling case was made, but it'd be a lot of work to re-build the [[Wikifunctions:Function model|function model]] with that support and ensure we don't break (too many) things. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 19:11, 28 April 2026 (UTC)
== Z6830 for Chinese ==
I was trying to use {{Z|Z6830}} for implementation in the Chinese-language. And turns out most of the Lexeme on Wikidata is using [[d:Q727694]] as the language instead of [[d:Q7850]]. This makes it impossible to use the mentioned function above, since Standard Chinese is not available (or did I miss something?). Is there a way to fetch lexemes with language=[[d:Q727694]] from item? [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 18:20, 30 April 2026 (UTC)
:@[[User:Sun8908|Sun8908]] There is [[Z1006]] for Chinese and it has the language code zh. There is an overview of languages in [[Module:Wikifunctions label]] so you can search there for chinese versions and choose the one you need. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 20:53, 5 May 2026 (UTC)
::I know that. The problem is when using the function [[Z6830]], it cannot retrieve lexeme with language [[d:Q727694]] (but it is the "Chinese language" with the most current Wikidata lexemes, see [https://ordia.toolforge.org/language/ ordia]). I think it should be a Wikidata problem, I might fix it (possibly by creating the same lexemes with language code zh) on Wikidata. Thanks anyway. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 05:39, 6 May 2026 (UTC)
:Could you provide an example of a Chinese lexeme that has a linked Wikidata item, or a Z6830 function call that fails to find such a lexeme where one exists? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 07:55, 6 May 2026 (UTC)
::Here: [[d:Lexeme:L846083]]. I think that's a primary reason of me trying to look into this problem, as the label in zh for [[d:Q6256]] (country) is not a single phrase (see its talk page on WD for more information). This makes some Abstract Wikipedia articles very weird in Chinese when {{Z|Z26570}} is used, so lexeme could potentially fix that. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 10:33, 6 May 2026 (UTC)
:::Thank you. It looks as though {{Z|Z6830}} [https://www.wikifunctions.org/view/en/Z6830?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6830%22%2C%22Z6830K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q6256%22%7D%2C%22Z6830K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P5137%22%7D%2C%22Z6830K3%22%3A%7B%22Z1K1%22%3A%22Z60%22%2C%22Z60K1%22%3A%22cmn%22%2C%22Z60K2%22%3A%5B%22Z6%22%5D%7D%7D returns that lexeme for language tag "cmn"]. Perhaps that tag should be added into the helpers for {{Z|Z24144}}? If it is widely used for lexemes, perhaps it should have its own {{Z|Z60}}? In any event, improvements might be considered under [[:phab:T390563]] (or otherwise), including amending [[Z6830]] to also consider "cmn" (and "zho", "chi"…?) when requests are made for "zh-hans" or "zho-hant" (or others?) @[[User:Winston Sung|Winston Sung]] @[[User:DMartin (WMF)|DMartin (WMF)]] [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 17:22, 6 May 2026 (UTC)
::::If you go to [[d:Special:NewLexeme]] and put in [[d:Q727694]] as the language, it is going to tell you it has an unrecognized language code. So I believe "cmn" should not be a {{Z|Z60}} by default? I also started [[d:Wikidata:Project_chat#Lexemes_with_language_Standard_Chinese_(Q727694)|a discussion on WD]] regarding this. I guess we can still use it as a fallback language though if possible. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 03:43, 7 May 2026 (UTC)
::::We don't have a separated <code>cmn</code> BCP 47 language subtag in MediaWiki and Wikidata at the moment. <code>zho</code> and <code>chi</code> are ISO 639 language codes but not BCP 47 language subtags.
::::For Modern Standard Mandarin, please use <code>zh-*</code> language tags for now. -- [[User:Winston Sung|Winston Sung]] ([[User talk:Winston Sung|talk]]) 15:26, 8 May 2026 (UTC)
== Key not found error ==
Is there a reason why I am getting key not found error for this [[Z34677|function]] {{Z|Z34677}}? All the underlying functions run and all the test cases work. The debug information does not give more details. Any pointers? Thanks in advance [[User:Jsamwrites|John Samuel]] 19:24, 1 May 2026 (UTC)
:It was passing the [[Z6091]] to {{Z|34641}} when that takes a [[Z6001]]. I've fixed that, but there's some other problem with the logic, so I've left it disconnected. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:42, 1 May 2026 (UTC)
::@[[User:YoshiRulz|YoshiRulz]] Thanks a lot. [[User:Jsamwrites|John Samuel]] 20:21, 1 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #246 is out: Request for input: what should we count for Abstract Wikipedia ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we ask you what would be the relevant metrics for Abstract Wikipedia, we discuss our latest news on Composition Language v2, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 12:21, 2 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== Any formal process for deletion of pages ==
Does a formal process exist for the deletion of functions, implementations, and tests that includes a notification system for creators, analogous to Wikidata’s process, explaining the rationale behind the deletion (or proposal for deletion)? [[User:Jsamwrites|John Samuel]] 12:36, 3 May 2026 (UTC)
:Does [[Wikifunctions:Requests for deletions]] work? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 13:00, 3 May 2026 (UTC)
:Please see the discussion at [[Wikifunctions talk:Requests for deletions#Should we expect Objects' creators to get pinged on deletion proposals?]].
:As I see it, it is the proposer’s responsibility to consult appropriately before making a request and we expect our administrators to act only when satisfied that appropriate consultation has occurred. In many cases, no consultation is required. Administrators may delete their own contributions without making a request, but this is not a practice I would encourage. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:51, 3 May 2026 (UTC)
== Implementation of rational number in JS doesn't match in Z19677 (Rational number) and Z28579 (RGBA colour) ==
In {{Z|19677}} it's
<syntaxhighlight lang=js>
{
"K1": sign * numerator,
"K2": denominator
}
</syntaxhighlight>
but in {{Z|28579}} it's
<syntaxhighlight lang=js>
[ sign * numerator, denominator ]
</syntaxhighlight> '''<span style="font-family:Iosevka,monospace">[[User:沈澄心|<span style="color:#9f3526">dring</span>]][[User talk:沈澄心|<span style="color:#534fa3">sim</span>]]</span>''' 05:15, 4 May 2026 (UTC)
:I'm guessing this is why [[Z34743]] fails all the tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:00, 18 May 2026 (UTC)
== Nested functions in compositions ==
I wish it will be easier to a add another function about a specific existing function in a function implementation based on a composition. When I write long functions in spreadsheets I usually stat with a small part and then I try to go further and after important steps I test if the output is as expected. I created [[Z34826]] to get the German gender specific occupation lexeme for a specific person based on their gender. I wanted to add a function around the existing one and it was not successful. It is not very easy to implement as it requires the possibily to move a part to another section but I think it can be helpful if it will be implemented. So far I spend more time as expected on the function. Describing it with words what the function needs to do is much easier than implementing it here in Wikifunctions. So I think there needs to be improvement to make Wikifunctions more accessible. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:10, 5 May 2026 (UTC)
:Have you tried to use the copy-paste functionality? It is very useful to move parts of composition arounn. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:12, 6 May 2026 (UTC)
:I've also found the composition editor to be wholly unsuitable for any expressions more than a few levels deep. (Even with the <code>localStorage</code> clipboard, because of its overzealous type checks.) Compositions naturally grow out from the "leaves", the immediate operations on the inputs, while the interface really wants you to build from the "root". I mostly use the [https://yoshirulz.gitlab.io/WikiLambdaBlockly drag-and-drop block editor] which I made to smooth over some of the site's problems, so if you want to try that out and give me some feedback I'd appreciate it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 14:36, 6 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #247 is out: References from Wikidata now available ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-08|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we announce that is now possible to pass references in Wikidata statements, we introduce the [https://abstract-data.toolforge.org/ Abstract Data dashboard], we report you on the presentation about Abstract Wikipedia at WikiCon Australia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1778520600 May 11, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:16, 8 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== RGBA colour, spelling... ==
Something that has always irked me a little bit is the spelling of [[Z28579|RGBA colour (Z28579)]]. I guess this is not unsurprising for me considering my use of US English but I think there is more to it than preference and I want to try to argue for it being changed to use American spelling. I know that this probably has a snowball's chance in hell of actually garnering any support, so I won't really be miffed if the spelling remains as it is, but I thought it wouldn't hurt to raise this regardless.
The main issue I have with it is the spelling of the original proposal. When infernostars raised the [[Wikifunctions:Type proposals/RGBA color|type proposal]], the spelling was 「RGBA color」. Of the comments that mentioned the word 「colo[u]r」, two used British spelling while six used the American spelling as used in the proposal. The only thing that really pointed to the use of ''colour'' was the fact that the catalog page on color functions used that spelling already. For all intents and purposes, the spelling of the original proposal should have been maintained, but it was not; [[User:DVrandecic (WMF)|DVrandecic]], the eventual creator of the type, used a different spelling.
It should be noted that there was really no reason for this to occur and while it is an undoubtedly minor issue I still believe it should be rolled back and the type should use the spelling of the original proposal and majority of editor comments. In [[abstract:Q936|OpenStreetMap]], there have been keyvalue proposals that have had the finalized spelling that gets put to use be in British English despite the original proposal being in American English; this has usually occurred with proposals relating to 「X center/centre」 tags. This makes sense on the surface, because OpenStreetMap is maintained by a UK organization, and still has close ties to Europe. The Wikimedia Foundation, however, is an ''American'' company. This is often brought up as a fallible argument when debating article spelling on the English Wikipedia, and I don't bring it up to support that 「RGBA color」 should be used for that exact reason, but rather to state that OpenStreetMap's general policy on tag names need not apply here. It appears to me that, at least initially, the majority of 「core contributors」 to Wikifunctions used British English; I can name YoshiRulz, 99of9, GrounderUK, and VIGNERON.<ref group="color">I'm avoiding linking to these folks because I don't think pinging them about this discussion is all too necessary unless they themselves want to be involved; I don't want to clutter their inboxes just to briefly mention them. I pinged Denny because, well, I'm asking him a question directly, but everyone else I would prefer to join this discussion by their own accord... not that I wish for this decision to be confused as me going 「these people use British English so they will probably oppose my idea, I won't invite them to the discussion because of that」...no, I promise you that is not the reason.</ref> I see (or saw) these people ''everywhere'', so it makes sense that British English has prevailed in some sorts on this website, but I don't think that indicates that it should be the ''preferred'' spelling across the website, at least not to the point where a proposal should have its name changed to match such a "consensus".<ref group="color">It could be argued that the front-and-center ''Function catalogue'' using 「catalogue」 is actually indicative of such a "consensus", but ''catalogue'' is in a similar position to the word ''grey'' where I live (that is, the US) in that it is used just as often as its American counterpart. Also, consider Wiktionary's ''Beer parlour'' project chat.</ref>
The unnecessary modification of the original spelling is my main argument for changing it back... but of course, I must obligatorily state that on English Wikipedia, it is [[w:Color|Color]] and [[w:RGBA color model|RGBA color model]]; on Wikidata, it is [[d:Q1075|color]] and [[d:Q2325624|RGBA color space]]; in CSS (which typically uses hexadecimal triplets to specify RGBA values), the properties are <code>color</code>, <code>background-color</code>, etc.; bit of a weak jab, but on Schema.org it is [https://schema.org/color color], [https://schema.org/colorSwatch colorSwatch]; et cetera. {{Z|Z28580}} uses ''color'', so does {{Z|Z28591}} and its Python counterpart.
Mr. Vrandečić, I have to ask, I'm rather confused... you created the color type using British English spelling, but you were also responsible for the creation of the equality function which uses the American English spelling. You also seem to be writing in American English for the status updates, judging by your use of -''ize'' over -''ise'' endings and use of ''program'' over ''programme'' in [[Wikifunctions:Status updates/2026-04-16]]. Is there something I'm missing or have you switched your preferred variant somewhere along the way?
Anyways, do consider this if you wish... again, I don't suppose this will garner much support, it is the ''non-issuest'' of ''non-issues'', but it has irked me to the point where I want to ask about it to get some answers, if nothing else. I am not arguing for every other color function to have its name changed, just the type itself.
<references group="color"></references>
— [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:04, 8 May 2026 (UTC)
:This is a multilingual project; the <code>en</code> label is <code>RGBA colour</code> and the <code>en-us</code> label is <code>RGBA color</code>. Though I'm not able to switch to <code>en-us</code> via the language picker so that would need to be fixed.<!--
--><br>edit after reading your whole comment: The same is true of {{Q|1075}}, there are labels specified for multiple English variants. (In {{Q|2325624}} it's only an alias.) I agree that other websites' choices aren't binding on us, but from that, I conclude that the more widespread British/Commonwealth spellings should be used for the generic <code>en</code>. As for myself, I'm Aussie and I will continue to use the BrE spellings ([[w:en:Oxford_spelling#Language_tag_comparison|+ "routing"]], TIL) if only by muscle memory.<!--
--><br>[[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:42, 8 May 2026 (UTC)
:: Your lattermost point would normally be fine in a perfect world. Wikipedia's <code>convert</code> function defaults to "international" English, which I don't personally take issue with because it happens that we here in America are actually outliers for saying and spelling things differently... err, or we were for a while at least, nowadays it seems like an even split (plus you have "yield" vs. "give way" which is effectively the logical opposite of US's use of "meter" over "metre").
:: However, this is not a perfect world, and I don't think <code>en</code> should correspond to any particular variant. It is too fragmented across all software at this point to impose such a requirement. The inability to switch to <code>en-us</code> on this website foregoes an easy and simple solution to this problem that makes everyone happy, because the yanks (such as myself) can't be happy because we can't see the labels in American English even if we wanted to, and the other folk can't switch either as far as I'm aware (and the en-CA and en-GB languages in the preferences page seems to be deprecated). My point being, <code>en</code> is abused to mean "en-UK" just as often as it is abused to mean <code>en-US</code>; I think a decision shouldn't be made on such an assumption of one "default". — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:48, 12 May 2026 (UTC)
:Hi @[[User:Theki|rae]]! I have no opinion nor preference on this, and given my background, I am just entirely confused about my spelling preferences myself, as you can tell from my inconsistent usage. I learned British English in school and used that for maybe two decades or so, but moved to the US and lived there for more than a decade, enough to be naturalized, but now I am back in Europe and I am technically a professor at King's College London, soooo.... honestly, I do not know. I don't remember having put too much thought into it at the moment I created it. The good thing is that in Wikifunctions, just as in Wikidata, it is easy to change, without messing things up too much (unlike in Wikipedia), so my suggestion is, just make the change, see if anyone complains, and if they do, discuss it more. I don't know if there is a guideline already in Wikifunctions about the variants. I am happy either way, and honestly, I keep forgetting which variant is which most of the time. --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 18:16, 10 May 2026 (UTC)
:: I can definitely understand this, although I am unfortunately rather passionate about any minutiae involving preferential minor differences in ''anything'', of which AmE vs. BrE chiefly is. So I dedicate a lot of headspace to it. More than I should. Not that I wish to imply that the comment above that I have wrote is of an irrational nature, or done out of spite or pure emotion and subjectivity; I do genuinely believe that ''RGBA color'' is beyond just a personal preference and is just logical. I may boldly go and change it, but for some reason I was expecting that changing the English label of a Type would require elevated permissions, and I also didn't want to do it only to get immediately reverted because it ''did'' strike a chord with someone, when I could instead see how apathetic, supportive, or in opposition interested people are beforehand and ''then'' act accordingly. I was not meaning to antagonize you over your spelling habits, I did actually use British English for a few years starting in 2020 before I went back to American English, so I'd be a hypocrite for me to decry you for not always sticking to some arbitrary standard of spelling words over the other. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:55, 12 May 2026 (UTC)
:Although I spell it “colour”, I think it makes more sense to use “color” for the type, since that is almost always the required spelling when the string functions as a keyword.
:More generally, though, Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en". This is unusual, in my experience, as "en" is widely misused in place of "en-US", where there are recorded spelling differences.
:(I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere. Use of -ize rather than -ise is a matter of personal preference or house style, but regional autocorrect encourages -ise.) [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:00, 12 May 2026 (UTC)
:: ''Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en"''
:: Definitely agreeing with you on the latter being a good choice. However, I suspect the favoring of "colour" over "color" may be because, in terms of language codes, when sorted alphabetically <code>en-us</code> actually comes ''after'' <code>en-gb</code>. Although, the frontend seems to be sorting <code>en-ca</code> after <code>en-gb</code>, so I don't actually know how correct that is.
:: ''I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere''
:: The context of the spelling was "''No program for the NLG SIG meeting for next Tuesday has been proposed''". In that usage context, I think it makes sense to assume that ''program'' is not being used to refer to a computer program, but to a ''program of events'' or similar, something that you would spell as a ''programme'' in British English. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:02, 12 May 2026 (UTC)
:{{s}} this. I'm obviously biased but I believe American English is preferable generally, American dominance on the internet (our Department of Defen'''s'''e invented it!) and rapidly-increasing consumption of American media by international English speakers means that more people use American English's conventions, this is clear through for example [http://trends.google.com/explore?q=color%2Ccolour&date=all&geo=Worldwide search trends] (though they aren't particularly reliable). Perhaps this is a bit of a supremacist opinion, but we should have internal consistency, and if we must choose, American English should be our first choice (then Indian and then British English) [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:10, 12 May 2026 (UTC)
:: This is rather flawed reasoning, though. I think probably any given British or Indian person would not agree on using that as the reasoning for this, not that you are necessarily ''completely wrong'', but if this is not a good enough reason for English Wikipedia's (admittedly extremely flawed) ''ENGVAR'' policy then I don't think it's likely it will pass here either.
:: Although of note is that [https://books.google.com/ngrams/graph?content=color%2Ccolour&year_start=1800&year_end=2022&corpus=en&smoothing=3&case_insensitive=true Google ngrams] agree with you, but "color" vs. "colour" is an eternal holy war that will not be won by demonstrating that more books use US spelling over Commonwealth spelling. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:44, 12 May 2026 (UTC)
:::You're probably right that it's not very sound. I'm biased in that other varieties of English irk me, and that's probably mutual for people who are used to other varieties of English when they read what I write! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:56, 12 May 2026 (UTC)
:I've decided to boldly [[Special:Permalink/274271|make the change]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:02, 12 May 2026 (UTC)
:: Thank you. Considering both you and GrounderUK seem to consider it an okay change, I think this will do for now.
:: I should note that the matter of whether to move [[Wikifunctions:Catalogue/Colour functions]] in response to this (however this discussion will ultimately turn out) is a whole other can of worms, in my view. I can't say I have an opinion on that at the moment, but I'm putting it out there regardless. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:06, 12 May 2026 (UTC)
:::Personally, I'm in favor of moving the page and renaming all of the items on it. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:10, 12 May 2026 (UTC)
::I don't like this (exactly because of the American hegemony you cited), but again, it shouldn't matter because the software is meant to be multilingual. Clearly there's a bug preventing you from picking an English variant/dialect as your display language. But the search bar and Function/Type autocompletion do check the English variants for matches. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:15, 12 May 2026 (UTC)
== Proposals on the architecture of Abstract Content rendering ==
Starting from a discussion born on the Telegram chat, I've explained two different proposals on how the NLG on Abstract Wikipedia should be organized in the page [[abstract:User:Dv103/Abstract articles architectures]]. Please come to contribute to the discussion, or to propose alternatives. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 14:31, 11 May 2026 (UTC)
:Thank you for dedicating your time to writing this, it is very informative. I will try to add input once I'm not in over my head with finals. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:27, 12 May 2026 (UTC)
== Display function for HTML fragment ==
Currently, any collapsed Z89 literal appears as<blockquote><> [[Z89|HTML fragment]]</blockquote>If I were to create a new Function which returned something like<blockquote><> 123-byte HTML fragment <q><nowiki><td><span lang=</nowiki>…</q></blockquote>could that be connected to replace the collapsed form, or would it require changes to the Wikilambda software? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:14, 11 May 2026 (UTC)
:It might work, but I doubt it. Those angled brackets suggest that the collapsed form is not simply defaulting to the type’s label. Looking at [[:phab:T410509]], I’ve concluded that enhancements to the collapsed form were never considered, rather than being actively rejected. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:12, 12 May 2026 (UTC)
::[[:Phab:T391985]] documents the original design. Note the fifth bullet point under “Acceptance criteria”. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:21, 12 May 2026 (UTC)
:I'm not sure the byte-size is necessary, but the outer tag (or first outer tag, though generally I'd prefer most fragments use a wrapper tag if it needs multiple like JSX does, but that's a whole different topic) would be nice. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 12:51, 12 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #248 is out: A higher meaning ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-15|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss functions creating language fragments, we present our latest news in Types, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:36, 15 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
== [[Z34510]] ==
This function, which determines if a Wikidata item for a {{q|5}} has an undeprecated {{p|21}} statement of {{q|6581097}}, returns false for {{q|173399}}, a transgender man. This is because his item assigns his P21 statement to {{q|2449503}}, not {{q|6581097}}. I'm not sure how to account for this discrepancy. Should {{z|34510}}:
# Include {{q|2449503}} as a value that can lead to a true result,
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a man?") could return true for either "male" or "trans man",
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a trans man?") could return true for "trans man",
# Not exist at all?
[[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 16:48, 16 May 2026 (UTC)
:I can't think of a single use case where you would need to determine if a person is a cisgender man and nothing else. Functions are good for generalizing across multiple possibilities when they exist, so I think it would be best if trans men were considered a part of the criteria for returning a true value. If asking for specifically {{q|6581097}}s and ''nothing'' else was desired then the function name would be a misnomer as Elliot Page is inarguably a male (at least in the view of most reasonable and intelligent people). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 19:03, 16 May 2026 (UTC)
:You made the function in the first place; what were you planning on using it for? AW? Maybe it should return a {{Z|25501}} which can then be passed on to other NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:01, 16 May 2026 (UTC)
== Lexeme from wikidata label, or "best" lexeme from wikidata item ==
I was looking into fixing [[Z28028]]. I found that I could add "requires grammatical feature: definite article" to "United Kingdom" (L8558). Now I'm stuck on how to get to that lexeme from {{Q|145}}. There's [[Z23471]], but that for very good reason gives you multiple lexemes with the same sense, and I just want the best one like how the label is always the best string. Is there a function that can do this?
There's definitely the case of a Wikidata label that isn't a lexeme (most commonly multiple lexemes) but I'm only considering the case where it is one lexeme here. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 20:02, 16 May 2026 (UTC)
:There is {{Z|Z27327}}, that tries to give the best lexeme through various heuristics. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 22:22, 16 May 2026 (UTC)
:: Wonderful! I did stumble upon [[Z33818]] but this is perfect. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:25, 17 May 2026 (UTC)
== [[Z29591]] isn't working for me ==
For instance, trying to manually put in the exact inputs for one of the test cases just returns an empty Monolingual text. See [https://www.wikifunctions.org/wiki/Z29591?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29591%22%2C%22Z29591K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3257809%22%7D%2C%22Z29591K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z29591K3%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z29591K4%22%3A%22Z1002%22%7D]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 01:17, 17 May 2026 (UTC)
:You used [[:d:Q22006653]] rather than [[:d:Q1075]]. It looks like the [https://www.wikifunctions.org/wiki/Special:RunFunction?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D explanatory error] is suppressed by the [https://www.wikifunctions.org/view/en/Z30009?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30009%22%2C%22Z30009K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D%2C%22Z30009K2%22%3A%22Z801%22%7D final transformation]. The returned result is not actually empty; if you expand it, you can see that it is an unresolved function call. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 09:59, 17 May 2026 (UTC)
== [[Z35298]] ==
Does anyone know what the problem with this implementation is? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 21:14, 18 May 2026 (UTC)
:There is a bug that doesn't allow Python implementation to return nested lists. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:31, 19 May 2026 (UTC)
::Is there a Phabricator task for this? Searching through them is hell. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 03:22, 20 May 2026 (UTC)
:::A bit of time ago I opened [[phab:T392750]], which is very similar to this issue. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:26, 20 May 2026 (UTC)
== May 2026 Wikimedia Café meetups regarding the Wikimedia Foundation Annual Plan ==
<div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)">
<div class="box" style="float:left; padding-top: 15px; padding-right: 15px;">[[File:Wikimedia Café logo in plain SVG format.svg|75px|alt=The logo for the Wikimedia Café]]</div>
Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities during the last weekend of May. Both sessions will focus on the [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2026-2027 the 2026-2027 Wikimedia Foundation Annual Plan]. Participants may attend either or both sessions.
#'''Saturday, 30 May 2026 at 15:00 UTC''' ([https://zonestamp.toolforge.org/1780153200 timestamp converter]), at a time friendly to the Americas, Africa, and Europe
#'''Sunday, 31 May 2026 at 05:00 UTC''' ([https://zonestamp.toolforge.org/1780203600 timestamp converter]), at a time friendly to Asia and the Pacific
Café participants are highly encouraged to read in advance [https://en.wikipedia.org/wiki/User:Sohom_Datta/annual_plan_guide at least this summary of the plan]. Optionally, Café participants are encouraged to read portions of the plan that interest them and [https://meta.wikimedia.org/wiki/Talk:Wikimedia_Foundation_Annual_Plan/2026-2027 ask questions or provide feedback on the Annual Plan talk page].
Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#May_2026_meetings_with_a_focus_on_Wikimedia_Foundation_Annual_Plan/2026-2027 tables of timestamp conversions for both sessions], [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#Agenda._This_will_be_an_approximately_1_hour_Caf%C3%A9_session,_and_is_extendible_for_an_additional_30_minutes_if_needed. the agenda], and [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]!
<br />
[[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div>
<span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 19:56, 21 May 2026 (UTC)
== How to handle items without lexemes ==
NLG functions relay heavily on the presence of lexemes associated to items on Wikidata. But we know that not all the Wikidata items have an associated lexeme. There are multiple reasons why an item does not have an associated lexeme, like:
# The lexeme has not been created yet
# The item represents a place
# The item represents a person
# The item represents a specific concept that can only be expressed by a specific combination of words that cannot be [[Wikidata:Wikidata:Lexicographical data/Notability|notable]] (like {{Q|Q61220733}}).
My doubt is: what should we do with this fourth category? For many languages, just using the Wikidata item label is not possible, since it is necessary to conjugate the words or to retrieve grammatical information like the gender. What should we do? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:09, 23 May 2026 (UTC)
:In that particular example, I think the thing to do is read its {{P|279}}: {{Q|21191270}}, then have some kind of heuristic based on that which says to take its {{P|8345}} and attach that Item's label to a Form of the word for "episode". In general, synthesising Lexemes for proper nouns is one of the problems that [[abstract:User:Dv103/Abstract_articles_architectures|proposals in your list here]] will have to address. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:59, 23 May 2026 (UTC)
[[File:Wikidata content 2024.svg|thumb|Content of Wikidata by type]]
::{{ping|Dv103}} very good point.
::For your point 2, it depends of the place but I think that quite often a lexeme can be created (most "Administrative territorial entity", most geographical entity, etc.). And with 3, your can add a lot of types (see pie chart) : Scholarly article, Human (with a very few exception), Wikimedia Category, Disambig, etc. which is (rough estimation) 2/3 of Wikidata items.
::A common rule (in dictionaries since forever and in Lexemes) is to not create an entry which is the "sum of its part". In this case, "Star Trek episode" is just episode + Star Trek, nothing more than its part. So logically, as {{U|YoshiRulz}} said, when no corresponding lexeme is found, the item should be decomposed the same way, the hard part is to know how to decompose it as the property will vary ; P31 and P279 are an obvious start but beyond that, I'm not sure we could find a general solution.
::PS: it's beyond you question but there is also the reverse problem, how to select one lexeme when multiple are linked to the same item...
::Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:43, 24 May 2026 (UTC)
:::For the point 2, I think humans will be used way more than scholarly articles and disambiguations in NLG functions (outside references), that's why humans concern me more (still a cool pie chart, though).
:::For the reverse problem, there is already {{Z|Z27327}}: it's far from perfect, but usually makes a decent choice. Obviously it is not "complete", and probably it will never be complete, but it will have to be progressively improved by the community. And probably in the future we will need to create similar functions to select the best lexeme in more specific cases.
:::For my fourth point, I didn't think about the decomposition, but it is something that could be done with another never-complete community-mantained function, that progressively keeps being improved. If [[Wikifunctions:Type proposals/Semantic unit|semantic units]] will be implemented, through them it could actually be possible to do this operation in a laguage-independent way. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:10, 24 May 2026 (UTC)
::{{re|YoshiRulz}} Proper noun synthesis, along with other fallbacks for realizing the names of concepts that don't have lexemes, is merely a step within the overall abstract content rendering process and is not inherently tied to the process itself; having the ability to [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/graph/client.py#L327 run any number of fallback mechanisms], instead of a raw call to (the equivalent of) Z27327, should be possible with any of the methods listed on the architectures page. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 16:41, 24 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #249 is out: Annual plan 2026-2027 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-23|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we present you the current draft of objectives for Wikifunctions and Abstract Wikipedia in the WMF Annual Plan 2026-2027, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 09:48, 25 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
:The new <code>return_type</code> param to [[Special:ListObjectsByType]] will show Functions returning e.g. {{Z|27951}} and {{Z|882}} if those are typed in manually, but the dropdown menu doesn't offer them, probably because it's a copy of the dropdown above (and there are no Persistent objects of those Types). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:12, 26 May 2026 (UTC)
== Type documentation template ==
Over the past couple of weeks, I've been developing and rolling out {{t|type documentation}}: a standardised layout for Type metadata, de/constructors, conversions, etc. on each Type's talk page. (The layout is loosely based on [[d:Template:Property documentation|Wikidata's]].) See [[Talk:Z16683|Integer]] for an example that uses most of its features, and [[Talk:Z99|Quote]] for one that doesn't.<br>At this point I can't think of anything more to add besides [[Help:Comparison_function_table/float64|filling out]] a couple more [[Help:Type_conversion_table/Codepoint|tables]]. But if any of you have ideas or feedback, please click through to the relevant talk page and leave me a message. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:29, 26 May 2026 (UTC)
g8y1eepn1inwt4j1j8khj0za0q4zwag
278258
278257
2026-05-26T13:26:06Z
99of9
1622
/* Type documentation template */ Reply
278258
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== “Key not found ()”? ==
What am I doing wrong in {{Z|Z34137}}? [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 00:39, 25 April 2026 (UTC)
:You were passing a [[Z6091]] to {{Z|32290}}, but it takes a [[Z6001]]. Fixed. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 07:10, 26 April 2026 (UTC)
::{{done|Thank you}}! [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 14:13, 26 April 2026 (UTC)
== Is it OK to connect the implementation? ==
Hello!
I recently applied for functioneer on [[WF:RFG]], and I was wondering whether I could connect the implementation for {{Z|Z34165}} despite its dependency {{Z|Z34149}} being currently unimplemented. That is <em>if</em> I get accepted.
I am planning on implementing it based on [[wikt:module:bg-nominal]], but am still having trouble figuring it out for now. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 09:04, 26 April 2026 (UTC)
== Past tense function ==
Is there a function like {{Z|Z26039}}, but for the past tense (e.g. "Leo Tolstoy <em>was</em> a writer.")?
If not, I will create it myself, I just want to make sure there's not a duplicate. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:10, 26 April 2026 (UTC)
: {{Done}} with {{Z|Z34224}}, but I have a few kinks to work out with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:35, 26 April 2026 (UTC)
:: I need to create some other similar functions for the past tense, I have some ideas:
::* {{Z|Z26095}}
::* {{Z|Z32643}}
::* {{Z|Z28016}}
::* {{Z|Z26570}}
::* {{Z|Z33975}}
::* {{Z|Z27243}}
::* <ins>{{Z|Z26627}}</ins>
::* <ins>{{Z|Z27627}}</ins>
::* <ins>{{Z|Z27173}}</ins>
::* <ins>{{Z|Z29591}}</ins>
::
:: Are there any I have missed? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:57, 26 April 2026 (UTC)
:I think that here we are starting to walk on dangerous waters: what does past mean? Is it a recent o a far past? Does it have ripercussions on the present or not? Is it just a thing that happened once, many times or for a continuative period of time?
:Consider that various languages distinguish between many different types of past. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:38, 26 April 2026 (UTC)
:: {{re|Dv103}} That is a fair point...
:: How do we go about solving this problem though? I don't think having every sentence on Abstract Wikipedia be "X is a Y" is a very good idea.
:: Maybe we have different functions for all these variations of past you mentioned that just map into "X was a Y." in English? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 13:31, 26 April 2026 (UTC)
:::To properly solve this problem, we should use a more complete abstract content representation model, like for example the proposal of [[Wikifunctions:Type proposals/Semantic unit|Semantic units]] (look at [[Wikifunctions:Type proposals/Semantic unit/Douglas Adams|the example]] to see how times could be handled). For now, since we're still stuck with single fragment generation functions (that I hope will be slowly replaced with the complete represenation model, when available), we could just restrict your function to a very specific meaning, like "subject was an instance of, for most of its existence" (which means for example that it could be used to say "Douglas Adams was a writer", but not "Abraham Lincoln was a president", since he only was a president for 4 years). Probably my definition is still too vague, and this is why we need to go beyond these fragment generating functions. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:47, 26 April 2026 (UTC)
::Nitpick... I don't like that it outputs a string instead of monolingual text. With {{Z|Z26039}} it's used so much that I think it's unfixable in that case beyond deprecating it if people care that much, but {{Z|Z34224}} doesn't even have any connected implementations yet. Consider it, maybe?
::Nitpick 2... {{Z|Z34227}} is missing a language parameter. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:08, 26 April 2026 (UTC)
::: I will consider that!
::: I just did that because that's what {{Z|Z26039}} does, so I assumed I should follow suit with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 26 April 2026 (UTC)
== Legacy functions ==
If and when more robust methods of abstractly representing and generating linguistic content come around, and more efficient ways of creating abstract content are devised and implemented, I suspect that our current methods will require some form of deprecation. This is a significant source of concern for me in relation to WF and AW, questioning how prone our current methods of doing things are and eventually will be prone to obsolescence, and how it will be worked around when it comes. We have over 1 250 articles on AW presently, and these are rather all over the place. I suspect the maintenance burden from keeping these articles up to code will eventually, err, creep up on us, I suppose, and some kind of major refactoring will be necessary. We are definitely in a period of experimentation and whatnot right now but eventually, like with enwiki, some sort of structure and rigor will form and I suspect it will start to become rather boring for me...
I, for one, very much enjoy experimenting with new and better ways to do things here. I don't personally mind changing things to use a new and better paradigm if need be, that sort of thing highly excites me, but of course there will be things that are left behind, and I suspect maybe bots will be employed to deal with this? A lot of Wikipedia sister sites seem to do that, e.g. going and fixing up use of deprecated templates. Considering the nature of Wikifunctions and Abstract Wikipedia I suspect certain maintenance tasks will be made simpler or even trivial by the typical uniformity of our implementations.
I guess I am just concerned if Wikifunctions or Abstract Wikipedia will ever accrue its own kind of "technical debt" with how we are plowing through things presently, and if there is a plan for how we will eventually seek to mitigate that. Maybe too early to ask this question, but I am a notoriously anxious person, so I thought it wouldn't hurt to raise the question regardless... — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 21:30, 26 April 2026 (UTC)
:I very much agree, thank you for expressing my position so well. {{ping|Immanuelle}} has been using an AI-generated tool (well, they haven't edited in a week, perhaps it's a break or perhaps they don't wish to contribute to the project any more) to create a bunch of articles en masse, which I have warned them multiple times is a bad idea (on top of evolving functions, all of the articles are one-sentence-per-paragraph, [[abstract:Q12184|like so]]). That's why I've been avoiding creating articles recently, I'd say I have a good fourth (no data to support, rough guess) of the comments on the wiki, yet less than a percentage of the article count (only three, including the [[abstract:Q319|first article]], though, so perhaps I'm the next [[w:Special:Permalink/908493298|office.bomis.com]]). [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:41, 27 April 2026 (UTC)
:: I feel that the overwhelming presence of these low-quality articles (which I admit I myself am [[abstract:Q1710970|guilty]]/[[abstract:Q7601858|of]]/[[abstract:Q39338|creating]], usually as testbeds) may incur a large maintenance burden. I do expect them to be easy to detect, however, as searching for the presence of "deprecated" NLG functions is trivial, and it is possible that replacing them with their future ''even abstracter™'' counterparts could be done automatically since they all have the same signatures and can be expected to create the same form of sentence. If it needs to be done manually for a while or for certain delinquent instances, my hope is that it will be fun, at least for a while.
:: I just hope that these hypothetical future waves of "this new and versatile way of abstractly representing linguistic content" obsoleting previous methods and requiring refactoring across all articles is only a one-time thing. We should strive to be as robust and flexible as possible from the outset as each brand new paradigm of abstraction is also a brand new maintenance burden for updating old articles. At the end of the day, at least ''some'' of these articles will still render to many different languages even if their methods of creating those sentences of theirs is completely outdated. Ergo, the time it takes for the switchover to be performed across our articles should not be a persistent inconvenience for users (as, of course, they will always still be able to read the content as it was before since these legacy functions aren't being deleted outright), and the increased availability that the new methods will bring about will likely act as motivation for them to join the effort in refactoring (「You're telling me that if I rewrite this article in this cool Lisp-looking stuff then I can probably read it in [[abstract:Q9307|Galician]]?? COOL!」). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 20:26, 27 April 2026 (UTC)
:::Totally agree. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:54, 28 April 2026 (UTC)
:::My vague plan is to implement a default function returning an {{Z|Z89}}, for each language-neutral function. A single function would convert any of these to a {{Z|Z11}}, so that a composition of the two can be implemented as the current default until such time as the language-neutral function is ready to return a [[Z89]]. We can already convert a [[Z11]] to a [[Z89]] so, although there is more to be done in this space, existing language-specific functions could be adapted to return a [[Z89]] quite mechanistically.
:::Although we certainly could deliver parallel Z89 functions for each existing Z11 function, I don’t think we should assume that particular outcome. Provided the Z89 captures a lang attribute from the Z11’s language tag, the two representations should be largely interchangeable, although I am expecting a Z89 to carry additional attributes at the span level that would be lost on conversion to a Z11 (along with any higher-level tags and attributes).
:::When I say there is “more to be done in this space”, I am referring to a new type that would allow HTML fragments to be represented as tractable Wikifunctions objects, but this is currently drafted only in my head! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:21, 29 April 2026 (UTC)
== Filtering types of objects ==
Hello!
I have tried to comb through my own edit history several times, but it's really hard to search for specifics because there's no differentiation between different types of objects (functions, implementations, tests, etc.) in the logs as far as I can tell.
Am I missing anything? I want it to work sort of like how filtering by namespace works. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 27 April 2026 (UTC)
:There is differentiation, it's just rather hard to look through. Since all ZObjects are just JSON data at their core, you can search for instances of <code>{ "Z1K1": "Z[type]"</code>. I haven't tried this so I'm not sure how well it would work and I know MediaWiki search syntax treats quotation marks as a special character, but I have seen Wikifunctions pages link to searches using this before. There is also [[Special:ListObjectsByType]] but it is sitewide rather than specific to your edit history in particular. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 18:59, 27 April 2026 (UTC)
::''[It doesn’t help directly here, but please see [[WF:Find]] for more details of how this works.]'' [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:24, 29 April 2026 (UTC)
:See the feature requests [[phab:T399244]]/[[phab:T373735]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:06, 28 April 2026 (UTC)
:The lack of filtering edits by namespace is exactly the problem that I was trying to solve with the [[User:Amire80/wikifunctionsanalytics]] tool.
:I even kind of succeeded, but it has two major problems:
:# It doesn't have any real frontend, so you have to know some SQL to use it (or ask other people who know SQL).
:# It doesn't get information from the live site, but from the dump, which appears to be updated once a month.
:I've made a [https://quarry.wmcloud.org/query/104794 sample query for you]. Unfortunately, it won't do anything at the moment because of the second problem—your edits started in April 2026, which isn't over yet, so the dump for it hasn't been processed. But I hope that early in May you'll be able to use the same query and see something useful.
:(I plan to add support for recent edits, but I haven't done it yet. Now that I more or less figured out how to process Wikifunctions edits, I'm focused on trying to understand Abstract Wikipedia edits. Processing up-to-date edits from both sites will possibly be the next thing I work on, but if you know some Python and want to try doing it yourself, don't wait for me—[https://gitlab.wikimedia.org/toolforge-repos/wikifunctions-analytics Patches welcome].) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 18:51, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]], I've just updated the data until the end of April. Now the query to which I linked above gives some results. You can also try running other queries if you know SQL. (Or try asking for other queries if you don't.) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 03:26, 3 May 2026 (UTC)
== [[Z34213]] ==
I'm not quite sure why this implementation is failing. Could someone take a look? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:24, 28 April 2026 (UTC)
:I've [https://phabricator.wikimedia.org/T419933#11863997 notified] the team that this is still occurring, the issue was marked as resolved. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:52, 28 April 2026 (UTC)
:Some useful tips:
:* create more testcases: sometimes it is a random error, so try to see how consistent it is between testcases
:* your implementation is very inefficient, since it fetches items and lexemes a lot of times. Ideally, each item and each lexeme should be only fetched once in all the execution tree.
:[[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 06:06, 28 April 2026 (UTC)
::Caching (''should?'') means that the lexeme and item data are cached, so the call doesn't actually execute multiple times. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 17:51, 28 April 2026 (UTC)
:::Are lexemes and items actually cached within the same function execution? Even if they are only partially fetched and/or fetched in bulk? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:54, 28 April 2026 (UTC)
::::I don't have any evidence to prove that it works but that's definitely A. what's supposed to happen and B. the ideal behavior. This happens because the Z680X functions can be cached just like any other. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 18:02, 28 April 2026 (UTC)
::::It is unclear. In general, I believe identical branches are resolved only once in orchestration, but there is also independent caching of Wikidata fetches.
::::According to @[[User:DMartin (WMF)|DMartin (WMF)]] ([https://t.me/Wikifunctions/30374 on Telegram]):
::::<blockquote>Well, no. We have caching of Wikidata entities that have been retrieved, but not of the results of nested function calls. There is a proposal for doing this in the context of the V2 composition language, when it's a bit more mature, and it's regarded as a relatively high priority.</blockquote>
::::It’s hard to tell whether fetches in nested calls are, in fact, cached and available for other nested calls in the same call, since it is not generally the actual fetch that consumes the most resources. Rather (I believe), it is construction and transmission of the result object, which is currently repeated afresh in each nested call (unless it is in an identical branch).
::::I hope that’s clear, and I apologise in advance if it happens to be inaccurate! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 29 April 2026 (UTC)
:::::Oh, I should clarify. There is a lot of caching going on, in several different places. Lexemes and items ''are'' cached by the orchestrator within the same function execution, even if they are only partially fetched and/or fetched in bulk. When I said that we don't have caching of the results of nested function calls, I meant that's not happening in general, for all nested function calls in compositions. But fetching of Wikidata entities gets special treatment, so yes, fetched content from Wikidata is cached, regardless if it was fetched by a top-level call or a nested call.
:::::It is also true that the construction of a ZObject from the fetched JSON might happen more than once within the same function execution, depending on how a composition has been structured. However, the construction of the ZObject is actually very fast, compared to the elapsed time of getting the JSON from Wikidata. [[User:DMartin (WMF)|DMartin (WMF)]] ([[User talk:DMartin (WMF)|talk]]) 18:04, 1 May 2026 (UTC)
== Question about cardinal numbers ==
I was about to edit {{Z|Z16435}} to add my function {{Z|Z34308}}, but I noticed that none of the other functions have a gender parameter.
Should I create a new wrapper function "Bulgarian cardinal, neuter", or should I just remove the gender parameter and always return neuter? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:39, 28 April 2026 (UTC)
:The “cardinal” functions should return the words used for “counting” numbers in the abstract.
:We should consider converting them to return a {{Z|Z11}} rather than a {{Z|Z6}}. It may even be appropriate to return a {{Z|Z12}} to cater for language variants. Either way, I think that would be the approach to adopt for inflected forms, unless reference to specific lexeme-forms is required. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:52, 28 April 2026 (UTC)
::This. If a native of your language were to count up, which form would they be most likely to use? [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:29, 28 April 2026 (UTC)
::: {{re|GrounderUK|Feeglgeef}} Thanks for both your input!
::: I relabeled the aforementioned function to {{Z|Z34308}}, and created a new wrapper function {{Z|Z34457}}.
::: Should I specify that my old function is a monolingual text in parentheses? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:26, 28 April 2026 (UTC)
::::You don't have to, unless you think that is something that would require distinction when viewing the function in a list of search results &c. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:36, 28 April 2026 (UTC)
== Optional/nullable function parameters ==
Hello!
Recently, I was informed that Wikifunctions has no optional/nullable function parameters as of now.
Are there any future plans to support this, and/or workarounds? Maybe create a union type system like "{{Z|6}} or {{Z|23}}". <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 17:53, 28 April 2026 (UTC)
:What I do for this is use an "is empty" function corresponding to the type of the parameter in an If statement. If it isn't empty, the function works as intended. Otherwise, it does something else. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:58, 28 April 2026 (UTC)
:Unions are not a thing (yet) on Wikifunctions, but you can always define an argument of type {{Z|Z1}}, which means that all types are allowed (I already did this for {{Z|Z26737}}; note that it is still a ugly workaround, don't use it for high level functions). Also, note that usually on Wikifunctions we use {{Z|Z24}} as the null value. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:00, 28 April 2026 (UTC)
:: {{re|JJPMaster|Dv103}} Thanks for your help!
:: @[[User:Dv103|Dv103]] told me a function call with a missing parameter is treated as an invalid function call, so how does the "is empty" function work with that?
:: Also, setting the type to {{Z|1}} seems naive, like setting the type as <code>any</code> in TypeScript...
:: Related question: Are there plans to add default values to parameters (outside of "if empty")? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 18:19, 28 April 2026 (UTC)
:::Setting the type to {{Z|Z1}} is actually naive, and that's why I advised you to only use it for low-level functions. Currently there is nothing better. Sometimes, type correctness is not actually checked, so it might seem that nullable types are possible. But it is still an hack, and it could broke anytime since it is not intended behavior.
:::I don't think that there are current plans to add default values (but correct me if I'm wrong). The closest thing that comes to my mind is that, if you incorporate Wikifunctions into Wikitext, you can leave empty some fields (only of some specific types) and Parsoid will replace them to their default value. This is done only depending on the type, and not on the functions. For example, {{Z|Z6091}} and {{Z|Z6001}} are assigned the QID associated to the page, and {{Z|Z20420}} is assigned the current date. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:56, 28 April 2026 (UTC)
:::@[[User:QuickQuokka|QuickQuokka]]: At the very least, [[Z10008]] accepts a null input. Maybe that feature is unique to the String type—I am not sure. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 19:10, 28 April 2026 (UTC)
::::I think it's just not checked, but it shouldn't be intended. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:20, 28 April 2026 (UTC)
::::Strings and typed lists can be “empty” in the sense that their length can be zero. Typed pairs may also be “empty” in a degenerate sense, but such an object will not be returned from a code implementation. A typed map with no entries will also fail to be returned from code, although it is fine in compositions.
::::For a genuinely optional parameter, I prefer a properly typed list, which at least encourages an argument of the correct type. {{Z|Z813}} is also typically faster than {{Z|Z10008}}. Quite a good example of this approach is {{Z|Z23723}}, where it helps to resolve the type union (using [[Z1]]) for both Z6003K1 and Z6003K3. Of course, there’s nothing to prevent more than one element in the list, but additional elements are easily ignored. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:55, 28 April 2026 (UTC)
:Pinging {{ping|Jdforrester (WMF)|prefix=|p=}}, I believe there are no current plans. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:02, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]]: I'm afraid there are no current plans to build out optional params, indeed; we would be happy to review this if a compelling case was made, but it'd be a lot of work to re-build the [[Wikifunctions:Function model|function model]] with that support and ensure we don't break (too many) things. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 19:11, 28 April 2026 (UTC)
== Z6830 for Chinese ==
I was trying to use {{Z|Z6830}} for implementation in the Chinese-language. And turns out most of the Lexeme on Wikidata is using [[d:Q727694]] as the language instead of [[d:Q7850]]. This makes it impossible to use the mentioned function above, since Standard Chinese is not available (or did I miss something?). Is there a way to fetch lexemes with language=[[d:Q727694]] from item? [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 18:20, 30 April 2026 (UTC)
:@[[User:Sun8908|Sun8908]] There is [[Z1006]] for Chinese and it has the language code zh. There is an overview of languages in [[Module:Wikifunctions label]] so you can search there for chinese versions and choose the one you need. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 20:53, 5 May 2026 (UTC)
::I know that. The problem is when using the function [[Z6830]], it cannot retrieve lexeme with language [[d:Q727694]] (but it is the "Chinese language" with the most current Wikidata lexemes, see [https://ordia.toolforge.org/language/ ordia]). I think it should be a Wikidata problem, I might fix it (possibly by creating the same lexemes with language code zh) on Wikidata. Thanks anyway. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 05:39, 6 May 2026 (UTC)
:Could you provide an example of a Chinese lexeme that has a linked Wikidata item, or a Z6830 function call that fails to find such a lexeme where one exists? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 07:55, 6 May 2026 (UTC)
::Here: [[d:Lexeme:L846083]]. I think that's a primary reason of me trying to look into this problem, as the label in zh for [[d:Q6256]] (country) is not a single phrase (see its talk page on WD for more information). This makes some Abstract Wikipedia articles very weird in Chinese when {{Z|Z26570}} is used, so lexeme could potentially fix that. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 10:33, 6 May 2026 (UTC)
:::Thank you. It looks as though {{Z|Z6830}} [https://www.wikifunctions.org/view/en/Z6830?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6830%22%2C%22Z6830K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q6256%22%7D%2C%22Z6830K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P5137%22%7D%2C%22Z6830K3%22%3A%7B%22Z1K1%22%3A%22Z60%22%2C%22Z60K1%22%3A%22cmn%22%2C%22Z60K2%22%3A%5B%22Z6%22%5D%7D%7D returns that lexeme for language tag "cmn"]. Perhaps that tag should be added into the helpers for {{Z|Z24144}}? If it is widely used for lexemes, perhaps it should have its own {{Z|Z60}}? In any event, improvements might be considered under [[:phab:T390563]] (or otherwise), including amending [[Z6830]] to also consider "cmn" (and "zho", "chi"…?) when requests are made for "zh-hans" or "zho-hant" (or others?) @[[User:Winston Sung|Winston Sung]] @[[User:DMartin (WMF)|DMartin (WMF)]] [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 17:22, 6 May 2026 (UTC)
::::If you go to [[d:Special:NewLexeme]] and put in [[d:Q727694]] as the language, it is going to tell you it has an unrecognized language code. So I believe "cmn" should not be a {{Z|Z60}} by default? I also started [[d:Wikidata:Project_chat#Lexemes_with_language_Standard_Chinese_(Q727694)|a discussion on WD]] regarding this. I guess we can still use it as a fallback language though if possible. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 03:43, 7 May 2026 (UTC)
::::We don't have a separated <code>cmn</code> BCP 47 language subtag in MediaWiki and Wikidata at the moment. <code>zho</code> and <code>chi</code> are ISO 639 language codes but not BCP 47 language subtags.
::::For Modern Standard Mandarin, please use <code>zh-*</code> language tags for now. -- [[User:Winston Sung|Winston Sung]] ([[User talk:Winston Sung|talk]]) 15:26, 8 May 2026 (UTC)
== Key not found error ==
Is there a reason why I am getting key not found error for this [[Z34677|function]] {{Z|Z34677}}? All the underlying functions run and all the test cases work. The debug information does not give more details. Any pointers? Thanks in advance [[User:Jsamwrites|John Samuel]] 19:24, 1 May 2026 (UTC)
:It was passing the [[Z6091]] to {{Z|34641}} when that takes a [[Z6001]]. I've fixed that, but there's some other problem with the logic, so I've left it disconnected. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:42, 1 May 2026 (UTC)
::@[[User:YoshiRulz|YoshiRulz]] Thanks a lot. [[User:Jsamwrites|John Samuel]] 20:21, 1 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #246 is out: Request for input: what should we count for Abstract Wikipedia ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we ask you what would be the relevant metrics for Abstract Wikipedia, we discuss our latest news on Composition Language v2, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 12:21, 2 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== Any formal process for deletion of pages ==
Does a formal process exist for the deletion of functions, implementations, and tests that includes a notification system for creators, analogous to Wikidata’s process, explaining the rationale behind the deletion (or proposal for deletion)? [[User:Jsamwrites|John Samuel]] 12:36, 3 May 2026 (UTC)
:Does [[Wikifunctions:Requests for deletions]] work? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 13:00, 3 May 2026 (UTC)
:Please see the discussion at [[Wikifunctions talk:Requests for deletions#Should we expect Objects' creators to get pinged on deletion proposals?]].
:As I see it, it is the proposer’s responsibility to consult appropriately before making a request and we expect our administrators to act only when satisfied that appropriate consultation has occurred. In many cases, no consultation is required. Administrators may delete their own contributions without making a request, but this is not a practice I would encourage. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:51, 3 May 2026 (UTC)
== Implementation of rational number in JS doesn't match in Z19677 (Rational number) and Z28579 (RGBA colour) ==
In {{Z|19677}} it's
<syntaxhighlight lang=js>
{
"K1": sign * numerator,
"K2": denominator
}
</syntaxhighlight>
but in {{Z|28579}} it's
<syntaxhighlight lang=js>
[ sign * numerator, denominator ]
</syntaxhighlight> '''<span style="font-family:Iosevka,monospace">[[User:沈澄心|<span style="color:#9f3526">dring</span>]][[User talk:沈澄心|<span style="color:#534fa3">sim</span>]]</span>''' 05:15, 4 May 2026 (UTC)
:I'm guessing this is why [[Z34743]] fails all the tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:00, 18 May 2026 (UTC)
== Nested functions in compositions ==
I wish it will be easier to a add another function about a specific existing function in a function implementation based on a composition. When I write long functions in spreadsheets I usually stat with a small part and then I try to go further and after important steps I test if the output is as expected. I created [[Z34826]] to get the German gender specific occupation lexeme for a specific person based on their gender. I wanted to add a function around the existing one and it was not successful. It is not very easy to implement as it requires the possibily to move a part to another section but I think it can be helpful if it will be implemented. So far I spend more time as expected on the function. Describing it with words what the function needs to do is much easier than implementing it here in Wikifunctions. So I think there needs to be improvement to make Wikifunctions more accessible. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:10, 5 May 2026 (UTC)
:Have you tried to use the copy-paste functionality? It is very useful to move parts of composition arounn. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:12, 6 May 2026 (UTC)
:I've also found the composition editor to be wholly unsuitable for any expressions more than a few levels deep. (Even with the <code>localStorage</code> clipboard, because of its overzealous type checks.) Compositions naturally grow out from the "leaves", the immediate operations on the inputs, while the interface really wants you to build from the "root". I mostly use the [https://yoshirulz.gitlab.io/WikiLambdaBlockly drag-and-drop block editor] which I made to smooth over some of the site's problems, so if you want to try that out and give me some feedback I'd appreciate it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 14:36, 6 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #247 is out: References from Wikidata now available ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-08|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we announce that is now possible to pass references in Wikidata statements, we introduce the [https://abstract-data.toolforge.org/ Abstract Data dashboard], we report you on the presentation about Abstract Wikipedia at WikiCon Australia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1778520600 May 11, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:16, 8 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== RGBA colour, spelling... ==
Something that has always irked me a little bit is the spelling of [[Z28579|RGBA colour (Z28579)]]. I guess this is not unsurprising for me considering my use of US English but I think there is more to it than preference and I want to try to argue for it being changed to use American spelling. I know that this probably has a snowball's chance in hell of actually garnering any support, so I won't really be miffed if the spelling remains as it is, but I thought it wouldn't hurt to raise this regardless.
The main issue I have with it is the spelling of the original proposal. When infernostars raised the [[Wikifunctions:Type proposals/RGBA color|type proposal]], the spelling was 「RGBA color」. Of the comments that mentioned the word 「colo[u]r」, two used British spelling while six used the American spelling as used in the proposal. The only thing that really pointed to the use of ''colour'' was the fact that the catalog page on color functions used that spelling already. For all intents and purposes, the spelling of the original proposal should have been maintained, but it was not; [[User:DVrandecic (WMF)|DVrandecic]], the eventual creator of the type, used a different spelling.
It should be noted that there was really no reason for this to occur and while it is an undoubtedly minor issue I still believe it should be rolled back and the type should use the spelling of the original proposal and majority of editor comments. In [[abstract:Q936|OpenStreetMap]], there have been keyvalue proposals that have had the finalized spelling that gets put to use be in British English despite the original proposal being in American English; this has usually occurred with proposals relating to 「X center/centre」 tags. This makes sense on the surface, because OpenStreetMap is maintained by a UK organization, and still has close ties to Europe. The Wikimedia Foundation, however, is an ''American'' company. This is often brought up as a fallible argument when debating article spelling on the English Wikipedia, and I don't bring it up to support that 「RGBA color」 should be used for that exact reason, but rather to state that OpenStreetMap's general policy on tag names need not apply here. It appears to me that, at least initially, the majority of 「core contributors」 to Wikifunctions used British English; I can name YoshiRulz, 99of9, GrounderUK, and VIGNERON.<ref group="color">I'm avoiding linking to these folks because I don't think pinging them about this discussion is all too necessary unless they themselves want to be involved; I don't want to clutter their inboxes just to briefly mention them. I pinged Denny because, well, I'm asking him a question directly, but everyone else I would prefer to join this discussion by their own accord... not that I wish for this decision to be confused as me going 「these people use British English so they will probably oppose my idea, I won't invite them to the discussion because of that」...no, I promise you that is not the reason.</ref> I see (or saw) these people ''everywhere'', so it makes sense that British English has prevailed in some sorts on this website, but I don't think that indicates that it should be the ''preferred'' spelling across the website, at least not to the point where a proposal should have its name changed to match such a "consensus".<ref group="color">It could be argued that the front-and-center ''Function catalogue'' using 「catalogue」 is actually indicative of such a "consensus", but ''catalogue'' is in a similar position to the word ''grey'' where I live (that is, the US) in that it is used just as often as its American counterpart. Also, consider Wiktionary's ''Beer parlour'' project chat.</ref>
The unnecessary modification of the original spelling is my main argument for changing it back... but of course, I must obligatorily state that on English Wikipedia, it is [[w:Color|Color]] and [[w:RGBA color model|RGBA color model]]; on Wikidata, it is [[d:Q1075|color]] and [[d:Q2325624|RGBA color space]]; in CSS (which typically uses hexadecimal triplets to specify RGBA values), the properties are <code>color</code>, <code>background-color</code>, etc.; bit of a weak jab, but on Schema.org it is [https://schema.org/color color], [https://schema.org/colorSwatch colorSwatch]; et cetera. {{Z|Z28580}} uses ''color'', so does {{Z|Z28591}} and its Python counterpart.
Mr. Vrandečić, I have to ask, I'm rather confused... you created the color type using British English spelling, but you were also responsible for the creation of the equality function which uses the American English spelling. You also seem to be writing in American English for the status updates, judging by your use of -''ize'' over -''ise'' endings and use of ''program'' over ''programme'' in [[Wikifunctions:Status updates/2026-04-16]]. Is there something I'm missing or have you switched your preferred variant somewhere along the way?
Anyways, do consider this if you wish... again, I don't suppose this will garner much support, it is the ''non-issuest'' of ''non-issues'', but it has irked me to the point where I want to ask about it to get some answers, if nothing else. I am not arguing for every other color function to have its name changed, just the type itself.
<references group="color"></references>
— [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:04, 8 May 2026 (UTC)
:This is a multilingual project; the <code>en</code> label is <code>RGBA colour</code> and the <code>en-us</code> label is <code>RGBA color</code>. Though I'm not able to switch to <code>en-us</code> via the language picker so that would need to be fixed.<!--
--><br>edit after reading your whole comment: The same is true of {{Q|1075}}, there are labels specified for multiple English variants. (In {{Q|2325624}} it's only an alias.) I agree that other websites' choices aren't binding on us, but from that, I conclude that the more widespread British/Commonwealth spellings should be used for the generic <code>en</code>. As for myself, I'm Aussie and I will continue to use the BrE spellings ([[w:en:Oxford_spelling#Language_tag_comparison|+ "routing"]], TIL) if only by muscle memory.<!--
--><br>[[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:42, 8 May 2026 (UTC)
:: Your lattermost point would normally be fine in a perfect world. Wikipedia's <code>convert</code> function defaults to "international" English, which I don't personally take issue with because it happens that we here in America are actually outliers for saying and spelling things differently... err, or we were for a while at least, nowadays it seems like an even split (plus you have "yield" vs. "give way" which is effectively the logical opposite of US's use of "meter" over "metre").
:: However, this is not a perfect world, and I don't think <code>en</code> should correspond to any particular variant. It is too fragmented across all software at this point to impose such a requirement. The inability to switch to <code>en-us</code> on this website foregoes an easy and simple solution to this problem that makes everyone happy, because the yanks (such as myself) can't be happy because we can't see the labels in American English even if we wanted to, and the other folk can't switch either as far as I'm aware (and the en-CA and en-GB languages in the preferences page seems to be deprecated). My point being, <code>en</code> is abused to mean "en-UK" just as often as it is abused to mean <code>en-US</code>; I think a decision shouldn't be made on such an assumption of one "default". — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:48, 12 May 2026 (UTC)
:Hi @[[User:Theki|rae]]! I have no opinion nor preference on this, and given my background, I am just entirely confused about my spelling preferences myself, as you can tell from my inconsistent usage. I learned British English in school and used that for maybe two decades or so, but moved to the US and lived there for more than a decade, enough to be naturalized, but now I am back in Europe and I am technically a professor at King's College London, soooo.... honestly, I do not know. I don't remember having put too much thought into it at the moment I created it. The good thing is that in Wikifunctions, just as in Wikidata, it is easy to change, without messing things up too much (unlike in Wikipedia), so my suggestion is, just make the change, see if anyone complains, and if they do, discuss it more. I don't know if there is a guideline already in Wikifunctions about the variants. I am happy either way, and honestly, I keep forgetting which variant is which most of the time. --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 18:16, 10 May 2026 (UTC)
:: I can definitely understand this, although I am unfortunately rather passionate about any minutiae involving preferential minor differences in ''anything'', of which AmE vs. BrE chiefly is. So I dedicate a lot of headspace to it. More than I should. Not that I wish to imply that the comment above that I have wrote is of an irrational nature, or done out of spite or pure emotion and subjectivity; I do genuinely believe that ''RGBA color'' is beyond just a personal preference and is just logical. I may boldly go and change it, but for some reason I was expecting that changing the English label of a Type would require elevated permissions, and I also didn't want to do it only to get immediately reverted because it ''did'' strike a chord with someone, when I could instead see how apathetic, supportive, or in opposition interested people are beforehand and ''then'' act accordingly. I was not meaning to antagonize you over your spelling habits, I did actually use British English for a few years starting in 2020 before I went back to American English, so I'd be a hypocrite for me to decry you for not always sticking to some arbitrary standard of spelling words over the other. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:55, 12 May 2026 (UTC)
:Although I spell it “colour”, I think it makes more sense to use “color” for the type, since that is almost always the required spelling when the string functions as a keyword.
:More generally, though, Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en". This is unusual, in my experience, as "en" is widely misused in place of "en-US", where there are recorded spelling differences.
:(I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere. Use of -ize rather than -ise is a matter of personal preference or house style, but regional autocorrect encourages -ise.) [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:00, 12 May 2026 (UTC)
:: ''Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en"''
:: Definitely agreeing with you on the latter being a good choice. However, I suspect the favoring of "colour" over "color" may be because, in terms of language codes, when sorted alphabetically <code>en-us</code> actually comes ''after'' <code>en-gb</code>. Although, the frontend seems to be sorting <code>en-ca</code> after <code>en-gb</code>, so I don't actually know how correct that is.
:: ''I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere''
:: The context of the spelling was "''No program for the NLG SIG meeting for next Tuesday has been proposed''". In that usage context, I think it makes sense to assume that ''program'' is not being used to refer to a computer program, but to a ''program of events'' or similar, something that you would spell as a ''programme'' in British English. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:02, 12 May 2026 (UTC)
:{{s}} this. I'm obviously biased but I believe American English is preferable generally, American dominance on the internet (our Department of Defen'''s'''e invented it!) and rapidly-increasing consumption of American media by international English speakers means that more people use American English's conventions, this is clear through for example [http://trends.google.com/explore?q=color%2Ccolour&date=all&geo=Worldwide search trends] (though they aren't particularly reliable). Perhaps this is a bit of a supremacist opinion, but we should have internal consistency, and if we must choose, American English should be our first choice (then Indian and then British English) [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:10, 12 May 2026 (UTC)
:: This is rather flawed reasoning, though. I think probably any given British or Indian person would not agree on using that as the reasoning for this, not that you are necessarily ''completely wrong'', but if this is not a good enough reason for English Wikipedia's (admittedly extremely flawed) ''ENGVAR'' policy then I don't think it's likely it will pass here either.
:: Although of note is that [https://books.google.com/ngrams/graph?content=color%2Ccolour&year_start=1800&year_end=2022&corpus=en&smoothing=3&case_insensitive=true Google ngrams] agree with you, but "color" vs. "colour" is an eternal holy war that will not be won by demonstrating that more books use US spelling over Commonwealth spelling. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:44, 12 May 2026 (UTC)
:::You're probably right that it's not very sound. I'm biased in that other varieties of English irk me, and that's probably mutual for people who are used to other varieties of English when they read what I write! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:56, 12 May 2026 (UTC)
:I've decided to boldly [[Special:Permalink/274271|make the change]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:02, 12 May 2026 (UTC)
:: Thank you. Considering both you and GrounderUK seem to consider it an okay change, I think this will do for now.
:: I should note that the matter of whether to move [[Wikifunctions:Catalogue/Colour functions]] in response to this (however this discussion will ultimately turn out) is a whole other can of worms, in my view. I can't say I have an opinion on that at the moment, but I'm putting it out there regardless. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:06, 12 May 2026 (UTC)
:::Personally, I'm in favor of moving the page and renaming all of the items on it. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:10, 12 May 2026 (UTC)
::I don't like this (exactly because of the American hegemony you cited), but again, it shouldn't matter because the software is meant to be multilingual. Clearly there's a bug preventing you from picking an English variant/dialect as your display language. But the search bar and Function/Type autocompletion do check the English variants for matches. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:15, 12 May 2026 (UTC)
== Proposals on the architecture of Abstract Content rendering ==
Starting from a discussion born on the Telegram chat, I've explained two different proposals on how the NLG on Abstract Wikipedia should be organized in the page [[abstract:User:Dv103/Abstract articles architectures]]. Please come to contribute to the discussion, or to propose alternatives. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 14:31, 11 May 2026 (UTC)
:Thank you for dedicating your time to writing this, it is very informative. I will try to add input once I'm not in over my head with finals. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:27, 12 May 2026 (UTC)
== Display function for HTML fragment ==
Currently, any collapsed Z89 literal appears as<blockquote><> [[Z89|HTML fragment]]</blockquote>If I were to create a new Function which returned something like<blockquote><> 123-byte HTML fragment <q><nowiki><td><span lang=</nowiki>…</q></blockquote>could that be connected to replace the collapsed form, or would it require changes to the Wikilambda software? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:14, 11 May 2026 (UTC)
:It might work, but I doubt it. Those angled brackets suggest that the collapsed form is not simply defaulting to the type’s label. Looking at [[:phab:T410509]], I’ve concluded that enhancements to the collapsed form were never considered, rather than being actively rejected. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:12, 12 May 2026 (UTC)
::[[:Phab:T391985]] documents the original design. Note the fifth bullet point under “Acceptance criteria”. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:21, 12 May 2026 (UTC)
:I'm not sure the byte-size is necessary, but the outer tag (or first outer tag, though generally I'd prefer most fragments use a wrapper tag if it needs multiple like JSX does, but that's a whole different topic) would be nice. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 12:51, 12 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #248 is out: A higher meaning ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-15|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss functions creating language fragments, we present our latest news in Types, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:36, 15 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
== [[Z34510]] ==
This function, which determines if a Wikidata item for a {{q|5}} has an undeprecated {{p|21}} statement of {{q|6581097}}, returns false for {{q|173399}}, a transgender man. This is because his item assigns his P21 statement to {{q|2449503}}, not {{q|6581097}}. I'm not sure how to account for this discrepancy. Should {{z|34510}}:
# Include {{q|2449503}} as a value that can lead to a true result,
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a man?") could return true for either "male" or "trans man",
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a trans man?") could return true for "trans man",
# Not exist at all?
[[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 16:48, 16 May 2026 (UTC)
:I can't think of a single use case where you would need to determine if a person is a cisgender man and nothing else. Functions are good for generalizing across multiple possibilities when they exist, so I think it would be best if trans men were considered a part of the criteria for returning a true value. If asking for specifically {{q|6581097}}s and ''nothing'' else was desired then the function name would be a misnomer as Elliot Page is inarguably a male (at least in the view of most reasonable and intelligent people). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 19:03, 16 May 2026 (UTC)
:You made the function in the first place; what were you planning on using it for? AW? Maybe it should return a {{Z|25501}} which can then be passed on to other NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:01, 16 May 2026 (UTC)
== Lexeme from wikidata label, or "best" lexeme from wikidata item ==
I was looking into fixing [[Z28028]]. I found that I could add "requires grammatical feature: definite article" to "United Kingdom" (L8558). Now I'm stuck on how to get to that lexeme from {{Q|145}}. There's [[Z23471]], but that for very good reason gives you multiple lexemes with the same sense, and I just want the best one like how the label is always the best string. Is there a function that can do this?
There's definitely the case of a Wikidata label that isn't a lexeme (most commonly multiple lexemes) but I'm only considering the case where it is one lexeme here. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 20:02, 16 May 2026 (UTC)
:There is {{Z|Z27327}}, that tries to give the best lexeme through various heuristics. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 22:22, 16 May 2026 (UTC)
:: Wonderful! I did stumble upon [[Z33818]] but this is perfect. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:25, 17 May 2026 (UTC)
== [[Z29591]] isn't working for me ==
For instance, trying to manually put in the exact inputs for one of the test cases just returns an empty Monolingual text. See [https://www.wikifunctions.org/wiki/Z29591?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29591%22%2C%22Z29591K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3257809%22%7D%2C%22Z29591K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z29591K3%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z29591K4%22%3A%22Z1002%22%7D]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 01:17, 17 May 2026 (UTC)
:You used [[:d:Q22006653]] rather than [[:d:Q1075]]. It looks like the [https://www.wikifunctions.org/wiki/Special:RunFunction?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D explanatory error] is suppressed by the [https://www.wikifunctions.org/view/en/Z30009?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30009%22%2C%22Z30009K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D%2C%22Z30009K2%22%3A%22Z801%22%7D final transformation]. The returned result is not actually empty; if you expand it, you can see that it is an unresolved function call. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 09:59, 17 May 2026 (UTC)
== [[Z35298]] ==
Does anyone know what the problem with this implementation is? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 21:14, 18 May 2026 (UTC)
:There is a bug that doesn't allow Python implementation to return nested lists. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:31, 19 May 2026 (UTC)
::Is there a Phabricator task for this? Searching through them is hell. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 03:22, 20 May 2026 (UTC)
:::A bit of time ago I opened [[phab:T392750]], which is very similar to this issue. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:26, 20 May 2026 (UTC)
== May 2026 Wikimedia Café meetups regarding the Wikimedia Foundation Annual Plan ==
<div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)">
<div class="box" style="float:left; padding-top: 15px; padding-right: 15px;">[[File:Wikimedia Café logo in plain SVG format.svg|75px|alt=The logo for the Wikimedia Café]]</div>
Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities during the last weekend of May. Both sessions will focus on the [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2026-2027 the 2026-2027 Wikimedia Foundation Annual Plan]. Participants may attend either or both sessions.
#'''Saturday, 30 May 2026 at 15:00 UTC''' ([https://zonestamp.toolforge.org/1780153200 timestamp converter]), at a time friendly to the Americas, Africa, and Europe
#'''Sunday, 31 May 2026 at 05:00 UTC''' ([https://zonestamp.toolforge.org/1780203600 timestamp converter]), at a time friendly to Asia and the Pacific
Café participants are highly encouraged to read in advance [https://en.wikipedia.org/wiki/User:Sohom_Datta/annual_plan_guide at least this summary of the plan]. Optionally, Café participants are encouraged to read portions of the plan that interest them and [https://meta.wikimedia.org/wiki/Talk:Wikimedia_Foundation_Annual_Plan/2026-2027 ask questions or provide feedback on the Annual Plan talk page].
Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#May_2026_meetings_with_a_focus_on_Wikimedia_Foundation_Annual_Plan/2026-2027 tables of timestamp conversions for both sessions], [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#Agenda._This_will_be_an_approximately_1_hour_Caf%C3%A9_session,_and_is_extendible_for_an_additional_30_minutes_if_needed. the agenda], and [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]!
<br />
[[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div>
<span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 19:56, 21 May 2026 (UTC)
== How to handle items without lexemes ==
NLG functions relay heavily on the presence of lexemes associated to items on Wikidata. But we know that not all the Wikidata items have an associated lexeme. There are multiple reasons why an item does not have an associated lexeme, like:
# The lexeme has not been created yet
# The item represents a place
# The item represents a person
# The item represents a specific concept that can only be expressed by a specific combination of words that cannot be [[Wikidata:Wikidata:Lexicographical data/Notability|notable]] (like {{Q|Q61220733}}).
My doubt is: what should we do with this fourth category? For many languages, just using the Wikidata item label is not possible, since it is necessary to conjugate the words or to retrieve grammatical information like the gender. What should we do? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:09, 23 May 2026 (UTC)
:In that particular example, I think the thing to do is read its {{P|279}}: {{Q|21191270}}, then have some kind of heuristic based on that which says to take its {{P|8345}} and attach that Item's label to a Form of the word for "episode". In general, synthesising Lexemes for proper nouns is one of the problems that [[abstract:User:Dv103/Abstract_articles_architectures|proposals in your list here]] will have to address. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:59, 23 May 2026 (UTC)
[[File:Wikidata content 2024.svg|thumb|Content of Wikidata by type]]
::{{ping|Dv103}} very good point.
::For your point 2, it depends of the place but I think that quite often a lexeme can be created (most "Administrative territorial entity", most geographical entity, etc.). And with 3, your can add a lot of types (see pie chart) : Scholarly article, Human (with a very few exception), Wikimedia Category, Disambig, etc. which is (rough estimation) 2/3 of Wikidata items.
::A common rule (in dictionaries since forever and in Lexemes) is to not create an entry which is the "sum of its part". In this case, "Star Trek episode" is just episode + Star Trek, nothing more than its part. So logically, as {{U|YoshiRulz}} said, when no corresponding lexeme is found, the item should be decomposed the same way, the hard part is to know how to decompose it as the property will vary ; P31 and P279 are an obvious start but beyond that, I'm not sure we could find a general solution.
::PS: it's beyond you question but there is also the reverse problem, how to select one lexeme when multiple are linked to the same item...
::Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:43, 24 May 2026 (UTC)
:::For the point 2, I think humans will be used way more than scholarly articles and disambiguations in NLG functions (outside references), that's why humans concern me more (still a cool pie chart, though).
:::For the reverse problem, there is already {{Z|Z27327}}: it's far from perfect, but usually makes a decent choice. Obviously it is not "complete", and probably it will never be complete, but it will have to be progressively improved by the community. And probably in the future we will need to create similar functions to select the best lexeme in more specific cases.
:::For my fourth point, I didn't think about the decomposition, but it is something that could be done with another never-complete community-mantained function, that progressively keeps being improved. If [[Wikifunctions:Type proposals/Semantic unit|semantic units]] will be implemented, through them it could actually be possible to do this operation in a laguage-independent way. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:10, 24 May 2026 (UTC)
::{{re|YoshiRulz}} Proper noun synthesis, along with other fallbacks for realizing the names of concepts that don't have lexemes, is merely a step within the overall abstract content rendering process and is not inherently tied to the process itself; having the ability to [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/graph/client.py#L327 run any number of fallback mechanisms], instead of a raw call to (the equivalent of) Z27327, should be possible with any of the methods listed on the architectures page. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 16:41, 24 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #249 is out: Annual plan 2026-2027 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-23|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we present you the current draft of objectives for Wikifunctions and Abstract Wikipedia in the WMF Annual Plan 2026-2027, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 09:48, 25 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
:The new <code>return_type</code> param to [[Special:ListObjectsByType]] will show Functions returning e.g. {{Z|27951}} and {{Z|882}} if those are typed in manually, but the dropdown menu doesn't offer them, probably because it's a copy of the dropdown above (and there are no Persistent objects of those Types). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:12, 26 May 2026 (UTC)
== Type documentation template ==
Over the past couple of weeks, I've been developing and rolling out {{t|type documentation}}: a standardised layout for Type metadata, de/constructors, conversions, etc. on each Type's talk page. (The layout is loosely based on [[d:Template:Property documentation|Wikidata's]].) See [[Talk:Z16683|Integer]] for an example that uses most of its features, and [[Talk:Z99|Quote]] for one that doesn't.<br>At this point I can't think of anything more to add besides [[Help:Comparison_function_table/float64|filling out]] a couple more [[Help:Type_conversion_table/Codepoint|tables]]. But if any of you have ideas or feedback, please click through to the relevant talk page and leave me a message. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:29, 26 May 2026 (UTC)
:I really like what you're doing here. Thank you. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:26, 26 May 2026 (UTC)
rul1ja6vu0an4atb9t0e782ri3glmpu
278259
278258
2026-05-26T13:57:15Z
Strobilomyces
193
/* Type documentation template */
278259
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== “Key not found ()”? ==
What am I doing wrong in {{Z|Z34137}}? [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 00:39, 25 April 2026 (UTC)
:You were passing a [[Z6091]] to {{Z|32290}}, but it takes a [[Z6001]]. Fixed. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 07:10, 26 April 2026 (UTC)
::{{done|Thank you}}! [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 14:13, 26 April 2026 (UTC)
== Is it OK to connect the implementation? ==
Hello!
I recently applied for functioneer on [[WF:RFG]], and I was wondering whether I could connect the implementation for {{Z|Z34165}} despite its dependency {{Z|Z34149}} being currently unimplemented. That is <em>if</em> I get accepted.
I am planning on implementing it based on [[wikt:module:bg-nominal]], but am still having trouble figuring it out for now. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 09:04, 26 April 2026 (UTC)
== Past tense function ==
Is there a function like {{Z|Z26039}}, but for the past tense (e.g. "Leo Tolstoy <em>was</em> a writer.")?
If not, I will create it myself, I just want to make sure there's not a duplicate. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:10, 26 April 2026 (UTC)
: {{Done}} with {{Z|Z34224}}, but I have a few kinks to work out with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:35, 26 April 2026 (UTC)
:: I need to create some other similar functions for the past tense, I have some ideas:
::* {{Z|Z26095}}
::* {{Z|Z32643}}
::* {{Z|Z28016}}
::* {{Z|Z26570}}
::* {{Z|Z33975}}
::* {{Z|Z27243}}
::* <ins>{{Z|Z26627}}</ins>
::* <ins>{{Z|Z27627}}</ins>
::* <ins>{{Z|Z27173}}</ins>
::* <ins>{{Z|Z29591}}</ins>
::
:: Are there any I have missed? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:57, 26 April 2026 (UTC)
:I think that here we are starting to walk on dangerous waters: what does past mean? Is it a recent o a far past? Does it have ripercussions on the present or not? Is it just a thing that happened once, many times or for a continuative period of time?
:Consider that various languages distinguish between many different types of past. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:38, 26 April 2026 (UTC)
:: {{re|Dv103}} That is a fair point...
:: How do we go about solving this problem though? I don't think having every sentence on Abstract Wikipedia be "X is a Y" is a very good idea.
:: Maybe we have different functions for all these variations of past you mentioned that just map into "X was a Y." in English? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 13:31, 26 April 2026 (UTC)
:::To properly solve this problem, we should use a more complete abstract content representation model, like for example the proposal of [[Wikifunctions:Type proposals/Semantic unit|Semantic units]] (look at [[Wikifunctions:Type proposals/Semantic unit/Douglas Adams|the example]] to see how times could be handled). For now, since we're still stuck with single fragment generation functions (that I hope will be slowly replaced with the complete represenation model, when available), we could just restrict your function to a very specific meaning, like "subject was an instance of, for most of its existence" (which means for example that it could be used to say "Douglas Adams was a writer", but not "Abraham Lincoln was a president", since he only was a president for 4 years). Probably my definition is still too vague, and this is why we need to go beyond these fragment generating functions. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:47, 26 April 2026 (UTC)
::Nitpick... I don't like that it outputs a string instead of monolingual text. With {{Z|Z26039}} it's used so much that I think it's unfixable in that case beyond deprecating it if people care that much, but {{Z|Z34224}} doesn't even have any connected implementations yet. Consider it, maybe?
::Nitpick 2... {{Z|Z34227}} is missing a language parameter. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:08, 26 April 2026 (UTC)
::: I will consider that!
::: I just did that because that's what {{Z|Z26039}} does, so I assumed I should follow suit with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 26 April 2026 (UTC)
== Legacy functions ==
If and when more robust methods of abstractly representing and generating linguistic content come around, and more efficient ways of creating abstract content are devised and implemented, I suspect that our current methods will require some form of deprecation. This is a significant source of concern for me in relation to WF and AW, questioning how prone our current methods of doing things are and eventually will be prone to obsolescence, and how it will be worked around when it comes. We have over 1 250 articles on AW presently, and these are rather all over the place. I suspect the maintenance burden from keeping these articles up to code will eventually, err, creep up on us, I suppose, and some kind of major refactoring will be necessary. We are definitely in a period of experimentation and whatnot right now but eventually, like with enwiki, some sort of structure and rigor will form and I suspect it will start to become rather boring for me...
I, for one, very much enjoy experimenting with new and better ways to do things here. I don't personally mind changing things to use a new and better paradigm if need be, that sort of thing highly excites me, but of course there will be things that are left behind, and I suspect maybe bots will be employed to deal with this? A lot of Wikipedia sister sites seem to do that, e.g. going and fixing up use of deprecated templates. Considering the nature of Wikifunctions and Abstract Wikipedia I suspect certain maintenance tasks will be made simpler or even trivial by the typical uniformity of our implementations.
I guess I am just concerned if Wikifunctions or Abstract Wikipedia will ever accrue its own kind of "technical debt" with how we are plowing through things presently, and if there is a plan for how we will eventually seek to mitigate that. Maybe too early to ask this question, but I am a notoriously anxious person, so I thought it wouldn't hurt to raise the question regardless... — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 21:30, 26 April 2026 (UTC)
:I very much agree, thank you for expressing my position so well. {{ping|Immanuelle}} has been using an AI-generated tool (well, they haven't edited in a week, perhaps it's a break or perhaps they don't wish to contribute to the project any more) to create a bunch of articles en masse, which I have warned them multiple times is a bad idea (on top of evolving functions, all of the articles are one-sentence-per-paragraph, [[abstract:Q12184|like so]]). That's why I've been avoiding creating articles recently, I'd say I have a good fourth (no data to support, rough guess) of the comments on the wiki, yet less than a percentage of the article count (only three, including the [[abstract:Q319|first article]], though, so perhaps I'm the next [[w:Special:Permalink/908493298|office.bomis.com]]). [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:41, 27 April 2026 (UTC)
:: I feel that the overwhelming presence of these low-quality articles (which I admit I myself am [[abstract:Q1710970|guilty]]/[[abstract:Q7601858|of]]/[[abstract:Q39338|creating]], usually as testbeds) may incur a large maintenance burden. I do expect them to be easy to detect, however, as searching for the presence of "deprecated" NLG functions is trivial, and it is possible that replacing them with their future ''even abstracter™'' counterparts could be done automatically since they all have the same signatures and can be expected to create the same form of sentence. If it needs to be done manually for a while or for certain delinquent instances, my hope is that it will be fun, at least for a while.
:: I just hope that these hypothetical future waves of "this new and versatile way of abstractly representing linguistic content" obsoleting previous methods and requiring refactoring across all articles is only a one-time thing. We should strive to be as robust and flexible as possible from the outset as each brand new paradigm of abstraction is also a brand new maintenance burden for updating old articles. At the end of the day, at least ''some'' of these articles will still render to many different languages even if their methods of creating those sentences of theirs is completely outdated. Ergo, the time it takes for the switchover to be performed across our articles should not be a persistent inconvenience for users (as, of course, they will always still be able to read the content as it was before since these legacy functions aren't being deleted outright), and the increased availability that the new methods will bring about will likely act as motivation for them to join the effort in refactoring (「You're telling me that if I rewrite this article in this cool Lisp-looking stuff then I can probably read it in [[abstract:Q9307|Galician]]?? COOL!」). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 20:26, 27 April 2026 (UTC)
:::Totally agree. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:54, 28 April 2026 (UTC)
:::My vague plan is to implement a default function returning an {{Z|Z89}}, for each language-neutral function. A single function would convert any of these to a {{Z|Z11}}, so that a composition of the two can be implemented as the current default until such time as the language-neutral function is ready to return a [[Z89]]. We can already convert a [[Z11]] to a [[Z89]] so, although there is more to be done in this space, existing language-specific functions could be adapted to return a [[Z89]] quite mechanistically.
:::Although we certainly could deliver parallel Z89 functions for each existing Z11 function, I don’t think we should assume that particular outcome. Provided the Z89 captures a lang attribute from the Z11’s language tag, the two representations should be largely interchangeable, although I am expecting a Z89 to carry additional attributes at the span level that would be lost on conversion to a Z11 (along with any higher-level tags and attributes).
:::When I say there is “more to be done in this space”, I am referring to a new type that would allow HTML fragments to be represented as tractable Wikifunctions objects, but this is currently drafted only in my head! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:21, 29 April 2026 (UTC)
== Filtering types of objects ==
Hello!
I have tried to comb through my own edit history several times, but it's really hard to search for specifics because there's no differentiation between different types of objects (functions, implementations, tests, etc.) in the logs as far as I can tell.
Am I missing anything? I want it to work sort of like how filtering by namespace works. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 27 April 2026 (UTC)
:There is differentiation, it's just rather hard to look through. Since all ZObjects are just JSON data at their core, you can search for instances of <code>{ "Z1K1": "Z[type]"</code>. I haven't tried this so I'm not sure how well it would work and I know MediaWiki search syntax treats quotation marks as a special character, but I have seen Wikifunctions pages link to searches using this before. There is also [[Special:ListObjectsByType]] but it is sitewide rather than specific to your edit history in particular. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 18:59, 27 April 2026 (UTC)
::''[It doesn’t help directly here, but please see [[WF:Find]] for more details of how this works.]'' [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:24, 29 April 2026 (UTC)
:See the feature requests [[phab:T399244]]/[[phab:T373735]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:06, 28 April 2026 (UTC)
:The lack of filtering edits by namespace is exactly the problem that I was trying to solve with the [[User:Amire80/wikifunctionsanalytics]] tool.
:I even kind of succeeded, but it has two major problems:
:# It doesn't have any real frontend, so you have to know some SQL to use it (or ask other people who know SQL).
:# It doesn't get information from the live site, but from the dump, which appears to be updated once a month.
:I've made a [https://quarry.wmcloud.org/query/104794 sample query for you]. Unfortunately, it won't do anything at the moment because of the second problem—your edits started in April 2026, which isn't over yet, so the dump for it hasn't been processed. But I hope that early in May you'll be able to use the same query and see something useful.
:(I plan to add support for recent edits, but I haven't done it yet. Now that I more or less figured out how to process Wikifunctions edits, I'm focused on trying to understand Abstract Wikipedia edits. Processing up-to-date edits from both sites will possibly be the next thing I work on, but if you know some Python and want to try doing it yourself, don't wait for me—[https://gitlab.wikimedia.org/toolforge-repos/wikifunctions-analytics Patches welcome].) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 18:51, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]], I've just updated the data until the end of April. Now the query to which I linked above gives some results. You can also try running other queries if you know SQL. (Or try asking for other queries if you don't.) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 03:26, 3 May 2026 (UTC)
== [[Z34213]] ==
I'm not quite sure why this implementation is failing. Could someone take a look? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:24, 28 April 2026 (UTC)
:I've [https://phabricator.wikimedia.org/T419933#11863997 notified] the team that this is still occurring, the issue was marked as resolved. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:52, 28 April 2026 (UTC)
:Some useful tips:
:* create more testcases: sometimes it is a random error, so try to see how consistent it is between testcases
:* your implementation is very inefficient, since it fetches items and lexemes a lot of times. Ideally, each item and each lexeme should be only fetched once in all the execution tree.
:[[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 06:06, 28 April 2026 (UTC)
::Caching (''should?'') means that the lexeme and item data are cached, so the call doesn't actually execute multiple times. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 17:51, 28 April 2026 (UTC)
:::Are lexemes and items actually cached within the same function execution? Even if they are only partially fetched and/or fetched in bulk? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:54, 28 April 2026 (UTC)
::::I don't have any evidence to prove that it works but that's definitely A. what's supposed to happen and B. the ideal behavior. This happens because the Z680X functions can be cached just like any other. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 18:02, 28 April 2026 (UTC)
::::It is unclear. In general, I believe identical branches are resolved only once in orchestration, but there is also independent caching of Wikidata fetches.
::::According to @[[User:DMartin (WMF)|DMartin (WMF)]] ([https://t.me/Wikifunctions/30374 on Telegram]):
::::<blockquote>Well, no. We have caching of Wikidata entities that have been retrieved, but not of the results of nested function calls. There is a proposal for doing this in the context of the V2 composition language, when it's a bit more mature, and it's regarded as a relatively high priority.</blockquote>
::::It’s hard to tell whether fetches in nested calls are, in fact, cached and available for other nested calls in the same call, since it is not generally the actual fetch that consumes the most resources. Rather (I believe), it is construction and transmission of the result object, which is currently repeated afresh in each nested call (unless it is in an identical branch).
::::I hope that’s clear, and I apologise in advance if it happens to be inaccurate! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 29 April 2026 (UTC)
:::::Oh, I should clarify. There is a lot of caching going on, in several different places. Lexemes and items ''are'' cached by the orchestrator within the same function execution, even if they are only partially fetched and/or fetched in bulk. When I said that we don't have caching of the results of nested function calls, I meant that's not happening in general, for all nested function calls in compositions. But fetching of Wikidata entities gets special treatment, so yes, fetched content from Wikidata is cached, regardless if it was fetched by a top-level call or a nested call.
:::::It is also true that the construction of a ZObject from the fetched JSON might happen more than once within the same function execution, depending on how a composition has been structured. However, the construction of the ZObject is actually very fast, compared to the elapsed time of getting the JSON from Wikidata. [[User:DMartin (WMF)|DMartin (WMF)]] ([[User talk:DMartin (WMF)|talk]]) 18:04, 1 May 2026 (UTC)
== Question about cardinal numbers ==
I was about to edit {{Z|Z16435}} to add my function {{Z|Z34308}}, but I noticed that none of the other functions have a gender parameter.
Should I create a new wrapper function "Bulgarian cardinal, neuter", or should I just remove the gender parameter and always return neuter? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:39, 28 April 2026 (UTC)
:The “cardinal” functions should return the words used for “counting” numbers in the abstract.
:We should consider converting them to return a {{Z|Z11}} rather than a {{Z|Z6}}. It may even be appropriate to return a {{Z|Z12}} to cater for language variants. Either way, I think that would be the approach to adopt for inflected forms, unless reference to specific lexeme-forms is required. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:52, 28 April 2026 (UTC)
::This. If a native of your language were to count up, which form would they be most likely to use? [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:29, 28 April 2026 (UTC)
::: {{re|GrounderUK|Feeglgeef}} Thanks for both your input!
::: I relabeled the aforementioned function to {{Z|Z34308}}, and created a new wrapper function {{Z|Z34457}}.
::: Should I specify that my old function is a monolingual text in parentheses? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:26, 28 April 2026 (UTC)
::::You don't have to, unless you think that is something that would require distinction when viewing the function in a list of search results &c. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:36, 28 April 2026 (UTC)
== Optional/nullable function parameters ==
Hello!
Recently, I was informed that Wikifunctions has no optional/nullable function parameters as of now.
Are there any future plans to support this, and/or workarounds? Maybe create a union type system like "{{Z|6}} or {{Z|23}}". <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 17:53, 28 April 2026 (UTC)
:What I do for this is use an "is empty" function corresponding to the type of the parameter in an If statement. If it isn't empty, the function works as intended. Otherwise, it does something else. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:58, 28 April 2026 (UTC)
:Unions are not a thing (yet) on Wikifunctions, but you can always define an argument of type {{Z|Z1}}, which means that all types are allowed (I already did this for {{Z|Z26737}}; note that it is still a ugly workaround, don't use it for high level functions). Also, note that usually on Wikifunctions we use {{Z|Z24}} as the null value. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:00, 28 April 2026 (UTC)
:: {{re|JJPMaster|Dv103}} Thanks for your help!
:: @[[User:Dv103|Dv103]] told me a function call with a missing parameter is treated as an invalid function call, so how does the "is empty" function work with that?
:: Also, setting the type to {{Z|1}} seems naive, like setting the type as <code>any</code> in TypeScript...
:: Related question: Are there plans to add default values to parameters (outside of "if empty")? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 18:19, 28 April 2026 (UTC)
:::Setting the type to {{Z|Z1}} is actually naive, and that's why I advised you to only use it for low-level functions. Currently there is nothing better. Sometimes, type correctness is not actually checked, so it might seem that nullable types are possible. But it is still an hack, and it could broke anytime since it is not intended behavior.
:::I don't think that there are current plans to add default values (but correct me if I'm wrong). The closest thing that comes to my mind is that, if you incorporate Wikifunctions into Wikitext, you can leave empty some fields (only of some specific types) and Parsoid will replace them to their default value. This is done only depending on the type, and not on the functions. For example, {{Z|Z6091}} and {{Z|Z6001}} are assigned the QID associated to the page, and {{Z|Z20420}} is assigned the current date. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:56, 28 April 2026 (UTC)
:::@[[User:QuickQuokka|QuickQuokka]]: At the very least, [[Z10008]] accepts a null input. Maybe that feature is unique to the String type—I am not sure. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 19:10, 28 April 2026 (UTC)
::::I think it's just not checked, but it shouldn't be intended. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:20, 28 April 2026 (UTC)
::::Strings and typed lists can be “empty” in the sense that their length can be zero. Typed pairs may also be “empty” in a degenerate sense, but such an object will not be returned from a code implementation. A typed map with no entries will also fail to be returned from code, although it is fine in compositions.
::::For a genuinely optional parameter, I prefer a properly typed list, which at least encourages an argument of the correct type. {{Z|Z813}} is also typically faster than {{Z|Z10008}}. Quite a good example of this approach is {{Z|Z23723}}, where it helps to resolve the type union (using [[Z1]]) for both Z6003K1 and Z6003K3. Of course, there’s nothing to prevent more than one element in the list, but additional elements are easily ignored. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:55, 28 April 2026 (UTC)
:Pinging {{ping|Jdforrester (WMF)|prefix=|p=}}, I believe there are no current plans. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:02, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]]: I'm afraid there are no current plans to build out optional params, indeed; we would be happy to review this if a compelling case was made, but it'd be a lot of work to re-build the [[Wikifunctions:Function model|function model]] with that support and ensure we don't break (too many) things. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 19:11, 28 April 2026 (UTC)
== Z6830 for Chinese ==
I was trying to use {{Z|Z6830}} for implementation in the Chinese-language. And turns out most of the Lexeme on Wikidata is using [[d:Q727694]] as the language instead of [[d:Q7850]]. This makes it impossible to use the mentioned function above, since Standard Chinese is not available (or did I miss something?). Is there a way to fetch lexemes with language=[[d:Q727694]] from item? [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 18:20, 30 April 2026 (UTC)
:@[[User:Sun8908|Sun8908]] There is [[Z1006]] for Chinese and it has the language code zh. There is an overview of languages in [[Module:Wikifunctions label]] so you can search there for chinese versions and choose the one you need. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 20:53, 5 May 2026 (UTC)
::I know that. The problem is when using the function [[Z6830]], it cannot retrieve lexeme with language [[d:Q727694]] (but it is the "Chinese language" with the most current Wikidata lexemes, see [https://ordia.toolforge.org/language/ ordia]). I think it should be a Wikidata problem, I might fix it (possibly by creating the same lexemes with language code zh) on Wikidata. Thanks anyway. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 05:39, 6 May 2026 (UTC)
:Could you provide an example of a Chinese lexeme that has a linked Wikidata item, or a Z6830 function call that fails to find such a lexeme where one exists? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 07:55, 6 May 2026 (UTC)
::Here: [[d:Lexeme:L846083]]. I think that's a primary reason of me trying to look into this problem, as the label in zh for [[d:Q6256]] (country) is not a single phrase (see its talk page on WD for more information). This makes some Abstract Wikipedia articles very weird in Chinese when {{Z|Z26570}} is used, so lexeme could potentially fix that. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 10:33, 6 May 2026 (UTC)
:::Thank you. It looks as though {{Z|Z6830}} [https://www.wikifunctions.org/view/en/Z6830?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6830%22%2C%22Z6830K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q6256%22%7D%2C%22Z6830K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P5137%22%7D%2C%22Z6830K3%22%3A%7B%22Z1K1%22%3A%22Z60%22%2C%22Z60K1%22%3A%22cmn%22%2C%22Z60K2%22%3A%5B%22Z6%22%5D%7D%7D returns that lexeme for language tag "cmn"]. Perhaps that tag should be added into the helpers for {{Z|Z24144}}? If it is widely used for lexemes, perhaps it should have its own {{Z|Z60}}? In any event, improvements might be considered under [[:phab:T390563]] (or otherwise), including amending [[Z6830]] to also consider "cmn" (and "zho", "chi"…?) when requests are made for "zh-hans" or "zho-hant" (or others?) @[[User:Winston Sung|Winston Sung]] @[[User:DMartin (WMF)|DMartin (WMF)]] [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 17:22, 6 May 2026 (UTC)
::::If you go to [[d:Special:NewLexeme]] and put in [[d:Q727694]] as the language, it is going to tell you it has an unrecognized language code. So I believe "cmn" should not be a {{Z|Z60}} by default? I also started [[d:Wikidata:Project_chat#Lexemes_with_language_Standard_Chinese_(Q727694)|a discussion on WD]] regarding this. I guess we can still use it as a fallback language though if possible. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 03:43, 7 May 2026 (UTC)
::::We don't have a separated <code>cmn</code> BCP 47 language subtag in MediaWiki and Wikidata at the moment. <code>zho</code> and <code>chi</code> are ISO 639 language codes but not BCP 47 language subtags.
::::For Modern Standard Mandarin, please use <code>zh-*</code> language tags for now. -- [[User:Winston Sung|Winston Sung]] ([[User talk:Winston Sung|talk]]) 15:26, 8 May 2026 (UTC)
== Key not found error ==
Is there a reason why I am getting key not found error for this [[Z34677|function]] {{Z|Z34677}}? All the underlying functions run and all the test cases work. The debug information does not give more details. Any pointers? Thanks in advance [[User:Jsamwrites|John Samuel]] 19:24, 1 May 2026 (UTC)
:It was passing the [[Z6091]] to {{Z|34641}} when that takes a [[Z6001]]. I've fixed that, but there's some other problem with the logic, so I've left it disconnected. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:42, 1 May 2026 (UTC)
::@[[User:YoshiRulz|YoshiRulz]] Thanks a lot. [[User:Jsamwrites|John Samuel]] 20:21, 1 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #246 is out: Request for input: what should we count for Abstract Wikipedia ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we ask you what would be the relevant metrics for Abstract Wikipedia, we discuss our latest news on Composition Language v2, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 12:21, 2 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== Any formal process for deletion of pages ==
Does a formal process exist for the deletion of functions, implementations, and tests that includes a notification system for creators, analogous to Wikidata’s process, explaining the rationale behind the deletion (or proposal for deletion)? [[User:Jsamwrites|John Samuel]] 12:36, 3 May 2026 (UTC)
:Does [[Wikifunctions:Requests for deletions]] work? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 13:00, 3 May 2026 (UTC)
:Please see the discussion at [[Wikifunctions talk:Requests for deletions#Should we expect Objects' creators to get pinged on deletion proposals?]].
:As I see it, it is the proposer’s responsibility to consult appropriately before making a request and we expect our administrators to act only when satisfied that appropriate consultation has occurred. In many cases, no consultation is required. Administrators may delete their own contributions without making a request, but this is not a practice I would encourage. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:51, 3 May 2026 (UTC)
== Implementation of rational number in JS doesn't match in Z19677 (Rational number) and Z28579 (RGBA colour) ==
In {{Z|19677}} it's
<syntaxhighlight lang=js>
{
"K1": sign * numerator,
"K2": denominator
}
</syntaxhighlight>
but in {{Z|28579}} it's
<syntaxhighlight lang=js>
[ sign * numerator, denominator ]
</syntaxhighlight> '''<span style="font-family:Iosevka,monospace">[[User:沈澄心|<span style="color:#9f3526">dring</span>]][[User talk:沈澄心|<span style="color:#534fa3">sim</span>]]</span>''' 05:15, 4 May 2026 (UTC)
:I'm guessing this is why [[Z34743]] fails all the tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:00, 18 May 2026 (UTC)
== Nested functions in compositions ==
I wish it will be easier to a add another function about a specific existing function in a function implementation based on a composition. When I write long functions in spreadsheets I usually stat with a small part and then I try to go further and after important steps I test if the output is as expected. I created [[Z34826]] to get the German gender specific occupation lexeme for a specific person based on their gender. I wanted to add a function around the existing one and it was not successful. It is not very easy to implement as it requires the possibily to move a part to another section but I think it can be helpful if it will be implemented. So far I spend more time as expected on the function. Describing it with words what the function needs to do is much easier than implementing it here in Wikifunctions. So I think there needs to be improvement to make Wikifunctions more accessible. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:10, 5 May 2026 (UTC)
:Have you tried to use the copy-paste functionality? It is very useful to move parts of composition arounn. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:12, 6 May 2026 (UTC)
:I've also found the composition editor to be wholly unsuitable for any expressions more than a few levels deep. (Even with the <code>localStorage</code> clipboard, because of its overzealous type checks.) Compositions naturally grow out from the "leaves", the immediate operations on the inputs, while the interface really wants you to build from the "root". I mostly use the [https://yoshirulz.gitlab.io/WikiLambdaBlockly drag-and-drop block editor] which I made to smooth over some of the site's problems, so if you want to try that out and give me some feedback I'd appreciate it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 14:36, 6 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #247 is out: References from Wikidata now available ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-08|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we announce that is now possible to pass references in Wikidata statements, we introduce the [https://abstract-data.toolforge.org/ Abstract Data dashboard], we report you on the presentation about Abstract Wikipedia at WikiCon Australia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1778520600 May 11, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:16, 8 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== RGBA colour, spelling... ==
Something that has always irked me a little bit is the spelling of [[Z28579|RGBA colour (Z28579)]]. I guess this is not unsurprising for me considering my use of US English but I think there is more to it than preference and I want to try to argue for it being changed to use American spelling. I know that this probably has a snowball's chance in hell of actually garnering any support, so I won't really be miffed if the spelling remains as it is, but I thought it wouldn't hurt to raise this regardless.
The main issue I have with it is the spelling of the original proposal. When infernostars raised the [[Wikifunctions:Type proposals/RGBA color|type proposal]], the spelling was 「RGBA color」. Of the comments that mentioned the word 「colo[u]r」, two used British spelling while six used the American spelling as used in the proposal. The only thing that really pointed to the use of ''colour'' was the fact that the catalog page on color functions used that spelling already. For all intents and purposes, the spelling of the original proposal should have been maintained, but it was not; [[User:DVrandecic (WMF)|DVrandecic]], the eventual creator of the type, used a different spelling.
It should be noted that there was really no reason for this to occur and while it is an undoubtedly minor issue I still believe it should be rolled back and the type should use the spelling of the original proposal and majority of editor comments. In [[abstract:Q936|OpenStreetMap]], there have been keyvalue proposals that have had the finalized spelling that gets put to use be in British English despite the original proposal being in American English; this has usually occurred with proposals relating to 「X center/centre」 tags. This makes sense on the surface, because OpenStreetMap is maintained by a UK organization, and still has close ties to Europe. The Wikimedia Foundation, however, is an ''American'' company. This is often brought up as a fallible argument when debating article spelling on the English Wikipedia, and I don't bring it up to support that 「RGBA color」 should be used for that exact reason, but rather to state that OpenStreetMap's general policy on tag names need not apply here. It appears to me that, at least initially, the majority of 「core contributors」 to Wikifunctions used British English; I can name YoshiRulz, 99of9, GrounderUK, and VIGNERON.<ref group="color">I'm avoiding linking to these folks because I don't think pinging them about this discussion is all too necessary unless they themselves want to be involved; I don't want to clutter their inboxes just to briefly mention them. I pinged Denny because, well, I'm asking him a question directly, but everyone else I would prefer to join this discussion by their own accord... not that I wish for this decision to be confused as me going 「these people use British English so they will probably oppose my idea, I won't invite them to the discussion because of that」...no, I promise you that is not the reason.</ref> I see (or saw) these people ''everywhere'', so it makes sense that British English has prevailed in some sorts on this website, but I don't think that indicates that it should be the ''preferred'' spelling across the website, at least not to the point where a proposal should have its name changed to match such a "consensus".<ref group="color">It could be argued that the front-and-center ''Function catalogue'' using 「catalogue」 is actually indicative of such a "consensus", but ''catalogue'' is in a similar position to the word ''grey'' where I live (that is, the US) in that it is used just as often as its American counterpart. Also, consider Wiktionary's ''Beer parlour'' project chat.</ref>
The unnecessary modification of the original spelling is my main argument for changing it back... but of course, I must obligatorily state that on English Wikipedia, it is [[w:Color|Color]] and [[w:RGBA color model|RGBA color model]]; on Wikidata, it is [[d:Q1075|color]] and [[d:Q2325624|RGBA color space]]; in CSS (which typically uses hexadecimal triplets to specify RGBA values), the properties are <code>color</code>, <code>background-color</code>, etc.; bit of a weak jab, but on Schema.org it is [https://schema.org/color color], [https://schema.org/colorSwatch colorSwatch]; et cetera. {{Z|Z28580}} uses ''color'', so does {{Z|Z28591}} and its Python counterpart.
Mr. Vrandečić, I have to ask, I'm rather confused... you created the color type using British English spelling, but you were also responsible for the creation of the equality function which uses the American English spelling. You also seem to be writing in American English for the status updates, judging by your use of -''ize'' over -''ise'' endings and use of ''program'' over ''programme'' in [[Wikifunctions:Status updates/2026-04-16]]. Is there something I'm missing or have you switched your preferred variant somewhere along the way?
Anyways, do consider this if you wish... again, I don't suppose this will garner much support, it is the ''non-issuest'' of ''non-issues'', but it has irked me to the point where I want to ask about it to get some answers, if nothing else. I am not arguing for every other color function to have its name changed, just the type itself.
<references group="color"></references>
— [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:04, 8 May 2026 (UTC)
:This is a multilingual project; the <code>en</code> label is <code>RGBA colour</code> and the <code>en-us</code> label is <code>RGBA color</code>. Though I'm not able to switch to <code>en-us</code> via the language picker so that would need to be fixed.<!--
--><br>edit after reading your whole comment: The same is true of {{Q|1075}}, there are labels specified for multiple English variants. (In {{Q|2325624}} it's only an alias.) I agree that other websites' choices aren't binding on us, but from that, I conclude that the more widespread British/Commonwealth spellings should be used for the generic <code>en</code>. As for myself, I'm Aussie and I will continue to use the BrE spellings ([[w:en:Oxford_spelling#Language_tag_comparison|+ "routing"]], TIL) if only by muscle memory.<!--
--><br>[[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:42, 8 May 2026 (UTC)
:: Your lattermost point would normally be fine in a perfect world. Wikipedia's <code>convert</code> function defaults to "international" English, which I don't personally take issue with because it happens that we here in America are actually outliers for saying and spelling things differently... err, or we were for a while at least, nowadays it seems like an even split (plus you have "yield" vs. "give way" which is effectively the logical opposite of US's use of "meter" over "metre").
:: However, this is not a perfect world, and I don't think <code>en</code> should correspond to any particular variant. It is too fragmented across all software at this point to impose such a requirement. The inability to switch to <code>en-us</code> on this website foregoes an easy and simple solution to this problem that makes everyone happy, because the yanks (such as myself) can't be happy because we can't see the labels in American English even if we wanted to, and the other folk can't switch either as far as I'm aware (and the en-CA and en-GB languages in the preferences page seems to be deprecated). My point being, <code>en</code> is abused to mean "en-UK" just as often as it is abused to mean <code>en-US</code>; I think a decision shouldn't be made on such an assumption of one "default". — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:48, 12 May 2026 (UTC)
:Hi @[[User:Theki|rae]]! I have no opinion nor preference on this, and given my background, I am just entirely confused about my spelling preferences myself, as you can tell from my inconsistent usage. I learned British English in school and used that for maybe two decades or so, but moved to the US and lived there for more than a decade, enough to be naturalized, but now I am back in Europe and I am technically a professor at King's College London, soooo.... honestly, I do not know. I don't remember having put too much thought into it at the moment I created it. The good thing is that in Wikifunctions, just as in Wikidata, it is easy to change, without messing things up too much (unlike in Wikipedia), so my suggestion is, just make the change, see if anyone complains, and if they do, discuss it more. I don't know if there is a guideline already in Wikifunctions about the variants. I am happy either way, and honestly, I keep forgetting which variant is which most of the time. --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 18:16, 10 May 2026 (UTC)
:: I can definitely understand this, although I am unfortunately rather passionate about any minutiae involving preferential minor differences in ''anything'', of which AmE vs. BrE chiefly is. So I dedicate a lot of headspace to it. More than I should. Not that I wish to imply that the comment above that I have wrote is of an irrational nature, or done out of spite or pure emotion and subjectivity; I do genuinely believe that ''RGBA color'' is beyond just a personal preference and is just logical. I may boldly go and change it, but for some reason I was expecting that changing the English label of a Type would require elevated permissions, and I also didn't want to do it only to get immediately reverted because it ''did'' strike a chord with someone, when I could instead see how apathetic, supportive, or in opposition interested people are beforehand and ''then'' act accordingly. I was not meaning to antagonize you over your spelling habits, I did actually use British English for a few years starting in 2020 before I went back to American English, so I'd be a hypocrite for me to decry you for not always sticking to some arbitrary standard of spelling words over the other. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:55, 12 May 2026 (UTC)
:Although I spell it “colour”, I think it makes more sense to use “color” for the type, since that is almost always the required spelling when the string functions as a keyword.
:More generally, though, Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en". This is unusual, in my experience, as "en" is widely misused in place of "en-US", where there are recorded spelling differences.
:(I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere. Use of -ize rather than -ise is a matter of personal preference or house style, but regional autocorrect encourages -ise.) [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:00, 12 May 2026 (UTC)
:: ''Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en"''
:: Definitely agreeing with you on the latter being a good choice. However, I suspect the favoring of "colour" over "color" may be because, in terms of language codes, when sorted alphabetically <code>en-us</code> actually comes ''after'' <code>en-gb</code>. Although, the frontend seems to be sorting <code>en-ca</code> after <code>en-gb</code>, so I don't actually know how correct that is.
:: ''I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere''
:: The context of the spelling was "''No program for the NLG SIG meeting for next Tuesday has been proposed''". In that usage context, I think it makes sense to assume that ''program'' is not being used to refer to a computer program, but to a ''program of events'' or similar, something that you would spell as a ''programme'' in British English. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:02, 12 May 2026 (UTC)
:{{s}} this. I'm obviously biased but I believe American English is preferable generally, American dominance on the internet (our Department of Defen'''s'''e invented it!) and rapidly-increasing consumption of American media by international English speakers means that more people use American English's conventions, this is clear through for example [http://trends.google.com/explore?q=color%2Ccolour&date=all&geo=Worldwide search trends] (though they aren't particularly reliable). Perhaps this is a bit of a supremacist opinion, but we should have internal consistency, and if we must choose, American English should be our first choice (then Indian and then British English) [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:10, 12 May 2026 (UTC)
:: This is rather flawed reasoning, though. I think probably any given British or Indian person would not agree on using that as the reasoning for this, not that you are necessarily ''completely wrong'', but if this is not a good enough reason for English Wikipedia's (admittedly extremely flawed) ''ENGVAR'' policy then I don't think it's likely it will pass here either.
:: Although of note is that [https://books.google.com/ngrams/graph?content=color%2Ccolour&year_start=1800&year_end=2022&corpus=en&smoothing=3&case_insensitive=true Google ngrams] agree with you, but "color" vs. "colour" is an eternal holy war that will not be won by demonstrating that more books use US spelling over Commonwealth spelling. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:44, 12 May 2026 (UTC)
:::You're probably right that it's not very sound. I'm biased in that other varieties of English irk me, and that's probably mutual for people who are used to other varieties of English when they read what I write! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:56, 12 May 2026 (UTC)
:I've decided to boldly [[Special:Permalink/274271|make the change]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:02, 12 May 2026 (UTC)
:: Thank you. Considering both you and GrounderUK seem to consider it an okay change, I think this will do for now.
:: I should note that the matter of whether to move [[Wikifunctions:Catalogue/Colour functions]] in response to this (however this discussion will ultimately turn out) is a whole other can of worms, in my view. I can't say I have an opinion on that at the moment, but I'm putting it out there regardless. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:06, 12 May 2026 (UTC)
:::Personally, I'm in favor of moving the page and renaming all of the items on it. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:10, 12 May 2026 (UTC)
::I don't like this (exactly because of the American hegemony you cited), but again, it shouldn't matter because the software is meant to be multilingual. Clearly there's a bug preventing you from picking an English variant/dialect as your display language. But the search bar and Function/Type autocompletion do check the English variants for matches. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:15, 12 May 2026 (UTC)
== Proposals on the architecture of Abstract Content rendering ==
Starting from a discussion born on the Telegram chat, I've explained two different proposals on how the NLG on Abstract Wikipedia should be organized in the page [[abstract:User:Dv103/Abstract articles architectures]]. Please come to contribute to the discussion, or to propose alternatives. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 14:31, 11 May 2026 (UTC)
:Thank you for dedicating your time to writing this, it is very informative. I will try to add input once I'm not in over my head with finals. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:27, 12 May 2026 (UTC)
== Display function for HTML fragment ==
Currently, any collapsed Z89 literal appears as<blockquote><> [[Z89|HTML fragment]]</blockquote>If I were to create a new Function which returned something like<blockquote><> 123-byte HTML fragment <q><nowiki><td><span lang=</nowiki>…</q></blockquote>could that be connected to replace the collapsed form, or would it require changes to the Wikilambda software? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:14, 11 May 2026 (UTC)
:It might work, but I doubt it. Those angled brackets suggest that the collapsed form is not simply defaulting to the type’s label. Looking at [[:phab:T410509]], I’ve concluded that enhancements to the collapsed form were never considered, rather than being actively rejected. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:12, 12 May 2026 (UTC)
::[[:Phab:T391985]] documents the original design. Note the fifth bullet point under “Acceptance criteria”. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:21, 12 May 2026 (UTC)
:I'm not sure the byte-size is necessary, but the outer tag (or first outer tag, though generally I'd prefer most fragments use a wrapper tag if it needs multiple like JSX does, but that's a whole different topic) would be nice. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 12:51, 12 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #248 is out: A higher meaning ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-15|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss functions creating language fragments, we present our latest news in Types, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:36, 15 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
== [[Z34510]] ==
This function, which determines if a Wikidata item for a {{q|5}} has an undeprecated {{p|21}} statement of {{q|6581097}}, returns false for {{q|173399}}, a transgender man. This is because his item assigns his P21 statement to {{q|2449503}}, not {{q|6581097}}. I'm not sure how to account for this discrepancy. Should {{z|34510}}:
# Include {{q|2449503}} as a value that can lead to a true result,
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a man?") could return true for either "male" or "trans man",
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a trans man?") could return true for "trans man",
# Not exist at all?
[[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 16:48, 16 May 2026 (UTC)
:I can't think of a single use case where you would need to determine if a person is a cisgender man and nothing else. Functions are good for generalizing across multiple possibilities when they exist, so I think it would be best if trans men were considered a part of the criteria for returning a true value. If asking for specifically {{q|6581097}}s and ''nothing'' else was desired then the function name would be a misnomer as Elliot Page is inarguably a male (at least in the view of most reasonable and intelligent people). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 19:03, 16 May 2026 (UTC)
:You made the function in the first place; what were you planning on using it for? AW? Maybe it should return a {{Z|25501}} which can then be passed on to other NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:01, 16 May 2026 (UTC)
== Lexeme from wikidata label, or "best" lexeme from wikidata item ==
I was looking into fixing [[Z28028]]. I found that I could add "requires grammatical feature: definite article" to "United Kingdom" (L8558). Now I'm stuck on how to get to that lexeme from {{Q|145}}. There's [[Z23471]], but that for very good reason gives you multiple lexemes with the same sense, and I just want the best one like how the label is always the best string. Is there a function that can do this?
There's definitely the case of a Wikidata label that isn't a lexeme (most commonly multiple lexemes) but I'm only considering the case where it is one lexeme here. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 20:02, 16 May 2026 (UTC)
:There is {{Z|Z27327}}, that tries to give the best lexeme through various heuristics. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 22:22, 16 May 2026 (UTC)
:: Wonderful! I did stumble upon [[Z33818]] but this is perfect. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:25, 17 May 2026 (UTC)
== [[Z29591]] isn't working for me ==
For instance, trying to manually put in the exact inputs for one of the test cases just returns an empty Monolingual text. See [https://www.wikifunctions.org/wiki/Z29591?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29591%22%2C%22Z29591K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3257809%22%7D%2C%22Z29591K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z29591K3%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z29591K4%22%3A%22Z1002%22%7D]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 01:17, 17 May 2026 (UTC)
:You used [[:d:Q22006653]] rather than [[:d:Q1075]]. It looks like the [https://www.wikifunctions.org/wiki/Special:RunFunction?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D explanatory error] is suppressed by the [https://www.wikifunctions.org/view/en/Z30009?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30009%22%2C%22Z30009K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D%2C%22Z30009K2%22%3A%22Z801%22%7D final transformation]. The returned result is not actually empty; if you expand it, you can see that it is an unresolved function call. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 09:59, 17 May 2026 (UTC)
== [[Z35298]] ==
Does anyone know what the problem with this implementation is? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 21:14, 18 May 2026 (UTC)
:There is a bug that doesn't allow Python implementation to return nested lists. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:31, 19 May 2026 (UTC)
::Is there a Phabricator task for this? Searching through them is hell. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 03:22, 20 May 2026 (UTC)
:::A bit of time ago I opened [[phab:T392750]], which is very similar to this issue. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:26, 20 May 2026 (UTC)
== May 2026 Wikimedia Café meetups regarding the Wikimedia Foundation Annual Plan ==
<div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)">
<div class="box" style="float:left; padding-top: 15px; padding-right: 15px;">[[File:Wikimedia Café logo in plain SVG format.svg|75px|alt=The logo for the Wikimedia Café]]</div>
Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities during the last weekend of May. Both sessions will focus on the [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2026-2027 the 2026-2027 Wikimedia Foundation Annual Plan]. Participants may attend either or both sessions.
#'''Saturday, 30 May 2026 at 15:00 UTC''' ([https://zonestamp.toolforge.org/1780153200 timestamp converter]), at a time friendly to the Americas, Africa, and Europe
#'''Sunday, 31 May 2026 at 05:00 UTC''' ([https://zonestamp.toolforge.org/1780203600 timestamp converter]), at a time friendly to Asia and the Pacific
Café participants are highly encouraged to read in advance [https://en.wikipedia.org/wiki/User:Sohom_Datta/annual_plan_guide at least this summary of the plan]. Optionally, Café participants are encouraged to read portions of the plan that interest them and [https://meta.wikimedia.org/wiki/Talk:Wikimedia_Foundation_Annual_Plan/2026-2027 ask questions or provide feedback on the Annual Plan talk page].
Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#May_2026_meetings_with_a_focus_on_Wikimedia_Foundation_Annual_Plan/2026-2027 tables of timestamp conversions for both sessions], [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#Agenda._This_will_be_an_approximately_1_hour_Caf%C3%A9_session,_and_is_extendible_for_an_additional_30_minutes_if_needed. the agenda], and [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]!
<br />
[[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div>
<span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 19:56, 21 May 2026 (UTC)
== How to handle items without lexemes ==
NLG functions relay heavily on the presence of lexemes associated to items on Wikidata. But we know that not all the Wikidata items have an associated lexeme. There are multiple reasons why an item does not have an associated lexeme, like:
# The lexeme has not been created yet
# The item represents a place
# The item represents a person
# The item represents a specific concept that can only be expressed by a specific combination of words that cannot be [[Wikidata:Wikidata:Lexicographical data/Notability|notable]] (like {{Q|Q61220733}}).
My doubt is: what should we do with this fourth category? For many languages, just using the Wikidata item label is not possible, since it is necessary to conjugate the words or to retrieve grammatical information like the gender. What should we do? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:09, 23 May 2026 (UTC)
:In that particular example, I think the thing to do is read its {{P|279}}: {{Q|21191270}}, then have some kind of heuristic based on that which says to take its {{P|8345}} and attach that Item's label to a Form of the word for "episode". In general, synthesising Lexemes for proper nouns is one of the problems that [[abstract:User:Dv103/Abstract_articles_architectures|proposals in your list here]] will have to address. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:59, 23 May 2026 (UTC)
[[File:Wikidata content 2024.svg|thumb|Content of Wikidata by type]]
::{{ping|Dv103}} very good point.
::For your point 2, it depends of the place but I think that quite often a lexeme can be created (most "Administrative territorial entity", most geographical entity, etc.). And with 3, your can add a lot of types (see pie chart) : Scholarly article, Human (with a very few exception), Wikimedia Category, Disambig, etc. which is (rough estimation) 2/3 of Wikidata items.
::A common rule (in dictionaries since forever and in Lexemes) is to not create an entry which is the "sum of its part". In this case, "Star Trek episode" is just episode + Star Trek, nothing more than its part. So logically, as {{U|YoshiRulz}} said, when no corresponding lexeme is found, the item should be decomposed the same way, the hard part is to know how to decompose it as the property will vary ; P31 and P279 are an obvious start but beyond that, I'm not sure we could find a general solution.
::PS: it's beyond you question but there is also the reverse problem, how to select one lexeme when multiple are linked to the same item...
::Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:43, 24 May 2026 (UTC)
:::For the point 2, I think humans will be used way more than scholarly articles and disambiguations in NLG functions (outside references), that's why humans concern me more (still a cool pie chart, though).
:::For the reverse problem, there is already {{Z|Z27327}}: it's far from perfect, but usually makes a decent choice. Obviously it is not "complete", and probably it will never be complete, but it will have to be progressively improved by the community. And probably in the future we will need to create similar functions to select the best lexeme in more specific cases.
:::For my fourth point, I didn't think about the decomposition, but it is something that could be done with another never-complete community-mantained function, that progressively keeps being improved. If [[Wikifunctions:Type proposals/Semantic unit|semantic units]] will be implemented, through them it could actually be possible to do this operation in a laguage-independent way. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:10, 24 May 2026 (UTC)
::{{re|YoshiRulz}} Proper noun synthesis, along with other fallbacks for realizing the names of concepts that don't have lexemes, is merely a step within the overall abstract content rendering process and is not inherently tied to the process itself; having the ability to [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/graph/client.py#L327 run any number of fallback mechanisms], instead of a raw call to (the equivalent of) Z27327, should be possible with any of the methods listed on the architectures page. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 16:41, 24 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #249 is out: Annual plan 2026-2027 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-23|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we present you the current draft of objectives for Wikifunctions and Abstract Wikipedia in the WMF Annual Plan 2026-2027, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 09:48, 25 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
:The new <code>return_type</code> param to [[Special:ListObjectsByType]] will show Functions returning e.g. {{Z|27951}} and {{Z|882}} if those are typed in manually, but the dropdown menu doesn't offer them, probably because it's a copy of the dropdown above (and there are no Persistent objects of those Types). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:12, 26 May 2026 (UTC)
== Type documentation template ==
Over the past couple of weeks, I've been developing and rolling out {{t|type documentation}}: a standardised layout for Type metadata, de/constructors, conversions, etc. on each Type's talk page. (The layout is loosely based on [[d:Template:Property documentation|Wikidata's]].) See [[Talk:Z16683|Integer]] for an example that uses most of its features, and [[Talk:Z99|Quote]] for one that doesn't.<br>At this point I can't think of anything more to add besides [[Help:Comparison_function_table/float64|filling out]] a couple more [[Help:Type_conversion_table/Codepoint|tables]]. But if any of you have ideas or feedback, please click through to the relevant talk page and leave me a message. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:29, 26 May 2026 (UTC)
:I really like what you're doing here. Thank you. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:26, 26 May 2026 (UTC)
== Apparent error in implementations of {{Z|20616}} ==
Please can I request help in how to understand a bug? Sorry if this is not the best place to ask.
I created lexemes [[d:Lexeme:L1566135|langue morte L1566135]] in French and [[d:Lexeme:L1566139|lengua muerta L1566139]] in Spanish, with property {{P|5185}} set to {{Q|Q1775415}} in each case. {{Z|20616}} should return a list of the grammatical genders of a given lexeme. It has two implementations, {{Z|Z20641}} and {{Z|Z21127}}, each of which works perfectly in the French case, returning a list containing Q1775415. But in the Spanish case, each of the two implementations wrongly returns an empty list. I cannot understand what is going wrong. How can I find out what is happening here? I would be grateful for any help or advice. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 13:56, 26 May 2026 (UTC)
hwdn1erkzsnvpiyc0043tl0o7t5t0bd
278260
278259
2026-05-26T16:06:32Z
GrounderUK
50
/* Apparent error in implementations of grammatical genders from Wikidata lexeme (Z20616) */ Reply
278260
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== “Key not found ()”? ==
What am I doing wrong in {{Z|Z34137}}? [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 00:39, 25 April 2026 (UTC)
:You were passing a [[Z6091]] to {{Z|32290}}, but it takes a [[Z6001]]. Fixed. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 07:10, 26 April 2026 (UTC)
::{{done|Thank you}}! [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 14:13, 26 April 2026 (UTC)
== Is it OK to connect the implementation? ==
Hello!
I recently applied for functioneer on [[WF:RFG]], and I was wondering whether I could connect the implementation for {{Z|Z34165}} despite its dependency {{Z|Z34149}} being currently unimplemented. That is <em>if</em> I get accepted.
I am planning on implementing it based on [[wikt:module:bg-nominal]], but am still having trouble figuring it out for now. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 09:04, 26 April 2026 (UTC)
== Past tense function ==
Is there a function like {{Z|Z26039}}, but for the past tense (e.g. "Leo Tolstoy <em>was</em> a writer.")?
If not, I will create it myself, I just want to make sure there's not a duplicate. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:10, 26 April 2026 (UTC)
: {{Done}} with {{Z|Z34224}}, but I have a few kinks to work out with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:35, 26 April 2026 (UTC)
:: I need to create some other similar functions for the past tense, I have some ideas:
::* {{Z|Z26095}}
::* {{Z|Z32643}}
::* {{Z|Z28016}}
::* {{Z|Z26570}}
::* {{Z|Z33975}}
::* {{Z|Z27243}}
::* <ins>{{Z|Z26627}}</ins>
::* <ins>{{Z|Z27627}}</ins>
::* <ins>{{Z|Z27173}}</ins>
::* <ins>{{Z|Z29591}}</ins>
::
:: Are there any I have missed? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:57, 26 April 2026 (UTC)
:I think that here we are starting to walk on dangerous waters: what does past mean? Is it a recent o a far past? Does it have ripercussions on the present or not? Is it just a thing that happened once, many times or for a continuative period of time?
:Consider that various languages distinguish between many different types of past. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:38, 26 April 2026 (UTC)
:: {{re|Dv103}} That is a fair point...
:: How do we go about solving this problem though? I don't think having every sentence on Abstract Wikipedia be "X is a Y" is a very good idea.
:: Maybe we have different functions for all these variations of past you mentioned that just map into "X was a Y." in English? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 13:31, 26 April 2026 (UTC)
:::To properly solve this problem, we should use a more complete abstract content representation model, like for example the proposal of [[Wikifunctions:Type proposals/Semantic unit|Semantic units]] (look at [[Wikifunctions:Type proposals/Semantic unit/Douglas Adams|the example]] to see how times could be handled). For now, since we're still stuck with single fragment generation functions (that I hope will be slowly replaced with the complete represenation model, when available), we could just restrict your function to a very specific meaning, like "subject was an instance of, for most of its existence" (which means for example that it could be used to say "Douglas Adams was a writer", but not "Abraham Lincoln was a president", since he only was a president for 4 years). Probably my definition is still too vague, and this is why we need to go beyond these fragment generating functions. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:47, 26 April 2026 (UTC)
::Nitpick... I don't like that it outputs a string instead of monolingual text. With {{Z|Z26039}} it's used so much that I think it's unfixable in that case beyond deprecating it if people care that much, but {{Z|Z34224}} doesn't even have any connected implementations yet. Consider it, maybe?
::Nitpick 2... {{Z|Z34227}} is missing a language parameter. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:08, 26 April 2026 (UTC)
::: I will consider that!
::: I just did that because that's what {{Z|Z26039}} does, so I assumed I should follow suit with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 26 April 2026 (UTC)
== Legacy functions ==
If and when more robust methods of abstractly representing and generating linguistic content come around, and more efficient ways of creating abstract content are devised and implemented, I suspect that our current methods will require some form of deprecation. This is a significant source of concern for me in relation to WF and AW, questioning how prone our current methods of doing things are and eventually will be prone to obsolescence, and how it will be worked around when it comes. We have over 1 250 articles on AW presently, and these are rather all over the place. I suspect the maintenance burden from keeping these articles up to code will eventually, err, creep up on us, I suppose, and some kind of major refactoring will be necessary. We are definitely in a period of experimentation and whatnot right now but eventually, like with enwiki, some sort of structure and rigor will form and I suspect it will start to become rather boring for me...
I, for one, very much enjoy experimenting with new and better ways to do things here. I don't personally mind changing things to use a new and better paradigm if need be, that sort of thing highly excites me, but of course there will be things that are left behind, and I suspect maybe bots will be employed to deal with this? A lot of Wikipedia sister sites seem to do that, e.g. going and fixing up use of deprecated templates. Considering the nature of Wikifunctions and Abstract Wikipedia I suspect certain maintenance tasks will be made simpler or even trivial by the typical uniformity of our implementations.
I guess I am just concerned if Wikifunctions or Abstract Wikipedia will ever accrue its own kind of "technical debt" with how we are plowing through things presently, and if there is a plan for how we will eventually seek to mitigate that. Maybe too early to ask this question, but I am a notoriously anxious person, so I thought it wouldn't hurt to raise the question regardless... — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 21:30, 26 April 2026 (UTC)
:I very much agree, thank you for expressing my position so well. {{ping|Immanuelle}} has been using an AI-generated tool (well, they haven't edited in a week, perhaps it's a break or perhaps they don't wish to contribute to the project any more) to create a bunch of articles en masse, which I have warned them multiple times is a bad idea (on top of evolving functions, all of the articles are one-sentence-per-paragraph, [[abstract:Q12184|like so]]). That's why I've been avoiding creating articles recently, I'd say I have a good fourth (no data to support, rough guess) of the comments on the wiki, yet less than a percentage of the article count (only three, including the [[abstract:Q319|first article]], though, so perhaps I'm the next [[w:Special:Permalink/908493298|office.bomis.com]]). [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:41, 27 April 2026 (UTC)
:: I feel that the overwhelming presence of these low-quality articles (which I admit I myself am [[abstract:Q1710970|guilty]]/[[abstract:Q7601858|of]]/[[abstract:Q39338|creating]], usually as testbeds) may incur a large maintenance burden. I do expect them to be easy to detect, however, as searching for the presence of "deprecated" NLG functions is trivial, and it is possible that replacing them with their future ''even abstracter™'' counterparts could be done automatically since they all have the same signatures and can be expected to create the same form of sentence. If it needs to be done manually for a while or for certain delinquent instances, my hope is that it will be fun, at least for a while.
:: I just hope that these hypothetical future waves of "this new and versatile way of abstractly representing linguistic content" obsoleting previous methods and requiring refactoring across all articles is only a one-time thing. We should strive to be as robust and flexible as possible from the outset as each brand new paradigm of abstraction is also a brand new maintenance burden for updating old articles. At the end of the day, at least ''some'' of these articles will still render to many different languages even if their methods of creating those sentences of theirs is completely outdated. Ergo, the time it takes for the switchover to be performed across our articles should not be a persistent inconvenience for users (as, of course, they will always still be able to read the content as it was before since these legacy functions aren't being deleted outright), and the increased availability that the new methods will bring about will likely act as motivation for them to join the effort in refactoring (「You're telling me that if I rewrite this article in this cool Lisp-looking stuff then I can probably read it in [[abstract:Q9307|Galician]]?? COOL!」). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 20:26, 27 April 2026 (UTC)
:::Totally agree. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:54, 28 April 2026 (UTC)
:::My vague plan is to implement a default function returning an {{Z|Z89}}, for each language-neutral function. A single function would convert any of these to a {{Z|Z11}}, so that a composition of the two can be implemented as the current default until such time as the language-neutral function is ready to return a [[Z89]]. We can already convert a [[Z11]] to a [[Z89]] so, although there is more to be done in this space, existing language-specific functions could be adapted to return a [[Z89]] quite mechanistically.
:::Although we certainly could deliver parallel Z89 functions for each existing Z11 function, I don’t think we should assume that particular outcome. Provided the Z89 captures a lang attribute from the Z11’s language tag, the two representations should be largely interchangeable, although I am expecting a Z89 to carry additional attributes at the span level that would be lost on conversion to a Z11 (along with any higher-level tags and attributes).
:::When I say there is “more to be done in this space”, I am referring to a new type that would allow HTML fragments to be represented as tractable Wikifunctions objects, but this is currently drafted only in my head! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:21, 29 April 2026 (UTC)
== Filtering types of objects ==
Hello!
I have tried to comb through my own edit history several times, but it's really hard to search for specifics because there's no differentiation between different types of objects (functions, implementations, tests, etc.) in the logs as far as I can tell.
Am I missing anything? I want it to work sort of like how filtering by namespace works. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 27 April 2026 (UTC)
:There is differentiation, it's just rather hard to look through. Since all ZObjects are just JSON data at their core, you can search for instances of <code>{ "Z1K1": "Z[type]"</code>. I haven't tried this so I'm not sure how well it would work and I know MediaWiki search syntax treats quotation marks as a special character, but I have seen Wikifunctions pages link to searches using this before. There is also [[Special:ListObjectsByType]] but it is sitewide rather than specific to your edit history in particular. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 18:59, 27 April 2026 (UTC)
::''[It doesn’t help directly here, but please see [[WF:Find]] for more details of how this works.]'' [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:24, 29 April 2026 (UTC)
:See the feature requests [[phab:T399244]]/[[phab:T373735]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:06, 28 April 2026 (UTC)
:The lack of filtering edits by namespace is exactly the problem that I was trying to solve with the [[User:Amire80/wikifunctionsanalytics]] tool.
:I even kind of succeeded, but it has two major problems:
:# It doesn't have any real frontend, so you have to know some SQL to use it (or ask other people who know SQL).
:# It doesn't get information from the live site, but from the dump, which appears to be updated once a month.
:I've made a [https://quarry.wmcloud.org/query/104794 sample query for you]. Unfortunately, it won't do anything at the moment because of the second problem—your edits started in April 2026, which isn't over yet, so the dump for it hasn't been processed. But I hope that early in May you'll be able to use the same query and see something useful.
:(I plan to add support for recent edits, but I haven't done it yet. Now that I more or less figured out how to process Wikifunctions edits, I'm focused on trying to understand Abstract Wikipedia edits. Processing up-to-date edits from both sites will possibly be the next thing I work on, but if you know some Python and want to try doing it yourself, don't wait for me—[https://gitlab.wikimedia.org/toolforge-repos/wikifunctions-analytics Patches welcome].) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 18:51, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]], I've just updated the data until the end of April. Now the query to which I linked above gives some results. You can also try running other queries if you know SQL. (Or try asking for other queries if you don't.) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 03:26, 3 May 2026 (UTC)
== [[Z34213]] ==
I'm not quite sure why this implementation is failing. Could someone take a look? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:24, 28 April 2026 (UTC)
:I've [https://phabricator.wikimedia.org/T419933#11863997 notified] the team that this is still occurring, the issue was marked as resolved. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:52, 28 April 2026 (UTC)
:Some useful tips:
:* create more testcases: sometimes it is a random error, so try to see how consistent it is between testcases
:* your implementation is very inefficient, since it fetches items and lexemes a lot of times. Ideally, each item and each lexeme should be only fetched once in all the execution tree.
:[[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 06:06, 28 April 2026 (UTC)
::Caching (''should?'') means that the lexeme and item data are cached, so the call doesn't actually execute multiple times. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 17:51, 28 April 2026 (UTC)
:::Are lexemes and items actually cached within the same function execution? Even if they are only partially fetched and/or fetched in bulk? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:54, 28 April 2026 (UTC)
::::I don't have any evidence to prove that it works but that's definitely A. what's supposed to happen and B. the ideal behavior. This happens because the Z680X functions can be cached just like any other. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 18:02, 28 April 2026 (UTC)
::::It is unclear. In general, I believe identical branches are resolved only once in orchestration, but there is also independent caching of Wikidata fetches.
::::According to @[[User:DMartin (WMF)|DMartin (WMF)]] ([https://t.me/Wikifunctions/30374 on Telegram]):
::::<blockquote>Well, no. We have caching of Wikidata entities that have been retrieved, but not of the results of nested function calls. There is a proposal for doing this in the context of the V2 composition language, when it's a bit more mature, and it's regarded as a relatively high priority.</blockquote>
::::It’s hard to tell whether fetches in nested calls are, in fact, cached and available for other nested calls in the same call, since it is not generally the actual fetch that consumes the most resources. Rather (I believe), it is construction and transmission of the result object, which is currently repeated afresh in each nested call (unless it is in an identical branch).
::::I hope that’s clear, and I apologise in advance if it happens to be inaccurate! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 29 April 2026 (UTC)
:::::Oh, I should clarify. There is a lot of caching going on, in several different places. Lexemes and items ''are'' cached by the orchestrator within the same function execution, even if they are only partially fetched and/or fetched in bulk. When I said that we don't have caching of the results of nested function calls, I meant that's not happening in general, for all nested function calls in compositions. But fetching of Wikidata entities gets special treatment, so yes, fetched content from Wikidata is cached, regardless if it was fetched by a top-level call or a nested call.
:::::It is also true that the construction of a ZObject from the fetched JSON might happen more than once within the same function execution, depending on how a composition has been structured. However, the construction of the ZObject is actually very fast, compared to the elapsed time of getting the JSON from Wikidata. [[User:DMartin (WMF)|DMartin (WMF)]] ([[User talk:DMartin (WMF)|talk]]) 18:04, 1 May 2026 (UTC)
== Question about cardinal numbers ==
I was about to edit {{Z|Z16435}} to add my function {{Z|Z34308}}, but I noticed that none of the other functions have a gender parameter.
Should I create a new wrapper function "Bulgarian cardinal, neuter", or should I just remove the gender parameter and always return neuter? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:39, 28 April 2026 (UTC)
:The “cardinal” functions should return the words used for “counting” numbers in the abstract.
:We should consider converting them to return a {{Z|Z11}} rather than a {{Z|Z6}}. It may even be appropriate to return a {{Z|Z12}} to cater for language variants. Either way, I think that would be the approach to adopt for inflected forms, unless reference to specific lexeme-forms is required. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:52, 28 April 2026 (UTC)
::This. If a native of your language were to count up, which form would they be most likely to use? [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:29, 28 April 2026 (UTC)
::: {{re|GrounderUK|Feeglgeef}} Thanks for both your input!
::: I relabeled the aforementioned function to {{Z|Z34308}}, and created a new wrapper function {{Z|Z34457}}.
::: Should I specify that my old function is a monolingual text in parentheses? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:26, 28 April 2026 (UTC)
::::You don't have to, unless you think that is something that would require distinction when viewing the function in a list of search results &c. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:36, 28 April 2026 (UTC)
== Optional/nullable function parameters ==
Hello!
Recently, I was informed that Wikifunctions has no optional/nullable function parameters as of now.
Are there any future plans to support this, and/or workarounds? Maybe create a union type system like "{{Z|6}} or {{Z|23}}". <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 17:53, 28 April 2026 (UTC)
:What I do for this is use an "is empty" function corresponding to the type of the parameter in an If statement. If it isn't empty, the function works as intended. Otherwise, it does something else. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:58, 28 April 2026 (UTC)
:Unions are not a thing (yet) on Wikifunctions, but you can always define an argument of type {{Z|Z1}}, which means that all types are allowed (I already did this for {{Z|Z26737}}; note that it is still a ugly workaround, don't use it for high level functions). Also, note that usually on Wikifunctions we use {{Z|Z24}} as the null value. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:00, 28 April 2026 (UTC)
:: {{re|JJPMaster|Dv103}} Thanks for your help!
:: @[[User:Dv103|Dv103]] told me a function call with a missing parameter is treated as an invalid function call, so how does the "is empty" function work with that?
:: Also, setting the type to {{Z|1}} seems naive, like setting the type as <code>any</code> in TypeScript...
:: Related question: Are there plans to add default values to parameters (outside of "if empty")? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 18:19, 28 April 2026 (UTC)
:::Setting the type to {{Z|Z1}} is actually naive, and that's why I advised you to only use it for low-level functions. Currently there is nothing better. Sometimes, type correctness is not actually checked, so it might seem that nullable types are possible. But it is still an hack, and it could broke anytime since it is not intended behavior.
:::I don't think that there are current plans to add default values (but correct me if I'm wrong). The closest thing that comes to my mind is that, if you incorporate Wikifunctions into Wikitext, you can leave empty some fields (only of some specific types) and Parsoid will replace them to their default value. This is done only depending on the type, and not on the functions. For example, {{Z|Z6091}} and {{Z|Z6001}} are assigned the QID associated to the page, and {{Z|Z20420}} is assigned the current date. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:56, 28 April 2026 (UTC)
:::@[[User:QuickQuokka|QuickQuokka]]: At the very least, [[Z10008]] accepts a null input. Maybe that feature is unique to the String type—I am not sure. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 19:10, 28 April 2026 (UTC)
::::I think it's just not checked, but it shouldn't be intended. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:20, 28 April 2026 (UTC)
::::Strings and typed lists can be “empty” in the sense that their length can be zero. Typed pairs may also be “empty” in a degenerate sense, but such an object will not be returned from a code implementation. A typed map with no entries will also fail to be returned from code, although it is fine in compositions.
::::For a genuinely optional parameter, I prefer a properly typed list, which at least encourages an argument of the correct type. {{Z|Z813}} is also typically faster than {{Z|Z10008}}. Quite a good example of this approach is {{Z|Z23723}}, where it helps to resolve the type union (using [[Z1]]) for both Z6003K1 and Z6003K3. Of course, there’s nothing to prevent more than one element in the list, but additional elements are easily ignored. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:55, 28 April 2026 (UTC)
:Pinging {{ping|Jdforrester (WMF)|prefix=|p=}}, I believe there are no current plans. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:02, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]]: I'm afraid there are no current plans to build out optional params, indeed; we would be happy to review this if a compelling case was made, but it'd be a lot of work to re-build the [[Wikifunctions:Function model|function model]] with that support and ensure we don't break (too many) things. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 19:11, 28 April 2026 (UTC)
== Z6830 for Chinese ==
I was trying to use {{Z|Z6830}} for implementation in the Chinese-language. And turns out most of the Lexeme on Wikidata is using [[d:Q727694]] as the language instead of [[d:Q7850]]. This makes it impossible to use the mentioned function above, since Standard Chinese is not available (or did I miss something?). Is there a way to fetch lexemes with language=[[d:Q727694]] from item? [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 18:20, 30 April 2026 (UTC)
:@[[User:Sun8908|Sun8908]] There is [[Z1006]] for Chinese and it has the language code zh. There is an overview of languages in [[Module:Wikifunctions label]] so you can search there for chinese versions and choose the one you need. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 20:53, 5 May 2026 (UTC)
::I know that. The problem is when using the function [[Z6830]], it cannot retrieve lexeme with language [[d:Q727694]] (but it is the "Chinese language" with the most current Wikidata lexemes, see [https://ordia.toolforge.org/language/ ordia]). I think it should be a Wikidata problem, I might fix it (possibly by creating the same lexemes with language code zh) on Wikidata. Thanks anyway. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 05:39, 6 May 2026 (UTC)
:Could you provide an example of a Chinese lexeme that has a linked Wikidata item, or a Z6830 function call that fails to find such a lexeme where one exists? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 07:55, 6 May 2026 (UTC)
::Here: [[d:Lexeme:L846083]]. I think that's a primary reason of me trying to look into this problem, as the label in zh for [[d:Q6256]] (country) is not a single phrase (see its talk page on WD for more information). This makes some Abstract Wikipedia articles very weird in Chinese when {{Z|Z26570}} is used, so lexeme could potentially fix that. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 10:33, 6 May 2026 (UTC)
:::Thank you. It looks as though {{Z|Z6830}} [https://www.wikifunctions.org/view/en/Z6830?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6830%22%2C%22Z6830K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q6256%22%7D%2C%22Z6830K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P5137%22%7D%2C%22Z6830K3%22%3A%7B%22Z1K1%22%3A%22Z60%22%2C%22Z60K1%22%3A%22cmn%22%2C%22Z60K2%22%3A%5B%22Z6%22%5D%7D%7D returns that lexeme for language tag "cmn"]. Perhaps that tag should be added into the helpers for {{Z|Z24144}}? If it is widely used for lexemes, perhaps it should have its own {{Z|Z60}}? In any event, improvements might be considered under [[:phab:T390563]] (or otherwise), including amending [[Z6830]] to also consider "cmn" (and "zho", "chi"…?) when requests are made for "zh-hans" or "zho-hant" (or others?) @[[User:Winston Sung|Winston Sung]] @[[User:DMartin (WMF)|DMartin (WMF)]] [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 17:22, 6 May 2026 (UTC)
::::If you go to [[d:Special:NewLexeme]] and put in [[d:Q727694]] as the language, it is going to tell you it has an unrecognized language code. So I believe "cmn" should not be a {{Z|Z60}} by default? I also started [[d:Wikidata:Project_chat#Lexemes_with_language_Standard_Chinese_(Q727694)|a discussion on WD]] regarding this. I guess we can still use it as a fallback language though if possible. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 03:43, 7 May 2026 (UTC)
::::We don't have a separated <code>cmn</code> BCP 47 language subtag in MediaWiki and Wikidata at the moment. <code>zho</code> and <code>chi</code> are ISO 639 language codes but not BCP 47 language subtags.
::::For Modern Standard Mandarin, please use <code>zh-*</code> language tags for now. -- [[User:Winston Sung|Winston Sung]] ([[User talk:Winston Sung|talk]]) 15:26, 8 May 2026 (UTC)
== Key not found error ==
Is there a reason why I am getting key not found error for this [[Z34677|function]] {{Z|Z34677}}? All the underlying functions run and all the test cases work. The debug information does not give more details. Any pointers? Thanks in advance [[User:Jsamwrites|John Samuel]] 19:24, 1 May 2026 (UTC)
:It was passing the [[Z6091]] to {{Z|34641}} when that takes a [[Z6001]]. I've fixed that, but there's some other problem with the logic, so I've left it disconnected. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:42, 1 May 2026 (UTC)
::@[[User:YoshiRulz|YoshiRulz]] Thanks a lot. [[User:Jsamwrites|John Samuel]] 20:21, 1 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #246 is out: Request for input: what should we count for Abstract Wikipedia ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we ask you what would be the relevant metrics for Abstract Wikipedia, we discuss our latest news on Composition Language v2, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 12:21, 2 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== Any formal process for deletion of pages ==
Does a formal process exist for the deletion of functions, implementations, and tests that includes a notification system for creators, analogous to Wikidata’s process, explaining the rationale behind the deletion (or proposal for deletion)? [[User:Jsamwrites|John Samuel]] 12:36, 3 May 2026 (UTC)
:Does [[Wikifunctions:Requests for deletions]] work? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 13:00, 3 May 2026 (UTC)
:Please see the discussion at [[Wikifunctions talk:Requests for deletions#Should we expect Objects' creators to get pinged on deletion proposals?]].
:As I see it, it is the proposer’s responsibility to consult appropriately before making a request and we expect our administrators to act only when satisfied that appropriate consultation has occurred. In many cases, no consultation is required. Administrators may delete their own contributions without making a request, but this is not a practice I would encourage. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:51, 3 May 2026 (UTC)
== Implementation of rational number in JS doesn't match in Z19677 (Rational number) and Z28579 (RGBA colour) ==
In {{Z|19677}} it's
<syntaxhighlight lang=js>
{
"K1": sign * numerator,
"K2": denominator
}
</syntaxhighlight>
but in {{Z|28579}} it's
<syntaxhighlight lang=js>
[ sign * numerator, denominator ]
</syntaxhighlight> '''<span style="font-family:Iosevka,monospace">[[User:沈澄心|<span style="color:#9f3526">dring</span>]][[User talk:沈澄心|<span style="color:#534fa3">sim</span>]]</span>''' 05:15, 4 May 2026 (UTC)
:I'm guessing this is why [[Z34743]] fails all the tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:00, 18 May 2026 (UTC)
== Nested functions in compositions ==
I wish it will be easier to a add another function about a specific existing function in a function implementation based on a composition. When I write long functions in spreadsheets I usually stat with a small part and then I try to go further and after important steps I test if the output is as expected. I created [[Z34826]] to get the German gender specific occupation lexeme for a specific person based on their gender. I wanted to add a function around the existing one and it was not successful. It is not very easy to implement as it requires the possibily to move a part to another section but I think it can be helpful if it will be implemented. So far I spend more time as expected on the function. Describing it with words what the function needs to do is much easier than implementing it here in Wikifunctions. So I think there needs to be improvement to make Wikifunctions more accessible. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:10, 5 May 2026 (UTC)
:Have you tried to use the copy-paste functionality? It is very useful to move parts of composition arounn. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:12, 6 May 2026 (UTC)
:I've also found the composition editor to be wholly unsuitable for any expressions more than a few levels deep. (Even with the <code>localStorage</code> clipboard, because of its overzealous type checks.) Compositions naturally grow out from the "leaves", the immediate operations on the inputs, while the interface really wants you to build from the "root". I mostly use the [https://yoshirulz.gitlab.io/WikiLambdaBlockly drag-and-drop block editor] which I made to smooth over some of the site's problems, so if you want to try that out and give me some feedback I'd appreciate it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 14:36, 6 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #247 is out: References from Wikidata now available ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-08|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we announce that is now possible to pass references in Wikidata statements, we introduce the [https://abstract-data.toolforge.org/ Abstract Data dashboard], we report you on the presentation about Abstract Wikipedia at WikiCon Australia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1778520600 May 11, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:16, 8 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== RGBA colour, spelling... ==
Something that has always irked me a little bit is the spelling of [[Z28579|RGBA colour (Z28579)]]. I guess this is not unsurprising for me considering my use of US English but I think there is more to it than preference and I want to try to argue for it being changed to use American spelling. I know that this probably has a snowball's chance in hell of actually garnering any support, so I won't really be miffed if the spelling remains as it is, but I thought it wouldn't hurt to raise this regardless.
The main issue I have with it is the spelling of the original proposal. When infernostars raised the [[Wikifunctions:Type proposals/RGBA color|type proposal]], the spelling was 「RGBA color」. Of the comments that mentioned the word 「colo[u]r」, two used British spelling while six used the American spelling as used in the proposal. The only thing that really pointed to the use of ''colour'' was the fact that the catalog page on color functions used that spelling already. For all intents and purposes, the spelling of the original proposal should have been maintained, but it was not; [[User:DVrandecic (WMF)|DVrandecic]], the eventual creator of the type, used a different spelling.
It should be noted that there was really no reason for this to occur and while it is an undoubtedly minor issue I still believe it should be rolled back and the type should use the spelling of the original proposal and majority of editor comments. In [[abstract:Q936|OpenStreetMap]], there have been keyvalue proposals that have had the finalized spelling that gets put to use be in British English despite the original proposal being in American English; this has usually occurred with proposals relating to 「X center/centre」 tags. This makes sense on the surface, because OpenStreetMap is maintained by a UK organization, and still has close ties to Europe. The Wikimedia Foundation, however, is an ''American'' company. This is often brought up as a fallible argument when debating article spelling on the English Wikipedia, and I don't bring it up to support that 「RGBA color」 should be used for that exact reason, but rather to state that OpenStreetMap's general policy on tag names need not apply here. It appears to me that, at least initially, the majority of 「core contributors」 to Wikifunctions used British English; I can name YoshiRulz, 99of9, GrounderUK, and VIGNERON.<ref group="color">I'm avoiding linking to these folks because I don't think pinging them about this discussion is all too necessary unless they themselves want to be involved; I don't want to clutter their inboxes just to briefly mention them. I pinged Denny because, well, I'm asking him a question directly, but everyone else I would prefer to join this discussion by their own accord... not that I wish for this decision to be confused as me going 「these people use British English so they will probably oppose my idea, I won't invite them to the discussion because of that」...no, I promise you that is not the reason.</ref> I see (or saw) these people ''everywhere'', so it makes sense that British English has prevailed in some sorts on this website, but I don't think that indicates that it should be the ''preferred'' spelling across the website, at least not to the point where a proposal should have its name changed to match such a "consensus".<ref group="color">It could be argued that the front-and-center ''Function catalogue'' using 「catalogue」 is actually indicative of such a "consensus", but ''catalogue'' is in a similar position to the word ''grey'' where I live (that is, the US) in that it is used just as often as its American counterpart. Also, consider Wiktionary's ''Beer parlour'' project chat.</ref>
The unnecessary modification of the original spelling is my main argument for changing it back... but of course, I must obligatorily state that on English Wikipedia, it is [[w:Color|Color]] and [[w:RGBA color model|RGBA color model]]; on Wikidata, it is [[d:Q1075|color]] and [[d:Q2325624|RGBA color space]]; in CSS (which typically uses hexadecimal triplets to specify RGBA values), the properties are <code>color</code>, <code>background-color</code>, etc.; bit of a weak jab, but on Schema.org it is [https://schema.org/color color], [https://schema.org/colorSwatch colorSwatch]; et cetera. {{Z|Z28580}} uses ''color'', so does {{Z|Z28591}} and its Python counterpart.
Mr. Vrandečić, I have to ask, I'm rather confused... you created the color type using British English spelling, but you were also responsible for the creation of the equality function which uses the American English spelling. You also seem to be writing in American English for the status updates, judging by your use of -''ize'' over -''ise'' endings and use of ''program'' over ''programme'' in [[Wikifunctions:Status updates/2026-04-16]]. Is there something I'm missing or have you switched your preferred variant somewhere along the way?
Anyways, do consider this if you wish... again, I don't suppose this will garner much support, it is the ''non-issuest'' of ''non-issues'', but it has irked me to the point where I want to ask about it to get some answers, if nothing else. I am not arguing for every other color function to have its name changed, just the type itself.
<references group="color"></references>
— [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:04, 8 May 2026 (UTC)
:This is a multilingual project; the <code>en</code> label is <code>RGBA colour</code> and the <code>en-us</code> label is <code>RGBA color</code>. Though I'm not able to switch to <code>en-us</code> via the language picker so that would need to be fixed.<!--
--><br>edit after reading your whole comment: The same is true of {{Q|1075}}, there are labels specified for multiple English variants. (In {{Q|2325624}} it's only an alias.) I agree that other websites' choices aren't binding on us, but from that, I conclude that the more widespread British/Commonwealth spellings should be used for the generic <code>en</code>. As for myself, I'm Aussie and I will continue to use the BrE spellings ([[w:en:Oxford_spelling#Language_tag_comparison|+ "routing"]], TIL) if only by muscle memory.<!--
--><br>[[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:42, 8 May 2026 (UTC)
:: Your lattermost point would normally be fine in a perfect world. Wikipedia's <code>convert</code> function defaults to "international" English, which I don't personally take issue with because it happens that we here in America are actually outliers for saying and spelling things differently... err, or we were for a while at least, nowadays it seems like an even split (plus you have "yield" vs. "give way" which is effectively the logical opposite of US's use of "meter" over "metre").
:: However, this is not a perfect world, and I don't think <code>en</code> should correspond to any particular variant. It is too fragmented across all software at this point to impose such a requirement. The inability to switch to <code>en-us</code> on this website foregoes an easy and simple solution to this problem that makes everyone happy, because the yanks (such as myself) can't be happy because we can't see the labels in American English even if we wanted to, and the other folk can't switch either as far as I'm aware (and the en-CA and en-GB languages in the preferences page seems to be deprecated). My point being, <code>en</code> is abused to mean "en-UK" just as often as it is abused to mean <code>en-US</code>; I think a decision shouldn't be made on such an assumption of one "default". — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:48, 12 May 2026 (UTC)
:Hi @[[User:Theki|rae]]! I have no opinion nor preference on this, and given my background, I am just entirely confused about my spelling preferences myself, as you can tell from my inconsistent usage. I learned British English in school and used that for maybe two decades or so, but moved to the US and lived there for more than a decade, enough to be naturalized, but now I am back in Europe and I am technically a professor at King's College London, soooo.... honestly, I do not know. I don't remember having put too much thought into it at the moment I created it. The good thing is that in Wikifunctions, just as in Wikidata, it is easy to change, without messing things up too much (unlike in Wikipedia), so my suggestion is, just make the change, see if anyone complains, and if they do, discuss it more. I don't know if there is a guideline already in Wikifunctions about the variants. I am happy either way, and honestly, I keep forgetting which variant is which most of the time. --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 18:16, 10 May 2026 (UTC)
:: I can definitely understand this, although I am unfortunately rather passionate about any minutiae involving preferential minor differences in ''anything'', of which AmE vs. BrE chiefly is. So I dedicate a lot of headspace to it. More than I should. Not that I wish to imply that the comment above that I have wrote is of an irrational nature, or done out of spite or pure emotion and subjectivity; I do genuinely believe that ''RGBA color'' is beyond just a personal preference and is just logical. I may boldly go and change it, but for some reason I was expecting that changing the English label of a Type would require elevated permissions, and I also didn't want to do it only to get immediately reverted because it ''did'' strike a chord with someone, when I could instead see how apathetic, supportive, or in opposition interested people are beforehand and ''then'' act accordingly. I was not meaning to antagonize you over your spelling habits, I did actually use British English for a few years starting in 2020 before I went back to American English, so I'd be a hypocrite for me to decry you for not always sticking to some arbitrary standard of spelling words over the other. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:55, 12 May 2026 (UTC)
:Although I spell it “colour”, I think it makes more sense to use “color” for the type, since that is almost always the required spelling when the string functions as a keyword.
:More generally, though, Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en". This is unusual, in my experience, as "en" is widely misused in place of "en-US", where there are recorded spelling differences.
:(I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere. Use of -ize rather than -ise is a matter of personal preference or house style, but regional autocorrect encourages -ise.) [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:00, 12 May 2026 (UTC)
:: ''Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en"''
:: Definitely agreeing with you on the latter being a good choice. However, I suspect the favoring of "colour" over "color" may be because, in terms of language codes, when sorted alphabetically <code>en-us</code> actually comes ''after'' <code>en-gb</code>. Although, the frontend seems to be sorting <code>en-ca</code> after <code>en-gb</code>, so I don't actually know how correct that is.
:: ''I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere''
:: The context of the spelling was "''No program for the NLG SIG meeting for next Tuesday has been proposed''". In that usage context, I think it makes sense to assume that ''program'' is not being used to refer to a computer program, but to a ''program of events'' or similar, something that you would spell as a ''programme'' in British English. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:02, 12 May 2026 (UTC)
:{{s}} this. I'm obviously biased but I believe American English is preferable generally, American dominance on the internet (our Department of Defen'''s'''e invented it!) and rapidly-increasing consumption of American media by international English speakers means that more people use American English's conventions, this is clear through for example [http://trends.google.com/explore?q=color%2Ccolour&date=all&geo=Worldwide search trends] (though they aren't particularly reliable). Perhaps this is a bit of a supremacist opinion, but we should have internal consistency, and if we must choose, American English should be our first choice (then Indian and then British English) [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:10, 12 May 2026 (UTC)
:: This is rather flawed reasoning, though. I think probably any given British or Indian person would not agree on using that as the reasoning for this, not that you are necessarily ''completely wrong'', but if this is not a good enough reason for English Wikipedia's (admittedly extremely flawed) ''ENGVAR'' policy then I don't think it's likely it will pass here either.
:: Although of note is that [https://books.google.com/ngrams/graph?content=color%2Ccolour&year_start=1800&year_end=2022&corpus=en&smoothing=3&case_insensitive=true Google ngrams] agree with you, but "color" vs. "colour" is an eternal holy war that will not be won by demonstrating that more books use US spelling over Commonwealth spelling. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:44, 12 May 2026 (UTC)
:::You're probably right that it's not very sound. I'm biased in that other varieties of English irk me, and that's probably mutual for people who are used to other varieties of English when they read what I write! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:56, 12 May 2026 (UTC)
:I've decided to boldly [[Special:Permalink/274271|make the change]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:02, 12 May 2026 (UTC)
:: Thank you. Considering both you and GrounderUK seem to consider it an okay change, I think this will do for now.
:: I should note that the matter of whether to move [[Wikifunctions:Catalogue/Colour functions]] in response to this (however this discussion will ultimately turn out) is a whole other can of worms, in my view. I can't say I have an opinion on that at the moment, but I'm putting it out there regardless. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:06, 12 May 2026 (UTC)
:::Personally, I'm in favor of moving the page and renaming all of the items on it. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:10, 12 May 2026 (UTC)
::I don't like this (exactly because of the American hegemony you cited), but again, it shouldn't matter because the software is meant to be multilingual. Clearly there's a bug preventing you from picking an English variant/dialect as your display language. But the search bar and Function/Type autocompletion do check the English variants for matches. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:15, 12 May 2026 (UTC)
== Proposals on the architecture of Abstract Content rendering ==
Starting from a discussion born on the Telegram chat, I've explained two different proposals on how the NLG on Abstract Wikipedia should be organized in the page [[abstract:User:Dv103/Abstract articles architectures]]. Please come to contribute to the discussion, or to propose alternatives. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 14:31, 11 May 2026 (UTC)
:Thank you for dedicating your time to writing this, it is very informative. I will try to add input once I'm not in over my head with finals. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:27, 12 May 2026 (UTC)
== Display function for HTML fragment ==
Currently, any collapsed Z89 literal appears as<blockquote><> [[Z89|HTML fragment]]</blockquote>If I were to create a new Function which returned something like<blockquote><> 123-byte HTML fragment <q><nowiki><td><span lang=</nowiki>…</q></blockquote>could that be connected to replace the collapsed form, or would it require changes to the Wikilambda software? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:14, 11 May 2026 (UTC)
:It might work, but I doubt it. Those angled brackets suggest that the collapsed form is not simply defaulting to the type’s label. Looking at [[:phab:T410509]], I’ve concluded that enhancements to the collapsed form were never considered, rather than being actively rejected. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:12, 12 May 2026 (UTC)
::[[:Phab:T391985]] documents the original design. Note the fifth bullet point under “Acceptance criteria”. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:21, 12 May 2026 (UTC)
:I'm not sure the byte-size is necessary, but the outer tag (or first outer tag, though generally I'd prefer most fragments use a wrapper tag if it needs multiple like JSX does, but that's a whole different topic) would be nice. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 12:51, 12 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #248 is out: A higher meaning ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-15|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss functions creating language fragments, we present our latest news in Types, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:36, 15 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
== [[Z34510]] ==
This function, which determines if a Wikidata item for a {{q|5}} has an undeprecated {{p|21}} statement of {{q|6581097}}, returns false for {{q|173399}}, a transgender man. This is because his item assigns his P21 statement to {{q|2449503}}, not {{q|6581097}}. I'm not sure how to account for this discrepancy. Should {{z|34510}}:
# Include {{q|2449503}} as a value that can lead to a true result,
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a man?") could return true for either "male" or "trans man",
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a trans man?") could return true for "trans man",
# Not exist at all?
[[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 16:48, 16 May 2026 (UTC)
:I can't think of a single use case where you would need to determine if a person is a cisgender man and nothing else. Functions are good for generalizing across multiple possibilities when they exist, so I think it would be best if trans men were considered a part of the criteria for returning a true value. If asking for specifically {{q|6581097}}s and ''nothing'' else was desired then the function name would be a misnomer as Elliot Page is inarguably a male (at least in the view of most reasonable and intelligent people). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 19:03, 16 May 2026 (UTC)
:You made the function in the first place; what were you planning on using it for? AW? Maybe it should return a {{Z|25501}} which can then be passed on to other NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:01, 16 May 2026 (UTC)
== Lexeme from wikidata label, or "best" lexeme from wikidata item ==
I was looking into fixing [[Z28028]]. I found that I could add "requires grammatical feature: definite article" to "United Kingdom" (L8558). Now I'm stuck on how to get to that lexeme from {{Q|145}}. There's [[Z23471]], but that for very good reason gives you multiple lexemes with the same sense, and I just want the best one like how the label is always the best string. Is there a function that can do this?
There's definitely the case of a Wikidata label that isn't a lexeme (most commonly multiple lexemes) but I'm only considering the case where it is one lexeme here. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 20:02, 16 May 2026 (UTC)
:There is {{Z|Z27327}}, that tries to give the best lexeme through various heuristics. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 22:22, 16 May 2026 (UTC)
:: Wonderful! I did stumble upon [[Z33818]] but this is perfect. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:25, 17 May 2026 (UTC)
== [[Z29591]] isn't working for me ==
For instance, trying to manually put in the exact inputs for one of the test cases just returns an empty Monolingual text. See [https://www.wikifunctions.org/wiki/Z29591?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29591%22%2C%22Z29591K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3257809%22%7D%2C%22Z29591K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z29591K3%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z29591K4%22%3A%22Z1002%22%7D]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 01:17, 17 May 2026 (UTC)
:You used [[:d:Q22006653]] rather than [[:d:Q1075]]. It looks like the [https://www.wikifunctions.org/wiki/Special:RunFunction?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D explanatory error] is suppressed by the [https://www.wikifunctions.org/view/en/Z30009?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30009%22%2C%22Z30009K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D%2C%22Z30009K2%22%3A%22Z801%22%7D final transformation]. The returned result is not actually empty; if you expand it, you can see that it is an unresolved function call. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 09:59, 17 May 2026 (UTC)
== [[Z35298]] ==
Does anyone know what the problem with this implementation is? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 21:14, 18 May 2026 (UTC)
:There is a bug that doesn't allow Python implementation to return nested lists. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:31, 19 May 2026 (UTC)
::Is there a Phabricator task for this? Searching through them is hell. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 03:22, 20 May 2026 (UTC)
:::A bit of time ago I opened [[phab:T392750]], which is very similar to this issue. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:26, 20 May 2026 (UTC)
== May 2026 Wikimedia Café meetups regarding the Wikimedia Foundation Annual Plan ==
<div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)">
<div class="box" style="float:left; padding-top: 15px; padding-right: 15px;">[[File:Wikimedia Café logo in plain SVG format.svg|75px|alt=The logo for the Wikimedia Café]]</div>
Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities during the last weekend of May. Both sessions will focus on the [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2026-2027 the 2026-2027 Wikimedia Foundation Annual Plan]. Participants may attend either or both sessions.
#'''Saturday, 30 May 2026 at 15:00 UTC''' ([https://zonestamp.toolforge.org/1780153200 timestamp converter]), at a time friendly to the Americas, Africa, and Europe
#'''Sunday, 31 May 2026 at 05:00 UTC''' ([https://zonestamp.toolforge.org/1780203600 timestamp converter]), at a time friendly to Asia and the Pacific
Café participants are highly encouraged to read in advance [https://en.wikipedia.org/wiki/User:Sohom_Datta/annual_plan_guide at least this summary of the plan]. Optionally, Café participants are encouraged to read portions of the plan that interest them and [https://meta.wikimedia.org/wiki/Talk:Wikimedia_Foundation_Annual_Plan/2026-2027 ask questions or provide feedback on the Annual Plan talk page].
Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#May_2026_meetings_with_a_focus_on_Wikimedia_Foundation_Annual_Plan/2026-2027 tables of timestamp conversions for both sessions], [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#Agenda._This_will_be_an_approximately_1_hour_Caf%C3%A9_session,_and_is_extendible_for_an_additional_30_minutes_if_needed. the agenda], and [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]!
<br />
[[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div>
<span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 19:56, 21 May 2026 (UTC)
== How to handle items without lexemes ==
NLG functions relay heavily on the presence of lexemes associated to items on Wikidata. But we know that not all the Wikidata items have an associated lexeme. There are multiple reasons why an item does not have an associated lexeme, like:
# The lexeme has not been created yet
# The item represents a place
# The item represents a person
# The item represents a specific concept that can only be expressed by a specific combination of words that cannot be [[Wikidata:Wikidata:Lexicographical data/Notability|notable]] (like {{Q|Q61220733}}).
My doubt is: what should we do with this fourth category? For many languages, just using the Wikidata item label is not possible, since it is necessary to conjugate the words or to retrieve grammatical information like the gender. What should we do? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:09, 23 May 2026 (UTC)
:In that particular example, I think the thing to do is read its {{P|279}}: {{Q|21191270}}, then have some kind of heuristic based on that which says to take its {{P|8345}} and attach that Item's label to a Form of the word for "episode". In general, synthesising Lexemes for proper nouns is one of the problems that [[abstract:User:Dv103/Abstract_articles_architectures|proposals in your list here]] will have to address. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:59, 23 May 2026 (UTC)
[[File:Wikidata content 2024.svg|thumb|Content of Wikidata by type]]
::{{ping|Dv103}} very good point.
::For your point 2, it depends of the place but I think that quite often a lexeme can be created (most "Administrative territorial entity", most geographical entity, etc.). And with 3, your can add a lot of types (see pie chart) : Scholarly article, Human (with a very few exception), Wikimedia Category, Disambig, etc. which is (rough estimation) 2/3 of Wikidata items.
::A common rule (in dictionaries since forever and in Lexemes) is to not create an entry which is the "sum of its part". In this case, "Star Trek episode" is just episode + Star Trek, nothing more than its part. So logically, as {{U|YoshiRulz}} said, when no corresponding lexeme is found, the item should be decomposed the same way, the hard part is to know how to decompose it as the property will vary ; P31 and P279 are an obvious start but beyond that, I'm not sure we could find a general solution.
::PS: it's beyond you question but there is also the reverse problem, how to select one lexeme when multiple are linked to the same item...
::Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:43, 24 May 2026 (UTC)
:::For the point 2, I think humans will be used way more than scholarly articles and disambiguations in NLG functions (outside references), that's why humans concern me more (still a cool pie chart, though).
:::For the reverse problem, there is already {{Z|Z27327}}: it's far from perfect, but usually makes a decent choice. Obviously it is not "complete", and probably it will never be complete, but it will have to be progressively improved by the community. And probably in the future we will need to create similar functions to select the best lexeme in more specific cases.
:::For my fourth point, I didn't think about the decomposition, but it is something that could be done with another never-complete community-mantained function, that progressively keeps being improved. If [[Wikifunctions:Type proposals/Semantic unit|semantic units]] will be implemented, through them it could actually be possible to do this operation in a laguage-independent way. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:10, 24 May 2026 (UTC)
::{{re|YoshiRulz}} Proper noun synthesis, along with other fallbacks for realizing the names of concepts that don't have lexemes, is merely a step within the overall abstract content rendering process and is not inherently tied to the process itself; having the ability to [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/graph/client.py#L327 run any number of fallback mechanisms], instead of a raw call to (the equivalent of) Z27327, should be possible with any of the methods listed on the architectures page. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 16:41, 24 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #249 is out: Annual plan 2026-2027 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-23|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we present you the current draft of objectives for Wikifunctions and Abstract Wikipedia in the WMF Annual Plan 2026-2027, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 09:48, 25 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
:The new <code>return_type</code> param to [[Special:ListObjectsByType]] will show Functions returning e.g. {{Z|27951}} and {{Z|882}} if those are typed in manually, but the dropdown menu doesn't offer them, probably because it's a copy of the dropdown above (and there are no Persistent objects of those Types). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:12, 26 May 2026 (UTC)
== Type documentation template ==
Over the past couple of weeks, I've been developing and rolling out {{t|type documentation}}: a standardised layout for Type metadata, de/constructors, conversions, etc. on each Type's talk page. (The layout is loosely based on [[d:Template:Property documentation|Wikidata's]].) See [[Talk:Z16683|Integer]] for an example that uses most of its features, and [[Talk:Z99|Quote]] for one that doesn't.<br>At this point I can't think of anything more to add besides [[Help:Comparison_function_table/float64|filling out]] a couple more [[Help:Type_conversion_table/Codepoint|tables]]. But if any of you have ideas or feedback, please click through to the relevant talk page and leave me a message. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:29, 26 May 2026 (UTC)
:I really like what you're doing here. Thank you. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:26, 26 May 2026 (UTC)
== Apparent error in implementations of {{Z|20616}} ==
Please can I request help in how to understand a bug? Sorry if this is not the best place to ask.
I created lexemes [[d:Lexeme:L1566135|langue morte L1566135]] in French and [[d:Lexeme:L1566139|lengua muerta L1566139]] in Spanish, with property {{P|5185}} set to {{Q|Q1775415}} in each case. {{Z|20616}} should return a list of the grammatical genders of a given lexeme. It has two implementations, {{Z|Z20641}} and {{Z|Z21127}}, each of which works perfectly in the French case, returning a list containing Q1775415. But in the Spanish case, each of the two implementations wrongly returns an empty list. I cannot understand what is going wrong. How can I find out what is happening here? I would be grateful for any help or advice. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 13:56, 26 May 2026 (UTC)
:Both implementations return [https://www.wikifunctions.org/wiki/Z20616?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z20616%22%2C%22Z20616K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6825%22%2C%22Z6825K1%22%3A%7B%22Z1K1%22%3A%22Z6095%22%2C%22Z6095K1%22%3A%22L1566139%22%7D%7D%7D the same result]. As you added the gender only yesterday, I suppose it must have still been looking at a cached version of the lexeme from before that edit. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:06, 26 May 2026 (UTC)
sf0y44y83pz0gu7bxhxvml6m700ts1h
278261
278260
2026-05-26T16:23:24Z
GrounderUK
50
/* Type documentation template */ Reply
278261
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== “Key not found ()”? ==
What am I doing wrong in {{Z|Z34137}}? [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 00:39, 25 April 2026 (UTC)
:You were passing a [[Z6091]] to {{Z|32290}}, but it takes a [[Z6001]]. Fixed. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 07:10, 26 April 2026 (UTC)
::{{done|Thank you}}! [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 14:13, 26 April 2026 (UTC)
== Is it OK to connect the implementation? ==
Hello!
I recently applied for functioneer on [[WF:RFG]], and I was wondering whether I could connect the implementation for {{Z|Z34165}} despite its dependency {{Z|Z34149}} being currently unimplemented. That is <em>if</em> I get accepted.
I am planning on implementing it based on [[wikt:module:bg-nominal]], but am still having trouble figuring it out for now. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 09:04, 26 April 2026 (UTC)
== Past tense function ==
Is there a function like {{Z|Z26039}}, but for the past tense (e.g. "Leo Tolstoy <em>was</em> a writer.")?
If not, I will create it myself, I just want to make sure there's not a duplicate. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:10, 26 April 2026 (UTC)
: {{Done}} with {{Z|Z34224}}, but I have a few kinks to work out with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:35, 26 April 2026 (UTC)
:: I need to create some other similar functions for the past tense, I have some ideas:
::* {{Z|Z26095}}
::* {{Z|Z32643}}
::* {{Z|Z28016}}
::* {{Z|Z26570}}
::* {{Z|Z33975}}
::* {{Z|Z27243}}
::* <ins>{{Z|Z26627}}</ins>
::* <ins>{{Z|Z27627}}</ins>
::* <ins>{{Z|Z27173}}</ins>
::* <ins>{{Z|Z29591}}</ins>
::
:: Are there any I have missed? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:57, 26 April 2026 (UTC)
:I think that here we are starting to walk on dangerous waters: what does past mean? Is it a recent o a far past? Does it have ripercussions on the present or not? Is it just a thing that happened once, many times or for a continuative period of time?
:Consider that various languages distinguish between many different types of past. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:38, 26 April 2026 (UTC)
:: {{re|Dv103}} That is a fair point...
:: How do we go about solving this problem though? I don't think having every sentence on Abstract Wikipedia be "X is a Y" is a very good idea.
:: Maybe we have different functions for all these variations of past you mentioned that just map into "X was a Y." in English? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 13:31, 26 April 2026 (UTC)
:::To properly solve this problem, we should use a more complete abstract content representation model, like for example the proposal of [[Wikifunctions:Type proposals/Semantic unit|Semantic units]] (look at [[Wikifunctions:Type proposals/Semantic unit/Douglas Adams|the example]] to see how times could be handled). For now, since we're still stuck with single fragment generation functions (that I hope will be slowly replaced with the complete represenation model, when available), we could just restrict your function to a very specific meaning, like "subject was an instance of, for most of its existence" (which means for example that it could be used to say "Douglas Adams was a writer", but not "Abraham Lincoln was a president", since he only was a president for 4 years). Probably my definition is still too vague, and this is why we need to go beyond these fragment generating functions. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:47, 26 April 2026 (UTC)
::Nitpick... I don't like that it outputs a string instead of monolingual text. With {{Z|Z26039}} it's used so much that I think it's unfixable in that case beyond deprecating it if people care that much, but {{Z|Z34224}} doesn't even have any connected implementations yet. Consider it, maybe?
::Nitpick 2... {{Z|Z34227}} is missing a language parameter. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:08, 26 April 2026 (UTC)
::: I will consider that!
::: I just did that because that's what {{Z|Z26039}} does, so I assumed I should follow suit with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 26 April 2026 (UTC)
== Legacy functions ==
If and when more robust methods of abstractly representing and generating linguistic content come around, and more efficient ways of creating abstract content are devised and implemented, I suspect that our current methods will require some form of deprecation. This is a significant source of concern for me in relation to WF and AW, questioning how prone our current methods of doing things are and eventually will be prone to obsolescence, and how it will be worked around when it comes. We have over 1 250 articles on AW presently, and these are rather all over the place. I suspect the maintenance burden from keeping these articles up to code will eventually, err, creep up on us, I suppose, and some kind of major refactoring will be necessary. We are definitely in a period of experimentation and whatnot right now but eventually, like with enwiki, some sort of structure and rigor will form and I suspect it will start to become rather boring for me...
I, for one, very much enjoy experimenting with new and better ways to do things here. I don't personally mind changing things to use a new and better paradigm if need be, that sort of thing highly excites me, but of course there will be things that are left behind, and I suspect maybe bots will be employed to deal with this? A lot of Wikipedia sister sites seem to do that, e.g. going and fixing up use of deprecated templates. Considering the nature of Wikifunctions and Abstract Wikipedia I suspect certain maintenance tasks will be made simpler or even trivial by the typical uniformity of our implementations.
I guess I am just concerned if Wikifunctions or Abstract Wikipedia will ever accrue its own kind of "technical debt" with how we are plowing through things presently, and if there is a plan for how we will eventually seek to mitigate that. Maybe too early to ask this question, but I am a notoriously anxious person, so I thought it wouldn't hurt to raise the question regardless... — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 21:30, 26 April 2026 (UTC)
:I very much agree, thank you for expressing my position so well. {{ping|Immanuelle}} has been using an AI-generated tool (well, they haven't edited in a week, perhaps it's a break or perhaps they don't wish to contribute to the project any more) to create a bunch of articles en masse, which I have warned them multiple times is a bad idea (on top of evolving functions, all of the articles are one-sentence-per-paragraph, [[abstract:Q12184|like so]]). That's why I've been avoiding creating articles recently, I'd say I have a good fourth (no data to support, rough guess) of the comments on the wiki, yet less than a percentage of the article count (only three, including the [[abstract:Q319|first article]], though, so perhaps I'm the next [[w:Special:Permalink/908493298|office.bomis.com]]). [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:41, 27 April 2026 (UTC)
:: I feel that the overwhelming presence of these low-quality articles (which I admit I myself am [[abstract:Q1710970|guilty]]/[[abstract:Q7601858|of]]/[[abstract:Q39338|creating]], usually as testbeds) may incur a large maintenance burden. I do expect them to be easy to detect, however, as searching for the presence of "deprecated" NLG functions is trivial, and it is possible that replacing them with their future ''even abstracter™'' counterparts could be done automatically since they all have the same signatures and can be expected to create the same form of sentence. If it needs to be done manually for a while or for certain delinquent instances, my hope is that it will be fun, at least for a while.
:: I just hope that these hypothetical future waves of "this new and versatile way of abstractly representing linguistic content" obsoleting previous methods and requiring refactoring across all articles is only a one-time thing. We should strive to be as robust and flexible as possible from the outset as each brand new paradigm of abstraction is also a brand new maintenance burden for updating old articles. At the end of the day, at least ''some'' of these articles will still render to many different languages even if their methods of creating those sentences of theirs is completely outdated. Ergo, the time it takes for the switchover to be performed across our articles should not be a persistent inconvenience for users (as, of course, they will always still be able to read the content as it was before since these legacy functions aren't being deleted outright), and the increased availability that the new methods will bring about will likely act as motivation for them to join the effort in refactoring (「You're telling me that if I rewrite this article in this cool Lisp-looking stuff then I can probably read it in [[abstract:Q9307|Galician]]?? COOL!」). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 20:26, 27 April 2026 (UTC)
:::Totally agree. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:54, 28 April 2026 (UTC)
:::My vague plan is to implement a default function returning an {{Z|Z89}}, for each language-neutral function. A single function would convert any of these to a {{Z|Z11}}, so that a composition of the two can be implemented as the current default until such time as the language-neutral function is ready to return a [[Z89]]. We can already convert a [[Z11]] to a [[Z89]] so, although there is more to be done in this space, existing language-specific functions could be adapted to return a [[Z89]] quite mechanistically.
:::Although we certainly could deliver parallel Z89 functions for each existing Z11 function, I don’t think we should assume that particular outcome. Provided the Z89 captures a lang attribute from the Z11’s language tag, the two representations should be largely interchangeable, although I am expecting a Z89 to carry additional attributes at the span level that would be lost on conversion to a Z11 (along with any higher-level tags and attributes).
:::When I say there is “more to be done in this space”, I am referring to a new type that would allow HTML fragments to be represented as tractable Wikifunctions objects, but this is currently drafted only in my head! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:21, 29 April 2026 (UTC)
== Filtering types of objects ==
Hello!
I have tried to comb through my own edit history several times, but it's really hard to search for specifics because there's no differentiation between different types of objects (functions, implementations, tests, etc.) in the logs as far as I can tell.
Am I missing anything? I want it to work sort of like how filtering by namespace works. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 27 April 2026 (UTC)
:There is differentiation, it's just rather hard to look through. Since all ZObjects are just JSON data at their core, you can search for instances of <code>{ "Z1K1": "Z[type]"</code>. I haven't tried this so I'm not sure how well it would work and I know MediaWiki search syntax treats quotation marks as a special character, but I have seen Wikifunctions pages link to searches using this before. There is also [[Special:ListObjectsByType]] but it is sitewide rather than specific to your edit history in particular. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 18:59, 27 April 2026 (UTC)
::''[It doesn’t help directly here, but please see [[WF:Find]] for more details of how this works.]'' [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:24, 29 April 2026 (UTC)
:See the feature requests [[phab:T399244]]/[[phab:T373735]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:06, 28 April 2026 (UTC)
:The lack of filtering edits by namespace is exactly the problem that I was trying to solve with the [[User:Amire80/wikifunctionsanalytics]] tool.
:I even kind of succeeded, but it has two major problems:
:# It doesn't have any real frontend, so you have to know some SQL to use it (or ask other people who know SQL).
:# It doesn't get information from the live site, but from the dump, which appears to be updated once a month.
:I've made a [https://quarry.wmcloud.org/query/104794 sample query for you]. Unfortunately, it won't do anything at the moment because of the second problem—your edits started in April 2026, which isn't over yet, so the dump for it hasn't been processed. But I hope that early in May you'll be able to use the same query and see something useful.
:(I plan to add support for recent edits, but I haven't done it yet. Now that I more or less figured out how to process Wikifunctions edits, I'm focused on trying to understand Abstract Wikipedia edits. Processing up-to-date edits from both sites will possibly be the next thing I work on, but if you know some Python and want to try doing it yourself, don't wait for me—[https://gitlab.wikimedia.org/toolforge-repos/wikifunctions-analytics Patches welcome].) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 18:51, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]], I've just updated the data until the end of April. Now the query to which I linked above gives some results. You can also try running other queries if you know SQL. (Or try asking for other queries if you don't.) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 03:26, 3 May 2026 (UTC)
== [[Z34213]] ==
I'm not quite sure why this implementation is failing. Could someone take a look? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:24, 28 April 2026 (UTC)
:I've [https://phabricator.wikimedia.org/T419933#11863997 notified] the team that this is still occurring, the issue was marked as resolved. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:52, 28 April 2026 (UTC)
:Some useful tips:
:* create more testcases: sometimes it is a random error, so try to see how consistent it is between testcases
:* your implementation is very inefficient, since it fetches items and lexemes a lot of times. Ideally, each item and each lexeme should be only fetched once in all the execution tree.
:[[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 06:06, 28 April 2026 (UTC)
::Caching (''should?'') means that the lexeme and item data are cached, so the call doesn't actually execute multiple times. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 17:51, 28 April 2026 (UTC)
:::Are lexemes and items actually cached within the same function execution? Even if they are only partially fetched and/or fetched in bulk? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:54, 28 April 2026 (UTC)
::::I don't have any evidence to prove that it works but that's definitely A. what's supposed to happen and B. the ideal behavior. This happens because the Z680X functions can be cached just like any other. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 18:02, 28 April 2026 (UTC)
::::It is unclear. In general, I believe identical branches are resolved only once in orchestration, but there is also independent caching of Wikidata fetches.
::::According to @[[User:DMartin (WMF)|DMartin (WMF)]] ([https://t.me/Wikifunctions/30374 on Telegram]):
::::<blockquote>Well, no. We have caching of Wikidata entities that have been retrieved, but not of the results of nested function calls. There is a proposal for doing this in the context of the V2 composition language, when it's a bit more mature, and it's regarded as a relatively high priority.</blockquote>
::::It’s hard to tell whether fetches in nested calls are, in fact, cached and available for other nested calls in the same call, since it is not generally the actual fetch that consumes the most resources. Rather (I believe), it is construction and transmission of the result object, which is currently repeated afresh in each nested call (unless it is in an identical branch).
::::I hope that’s clear, and I apologise in advance if it happens to be inaccurate! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 29 April 2026 (UTC)
:::::Oh, I should clarify. There is a lot of caching going on, in several different places. Lexemes and items ''are'' cached by the orchestrator within the same function execution, even if they are only partially fetched and/or fetched in bulk. When I said that we don't have caching of the results of nested function calls, I meant that's not happening in general, for all nested function calls in compositions. But fetching of Wikidata entities gets special treatment, so yes, fetched content from Wikidata is cached, regardless if it was fetched by a top-level call or a nested call.
:::::It is also true that the construction of a ZObject from the fetched JSON might happen more than once within the same function execution, depending on how a composition has been structured. However, the construction of the ZObject is actually very fast, compared to the elapsed time of getting the JSON from Wikidata. [[User:DMartin (WMF)|DMartin (WMF)]] ([[User talk:DMartin (WMF)|talk]]) 18:04, 1 May 2026 (UTC)
== Question about cardinal numbers ==
I was about to edit {{Z|Z16435}} to add my function {{Z|Z34308}}, but I noticed that none of the other functions have a gender parameter.
Should I create a new wrapper function "Bulgarian cardinal, neuter", or should I just remove the gender parameter and always return neuter? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:39, 28 April 2026 (UTC)
:The “cardinal” functions should return the words used for “counting” numbers in the abstract.
:We should consider converting them to return a {{Z|Z11}} rather than a {{Z|Z6}}. It may even be appropriate to return a {{Z|Z12}} to cater for language variants. Either way, I think that would be the approach to adopt for inflected forms, unless reference to specific lexeme-forms is required. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:52, 28 April 2026 (UTC)
::This. If a native of your language were to count up, which form would they be most likely to use? [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:29, 28 April 2026 (UTC)
::: {{re|GrounderUK|Feeglgeef}} Thanks for both your input!
::: I relabeled the aforementioned function to {{Z|Z34308}}, and created a new wrapper function {{Z|Z34457}}.
::: Should I specify that my old function is a monolingual text in parentheses? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:26, 28 April 2026 (UTC)
::::You don't have to, unless you think that is something that would require distinction when viewing the function in a list of search results &c. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:36, 28 April 2026 (UTC)
== Optional/nullable function parameters ==
Hello!
Recently, I was informed that Wikifunctions has no optional/nullable function parameters as of now.
Are there any future plans to support this, and/or workarounds? Maybe create a union type system like "{{Z|6}} or {{Z|23}}". <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 17:53, 28 April 2026 (UTC)
:What I do for this is use an "is empty" function corresponding to the type of the parameter in an If statement. If it isn't empty, the function works as intended. Otherwise, it does something else. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:58, 28 April 2026 (UTC)
:Unions are not a thing (yet) on Wikifunctions, but you can always define an argument of type {{Z|Z1}}, which means that all types are allowed (I already did this for {{Z|Z26737}}; note that it is still a ugly workaround, don't use it for high level functions). Also, note that usually on Wikifunctions we use {{Z|Z24}} as the null value. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:00, 28 April 2026 (UTC)
:: {{re|JJPMaster|Dv103}} Thanks for your help!
:: @[[User:Dv103|Dv103]] told me a function call with a missing parameter is treated as an invalid function call, so how does the "is empty" function work with that?
:: Also, setting the type to {{Z|1}} seems naive, like setting the type as <code>any</code> in TypeScript...
:: Related question: Are there plans to add default values to parameters (outside of "if empty")? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 18:19, 28 April 2026 (UTC)
:::Setting the type to {{Z|Z1}} is actually naive, and that's why I advised you to only use it for low-level functions. Currently there is nothing better. Sometimes, type correctness is not actually checked, so it might seem that nullable types are possible. But it is still an hack, and it could broke anytime since it is not intended behavior.
:::I don't think that there are current plans to add default values (but correct me if I'm wrong). The closest thing that comes to my mind is that, if you incorporate Wikifunctions into Wikitext, you can leave empty some fields (only of some specific types) and Parsoid will replace them to their default value. This is done only depending on the type, and not on the functions. For example, {{Z|Z6091}} and {{Z|Z6001}} are assigned the QID associated to the page, and {{Z|Z20420}} is assigned the current date. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:56, 28 April 2026 (UTC)
:::@[[User:QuickQuokka|QuickQuokka]]: At the very least, [[Z10008]] accepts a null input. Maybe that feature is unique to the String type—I am not sure. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 19:10, 28 April 2026 (UTC)
::::I think it's just not checked, but it shouldn't be intended. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:20, 28 April 2026 (UTC)
::::Strings and typed lists can be “empty” in the sense that their length can be zero. Typed pairs may also be “empty” in a degenerate sense, but such an object will not be returned from a code implementation. A typed map with no entries will also fail to be returned from code, although it is fine in compositions.
::::For a genuinely optional parameter, I prefer a properly typed list, which at least encourages an argument of the correct type. {{Z|Z813}} is also typically faster than {{Z|Z10008}}. Quite a good example of this approach is {{Z|Z23723}}, where it helps to resolve the type union (using [[Z1]]) for both Z6003K1 and Z6003K3. Of course, there’s nothing to prevent more than one element in the list, but additional elements are easily ignored. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:55, 28 April 2026 (UTC)
:Pinging {{ping|Jdforrester (WMF)|prefix=|p=}}, I believe there are no current plans. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:02, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]]: I'm afraid there are no current plans to build out optional params, indeed; we would be happy to review this if a compelling case was made, but it'd be a lot of work to re-build the [[Wikifunctions:Function model|function model]] with that support and ensure we don't break (too many) things. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 19:11, 28 April 2026 (UTC)
== Z6830 for Chinese ==
I was trying to use {{Z|Z6830}} for implementation in the Chinese-language. And turns out most of the Lexeme on Wikidata is using [[d:Q727694]] as the language instead of [[d:Q7850]]. This makes it impossible to use the mentioned function above, since Standard Chinese is not available (or did I miss something?). Is there a way to fetch lexemes with language=[[d:Q727694]] from item? [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 18:20, 30 April 2026 (UTC)
:@[[User:Sun8908|Sun8908]] There is [[Z1006]] for Chinese and it has the language code zh. There is an overview of languages in [[Module:Wikifunctions label]] so you can search there for chinese versions and choose the one you need. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 20:53, 5 May 2026 (UTC)
::I know that. The problem is when using the function [[Z6830]], it cannot retrieve lexeme with language [[d:Q727694]] (but it is the "Chinese language" with the most current Wikidata lexemes, see [https://ordia.toolforge.org/language/ ordia]). I think it should be a Wikidata problem, I might fix it (possibly by creating the same lexemes with language code zh) on Wikidata. Thanks anyway. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 05:39, 6 May 2026 (UTC)
:Could you provide an example of a Chinese lexeme that has a linked Wikidata item, or a Z6830 function call that fails to find such a lexeme where one exists? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 07:55, 6 May 2026 (UTC)
::Here: [[d:Lexeme:L846083]]. I think that's a primary reason of me trying to look into this problem, as the label in zh for [[d:Q6256]] (country) is not a single phrase (see its talk page on WD for more information). This makes some Abstract Wikipedia articles very weird in Chinese when {{Z|Z26570}} is used, so lexeme could potentially fix that. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 10:33, 6 May 2026 (UTC)
:::Thank you. It looks as though {{Z|Z6830}} [https://www.wikifunctions.org/view/en/Z6830?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6830%22%2C%22Z6830K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q6256%22%7D%2C%22Z6830K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P5137%22%7D%2C%22Z6830K3%22%3A%7B%22Z1K1%22%3A%22Z60%22%2C%22Z60K1%22%3A%22cmn%22%2C%22Z60K2%22%3A%5B%22Z6%22%5D%7D%7D returns that lexeme for language tag "cmn"]. Perhaps that tag should be added into the helpers for {{Z|Z24144}}? If it is widely used for lexemes, perhaps it should have its own {{Z|Z60}}? In any event, improvements might be considered under [[:phab:T390563]] (or otherwise), including amending [[Z6830]] to also consider "cmn" (and "zho", "chi"…?) when requests are made for "zh-hans" or "zho-hant" (or others?) @[[User:Winston Sung|Winston Sung]] @[[User:DMartin (WMF)|DMartin (WMF)]] [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 17:22, 6 May 2026 (UTC)
::::If you go to [[d:Special:NewLexeme]] and put in [[d:Q727694]] as the language, it is going to tell you it has an unrecognized language code. So I believe "cmn" should not be a {{Z|Z60}} by default? I also started [[d:Wikidata:Project_chat#Lexemes_with_language_Standard_Chinese_(Q727694)|a discussion on WD]] regarding this. I guess we can still use it as a fallback language though if possible. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 03:43, 7 May 2026 (UTC)
::::We don't have a separated <code>cmn</code> BCP 47 language subtag in MediaWiki and Wikidata at the moment. <code>zho</code> and <code>chi</code> are ISO 639 language codes but not BCP 47 language subtags.
::::For Modern Standard Mandarin, please use <code>zh-*</code> language tags for now. -- [[User:Winston Sung|Winston Sung]] ([[User talk:Winston Sung|talk]]) 15:26, 8 May 2026 (UTC)
== Key not found error ==
Is there a reason why I am getting key not found error for this [[Z34677|function]] {{Z|Z34677}}? All the underlying functions run and all the test cases work. The debug information does not give more details. Any pointers? Thanks in advance [[User:Jsamwrites|John Samuel]] 19:24, 1 May 2026 (UTC)
:It was passing the [[Z6091]] to {{Z|34641}} when that takes a [[Z6001]]. I've fixed that, but there's some other problem with the logic, so I've left it disconnected. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:42, 1 May 2026 (UTC)
::@[[User:YoshiRulz|YoshiRulz]] Thanks a lot. [[User:Jsamwrites|John Samuel]] 20:21, 1 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #246 is out: Request for input: what should we count for Abstract Wikipedia ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we ask you what would be the relevant metrics for Abstract Wikipedia, we discuss our latest news on Composition Language v2, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 12:21, 2 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== Any formal process for deletion of pages ==
Does a formal process exist for the deletion of functions, implementations, and tests that includes a notification system for creators, analogous to Wikidata’s process, explaining the rationale behind the deletion (or proposal for deletion)? [[User:Jsamwrites|John Samuel]] 12:36, 3 May 2026 (UTC)
:Does [[Wikifunctions:Requests for deletions]] work? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 13:00, 3 May 2026 (UTC)
:Please see the discussion at [[Wikifunctions talk:Requests for deletions#Should we expect Objects' creators to get pinged on deletion proposals?]].
:As I see it, it is the proposer’s responsibility to consult appropriately before making a request and we expect our administrators to act only when satisfied that appropriate consultation has occurred. In many cases, no consultation is required. Administrators may delete their own contributions without making a request, but this is not a practice I would encourage. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:51, 3 May 2026 (UTC)
== Implementation of rational number in JS doesn't match in Z19677 (Rational number) and Z28579 (RGBA colour) ==
In {{Z|19677}} it's
<syntaxhighlight lang=js>
{
"K1": sign * numerator,
"K2": denominator
}
</syntaxhighlight>
but in {{Z|28579}} it's
<syntaxhighlight lang=js>
[ sign * numerator, denominator ]
</syntaxhighlight> '''<span style="font-family:Iosevka,monospace">[[User:沈澄心|<span style="color:#9f3526">dring</span>]][[User talk:沈澄心|<span style="color:#534fa3">sim</span>]]</span>''' 05:15, 4 May 2026 (UTC)
:I'm guessing this is why [[Z34743]] fails all the tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:00, 18 May 2026 (UTC)
== Nested functions in compositions ==
I wish it will be easier to a add another function about a specific existing function in a function implementation based on a composition. When I write long functions in spreadsheets I usually stat with a small part and then I try to go further and after important steps I test if the output is as expected. I created [[Z34826]] to get the German gender specific occupation lexeme for a specific person based on their gender. I wanted to add a function around the existing one and it was not successful. It is not very easy to implement as it requires the possibily to move a part to another section but I think it can be helpful if it will be implemented. So far I spend more time as expected on the function. Describing it with words what the function needs to do is much easier than implementing it here in Wikifunctions. So I think there needs to be improvement to make Wikifunctions more accessible. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:10, 5 May 2026 (UTC)
:Have you tried to use the copy-paste functionality? It is very useful to move parts of composition arounn. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:12, 6 May 2026 (UTC)
:I've also found the composition editor to be wholly unsuitable for any expressions more than a few levels deep. (Even with the <code>localStorage</code> clipboard, because of its overzealous type checks.) Compositions naturally grow out from the "leaves", the immediate operations on the inputs, while the interface really wants you to build from the "root". I mostly use the [https://yoshirulz.gitlab.io/WikiLambdaBlockly drag-and-drop block editor] which I made to smooth over some of the site's problems, so if you want to try that out and give me some feedback I'd appreciate it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 14:36, 6 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #247 is out: References from Wikidata now available ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-08|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we announce that is now possible to pass references in Wikidata statements, we introduce the [https://abstract-data.toolforge.org/ Abstract Data dashboard], we report you on the presentation about Abstract Wikipedia at WikiCon Australia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1778520600 May 11, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:16, 8 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== RGBA colour, spelling... ==
Something that has always irked me a little bit is the spelling of [[Z28579|RGBA colour (Z28579)]]. I guess this is not unsurprising for me considering my use of US English but I think there is more to it than preference and I want to try to argue for it being changed to use American spelling. I know that this probably has a snowball's chance in hell of actually garnering any support, so I won't really be miffed if the spelling remains as it is, but I thought it wouldn't hurt to raise this regardless.
The main issue I have with it is the spelling of the original proposal. When infernostars raised the [[Wikifunctions:Type proposals/RGBA color|type proposal]], the spelling was 「RGBA color」. Of the comments that mentioned the word 「colo[u]r」, two used British spelling while six used the American spelling as used in the proposal. The only thing that really pointed to the use of ''colour'' was the fact that the catalog page on color functions used that spelling already. For all intents and purposes, the spelling of the original proposal should have been maintained, but it was not; [[User:DVrandecic (WMF)|DVrandecic]], the eventual creator of the type, used a different spelling.
It should be noted that there was really no reason for this to occur and while it is an undoubtedly minor issue I still believe it should be rolled back and the type should use the spelling of the original proposal and majority of editor comments. In [[abstract:Q936|OpenStreetMap]], there have been keyvalue proposals that have had the finalized spelling that gets put to use be in British English despite the original proposal being in American English; this has usually occurred with proposals relating to 「X center/centre」 tags. This makes sense on the surface, because OpenStreetMap is maintained by a UK organization, and still has close ties to Europe. The Wikimedia Foundation, however, is an ''American'' company. This is often brought up as a fallible argument when debating article spelling on the English Wikipedia, and I don't bring it up to support that 「RGBA color」 should be used for that exact reason, but rather to state that OpenStreetMap's general policy on tag names need not apply here. It appears to me that, at least initially, the majority of 「core contributors」 to Wikifunctions used British English; I can name YoshiRulz, 99of9, GrounderUK, and VIGNERON.<ref group="color">I'm avoiding linking to these folks because I don't think pinging them about this discussion is all too necessary unless they themselves want to be involved; I don't want to clutter their inboxes just to briefly mention them. I pinged Denny because, well, I'm asking him a question directly, but everyone else I would prefer to join this discussion by their own accord... not that I wish for this decision to be confused as me going 「these people use British English so they will probably oppose my idea, I won't invite them to the discussion because of that」...no, I promise you that is not the reason.</ref> I see (or saw) these people ''everywhere'', so it makes sense that British English has prevailed in some sorts on this website, but I don't think that indicates that it should be the ''preferred'' spelling across the website, at least not to the point where a proposal should have its name changed to match such a "consensus".<ref group="color">It could be argued that the front-and-center ''Function catalogue'' using 「catalogue」 is actually indicative of such a "consensus", but ''catalogue'' is in a similar position to the word ''grey'' where I live (that is, the US) in that it is used just as often as its American counterpart. Also, consider Wiktionary's ''Beer parlour'' project chat.</ref>
The unnecessary modification of the original spelling is my main argument for changing it back... but of course, I must obligatorily state that on English Wikipedia, it is [[w:Color|Color]] and [[w:RGBA color model|RGBA color model]]; on Wikidata, it is [[d:Q1075|color]] and [[d:Q2325624|RGBA color space]]; in CSS (which typically uses hexadecimal triplets to specify RGBA values), the properties are <code>color</code>, <code>background-color</code>, etc.; bit of a weak jab, but on Schema.org it is [https://schema.org/color color], [https://schema.org/colorSwatch colorSwatch]; et cetera. {{Z|Z28580}} uses ''color'', so does {{Z|Z28591}} and its Python counterpart.
Mr. Vrandečić, I have to ask, I'm rather confused... you created the color type using British English spelling, but you were also responsible for the creation of the equality function which uses the American English spelling. You also seem to be writing in American English for the status updates, judging by your use of -''ize'' over -''ise'' endings and use of ''program'' over ''programme'' in [[Wikifunctions:Status updates/2026-04-16]]. Is there something I'm missing or have you switched your preferred variant somewhere along the way?
Anyways, do consider this if you wish... again, I don't suppose this will garner much support, it is the ''non-issuest'' of ''non-issues'', but it has irked me to the point where I want to ask about it to get some answers, if nothing else. I am not arguing for every other color function to have its name changed, just the type itself.
<references group="color"></references>
— [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:04, 8 May 2026 (UTC)
:This is a multilingual project; the <code>en</code> label is <code>RGBA colour</code> and the <code>en-us</code> label is <code>RGBA color</code>. Though I'm not able to switch to <code>en-us</code> via the language picker so that would need to be fixed.<!--
--><br>edit after reading your whole comment: The same is true of {{Q|1075}}, there are labels specified for multiple English variants. (In {{Q|2325624}} it's only an alias.) I agree that other websites' choices aren't binding on us, but from that, I conclude that the more widespread British/Commonwealth spellings should be used for the generic <code>en</code>. As for myself, I'm Aussie and I will continue to use the BrE spellings ([[w:en:Oxford_spelling#Language_tag_comparison|+ "routing"]], TIL) if only by muscle memory.<!--
--><br>[[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:42, 8 May 2026 (UTC)
:: Your lattermost point would normally be fine in a perfect world. Wikipedia's <code>convert</code> function defaults to "international" English, which I don't personally take issue with because it happens that we here in America are actually outliers for saying and spelling things differently... err, or we were for a while at least, nowadays it seems like an even split (plus you have "yield" vs. "give way" which is effectively the logical opposite of US's use of "meter" over "metre").
:: However, this is not a perfect world, and I don't think <code>en</code> should correspond to any particular variant. It is too fragmented across all software at this point to impose such a requirement. The inability to switch to <code>en-us</code> on this website foregoes an easy and simple solution to this problem that makes everyone happy, because the yanks (such as myself) can't be happy because we can't see the labels in American English even if we wanted to, and the other folk can't switch either as far as I'm aware (and the en-CA and en-GB languages in the preferences page seems to be deprecated). My point being, <code>en</code> is abused to mean "en-UK" just as often as it is abused to mean <code>en-US</code>; I think a decision shouldn't be made on such an assumption of one "default". — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:48, 12 May 2026 (UTC)
:Hi @[[User:Theki|rae]]! I have no opinion nor preference on this, and given my background, I am just entirely confused about my spelling preferences myself, as you can tell from my inconsistent usage. I learned British English in school and used that for maybe two decades or so, but moved to the US and lived there for more than a decade, enough to be naturalized, but now I am back in Europe and I am technically a professor at King's College London, soooo.... honestly, I do not know. I don't remember having put too much thought into it at the moment I created it. The good thing is that in Wikifunctions, just as in Wikidata, it is easy to change, without messing things up too much (unlike in Wikipedia), so my suggestion is, just make the change, see if anyone complains, and if they do, discuss it more. I don't know if there is a guideline already in Wikifunctions about the variants. I am happy either way, and honestly, I keep forgetting which variant is which most of the time. --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 18:16, 10 May 2026 (UTC)
:: I can definitely understand this, although I am unfortunately rather passionate about any minutiae involving preferential minor differences in ''anything'', of which AmE vs. BrE chiefly is. So I dedicate a lot of headspace to it. More than I should. Not that I wish to imply that the comment above that I have wrote is of an irrational nature, or done out of spite or pure emotion and subjectivity; I do genuinely believe that ''RGBA color'' is beyond just a personal preference and is just logical. I may boldly go and change it, but for some reason I was expecting that changing the English label of a Type would require elevated permissions, and I also didn't want to do it only to get immediately reverted because it ''did'' strike a chord with someone, when I could instead see how apathetic, supportive, or in opposition interested people are beforehand and ''then'' act accordingly. I was not meaning to antagonize you over your spelling habits, I did actually use British English for a few years starting in 2020 before I went back to American English, so I'd be a hypocrite for me to decry you for not always sticking to some arbitrary standard of spelling words over the other. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:55, 12 May 2026 (UTC)
:Although I spell it “colour”, I think it makes more sense to use “color” for the type, since that is almost always the required spelling when the string functions as a keyword.
:More generally, though, Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en". This is unusual, in my experience, as "en" is widely misused in place of "en-US", where there are recorded spelling differences.
:(I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere. Use of -ize rather than -ise is a matter of personal preference or house style, but regional autocorrect encourages -ise.) [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:00, 12 May 2026 (UTC)
:: ''Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en"''
:: Definitely agreeing with you on the latter being a good choice. However, I suspect the favoring of "colour" over "color" may be because, in terms of language codes, when sorted alphabetically <code>en-us</code> actually comes ''after'' <code>en-gb</code>. Although, the frontend seems to be sorting <code>en-ca</code> after <code>en-gb</code>, so I don't actually know how correct that is.
:: ''I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere''
:: The context of the spelling was "''No program for the NLG SIG meeting for next Tuesday has been proposed''". In that usage context, I think it makes sense to assume that ''program'' is not being used to refer to a computer program, but to a ''program of events'' or similar, something that you would spell as a ''programme'' in British English. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:02, 12 May 2026 (UTC)
:{{s}} this. I'm obviously biased but I believe American English is preferable generally, American dominance on the internet (our Department of Defen'''s'''e invented it!) and rapidly-increasing consumption of American media by international English speakers means that more people use American English's conventions, this is clear through for example [http://trends.google.com/explore?q=color%2Ccolour&date=all&geo=Worldwide search trends] (though they aren't particularly reliable). Perhaps this is a bit of a supremacist opinion, but we should have internal consistency, and if we must choose, American English should be our first choice (then Indian and then British English) [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:10, 12 May 2026 (UTC)
:: This is rather flawed reasoning, though. I think probably any given British or Indian person would not agree on using that as the reasoning for this, not that you are necessarily ''completely wrong'', but if this is not a good enough reason for English Wikipedia's (admittedly extremely flawed) ''ENGVAR'' policy then I don't think it's likely it will pass here either.
:: Although of note is that [https://books.google.com/ngrams/graph?content=color%2Ccolour&year_start=1800&year_end=2022&corpus=en&smoothing=3&case_insensitive=true Google ngrams] agree with you, but "color" vs. "colour" is an eternal holy war that will not be won by demonstrating that more books use US spelling over Commonwealth spelling. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:44, 12 May 2026 (UTC)
:::You're probably right that it's not very sound. I'm biased in that other varieties of English irk me, and that's probably mutual for people who are used to other varieties of English when they read what I write! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:56, 12 May 2026 (UTC)
:I've decided to boldly [[Special:Permalink/274271|make the change]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:02, 12 May 2026 (UTC)
:: Thank you. Considering both you and GrounderUK seem to consider it an okay change, I think this will do for now.
:: I should note that the matter of whether to move [[Wikifunctions:Catalogue/Colour functions]] in response to this (however this discussion will ultimately turn out) is a whole other can of worms, in my view. I can't say I have an opinion on that at the moment, but I'm putting it out there regardless. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:06, 12 May 2026 (UTC)
:::Personally, I'm in favor of moving the page and renaming all of the items on it. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:10, 12 May 2026 (UTC)
::I don't like this (exactly because of the American hegemony you cited), but again, it shouldn't matter because the software is meant to be multilingual. Clearly there's a bug preventing you from picking an English variant/dialect as your display language. But the search bar and Function/Type autocompletion do check the English variants for matches. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:15, 12 May 2026 (UTC)
== Proposals on the architecture of Abstract Content rendering ==
Starting from a discussion born on the Telegram chat, I've explained two different proposals on how the NLG on Abstract Wikipedia should be organized in the page [[abstract:User:Dv103/Abstract articles architectures]]. Please come to contribute to the discussion, or to propose alternatives. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 14:31, 11 May 2026 (UTC)
:Thank you for dedicating your time to writing this, it is very informative. I will try to add input once I'm not in over my head with finals. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:27, 12 May 2026 (UTC)
== Display function for HTML fragment ==
Currently, any collapsed Z89 literal appears as<blockquote><> [[Z89|HTML fragment]]</blockquote>If I were to create a new Function which returned something like<blockquote><> 123-byte HTML fragment <q><nowiki><td><span lang=</nowiki>…</q></blockquote>could that be connected to replace the collapsed form, or would it require changes to the Wikilambda software? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:14, 11 May 2026 (UTC)
:It might work, but I doubt it. Those angled brackets suggest that the collapsed form is not simply defaulting to the type’s label. Looking at [[:phab:T410509]], I’ve concluded that enhancements to the collapsed form were never considered, rather than being actively rejected. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:12, 12 May 2026 (UTC)
::[[:Phab:T391985]] documents the original design. Note the fifth bullet point under “Acceptance criteria”. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:21, 12 May 2026 (UTC)
:I'm not sure the byte-size is necessary, but the outer tag (or first outer tag, though generally I'd prefer most fragments use a wrapper tag if it needs multiple like JSX does, but that's a whole different topic) would be nice. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 12:51, 12 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #248 is out: A higher meaning ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-15|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss functions creating language fragments, we present our latest news in Types, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:36, 15 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
== [[Z34510]] ==
This function, which determines if a Wikidata item for a {{q|5}} has an undeprecated {{p|21}} statement of {{q|6581097}}, returns false for {{q|173399}}, a transgender man. This is because his item assigns his P21 statement to {{q|2449503}}, not {{q|6581097}}. I'm not sure how to account for this discrepancy. Should {{z|34510}}:
# Include {{q|2449503}} as a value that can lead to a true result,
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a man?") could return true for either "male" or "trans man",
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a trans man?") could return true for "trans man",
# Not exist at all?
[[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 16:48, 16 May 2026 (UTC)
:I can't think of a single use case where you would need to determine if a person is a cisgender man and nothing else. Functions are good for generalizing across multiple possibilities when they exist, so I think it would be best if trans men were considered a part of the criteria for returning a true value. If asking for specifically {{q|6581097}}s and ''nothing'' else was desired then the function name would be a misnomer as Elliot Page is inarguably a male (at least in the view of most reasonable and intelligent people). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 19:03, 16 May 2026 (UTC)
:You made the function in the first place; what were you planning on using it for? AW? Maybe it should return a {{Z|25501}} which can then be passed on to other NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:01, 16 May 2026 (UTC)
== Lexeme from wikidata label, or "best" lexeme from wikidata item ==
I was looking into fixing [[Z28028]]. I found that I could add "requires grammatical feature: definite article" to "United Kingdom" (L8558). Now I'm stuck on how to get to that lexeme from {{Q|145}}. There's [[Z23471]], but that for very good reason gives you multiple lexemes with the same sense, and I just want the best one like how the label is always the best string. Is there a function that can do this?
There's definitely the case of a Wikidata label that isn't a lexeme (most commonly multiple lexemes) but I'm only considering the case where it is one lexeme here. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 20:02, 16 May 2026 (UTC)
:There is {{Z|Z27327}}, that tries to give the best lexeme through various heuristics. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 22:22, 16 May 2026 (UTC)
:: Wonderful! I did stumble upon [[Z33818]] but this is perfect. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:25, 17 May 2026 (UTC)
== [[Z29591]] isn't working for me ==
For instance, trying to manually put in the exact inputs for one of the test cases just returns an empty Monolingual text. See [https://www.wikifunctions.org/wiki/Z29591?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29591%22%2C%22Z29591K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3257809%22%7D%2C%22Z29591K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z29591K3%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z29591K4%22%3A%22Z1002%22%7D]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 01:17, 17 May 2026 (UTC)
:You used [[:d:Q22006653]] rather than [[:d:Q1075]]. It looks like the [https://www.wikifunctions.org/wiki/Special:RunFunction?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D explanatory error] is suppressed by the [https://www.wikifunctions.org/view/en/Z30009?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30009%22%2C%22Z30009K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D%2C%22Z30009K2%22%3A%22Z801%22%7D final transformation]. The returned result is not actually empty; if you expand it, you can see that it is an unresolved function call. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 09:59, 17 May 2026 (UTC)
== [[Z35298]] ==
Does anyone know what the problem with this implementation is? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 21:14, 18 May 2026 (UTC)
:There is a bug that doesn't allow Python implementation to return nested lists. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:31, 19 May 2026 (UTC)
::Is there a Phabricator task for this? Searching through them is hell. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 03:22, 20 May 2026 (UTC)
:::A bit of time ago I opened [[phab:T392750]], which is very similar to this issue. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:26, 20 May 2026 (UTC)
== May 2026 Wikimedia Café meetups regarding the Wikimedia Foundation Annual Plan ==
<div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)">
<div class="box" style="float:left; padding-top: 15px; padding-right: 15px;">[[File:Wikimedia Café logo in plain SVG format.svg|75px|alt=The logo for the Wikimedia Café]]</div>
Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities during the last weekend of May. Both sessions will focus on the [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2026-2027 the 2026-2027 Wikimedia Foundation Annual Plan]. Participants may attend either or both sessions.
#'''Saturday, 30 May 2026 at 15:00 UTC''' ([https://zonestamp.toolforge.org/1780153200 timestamp converter]), at a time friendly to the Americas, Africa, and Europe
#'''Sunday, 31 May 2026 at 05:00 UTC''' ([https://zonestamp.toolforge.org/1780203600 timestamp converter]), at a time friendly to Asia and the Pacific
Café participants are highly encouraged to read in advance [https://en.wikipedia.org/wiki/User:Sohom_Datta/annual_plan_guide at least this summary of the plan]. Optionally, Café participants are encouraged to read portions of the plan that interest them and [https://meta.wikimedia.org/wiki/Talk:Wikimedia_Foundation_Annual_Plan/2026-2027 ask questions or provide feedback on the Annual Plan talk page].
Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#May_2026_meetings_with_a_focus_on_Wikimedia_Foundation_Annual_Plan/2026-2027 tables of timestamp conversions for both sessions], [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#Agenda._This_will_be_an_approximately_1_hour_Caf%C3%A9_session,_and_is_extendible_for_an_additional_30_minutes_if_needed. the agenda], and [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]!
<br />
[[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div>
<span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 19:56, 21 May 2026 (UTC)
== How to handle items without lexemes ==
NLG functions relay heavily on the presence of lexemes associated to items on Wikidata. But we know that not all the Wikidata items have an associated lexeme. There are multiple reasons why an item does not have an associated lexeme, like:
# The lexeme has not been created yet
# The item represents a place
# The item represents a person
# The item represents a specific concept that can only be expressed by a specific combination of words that cannot be [[Wikidata:Wikidata:Lexicographical data/Notability|notable]] (like {{Q|Q61220733}}).
My doubt is: what should we do with this fourth category? For many languages, just using the Wikidata item label is not possible, since it is necessary to conjugate the words or to retrieve grammatical information like the gender. What should we do? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:09, 23 May 2026 (UTC)
:In that particular example, I think the thing to do is read its {{P|279}}: {{Q|21191270}}, then have some kind of heuristic based on that which says to take its {{P|8345}} and attach that Item's label to a Form of the word for "episode". In general, synthesising Lexemes for proper nouns is one of the problems that [[abstract:User:Dv103/Abstract_articles_architectures|proposals in your list here]] will have to address. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:59, 23 May 2026 (UTC)
[[File:Wikidata content 2024.svg|thumb|Content of Wikidata by type]]
::{{ping|Dv103}} very good point.
::For your point 2, it depends of the place but I think that quite often a lexeme can be created (most "Administrative territorial entity", most geographical entity, etc.). And with 3, your can add a lot of types (see pie chart) : Scholarly article, Human (with a very few exception), Wikimedia Category, Disambig, etc. which is (rough estimation) 2/3 of Wikidata items.
::A common rule (in dictionaries since forever and in Lexemes) is to not create an entry which is the "sum of its part". In this case, "Star Trek episode" is just episode + Star Trek, nothing more than its part. So logically, as {{U|YoshiRulz}} said, when no corresponding lexeme is found, the item should be decomposed the same way, the hard part is to know how to decompose it as the property will vary ; P31 and P279 are an obvious start but beyond that, I'm not sure we could find a general solution.
::PS: it's beyond you question but there is also the reverse problem, how to select one lexeme when multiple are linked to the same item...
::Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:43, 24 May 2026 (UTC)
:::For the point 2, I think humans will be used way more than scholarly articles and disambiguations in NLG functions (outside references), that's why humans concern me more (still a cool pie chart, though).
:::For the reverse problem, there is already {{Z|Z27327}}: it's far from perfect, but usually makes a decent choice. Obviously it is not "complete", and probably it will never be complete, but it will have to be progressively improved by the community. And probably in the future we will need to create similar functions to select the best lexeme in more specific cases.
:::For my fourth point, I didn't think about the decomposition, but it is something that could be done with another never-complete community-mantained function, that progressively keeps being improved. If [[Wikifunctions:Type proposals/Semantic unit|semantic units]] will be implemented, through them it could actually be possible to do this operation in a laguage-independent way. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:10, 24 May 2026 (UTC)
::{{re|YoshiRulz}} Proper noun synthesis, along with other fallbacks for realizing the names of concepts that don't have lexemes, is merely a step within the overall abstract content rendering process and is not inherently tied to the process itself; having the ability to [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/graph/client.py#L327 run any number of fallback mechanisms], instead of a raw call to (the equivalent of) Z27327, should be possible with any of the methods listed on the architectures page. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 16:41, 24 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #249 is out: Annual plan 2026-2027 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-23|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we present you the current draft of objectives for Wikifunctions and Abstract Wikipedia in the WMF Annual Plan 2026-2027, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 09:48, 25 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
:The new <code>return_type</code> param to [[Special:ListObjectsByType]] will show Functions returning e.g. {{Z|27951}} and {{Z|882}} if those are typed in manually, but the dropdown menu doesn't offer them, probably because it's a copy of the dropdown above (and there are no Persistent objects of those Types). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:12, 26 May 2026 (UTC)
== Type documentation template ==
Over the past couple of weeks, I've been developing and rolling out {{t|type documentation}}: a standardised layout for Type metadata, de/constructors, conversions, etc. on each Type's talk page. (The layout is loosely based on [[d:Template:Property documentation|Wikidata's]].) See [[Talk:Z16683|Integer]] for an example that uses most of its features, and [[Talk:Z99|Quote]] for one that doesn't.<br>At this point I can't think of anything more to add besides [[Help:Comparison_function_table/float64|filling out]] a couple more [[Help:Type_conversion_table/Codepoint|tables]]. But if any of you have ideas or feedback, please click through to the relevant talk page and leave me a message. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:29, 26 May 2026 (UTC)
:I really like what you're doing here. Thank you. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:26, 26 May 2026 (UTC)
:Yeah, nice work! I don’t think “Function declarations” is the best header for the collapsed table of searches by function signature, however. Now that it’s finally landed, we should probably include https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&return_type=Z16683 as well (outside the table). [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:23, 26 May 2026 (UTC)
== Apparent error in implementations of {{Z|20616}} ==
Please can I request help in how to understand a bug? Sorry if this is not the best place to ask.
I created lexemes [[d:Lexeme:L1566135|langue morte L1566135]] in French and [[d:Lexeme:L1566139|lengua muerta L1566139]] in Spanish, with property {{P|5185}} set to {{Q|Q1775415}} in each case. {{Z|20616}} should return a list of the grammatical genders of a given lexeme. It has two implementations, {{Z|Z20641}} and {{Z|Z21127}}, each of which works perfectly in the French case, returning a list containing Q1775415. But in the Spanish case, each of the two implementations wrongly returns an empty list. I cannot understand what is going wrong. How can I find out what is happening here? I would be grateful for any help or advice. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 13:56, 26 May 2026 (UTC)
:Both implementations return [https://www.wikifunctions.org/wiki/Z20616?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z20616%22%2C%22Z20616K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6825%22%2C%22Z6825K1%22%3A%7B%22Z1K1%22%3A%22Z6095%22%2C%22Z6095K1%22%3A%22L1566139%22%7D%7D%7D the same result]. As you added the gender only yesterday, I suppose it must have still been looking at a cached version of the lexeme from before that edit. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:06, 26 May 2026 (UTC)
j94a0dgdxil7wax4ew8ypi4nd45pjgh
278275
278261
2026-05-26T19:00:10Z
Strobilomyces
193
/* Apparent error in implementations of {{Z|20616}} */
278275
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== “Key not found ()”? ==
What am I doing wrong in {{Z|Z34137}}? [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 00:39, 25 April 2026 (UTC)
:You were passing a [[Z6091]] to {{Z|32290}}, but it takes a [[Z6001]]. Fixed. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 07:10, 26 April 2026 (UTC)
::{{done|Thank you}}! [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 14:13, 26 April 2026 (UTC)
== Is it OK to connect the implementation? ==
Hello!
I recently applied for functioneer on [[WF:RFG]], and I was wondering whether I could connect the implementation for {{Z|Z34165}} despite its dependency {{Z|Z34149}} being currently unimplemented. That is <em>if</em> I get accepted.
I am planning on implementing it based on [[wikt:module:bg-nominal]], but am still having trouble figuring it out for now. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 09:04, 26 April 2026 (UTC)
== Past tense function ==
Is there a function like {{Z|Z26039}}, but for the past tense (e.g. "Leo Tolstoy <em>was</em> a writer.")?
If not, I will create it myself, I just want to make sure there's not a duplicate. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:10, 26 April 2026 (UTC)
: {{Done}} with {{Z|Z34224}}, but I have a few kinks to work out with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:35, 26 April 2026 (UTC)
:: I need to create some other similar functions for the past tense, I have some ideas:
::* {{Z|Z26095}}
::* {{Z|Z32643}}
::* {{Z|Z28016}}
::* {{Z|Z26570}}
::* {{Z|Z33975}}
::* {{Z|Z27243}}
::* <ins>{{Z|Z26627}}</ins>
::* <ins>{{Z|Z27627}}</ins>
::* <ins>{{Z|Z27173}}</ins>
::* <ins>{{Z|Z29591}}</ins>
::
:: Are there any I have missed? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:57, 26 April 2026 (UTC)
:I think that here we are starting to walk on dangerous waters: what does past mean? Is it a recent o a far past? Does it have ripercussions on the present or not? Is it just a thing that happened once, many times or for a continuative period of time?
:Consider that various languages distinguish between many different types of past. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:38, 26 April 2026 (UTC)
:: {{re|Dv103}} That is a fair point...
:: How do we go about solving this problem though? I don't think having every sentence on Abstract Wikipedia be "X is a Y" is a very good idea.
:: Maybe we have different functions for all these variations of past you mentioned that just map into "X was a Y." in English? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 13:31, 26 April 2026 (UTC)
:::To properly solve this problem, we should use a more complete abstract content representation model, like for example the proposal of [[Wikifunctions:Type proposals/Semantic unit|Semantic units]] (look at [[Wikifunctions:Type proposals/Semantic unit/Douglas Adams|the example]] to see how times could be handled). For now, since we're still stuck with single fragment generation functions (that I hope will be slowly replaced with the complete represenation model, when available), we could just restrict your function to a very specific meaning, like "subject was an instance of, for most of its existence" (which means for example that it could be used to say "Douglas Adams was a writer", but not "Abraham Lincoln was a president", since he only was a president for 4 years). Probably my definition is still too vague, and this is why we need to go beyond these fragment generating functions. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:47, 26 April 2026 (UTC)
::Nitpick... I don't like that it outputs a string instead of monolingual text. With {{Z|Z26039}} it's used so much that I think it's unfixable in that case beyond deprecating it if people care that much, but {{Z|Z34224}} doesn't even have any connected implementations yet. Consider it, maybe?
::Nitpick 2... {{Z|Z34227}} is missing a language parameter. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:08, 26 April 2026 (UTC)
::: I will consider that!
::: I just did that because that's what {{Z|Z26039}} does, so I assumed I should follow suit with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 26 April 2026 (UTC)
== Legacy functions ==
If and when more robust methods of abstractly representing and generating linguistic content come around, and more efficient ways of creating abstract content are devised and implemented, I suspect that our current methods will require some form of deprecation. This is a significant source of concern for me in relation to WF and AW, questioning how prone our current methods of doing things are and eventually will be prone to obsolescence, and how it will be worked around when it comes. We have over 1 250 articles on AW presently, and these are rather all over the place. I suspect the maintenance burden from keeping these articles up to code will eventually, err, creep up on us, I suppose, and some kind of major refactoring will be necessary. We are definitely in a period of experimentation and whatnot right now but eventually, like with enwiki, some sort of structure and rigor will form and I suspect it will start to become rather boring for me...
I, for one, very much enjoy experimenting with new and better ways to do things here. I don't personally mind changing things to use a new and better paradigm if need be, that sort of thing highly excites me, but of course there will be things that are left behind, and I suspect maybe bots will be employed to deal with this? A lot of Wikipedia sister sites seem to do that, e.g. going and fixing up use of deprecated templates. Considering the nature of Wikifunctions and Abstract Wikipedia I suspect certain maintenance tasks will be made simpler or even trivial by the typical uniformity of our implementations.
I guess I am just concerned if Wikifunctions or Abstract Wikipedia will ever accrue its own kind of "technical debt" with how we are plowing through things presently, and if there is a plan for how we will eventually seek to mitigate that. Maybe too early to ask this question, but I am a notoriously anxious person, so I thought it wouldn't hurt to raise the question regardless... — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 21:30, 26 April 2026 (UTC)
:I very much agree, thank you for expressing my position so well. {{ping|Immanuelle}} has been using an AI-generated tool (well, they haven't edited in a week, perhaps it's a break or perhaps they don't wish to contribute to the project any more) to create a bunch of articles en masse, which I have warned them multiple times is a bad idea (on top of evolving functions, all of the articles are one-sentence-per-paragraph, [[abstract:Q12184|like so]]). That's why I've been avoiding creating articles recently, I'd say I have a good fourth (no data to support, rough guess) of the comments on the wiki, yet less than a percentage of the article count (only three, including the [[abstract:Q319|first article]], though, so perhaps I'm the next [[w:Special:Permalink/908493298|office.bomis.com]]). [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:41, 27 April 2026 (UTC)
:: I feel that the overwhelming presence of these low-quality articles (which I admit I myself am [[abstract:Q1710970|guilty]]/[[abstract:Q7601858|of]]/[[abstract:Q39338|creating]], usually as testbeds) may incur a large maintenance burden. I do expect them to be easy to detect, however, as searching for the presence of "deprecated" NLG functions is trivial, and it is possible that replacing them with their future ''even abstracter™'' counterparts could be done automatically since they all have the same signatures and can be expected to create the same form of sentence. If it needs to be done manually for a while or for certain delinquent instances, my hope is that it will be fun, at least for a while.
:: I just hope that these hypothetical future waves of "this new and versatile way of abstractly representing linguistic content" obsoleting previous methods and requiring refactoring across all articles is only a one-time thing. We should strive to be as robust and flexible as possible from the outset as each brand new paradigm of abstraction is also a brand new maintenance burden for updating old articles. At the end of the day, at least ''some'' of these articles will still render to many different languages even if their methods of creating those sentences of theirs is completely outdated. Ergo, the time it takes for the switchover to be performed across our articles should not be a persistent inconvenience for users (as, of course, they will always still be able to read the content as it was before since these legacy functions aren't being deleted outright), and the increased availability that the new methods will bring about will likely act as motivation for them to join the effort in refactoring (「You're telling me that if I rewrite this article in this cool Lisp-looking stuff then I can probably read it in [[abstract:Q9307|Galician]]?? COOL!」). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 20:26, 27 April 2026 (UTC)
:::Totally agree. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:54, 28 April 2026 (UTC)
:::My vague plan is to implement a default function returning an {{Z|Z89}}, for each language-neutral function. A single function would convert any of these to a {{Z|Z11}}, so that a composition of the two can be implemented as the current default until such time as the language-neutral function is ready to return a [[Z89]]. We can already convert a [[Z11]] to a [[Z89]] so, although there is more to be done in this space, existing language-specific functions could be adapted to return a [[Z89]] quite mechanistically.
:::Although we certainly could deliver parallel Z89 functions for each existing Z11 function, I don’t think we should assume that particular outcome. Provided the Z89 captures a lang attribute from the Z11’s language tag, the two representations should be largely interchangeable, although I am expecting a Z89 to carry additional attributes at the span level that would be lost on conversion to a Z11 (along with any higher-level tags and attributes).
:::When I say there is “more to be done in this space”, I am referring to a new type that would allow HTML fragments to be represented as tractable Wikifunctions objects, but this is currently drafted only in my head! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:21, 29 April 2026 (UTC)
== Filtering types of objects ==
Hello!
I have tried to comb through my own edit history several times, but it's really hard to search for specifics because there's no differentiation between different types of objects (functions, implementations, tests, etc.) in the logs as far as I can tell.
Am I missing anything? I want it to work sort of like how filtering by namespace works. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 27 April 2026 (UTC)
:There is differentiation, it's just rather hard to look through. Since all ZObjects are just JSON data at their core, you can search for instances of <code>{ "Z1K1": "Z[type]"</code>. I haven't tried this so I'm not sure how well it would work and I know MediaWiki search syntax treats quotation marks as a special character, but I have seen Wikifunctions pages link to searches using this before. There is also [[Special:ListObjectsByType]] but it is sitewide rather than specific to your edit history in particular. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 18:59, 27 April 2026 (UTC)
::''[It doesn’t help directly here, but please see [[WF:Find]] for more details of how this works.]'' [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:24, 29 April 2026 (UTC)
:See the feature requests [[phab:T399244]]/[[phab:T373735]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:06, 28 April 2026 (UTC)
:The lack of filtering edits by namespace is exactly the problem that I was trying to solve with the [[User:Amire80/wikifunctionsanalytics]] tool.
:I even kind of succeeded, but it has two major problems:
:# It doesn't have any real frontend, so you have to know some SQL to use it (or ask other people who know SQL).
:# It doesn't get information from the live site, but from the dump, which appears to be updated once a month.
:I've made a [https://quarry.wmcloud.org/query/104794 sample query for you]. Unfortunately, it won't do anything at the moment because of the second problem—your edits started in April 2026, which isn't over yet, so the dump for it hasn't been processed. But I hope that early in May you'll be able to use the same query and see something useful.
:(I plan to add support for recent edits, but I haven't done it yet. Now that I more or less figured out how to process Wikifunctions edits, I'm focused on trying to understand Abstract Wikipedia edits. Processing up-to-date edits from both sites will possibly be the next thing I work on, but if you know some Python and want to try doing it yourself, don't wait for me—[https://gitlab.wikimedia.org/toolforge-repos/wikifunctions-analytics Patches welcome].) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 18:51, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]], I've just updated the data until the end of April. Now the query to which I linked above gives some results. You can also try running other queries if you know SQL. (Or try asking for other queries if you don't.) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 03:26, 3 May 2026 (UTC)
== [[Z34213]] ==
I'm not quite sure why this implementation is failing. Could someone take a look? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:24, 28 April 2026 (UTC)
:I've [https://phabricator.wikimedia.org/T419933#11863997 notified] the team that this is still occurring, the issue was marked as resolved. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:52, 28 April 2026 (UTC)
:Some useful tips:
:* create more testcases: sometimes it is a random error, so try to see how consistent it is between testcases
:* your implementation is very inefficient, since it fetches items and lexemes a lot of times. Ideally, each item and each lexeme should be only fetched once in all the execution tree.
:[[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 06:06, 28 April 2026 (UTC)
::Caching (''should?'') means that the lexeme and item data are cached, so the call doesn't actually execute multiple times. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 17:51, 28 April 2026 (UTC)
:::Are lexemes and items actually cached within the same function execution? Even if they are only partially fetched and/or fetched in bulk? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:54, 28 April 2026 (UTC)
::::I don't have any evidence to prove that it works but that's definitely A. what's supposed to happen and B. the ideal behavior. This happens because the Z680X functions can be cached just like any other. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 18:02, 28 April 2026 (UTC)
::::It is unclear. In general, I believe identical branches are resolved only once in orchestration, but there is also independent caching of Wikidata fetches.
::::According to @[[User:DMartin (WMF)|DMartin (WMF)]] ([https://t.me/Wikifunctions/30374 on Telegram]):
::::<blockquote>Well, no. We have caching of Wikidata entities that have been retrieved, but not of the results of nested function calls. There is a proposal for doing this in the context of the V2 composition language, when it's a bit more mature, and it's regarded as a relatively high priority.</blockquote>
::::It’s hard to tell whether fetches in nested calls are, in fact, cached and available for other nested calls in the same call, since it is not generally the actual fetch that consumes the most resources. Rather (I believe), it is construction and transmission of the result object, which is currently repeated afresh in each nested call (unless it is in an identical branch).
::::I hope that’s clear, and I apologise in advance if it happens to be inaccurate! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 29 April 2026 (UTC)
:::::Oh, I should clarify. There is a lot of caching going on, in several different places. Lexemes and items ''are'' cached by the orchestrator within the same function execution, even if they are only partially fetched and/or fetched in bulk. When I said that we don't have caching of the results of nested function calls, I meant that's not happening in general, for all nested function calls in compositions. But fetching of Wikidata entities gets special treatment, so yes, fetched content from Wikidata is cached, regardless if it was fetched by a top-level call or a nested call.
:::::It is also true that the construction of a ZObject from the fetched JSON might happen more than once within the same function execution, depending on how a composition has been structured. However, the construction of the ZObject is actually very fast, compared to the elapsed time of getting the JSON from Wikidata. [[User:DMartin (WMF)|DMartin (WMF)]] ([[User talk:DMartin (WMF)|talk]]) 18:04, 1 May 2026 (UTC)
== Question about cardinal numbers ==
I was about to edit {{Z|Z16435}} to add my function {{Z|Z34308}}, but I noticed that none of the other functions have a gender parameter.
Should I create a new wrapper function "Bulgarian cardinal, neuter", or should I just remove the gender parameter and always return neuter? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:39, 28 April 2026 (UTC)
:The “cardinal” functions should return the words used for “counting” numbers in the abstract.
:We should consider converting them to return a {{Z|Z11}} rather than a {{Z|Z6}}. It may even be appropriate to return a {{Z|Z12}} to cater for language variants. Either way, I think that would be the approach to adopt for inflected forms, unless reference to specific lexeme-forms is required. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:52, 28 April 2026 (UTC)
::This. If a native of your language were to count up, which form would they be most likely to use? [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:29, 28 April 2026 (UTC)
::: {{re|GrounderUK|Feeglgeef}} Thanks for both your input!
::: I relabeled the aforementioned function to {{Z|Z34308}}, and created a new wrapper function {{Z|Z34457}}.
::: Should I specify that my old function is a monolingual text in parentheses? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:26, 28 April 2026 (UTC)
::::You don't have to, unless you think that is something that would require distinction when viewing the function in a list of search results &c. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:36, 28 April 2026 (UTC)
== Optional/nullable function parameters ==
Hello!
Recently, I was informed that Wikifunctions has no optional/nullable function parameters as of now.
Are there any future plans to support this, and/or workarounds? Maybe create a union type system like "{{Z|6}} or {{Z|23}}". <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 17:53, 28 April 2026 (UTC)
:What I do for this is use an "is empty" function corresponding to the type of the parameter in an If statement. If it isn't empty, the function works as intended. Otherwise, it does something else. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:58, 28 April 2026 (UTC)
:Unions are not a thing (yet) on Wikifunctions, but you can always define an argument of type {{Z|Z1}}, which means that all types are allowed (I already did this for {{Z|Z26737}}; note that it is still a ugly workaround, don't use it for high level functions). Also, note that usually on Wikifunctions we use {{Z|Z24}} as the null value. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:00, 28 April 2026 (UTC)
:: {{re|JJPMaster|Dv103}} Thanks for your help!
:: @[[User:Dv103|Dv103]] told me a function call with a missing parameter is treated as an invalid function call, so how does the "is empty" function work with that?
:: Also, setting the type to {{Z|1}} seems naive, like setting the type as <code>any</code> in TypeScript...
:: Related question: Are there plans to add default values to parameters (outside of "if empty")? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 18:19, 28 April 2026 (UTC)
:::Setting the type to {{Z|Z1}} is actually naive, and that's why I advised you to only use it for low-level functions. Currently there is nothing better. Sometimes, type correctness is not actually checked, so it might seem that nullable types are possible. But it is still an hack, and it could broke anytime since it is not intended behavior.
:::I don't think that there are current plans to add default values (but correct me if I'm wrong). The closest thing that comes to my mind is that, if you incorporate Wikifunctions into Wikitext, you can leave empty some fields (only of some specific types) and Parsoid will replace them to their default value. This is done only depending on the type, and not on the functions. For example, {{Z|Z6091}} and {{Z|Z6001}} are assigned the QID associated to the page, and {{Z|Z20420}} is assigned the current date. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:56, 28 April 2026 (UTC)
:::@[[User:QuickQuokka|QuickQuokka]]: At the very least, [[Z10008]] accepts a null input. Maybe that feature is unique to the String type—I am not sure. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 19:10, 28 April 2026 (UTC)
::::I think it's just not checked, but it shouldn't be intended. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:20, 28 April 2026 (UTC)
::::Strings and typed lists can be “empty” in the sense that their length can be zero. Typed pairs may also be “empty” in a degenerate sense, but such an object will not be returned from a code implementation. A typed map with no entries will also fail to be returned from code, although it is fine in compositions.
::::For a genuinely optional parameter, I prefer a properly typed list, which at least encourages an argument of the correct type. {{Z|Z813}} is also typically faster than {{Z|Z10008}}. Quite a good example of this approach is {{Z|Z23723}}, where it helps to resolve the type union (using [[Z1]]) for both Z6003K1 and Z6003K3. Of course, there’s nothing to prevent more than one element in the list, but additional elements are easily ignored. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:55, 28 April 2026 (UTC)
:Pinging {{ping|Jdforrester (WMF)|prefix=|p=}}, I believe there are no current plans. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:02, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]]: I'm afraid there are no current plans to build out optional params, indeed; we would be happy to review this if a compelling case was made, but it'd be a lot of work to re-build the [[Wikifunctions:Function model|function model]] with that support and ensure we don't break (too many) things. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 19:11, 28 April 2026 (UTC)
== Z6830 for Chinese ==
I was trying to use {{Z|Z6830}} for implementation in the Chinese-language. And turns out most of the Lexeme on Wikidata is using [[d:Q727694]] as the language instead of [[d:Q7850]]. This makes it impossible to use the mentioned function above, since Standard Chinese is not available (or did I miss something?). Is there a way to fetch lexemes with language=[[d:Q727694]] from item? [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 18:20, 30 April 2026 (UTC)
:@[[User:Sun8908|Sun8908]] There is [[Z1006]] for Chinese and it has the language code zh. There is an overview of languages in [[Module:Wikifunctions label]] so you can search there for chinese versions and choose the one you need. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 20:53, 5 May 2026 (UTC)
::I know that. The problem is when using the function [[Z6830]], it cannot retrieve lexeme with language [[d:Q727694]] (but it is the "Chinese language" with the most current Wikidata lexemes, see [https://ordia.toolforge.org/language/ ordia]). I think it should be a Wikidata problem, I might fix it (possibly by creating the same lexemes with language code zh) on Wikidata. Thanks anyway. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 05:39, 6 May 2026 (UTC)
:Could you provide an example of a Chinese lexeme that has a linked Wikidata item, or a Z6830 function call that fails to find such a lexeme where one exists? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 07:55, 6 May 2026 (UTC)
::Here: [[d:Lexeme:L846083]]. I think that's a primary reason of me trying to look into this problem, as the label in zh for [[d:Q6256]] (country) is not a single phrase (see its talk page on WD for more information). This makes some Abstract Wikipedia articles very weird in Chinese when {{Z|Z26570}} is used, so lexeme could potentially fix that. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 10:33, 6 May 2026 (UTC)
:::Thank you. It looks as though {{Z|Z6830}} [https://www.wikifunctions.org/view/en/Z6830?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6830%22%2C%22Z6830K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q6256%22%7D%2C%22Z6830K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P5137%22%7D%2C%22Z6830K3%22%3A%7B%22Z1K1%22%3A%22Z60%22%2C%22Z60K1%22%3A%22cmn%22%2C%22Z60K2%22%3A%5B%22Z6%22%5D%7D%7D returns that lexeme for language tag "cmn"]. Perhaps that tag should be added into the helpers for {{Z|Z24144}}? If it is widely used for lexemes, perhaps it should have its own {{Z|Z60}}? In any event, improvements might be considered under [[:phab:T390563]] (or otherwise), including amending [[Z6830]] to also consider "cmn" (and "zho", "chi"…?) when requests are made for "zh-hans" or "zho-hant" (or others?) @[[User:Winston Sung|Winston Sung]] @[[User:DMartin (WMF)|DMartin (WMF)]] [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 17:22, 6 May 2026 (UTC)
::::If you go to [[d:Special:NewLexeme]] and put in [[d:Q727694]] as the language, it is going to tell you it has an unrecognized language code. So I believe "cmn" should not be a {{Z|Z60}} by default? I also started [[d:Wikidata:Project_chat#Lexemes_with_language_Standard_Chinese_(Q727694)|a discussion on WD]] regarding this. I guess we can still use it as a fallback language though if possible. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 03:43, 7 May 2026 (UTC)
::::We don't have a separated <code>cmn</code> BCP 47 language subtag in MediaWiki and Wikidata at the moment. <code>zho</code> and <code>chi</code> are ISO 639 language codes but not BCP 47 language subtags.
::::For Modern Standard Mandarin, please use <code>zh-*</code> language tags for now. -- [[User:Winston Sung|Winston Sung]] ([[User talk:Winston Sung|talk]]) 15:26, 8 May 2026 (UTC)
== Key not found error ==
Is there a reason why I am getting key not found error for this [[Z34677|function]] {{Z|Z34677}}? All the underlying functions run and all the test cases work. The debug information does not give more details. Any pointers? Thanks in advance [[User:Jsamwrites|John Samuel]] 19:24, 1 May 2026 (UTC)
:It was passing the [[Z6091]] to {{Z|34641}} when that takes a [[Z6001]]. I've fixed that, but there's some other problem with the logic, so I've left it disconnected. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:42, 1 May 2026 (UTC)
::@[[User:YoshiRulz|YoshiRulz]] Thanks a lot. [[User:Jsamwrites|John Samuel]] 20:21, 1 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #246 is out: Request for input: what should we count for Abstract Wikipedia ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we ask you what would be the relevant metrics for Abstract Wikipedia, we discuss our latest news on Composition Language v2, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 12:21, 2 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== Any formal process for deletion of pages ==
Does a formal process exist for the deletion of functions, implementations, and tests that includes a notification system for creators, analogous to Wikidata’s process, explaining the rationale behind the deletion (or proposal for deletion)? [[User:Jsamwrites|John Samuel]] 12:36, 3 May 2026 (UTC)
:Does [[Wikifunctions:Requests for deletions]] work? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 13:00, 3 May 2026 (UTC)
:Please see the discussion at [[Wikifunctions talk:Requests for deletions#Should we expect Objects' creators to get pinged on deletion proposals?]].
:As I see it, it is the proposer’s responsibility to consult appropriately before making a request and we expect our administrators to act only when satisfied that appropriate consultation has occurred. In many cases, no consultation is required. Administrators may delete their own contributions without making a request, but this is not a practice I would encourage. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:51, 3 May 2026 (UTC)
== Implementation of rational number in JS doesn't match in Z19677 (Rational number) and Z28579 (RGBA colour) ==
In {{Z|19677}} it's
<syntaxhighlight lang=js>
{
"K1": sign * numerator,
"K2": denominator
}
</syntaxhighlight>
but in {{Z|28579}} it's
<syntaxhighlight lang=js>
[ sign * numerator, denominator ]
</syntaxhighlight> '''<span style="font-family:Iosevka,monospace">[[User:沈澄心|<span style="color:#9f3526">dring</span>]][[User talk:沈澄心|<span style="color:#534fa3">sim</span>]]</span>''' 05:15, 4 May 2026 (UTC)
:I'm guessing this is why [[Z34743]] fails all the tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:00, 18 May 2026 (UTC)
== Nested functions in compositions ==
I wish it will be easier to a add another function about a specific existing function in a function implementation based on a composition. When I write long functions in spreadsheets I usually stat with a small part and then I try to go further and after important steps I test if the output is as expected. I created [[Z34826]] to get the German gender specific occupation lexeme for a specific person based on their gender. I wanted to add a function around the existing one and it was not successful. It is not very easy to implement as it requires the possibily to move a part to another section but I think it can be helpful if it will be implemented. So far I spend more time as expected on the function. Describing it with words what the function needs to do is much easier than implementing it here in Wikifunctions. So I think there needs to be improvement to make Wikifunctions more accessible. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:10, 5 May 2026 (UTC)
:Have you tried to use the copy-paste functionality? It is very useful to move parts of composition arounn. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:12, 6 May 2026 (UTC)
:I've also found the composition editor to be wholly unsuitable for any expressions more than a few levels deep. (Even with the <code>localStorage</code> clipboard, because of its overzealous type checks.) Compositions naturally grow out from the "leaves", the immediate operations on the inputs, while the interface really wants you to build from the "root". I mostly use the [https://yoshirulz.gitlab.io/WikiLambdaBlockly drag-and-drop block editor] which I made to smooth over some of the site's problems, so if you want to try that out and give me some feedback I'd appreciate it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 14:36, 6 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #247 is out: References from Wikidata now available ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-08|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we announce that is now possible to pass references in Wikidata statements, we introduce the [https://abstract-data.toolforge.org/ Abstract Data dashboard], we report you on the presentation about Abstract Wikipedia at WikiCon Australia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1778520600 May 11, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:16, 8 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== RGBA colour, spelling... ==
Something that has always irked me a little bit is the spelling of [[Z28579|RGBA colour (Z28579)]]. I guess this is not unsurprising for me considering my use of US English but I think there is more to it than preference and I want to try to argue for it being changed to use American spelling. I know that this probably has a snowball's chance in hell of actually garnering any support, so I won't really be miffed if the spelling remains as it is, but I thought it wouldn't hurt to raise this regardless.
The main issue I have with it is the spelling of the original proposal. When infernostars raised the [[Wikifunctions:Type proposals/RGBA color|type proposal]], the spelling was 「RGBA color」. Of the comments that mentioned the word 「colo[u]r」, two used British spelling while six used the American spelling as used in the proposal. The only thing that really pointed to the use of ''colour'' was the fact that the catalog page on color functions used that spelling already. For all intents and purposes, the spelling of the original proposal should have been maintained, but it was not; [[User:DVrandecic (WMF)|DVrandecic]], the eventual creator of the type, used a different spelling.
It should be noted that there was really no reason for this to occur and while it is an undoubtedly minor issue I still believe it should be rolled back and the type should use the spelling of the original proposal and majority of editor comments. In [[abstract:Q936|OpenStreetMap]], there have been keyvalue proposals that have had the finalized spelling that gets put to use be in British English despite the original proposal being in American English; this has usually occurred with proposals relating to 「X center/centre」 tags. This makes sense on the surface, because OpenStreetMap is maintained by a UK organization, and still has close ties to Europe. The Wikimedia Foundation, however, is an ''American'' company. This is often brought up as a fallible argument when debating article spelling on the English Wikipedia, and I don't bring it up to support that 「RGBA color」 should be used for that exact reason, but rather to state that OpenStreetMap's general policy on tag names need not apply here. It appears to me that, at least initially, the majority of 「core contributors」 to Wikifunctions used British English; I can name YoshiRulz, 99of9, GrounderUK, and VIGNERON.<ref group="color">I'm avoiding linking to these folks because I don't think pinging them about this discussion is all too necessary unless they themselves want to be involved; I don't want to clutter their inboxes just to briefly mention them. I pinged Denny because, well, I'm asking him a question directly, but everyone else I would prefer to join this discussion by their own accord... not that I wish for this decision to be confused as me going 「these people use British English so they will probably oppose my idea, I won't invite them to the discussion because of that」...no, I promise you that is not the reason.</ref> I see (or saw) these people ''everywhere'', so it makes sense that British English has prevailed in some sorts on this website, but I don't think that indicates that it should be the ''preferred'' spelling across the website, at least not to the point where a proposal should have its name changed to match such a "consensus".<ref group="color">It could be argued that the front-and-center ''Function catalogue'' using 「catalogue」 is actually indicative of such a "consensus", but ''catalogue'' is in a similar position to the word ''grey'' where I live (that is, the US) in that it is used just as often as its American counterpart. Also, consider Wiktionary's ''Beer parlour'' project chat.</ref>
The unnecessary modification of the original spelling is my main argument for changing it back... but of course, I must obligatorily state that on English Wikipedia, it is [[w:Color|Color]] and [[w:RGBA color model|RGBA color model]]; on Wikidata, it is [[d:Q1075|color]] and [[d:Q2325624|RGBA color space]]; in CSS (which typically uses hexadecimal triplets to specify RGBA values), the properties are <code>color</code>, <code>background-color</code>, etc.; bit of a weak jab, but on Schema.org it is [https://schema.org/color color], [https://schema.org/colorSwatch colorSwatch]; et cetera. {{Z|Z28580}} uses ''color'', so does {{Z|Z28591}} and its Python counterpart.
Mr. Vrandečić, I have to ask, I'm rather confused... you created the color type using British English spelling, but you were also responsible for the creation of the equality function which uses the American English spelling. You also seem to be writing in American English for the status updates, judging by your use of -''ize'' over -''ise'' endings and use of ''program'' over ''programme'' in [[Wikifunctions:Status updates/2026-04-16]]. Is there something I'm missing or have you switched your preferred variant somewhere along the way?
Anyways, do consider this if you wish... again, I don't suppose this will garner much support, it is the ''non-issuest'' of ''non-issues'', but it has irked me to the point where I want to ask about it to get some answers, if nothing else. I am not arguing for every other color function to have its name changed, just the type itself.
<references group="color"></references>
— [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:04, 8 May 2026 (UTC)
:This is a multilingual project; the <code>en</code> label is <code>RGBA colour</code> and the <code>en-us</code> label is <code>RGBA color</code>. Though I'm not able to switch to <code>en-us</code> via the language picker so that would need to be fixed.<!--
--><br>edit after reading your whole comment: The same is true of {{Q|1075}}, there are labels specified for multiple English variants. (In {{Q|2325624}} it's only an alias.) I agree that other websites' choices aren't binding on us, but from that, I conclude that the more widespread British/Commonwealth spellings should be used for the generic <code>en</code>. As for myself, I'm Aussie and I will continue to use the BrE spellings ([[w:en:Oxford_spelling#Language_tag_comparison|+ "routing"]], TIL) if only by muscle memory.<!--
--><br>[[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:42, 8 May 2026 (UTC)
:: Your lattermost point would normally be fine in a perfect world. Wikipedia's <code>convert</code> function defaults to "international" English, which I don't personally take issue with because it happens that we here in America are actually outliers for saying and spelling things differently... err, or we were for a while at least, nowadays it seems like an even split (plus you have "yield" vs. "give way" which is effectively the logical opposite of US's use of "meter" over "metre").
:: However, this is not a perfect world, and I don't think <code>en</code> should correspond to any particular variant. It is too fragmented across all software at this point to impose such a requirement. The inability to switch to <code>en-us</code> on this website foregoes an easy and simple solution to this problem that makes everyone happy, because the yanks (such as myself) can't be happy because we can't see the labels in American English even if we wanted to, and the other folk can't switch either as far as I'm aware (and the en-CA and en-GB languages in the preferences page seems to be deprecated). My point being, <code>en</code> is abused to mean "en-UK" just as often as it is abused to mean <code>en-US</code>; I think a decision shouldn't be made on such an assumption of one "default". — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:48, 12 May 2026 (UTC)
:Hi @[[User:Theki|rae]]! I have no opinion nor preference on this, and given my background, I am just entirely confused about my spelling preferences myself, as you can tell from my inconsistent usage. I learned British English in school and used that for maybe two decades or so, but moved to the US and lived there for more than a decade, enough to be naturalized, but now I am back in Europe and I am technically a professor at King's College London, soooo.... honestly, I do not know. I don't remember having put too much thought into it at the moment I created it. The good thing is that in Wikifunctions, just as in Wikidata, it is easy to change, without messing things up too much (unlike in Wikipedia), so my suggestion is, just make the change, see if anyone complains, and if they do, discuss it more. I don't know if there is a guideline already in Wikifunctions about the variants. I am happy either way, and honestly, I keep forgetting which variant is which most of the time. --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 18:16, 10 May 2026 (UTC)
:: I can definitely understand this, although I am unfortunately rather passionate about any minutiae involving preferential minor differences in ''anything'', of which AmE vs. BrE chiefly is. So I dedicate a lot of headspace to it. More than I should. Not that I wish to imply that the comment above that I have wrote is of an irrational nature, or done out of spite or pure emotion and subjectivity; I do genuinely believe that ''RGBA color'' is beyond just a personal preference and is just logical. I may boldly go and change it, but for some reason I was expecting that changing the English label of a Type would require elevated permissions, and I also didn't want to do it only to get immediately reverted because it ''did'' strike a chord with someone, when I could instead see how apathetic, supportive, or in opposition interested people are beforehand and ''then'' act accordingly. I was not meaning to antagonize you over your spelling habits, I did actually use British English for a few years starting in 2020 before I went back to American English, so I'd be a hypocrite for me to decry you for not always sticking to some arbitrary standard of spelling words over the other. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:55, 12 May 2026 (UTC)
:Although I spell it “colour”, I think it makes more sense to use “color” for the type, since that is almost always the required spelling when the string functions as a keyword.
:More generally, though, Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en". This is unusual, in my experience, as "en" is widely misused in place of "en-US", where there are recorded spelling differences.
:(I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere. Use of -ize rather than -ise is a matter of personal preference or house style, but regional autocorrect encourages -ise.) [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:00, 12 May 2026 (UTC)
:: ''Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en"''
:: Definitely agreeing with you on the latter being a good choice. However, I suspect the favoring of "colour" over "color" may be because, in terms of language codes, when sorted alphabetically <code>en-us</code> actually comes ''after'' <code>en-gb</code>. Although, the frontend seems to be sorting <code>en-ca</code> after <code>en-gb</code>, so I don't actually know how correct that is.
:: ''I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere''
:: The context of the spelling was "''No program for the NLG SIG meeting for next Tuesday has been proposed''". In that usage context, I think it makes sense to assume that ''program'' is not being used to refer to a computer program, but to a ''program of events'' or similar, something that you would spell as a ''programme'' in British English. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:02, 12 May 2026 (UTC)
:{{s}} this. I'm obviously biased but I believe American English is preferable generally, American dominance on the internet (our Department of Defen'''s'''e invented it!) and rapidly-increasing consumption of American media by international English speakers means that more people use American English's conventions, this is clear through for example [http://trends.google.com/explore?q=color%2Ccolour&date=all&geo=Worldwide search trends] (though they aren't particularly reliable). Perhaps this is a bit of a supremacist opinion, but we should have internal consistency, and if we must choose, American English should be our first choice (then Indian and then British English) [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:10, 12 May 2026 (UTC)
:: This is rather flawed reasoning, though. I think probably any given British or Indian person would not agree on using that as the reasoning for this, not that you are necessarily ''completely wrong'', but if this is not a good enough reason for English Wikipedia's (admittedly extremely flawed) ''ENGVAR'' policy then I don't think it's likely it will pass here either.
:: Although of note is that [https://books.google.com/ngrams/graph?content=color%2Ccolour&year_start=1800&year_end=2022&corpus=en&smoothing=3&case_insensitive=true Google ngrams] agree with you, but "color" vs. "colour" is an eternal holy war that will not be won by demonstrating that more books use US spelling over Commonwealth spelling. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:44, 12 May 2026 (UTC)
:::You're probably right that it's not very sound. I'm biased in that other varieties of English irk me, and that's probably mutual for people who are used to other varieties of English when they read what I write! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:56, 12 May 2026 (UTC)
:I've decided to boldly [[Special:Permalink/274271|make the change]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:02, 12 May 2026 (UTC)
:: Thank you. Considering both you and GrounderUK seem to consider it an okay change, I think this will do for now.
:: I should note that the matter of whether to move [[Wikifunctions:Catalogue/Colour functions]] in response to this (however this discussion will ultimately turn out) is a whole other can of worms, in my view. I can't say I have an opinion on that at the moment, but I'm putting it out there regardless. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:06, 12 May 2026 (UTC)
:::Personally, I'm in favor of moving the page and renaming all of the items on it. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:10, 12 May 2026 (UTC)
::I don't like this (exactly because of the American hegemony you cited), but again, it shouldn't matter because the software is meant to be multilingual. Clearly there's a bug preventing you from picking an English variant/dialect as your display language. But the search bar and Function/Type autocompletion do check the English variants for matches. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:15, 12 May 2026 (UTC)
== Proposals on the architecture of Abstract Content rendering ==
Starting from a discussion born on the Telegram chat, I've explained two different proposals on how the NLG on Abstract Wikipedia should be organized in the page [[abstract:User:Dv103/Abstract articles architectures]]. Please come to contribute to the discussion, or to propose alternatives. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 14:31, 11 May 2026 (UTC)
:Thank you for dedicating your time to writing this, it is very informative. I will try to add input once I'm not in over my head with finals. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:27, 12 May 2026 (UTC)
== Display function for HTML fragment ==
Currently, any collapsed Z89 literal appears as<blockquote><> [[Z89|HTML fragment]]</blockquote>If I were to create a new Function which returned something like<blockquote><> 123-byte HTML fragment <q><nowiki><td><span lang=</nowiki>…</q></blockquote>could that be connected to replace the collapsed form, or would it require changes to the Wikilambda software? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:14, 11 May 2026 (UTC)
:It might work, but I doubt it. Those angled brackets suggest that the collapsed form is not simply defaulting to the type’s label. Looking at [[:phab:T410509]], I’ve concluded that enhancements to the collapsed form were never considered, rather than being actively rejected. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:12, 12 May 2026 (UTC)
::[[:Phab:T391985]] documents the original design. Note the fifth bullet point under “Acceptance criteria”. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:21, 12 May 2026 (UTC)
:I'm not sure the byte-size is necessary, but the outer tag (or first outer tag, though generally I'd prefer most fragments use a wrapper tag if it needs multiple like JSX does, but that's a whole different topic) would be nice. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 12:51, 12 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #248 is out: A higher meaning ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-15|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss functions creating language fragments, we present our latest news in Types, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:36, 15 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
== [[Z34510]] ==
This function, which determines if a Wikidata item for a {{q|5}} has an undeprecated {{p|21}} statement of {{q|6581097}}, returns false for {{q|173399}}, a transgender man. This is because his item assigns his P21 statement to {{q|2449503}}, not {{q|6581097}}. I'm not sure how to account for this discrepancy. Should {{z|34510}}:
# Include {{q|2449503}} as a value that can lead to a true result,
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a man?") could return true for either "male" or "trans man",
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a trans man?") could return true for "trans man",
# Not exist at all?
[[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 16:48, 16 May 2026 (UTC)
:I can't think of a single use case where you would need to determine if a person is a cisgender man and nothing else. Functions are good for generalizing across multiple possibilities when they exist, so I think it would be best if trans men were considered a part of the criteria for returning a true value. If asking for specifically {{q|6581097}}s and ''nothing'' else was desired then the function name would be a misnomer as Elliot Page is inarguably a male (at least in the view of most reasonable and intelligent people). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 19:03, 16 May 2026 (UTC)
:You made the function in the first place; what were you planning on using it for? AW? Maybe it should return a {{Z|25501}} which can then be passed on to other NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:01, 16 May 2026 (UTC)
== Lexeme from wikidata label, or "best" lexeme from wikidata item ==
I was looking into fixing [[Z28028]]. I found that I could add "requires grammatical feature: definite article" to "United Kingdom" (L8558). Now I'm stuck on how to get to that lexeme from {{Q|145}}. There's [[Z23471]], but that for very good reason gives you multiple lexemes with the same sense, and I just want the best one like how the label is always the best string. Is there a function that can do this?
There's definitely the case of a Wikidata label that isn't a lexeme (most commonly multiple lexemes) but I'm only considering the case where it is one lexeme here. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 20:02, 16 May 2026 (UTC)
:There is {{Z|Z27327}}, that tries to give the best lexeme through various heuristics. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 22:22, 16 May 2026 (UTC)
:: Wonderful! I did stumble upon [[Z33818]] but this is perfect. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:25, 17 May 2026 (UTC)
== [[Z29591]] isn't working for me ==
For instance, trying to manually put in the exact inputs for one of the test cases just returns an empty Monolingual text. See [https://www.wikifunctions.org/wiki/Z29591?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29591%22%2C%22Z29591K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3257809%22%7D%2C%22Z29591K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z29591K3%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z29591K4%22%3A%22Z1002%22%7D]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 01:17, 17 May 2026 (UTC)
:You used [[:d:Q22006653]] rather than [[:d:Q1075]]. It looks like the [https://www.wikifunctions.org/wiki/Special:RunFunction?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D explanatory error] is suppressed by the [https://www.wikifunctions.org/view/en/Z30009?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30009%22%2C%22Z30009K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D%2C%22Z30009K2%22%3A%22Z801%22%7D final transformation]. The returned result is not actually empty; if you expand it, you can see that it is an unresolved function call. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 09:59, 17 May 2026 (UTC)
== [[Z35298]] ==
Does anyone know what the problem with this implementation is? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 21:14, 18 May 2026 (UTC)
:There is a bug that doesn't allow Python implementation to return nested lists. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:31, 19 May 2026 (UTC)
::Is there a Phabricator task for this? Searching through them is hell. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 03:22, 20 May 2026 (UTC)
:::A bit of time ago I opened [[phab:T392750]], which is very similar to this issue. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:26, 20 May 2026 (UTC)
== May 2026 Wikimedia Café meetups regarding the Wikimedia Foundation Annual Plan ==
<div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)">
<div class="box" style="float:left; padding-top: 15px; padding-right: 15px;">[[File:Wikimedia Café logo in plain SVG format.svg|75px|alt=The logo for the Wikimedia Café]]</div>
Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities during the last weekend of May. Both sessions will focus on the [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2026-2027 the 2026-2027 Wikimedia Foundation Annual Plan]. Participants may attend either or both sessions.
#'''Saturday, 30 May 2026 at 15:00 UTC''' ([https://zonestamp.toolforge.org/1780153200 timestamp converter]), at a time friendly to the Americas, Africa, and Europe
#'''Sunday, 31 May 2026 at 05:00 UTC''' ([https://zonestamp.toolforge.org/1780203600 timestamp converter]), at a time friendly to Asia and the Pacific
Café participants are highly encouraged to read in advance [https://en.wikipedia.org/wiki/User:Sohom_Datta/annual_plan_guide at least this summary of the plan]. Optionally, Café participants are encouraged to read portions of the plan that interest them and [https://meta.wikimedia.org/wiki/Talk:Wikimedia_Foundation_Annual_Plan/2026-2027 ask questions or provide feedback on the Annual Plan talk page].
Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#May_2026_meetings_with_a_focus_on_Wikimedia_Foundation_Annual_Plan/2026-2027 tables of timestamp conversions for both sessions], [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#Agenda._This_will_be_an_approximately_1_hour_Caf%C3%A9_session,_and_is_extendible_for_an_additional_30_minutes_if_needed. the agenda], and [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]!
<br />
[[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div>
<span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 19:56, 21 May 2026 (UTC)
== How to handle items without lexemes ==
NLG functions relay heavily on the presence of lexemes associated to items on Wikidata. But we know that not all the Wikidata items have an associated lexeme. There are multiple reasons why an item does not have an associated lexeme, like:
# The lexeme has not been created yet
# The item represents a place
# The item represents a person
# The item represents a specific concept that can only be expressed by a specific combination of words that cannot be [[Wikidata:Wikidata:Lexicographical data/Notability|notable]] (like {{Q|Q61220733}}).
My doubt is: what should we do with this fourth category? For many languages, just using the Wikidata item label is not possible, since it is necessary to conjugate the words or to retrieve grammatical information like the gender. What should we do? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:09, 23 May 2026 (UTC)
:In that particular example, I think the thing to do is read its {{P|279}}: {{Q|21191270}}, then have some kind of heuristic based on that which says to take its {{P|8345}} and attach that Item's label to a Form of the word for "episode". In general, synthesising Lexemes for proper nouns is one of the problems that [[abstract:User:Dv103/Abstract_articles_architectures|proposals in your list here]] will have to address. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:59, 23 May 2026 (UTC)
[[File:Wikidata content 2024.svg|thumb|Content of Wikidata by type]]
::{{ping|Dv103}} very good point.
::For your point 2, it depends of the place but I think that quite often a lexeme can be created (most "Administrative territorial entity", most geographical entity, etc.). And with 3, your can add a lot of types (see pie chart) : Scholarly article, Human (with a very few exception), Wikimedia Category, Disambig, etc. which is (rough estimation) 2/3 of Wikidata items.
::A common rule (in dictionaries since forever and in Lexemes) is to not create an entry which is the "sum of its part". In this case, "Star Trek episode" is just episode + Star Trek, nothing more than its part. So logically, as {{U|YoshiRulz}} said, when no corresponding lexeme is found, the item should be decomposed the same way, the hard part is to know how to decompose it as the property will vary ; P31 and P279 are an obvious start but beyond that, I'm not sure we could find a general solution.
::PS: it's beyond you question but there is also the reverse problem, how to select one lexeme when multiple are linked to the same item...
::Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:43, 24 May 2026 (UTC)
:::For the point 2, I think humans will be used way more than scholarly articles and disambiguations in NLG functions (outside references), that's why humans concern me more (still a cool pie chart, though).
:::For the reverse problem, there is already {{Z|Z27327}}: it's far from perfect, but usually makes a decent choice. Obviously it is not "complete", and probably it will never be complete, but it will have to be progressively improved by the community. And probably in the future we will need to create similar functions to select the best lexeme in more specific cases.
:::For my fourth point, I didn't think about the decomposition, but it is something that could be done with another never-complete community-mantained function, that progressively keeps being improved. If [[Wikifunctions:Type proposals/Semantic unit|semantic units]] will be implemented, through them it could actually be possible to do this operation in a laguage-independent way. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:10, 24 May 2026 (UTC)
::{{re|YoshiRulz}} Proper noun synthesis, along with other fallbacks for realizing the names of concepts that don't have lexemes, is merely a step within the overall abstract content rendering process and is not inherently tied to the process itself; having the ability to [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/graph/client.py#L327 run any number of fallback mechanisms], instead of a raw call to (the equivalent of) Z27327, should be possible with any of the methods listed on the architectures page. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 16:41, 24 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #249 is out: Annual plan 2026-2027 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-23|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we present you the current draft of objectives for Wikifunctions and Abstract Wikipedia in the WMF Annual Plan 2026-2027, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 09:48, 25 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
:The new <code>return_type</code> param to [[Special:ListObjectsByType]] will show Functions returning e.g. {{Z|27951}} and {{Z|882}} if those are typed in manually, but the dropdown menu doesn't offer them, probably because it's a copy of the dropdown above (and there are no Persistent objects of those Types). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:12, 26 May 2026 (UTC)
== Type documentation template ==
Over the past couple of weeks, I've been developing and rolling out {{t|type documentation}}: a standardised layout for Type metadata, de/constructors, conversions, etc. on each Type's talk page. (The layout is loosely based on [[d:Template:Property documentation|Wikidata's]].) See [[Talk:Z16683|Integer]] for an example that uses most of its features, and [[Talk:Z99|Quote]] for one that doesn't.<br>At this point I can't think of anything more to add besides [[Help:Comparison_function_table/float64|filling out]] a couple more [[Help:Type_conversion_table/Codepoint|tables]]. But if any of you have ideas or feedback, please click through to the relevant talk page and leave me a message. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:29, 26 May 2026 (UTC)
:I really like what you're doing here. Thank you. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:26, 26 May 2026 (UTC)
:Yeah, nice work! I don’t think “Function declarations” is the best header for the collapsed table of searches by function signature, however. Now that it’s finally landed, we should probably include https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&return_type=Z16683 as well (outside the table). [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:23, 26 May 2026 (UTC)
== Apparent error in implementations of {{Z|20616}} ==
Please can I request help in how to understand a bug? Sorry if this is not the best place to ask.
I created lexemes [[d:Lexeme:L1566135|langue morte L1566135]] in French and [[d:Lexeme:L1566139|lengua muerta L1566139]] in Spanish, with property {{P|5185}} set to {{Q|Q1775415}} in each case. {{Z|20616}} should return a list of the grammatical genders of a given lexeme. It has two implementations, {{Z|Z20641}} and {{Z|Z21127}}, each of which works perfectly in the French case, returning a list containing Q1775415. But in the Spanish case, each of the two implementations wrongly returns an empty list. I cannot understand what is going wrong. How can I find out what is happening here? I would be grateful for any help or advice. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 13:56, 26 May 2026 (UTC)
:Both implementations return [https://www.wikifunctions.org/wiki/Z20616?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z20616%22%2C%22Z20616K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6825%22%2C%22Z6825K1%22%3A%7B%22Z1K1%22%3A%22Z6095%22%2C%22Z6095K1%22%3A%22L1566139%22%7D%7D%7D the same result]. As you added the gender only yesterday, I suppose it must have still been looking at a cached version of the lexeme from before that edit. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:06, 26 May 2026 (UTC)
::Thank you for answering. Yes, it works now. I thought it might have been something like that, but I waited more than 12 hours before testing it again today. I think that whenever SPARQL is in use, there will be caching issues, and it is a very bad problem. Is there any way of clearing the cache, or knowing when the cache will next be cleared, or how long it is necessary to wait before the changes come through? [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 18:59, 26 May 2026 (UTC)
oujkmqspl9o8yceen74ddrfdlhgnbys
278282
278275
2026-05-26T22:05:37Z
GrounderUK
50
/* Apparent error in implementations of grammatical genders from Wikidata lexeme (Z20616) */ Reply
278282
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== “Key not found ()”? ==
What am I doing wrong in {{Z|Z34137}}? [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 00:39, 25 April 2026 (UTC)
:You were passing a [[Z6091]] to {{Z|32290}}, but it takes a [[Z6001]]. Fixed. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 07:10, 26 April 2026 (UTC)
::{{done|Thank you}}! [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 14:13, 26 April 2026 (UTC)
== Is it OK to connect the implementation? ==
Hello!
I recently applied for functioneer on [[WF:RFG]], and I was wondering whether I could connect the implementation for {{Z|Z34165}} despite its dependency {{Z|Z34149}} being currently unimplemented. That is <em>if</em> I get accepted.
I am planning on implementing it based on [[wikt:module:bg-nominal]], but am still having trouble figuring it out for now. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 09:04, 26 April 2026 (UTC)
== Past tense function ==
Is there a function like {{Z|Z26039}}, but for the past tense (e.g. "Leo Tolstoy <em>was</em> a writer.")?
If not, I will create it myself, I just want to make sure there's not a duplicate. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:10, 26 April 2026 (UTC)
: {{Done}} with {{Z|Z34224}}, but I have a few kinks to work out with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:35, 26 April 2026 (UTC)
:: I need to create some other similar functions for the past tense, I have some ideas:
::* {{Z|Z26095}}
::* {{Z|Z32643}}
::* {{Z|Z28016}}
::* {{Z|Z26570}}
::* {{Z|Z33975}}
::* {{Z|Z27243}}
::* <ins>{{Z|Z26627}}</ins>
::* <ins>{{Z|Z27627}}</ins>
::* <ins>{{Z|Z27173}}</ins>
::* <ins>{{Z|Z29591}}</ins>
::
:: Are there any I have missed? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:57, 26 April 2026 (UTC)
:I think that here we are starting to walk on dangerous waters: what does past mean? Is it a recent o a far past? Does it have ripercussions on the present or not? Is it just a thing that happened once, many times or for a continuative period of time?
:Consider that various languages distinguish between many different types of past. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:38, 26 April 2026 (UTC)
:: {{re|Dv103}} That is a fair point...
:: How do we go about solving this problem though? I don't think having every sentence on Abstract Wikipedia be "X is a Y" is a very good idea.
:: Maybe we have different functions for all these variations of past you mentioned that just map into "X was a Y." in English? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 13:31, 26 April 2026 (UTC)
:::To properly solve this problem, we should use a more complete abstract content representation model, like for example the proposal of [[Wikifunctions:Type proposals/Semantic unit|Semantic units]] (look at [[Wikifunctions:Type proposals/Semantic unit/Douglas Adams|the example]] to see how times could be handled). For now, since we're still stuck with single fragment generation functions (that I hope will be slowly replaced with the complete represenation model, when available), we could just restrict your function to a very specific meaning, like "subject was an instance of, for most of its existence" (which means for example that it could be used to say "Douglas Adams was a writer", but not "Abraham Lincoln was a president", since he only was a president for 4 years). Probably my definition is still too vague, and this is why we need to go beyond these fragment generating functions. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:47, 26 April 2026 (UTC)
::Nitpick... I don't like that it outputs a string instead of monolingual text. With {{Z|Z26039}} it's used so much that I think it's unfixable in that case beyond deprecating it if people care that much, but {{Z|Z34224}} doesn't even have any connected implementations yet. Consider it, maybe?
::Nitpick 2... {{Z|Z34227}} is missing a language parameter. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:08, 26 April 2026 (UTC)
::: I will consider that!
::: I just did that because that's what {{Z|Z26039}} does, so I assumed I should follow suit with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 26 April 2026 (UTC)
== Legacy functions ==
If and when more robust methods of abstractly representing and generating linguistic content come around, and more efficient ways of creating abstract content are devised and implemented, I suspect that our current methods will require some form of deprecation. This is a significant source of concern for me in relation to WF and AW, questioning how prone our current methods of doing things are and eventually will be prone to obsolescence, and how it will be worked around when it comes. We have over 1 250 articles on AW presently, and these are rather all over the place. I suspect the maintenance burden from keeping these articles up to code will eventually, err, creep up on us, I suppose, and some kind of major refactoring will be necessary. We are definitely in a period of experimentation and whatnot right now but eventually, like with enwiki, some sort of structure and rigor will form and I suspect it will start to become rather boring for me...
I, for one, very much enjoy experimenting with new and better ways to do things here. I don't personally mind changing things to use a new and better paradigm if need be, that sort of thing highly excites me, but of course there will be things that are left behind, and I suspect maybe bots will be employed to deal with this? A lot of Wikipedia sister sites seem to do that, e.g. going and fixing up use of deprecated templates. Considering the nature of Wikifunctions and Abstract Wikipedia I suspect certain maintenance tasks will be made simpler or even trivial by the typical uniformity of our implementations.
I guess I am just concerned if Wikifunctions or Abstract Wikipedia will ever accrue its own kind of "technical debt" with how we are plowing through things presently, and if there is a plan for how we will eventually seek to mitigate that. Maybe too early to ask this question, but I am a notoriously anxious person, so I thought it wouldn't hurt to raise the question regardless... — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 21:30, 26 April 2026 (UTC)
:I very much agree, thank you for expressing my position so well. {{ping|Immanuelle}} has been using an AI-generated tool (well, they haven't edited in a week, perhaps it's a break or perhaps they don't wish to contribute to the project any more) to create a bunch of articles en masse, which I have warned them multiple times is a bad idea (on top of evolving functions, all of the articles are one-sentence-per-paragraph, [[abstract:Q12184|like so]]). That's why I've been avoiding creating articles recently, I'd say I have a good fourth (no data to support, rough guess) of the comments on the wiki, yet less than a percentage of the article count (only three, including the [[abstract:Q319|first article]], though, so perhaps I'm the next [[w:Special:Permalink/908493298|office.bomis.com]]). [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:41, 27 April 2026 (UTC)
:: I feel that the overwhelming presence of these low-quality articles (which I admit I myself am [[abstract:Q1710970|guilty]]/[[abstract:Q7601858|of]]/[[abstract:Q39338|creating]], usually as testbeds) may incur a large maintenance burden. I do expect them to be easy to detect, however, as searching for the presence of "deprecated" NLG functions is trivial, and it is possible that replacing them with their future ''even abstracter™'' counterparts could be done automatically since they all have the same signatures and can be expected to create the same form of sentence. If it needs to be done manually for a while or for certain delinquent instances, my hope is that it will be fun, at least for a while.
:: I just hope that these hypothetical future waves of "this new and versatile way of abstractly representing linguistic content" obsoleting previous methods and requiring refactoring across all articles is only a one-time thing. We should strive to be as robust and flexible as possible from the outset as each brand new paradigm of abstraction is also a brand new maintenance burden for updating old articles. At the end of the day, at least ''some'' of these articles will still render to many different languages even if their methods of creating those sentences of theirs is completely outdated. Ergo, the time it takes for the switchover to be performed across our articles should not be a persistent inconvenience for users (as, of course, they will always still be able to read the content as it was before since these legacy functions aren't being deleted outright), and the increased availability that the new methods will bring about will likely act as motivation for them to join the effort in refactoring (「You're telling me that if I rewrite this article in this cool Lisp-looking stuff then I can probably read it in [[abstract:Q9307|Galician]]?? COOL!」). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 20:26, 27 April 2026 (UTC)
:::Totally agree. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:54, 28 April 2026 (UTC)
:::My vague plan is to implement a default function returning an {{Z|Z89}}, for each language-neutral function. A single function would convert any of these to a {{Z|Z11}}, so that a composition of the two can be implemented as the current default until such time as the language-neutral function is ready to return a [[Z89]]. We can already convert a [[Z11]] to a [[Z89]] so, although there is more to be done in this space, existing language-specific functions could be adapted to return a [[Z89]] quite mechanistically.
:::Although we certainly could deliver parallel Z89 functions for each existing Z11 function, I don’t think we should assume that particular outcome. Provided the Z89 captures a lang attribute from the Z11’s language tag, the two representations should be largely interchangeable, although I am expecting a Z89 to carry additional attributes at the span level that would be lost on conversion to a Z11 (along with any higher-level tags and attributes).
:::When I say there is “more to be done in this space”, I am referring to a new type that would allow HTML fragments to be represented as tractable Wikifunctions objects, but this is currently drafted only in my head! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:21, 29 April 2026 (UTC)
== Filtering types of objects ==
Hello!
I have tried to comb through my own edit history several times, but it's really hard to search for specifics because there's no differentiation between different types of objects (functions, implementations, tests, etc.) in the logs as far as I can tell.
Am I missing anything? I want it to work sort of like how filtering by namespace works. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 27 April 2026 (UTC)
:There is differentiation, it's just rather hard to look through. Since all ZObjects are just JSON data at their core, you can search for instances of <code>{ "Z1K1": "Z[type]"</code>. I haven't tried this so I'm not sure how well it would work and I know MediaWiki search syntax treats quotation marks as a special character, but I have seen Wikifunctions pages link to searches using this before. There is also [[Special:ListObjectsByType]] but it is sitewide rather than specific to your edit history in particular. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 18:59, 27 April 2026 (UTC)
::''[It doesn’t help directly here, but please see [[WF:Find]] for more details of how this works.]'' [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:24, 29 April 2026 (UTC)
:See the feature requests [[phab:T399244]]/[[phab:T373735]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:06, 28 April 2026 (UTC)
:The lack of filtering edits by namespace is exactly the problem that I was trying to solve with the [[User:Amire80/wikifunctionsanalytics]] tool.
:I even kind of succeeded, but it has two major problems:
:# It doesn't have any real frontend, so you have to know some SQL to use it (or ask other people who know SQL).
:# It doesn't get information from the live site, but from the dump, which appears to be updated once a month.
:I've made a [https://quarry.wmcloud.org/query/104794 sample query for you]. Unfortunately, it won't do anything at the moment because of the second problem—your edits started in April 2026, which isn't over yet, so the dump for it hasn't been processed. But I hope that early in May you'll be able to use the same query and see something useful.
:(I plan to add support for recent edits, but I haven't done it yet. Now that I more or less figured out how to process Wikifunctions edits, I'm focused on trying to understand Abstract Wikipedia edits. Processing up-to-date edits from both sites will possibly be the next thing I work on, but if you know some Python and want to try doing it yourself, don't wait for me—[https://gitlab.wikimedia.org/toolforge-repos/wikifunctions-analytics Patches welcome].) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 18:51, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]], I've just updated the data until the end of April. Now the query to which I linked above gives some results. You can also try running other queries if you know SQL. (Or try asking for other queries if you don't.) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 03:26, 3 May 2026 (UTC)
== [[Z34213]] ==
I'm not quite sure why this implementation is failing. Could someone take a look? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:24, 28 April 2026 (UTC)
:I've [https://phabricator.wikimedia.org/T419933#11863997 notified] the team that this is still occurring, the issue was marked as resolved. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:52, 28 April 2026 (UTC)
:Some useful tips:
:* create more testcases: sometimes it is a random error, so try to see how consistent it is between testcases
:* your implementation is very inefficient, since it fetches items and lexemes a lot of times. Ideally, each item and each lexeme should be only fetched once in all the execution tree.
:[[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 06:06, 28 April 2026 (UTC)
::Caching (''should?'') means that the lexeme and item data are cached, so the call doesn't actually execute multiple times. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 17:51, 28 April 2026 (UTC)
:::Are lexemes and items actually cached within the same function execution? Even if they are only partially fetched and/or fetched in bulk? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:54, 28 April 2026 (UTC)
::::I don't have any evidence to prove that it works but that's definitely A. what's supposed to happen and B. the ideal behavior. This happens because the Z680X functions can be cached just like any other. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 18:02, 28 April 2026 (UTC)
::::It is unclear. In general, I believe identical branches are resolved only once in orchestration, but there is also independent caching of Wikidata fetches.
::::According to @[[User:DMartin (WMF)|DMartin (WMF)]] ([https://t.me/Wikifunctions/30374 on Telegram]):
::::<blockquote>Well, no. We have caching of Wikidata entities that have been retrieved, but not of the results of nested function calls. There is a proposal for doing this in the context of the V2 composition language, when it's a bit more mature, and it's regarded as a relatively high priority.</blockquote>
::::It’s hard to tell whether fetches in nested calls are, in fact, cached and available for other nested calls in the same call, since it is not generally the actual fetch that consumes the most resources. Rather (I believe), it is construction and transmission of the result object, which is currently repeated afresh in each nested call (unless it is in an identical branch).
::::I hope that’s clear, and I apologise in advance if it happens to be inaccurate! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 29 April 2026 (UTC)
:::::Oh, I should clarify. There is a lot of caching going on, in several different places. Lexemes and items ''are'' cached by the orchestrator within the same function execution, even if they are only partially fetched and/or fetched in bulk. When I said that we don't have caching of the results of nested function calls, I meant that's not happening in general, for all nested function calls in compositions. But fetching of Wikidata entities gets special treatment, so yes, fetched content from Wikidata is cached, regardless if it was fetched by a top-level call or a nested call.
:::::It is also true that the construction of a ZObject from the fetched JSON might happen more than once within the same function execution, depending on how a composition has been structured. However, the construction of the ZObject is actually very fast, compared to the elapsed time of getting the JSON from Wikidata. [[User:DMartin (WMF)|DMartin (WMF)]] ([[User talk:DMartin (WMF)|talk]]) 18:04, 1 May 2026 (UTC)
== Question about cardinal numbers ==
I was about to edit {{Z|Z16435}} to add my function {{Z|Z34308}}, but I noticed that none of the other functions have a gender parameter.
Should I create a new wrapper function "Bulgarian cardinal, neuter", or should I just remove the gender parameter and always return neuter? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:39, 28 April 2026 (UTC)
:The “cardinal” functions should return the words used for “counting” numbers in the abstract.
:We should consider converting them to return a {{Z|Z11}} rather than a {{Z|Z6}}. It may even be appropriate to return a {{Z|Z12}} to cater for language variants. Either way, I think that would be the approach to adopt for inflected forms, unless reference to specific lexeme-forms is required. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:52, 28 April 2026 (UTC)
::This. If a native of your language were to count up, which form would they be most likely to use? [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:29, 28 April 2026 (UTC)
::: {{re|GrounderUK|Feeglgeef}} Thanks for both your input!
::: I relabeled the aforementioned function to {{Z|Z34308}}, and created a new wrapper function {{Z|Z34457}}.
::: Should I specify that my old function is a monolingual text in parentheses? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:26, 28 April 2026 (UTC)
::::You don't have to, unless you think that is something that would require distinction when viewing the function in a list of search results &c. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:36, 28 April 2026 (UTC)
== Optional/nullable function parameters ==
Hello!
Recently, I was informed that Wikifunctions has no optional/nullable function parameters as of now.
Are there any future plans to support this, and/or workarounds? Maybe create a union type system like "{{Z|6}} or {{Z|23}}". <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 17:53, 28 April 2026 (UTC)
:What I do for this is use an "is empty" function corresponding to the type of the parameter in an If statement. If it isn't empty, the function works as intended. Otherwise, it does something else. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:58, 28 April 2026 (UTC)
:Unions are not a thing (yet) on Wikifunctions, but you can always define an argument of type {{Z|Z1}}, which means that all types are allowed (I already did this for {{Z|Z26737}}; note that it is still a ugly workaround, don't use it for high level functions). Also, note that usually on Wikifunctions we use {{Z|Z24}} as the null value. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:00, 28 April 2026 (UTC)
:: {{re|JJPMaster|Dv103}} Thanks for your help!
:: @[[User:Dv103|Dv103]] told me a function call with a missing parameter is treated as an invalid function call, so how does the "is empty" function work with that?
:: Also, setting the type to {{Z|1}} seems naive, like setting the type as <code>any</code> in TypeScript...
:: Related question: Are there plans to add default values to parameters (outside of "if empty")? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 18:19, 28 April 2026 (UTC)
:::Setting the type to {{Z|Z1}} is actually naive, and that's why I advised you to only use it for low-level functions. Currently there is nothing better. Sometimes, type correctness is not actually checked, so it might seem that nullable types are possible. But it is still an hack, and it could broke anytime since it is not intended behavior.
:::I don't think that there are current plans to add default values (but correct me if I'm wrong). The closest thing that comes to my mind is that, if you incorporate Wikifunctions into Wikitext, you can leave empty some fields (only of some specific types) and Parsoid will replace them to their default value. This is done only depending on the type, and not on the functions. For example, {{Z|Z6091}} and {{Z|Z6001}} are assigned the QID associated to the page, and {{Z|Z20420}} is assigned the current date. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:56, 28 April 2026 (UTC)
:::@[[User:QuickQuokka|QuickQuokka]]: At the very least, [[Z10008]] accepts a null input. Maybe that feature is unique to the String type—I am not sure. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 19:10, 28 April 2026 (UTC)
::::I think it's just not checked, but it shouldn't be intended. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:20, 28 April 2026 (UTC)
::::Strings and typed lists can be “empty” in the sense that their length can be zero. Typed pairs may also be “empty” in a degenerate sense, but such an object will not be returned from a code implementation. A typed map with no entries will also fail to be returned from code, although it is fine in compositions.
::::For a genuinely optional parameter, I prefer a properly typed list, which at least encourages an argument of the correct type. {{Z|Z813}} is also typically faster than {{Z|Z10008}}. Quite a good example of this approach is {{Z|Z23723}}, where it helps to resolve the type union (using [[Z1]]) for both Z6003K1 and Z6003K3. Of course, there’s nothing to prevent more than one element in the list, but additional elements are easily ignored. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:55, 28 April 2026 (UTC)
:Pinging {{ping|Jdforrester (WMF)|prefix=|p=}}, I believe there are no current plans. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:02, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]]: I'm afraid there are no current plans to build out optional params, indeed; we would be happy to review this if a compelling case was made, but it'd be a lot of work to re-build the [[Wikifunctions:Function model|function model]] with that support and ensure we don't break (too many) things. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 19:11, 28 April 2026 (UTC)
== Z6830 for Chinese ==
I was trying to use {{Z|Z6830}} for implementation in the Chinese-language. And turns out most of the Lexeme on Wikidata is using [[d:Q727694]] as the language instead of [[d:Q7850]]. This makes it impossible to use the mentioned function above, since Standard Chinese is not available (or did I miss something?). Is there a way to fetch lexemes with language=[[d:Q727694]] from item? [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 18:20, 30 April 2026 (UTC)
:@[[User:Sun8908|Sun8908]] There is [[Z1006]] for Chinese and it has the language code zh. There is an overview of languages in [[Module:Wikifunctions label]] so you can search there for chinese versions and choose the one you need. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 20:53, 5 May 2026 (UTC)
::I know that. The problem is when using the function [[Z6830]], it cannot retrieve lexeme with language [[d:Q727694]] (but it is the "Chinese language" with the most current Wikidata lexemes, see [https://ordia.toolforge.org/language/ ordia]). I think it should be a Wikidata problem, I might fix it (possibly by creating the same lexemes with language code zh) on Wikidata. Thanks anyway. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 05:39, 6 May 2026 (UTC)
:Could you provide an example of a Chinese lexeme that has a linked Wikidata item, or a Z6830 function call that fails to find such a lexeme where one exists? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 07:55, 6 May 2026 (UTC)
::Here: [[d:Lexeme:L846083]]. I think that's a primary reason of me trying to look into this problem, as the label in zh for [[d:Q6256]] (country) is not a single phrase (see its talk page on WD for more information). This makes some Abstract Wikipedia articles very weird in Chinese when {{Z|Z26570}} is used, so lexeme could potentially fix that. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 10:33, 6 May 2026 (UTC)
:::Thank you. It looks as though {{Z|Z6830}} [https://www.wikifunctions.org/view/en/Z6830?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6830%22%2C%22Z6830K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q6256%22%7D%2C%22Z6830K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P5137%22%7D%2C%22Z6830K3%22%3A%7B%22Z1K1%22%3A%22Z60%22%2C%22Z60K1%22%3A%22cmn%22%2C%22Z60K2%22%3A%5B%22Z6%22%5D%7D%7D returns that lexeme for language tag "cmn"]. Perhaps that tag should be added into the helpers for {{Z|Z24144}}? If it is widely used for lexemes, perhaps it should have its own {{Z|Z60}}? In any event, improvements might be considered under [[:phab:T390563]] (or otherwise), including amending [[Z6830]] to also consider "cmn" (and "zho", "chi"…?) when requests are made for "zh-hans" or "zho-hant" (or others?) @[[User:Winston Sung|Winston Sung]] @[[User:DMartin (WMF)|DMartin (WMF)]] [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 17:22, 6 May 2026 (UTC)
::::If you go to [[d:Special:NewLexeme]] and put in [[d:Q727694]] as the language, it is going to tell you it has an unrecognized language code. So I believe "cmn" should not be a {{Z|Z60}} by default? I also started [[d:Wikidata:Project_chat#Lexemes_with_language_Standard_Chinese_(Q727694)|a discussion on WD]] regarding this. I guess we can still use it as a fallback language though if possible. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 03:43, 7 May 2026 (UTC)
::::We don't have a separated <code>cmn</code> BCP 47 language subtag in MediaWiki and Wikidata at the moment. <code>zho</code> and <code>chi</code> are ISO 639 language codes but not BCP 47 language subtags.
::::For Modern Standard Mandarin, please use <code>zh-*</code> language tags for now. -- [[User:Winston Sung|Winston Sung]] ([[User talk:Winston Sung|talk]]) 15:26, 8 May 2026 (UTC)
== Key not found error ==
Is there a reason why I am getting key not found error for this [[Z34677|function]] {{Z|Z34677}}? All the underlying functions run and all the test cases work. The debug information does not give more details. Any pointers? Thanks in advance [[User:Jsamwrites|John Samuel]] 19:24, 1 May 2026 (UTC)
:It was passing the [[Z6091]] to {{Z|34641}} when that takes a [[Z6001]]. I've fixed that, but there's some other problem with the logic, so I've left it disconnected. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:42, 1 May 2026 (UTC)
::@[[User:YoshiRulz|YoshiRulz]] Thanks a lot. [[User:Jsamwrites|John Samuel]] 20:21, 1 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #246 is out: Request for input: what should we count for Abstract Wikipedia ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we ask you what would be the relevant metrics for Abstract Wikipedia, we discuss our latest news on Composition Language v2, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 12:21, 2 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== Any formal process for deletion of pages ==
Does a formal process exist for the deletion of functions, implementations, and tests that includes a notification system for creators, analogous to Wikidata’s process, explaining the rationale behind the deletion (or proposal for deletion)? [[User:Jsamwrites|John Samuel]] 12:36, 3 May 2026 (UTC)
:Does [[Wikifunctions:Requests for deletions]] work? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 13:00, 3 May 2026 (UTC)
:Please see the discussion at [[Wikifunctions talk:Requests for deletions#Should we expect Objects' creators to get pinged on deletion proposals?]].
:As I see it, it is the proposer’s responsibility to consult appropriately before making a request and we expect our administrators to act only when satisfied that appropriate consultation has occurred. In many cases, no consultation is required. Administrators may delete their own contributions without making a request, but this is not a practice I would encourage. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:51, 3 May 2026 (UTC)
== Implementation of rational number in JS doesn't match in Z19677 (Rational number) and Z28579 (RGBA colour) ==
In {{Z|19677}} it's
<syntaxhighlight lang=js>
{
"K1": sign * numerator,
"K2": denominator
}
</syntaxhighlight>
but in {{Z|28579}} it's
<syntaxhighlight lang=js>
[ sign * numerator, denominator ]
</syntaxhighlight> '''<span style="font-family:Iosevka,monospace">[[User:沈澄心|<span style="color:#9f3526">dring</span>]][[User talk:沈澄心|<span style="color:#534fa3">sim</span>]]</span>''' 05:15, 4 May 2026 (UTC)
:I'm guessing this is why [[Z34743]] fails all the tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:00, 18 May 2026 (UTC)
== Nested functions in compositions ==
I wish it will be easier to a add another function about a specific existing function in a function implementation based on a composition. When I write long functions in spreadsheets I usually stat with a small part and then I try to go further and after important steps I test if the output is as expected. I created [[Z34826]] to get the German gender specific occupation lexeme for a specific person based on their gender. I wanted to add a function around the existing one and it was not successful. It is not very easy to implement as it requires the possibily to move a part to another section but I think it can be helpful if it will be implemented. So far I spend more time as expected on the function. Describing it with words what the function needs to do is much easier than implementing it here in Wikifunctions. So I think there needs to be improvement to make Wikifunctions more accessible. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:10, 5 May 2026 (UTC)
:Have you tried to use the copy-paste functionality? It is very useful to move parts of composition arounn. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:12, 6 May 2026 (UTC)
:I've also found the composition editor to be wholly unsuitable for any expressions more than a few levels deep. (Even with the <code>localStorage</code> clipboard, because of its overzealous type checks.) Compositions naturally grow out from the "leaves", the immediate operations on the inputs, while the interface really wants you to build from the "root". I mostly use the [https://yoshirulz.gitlab.io/WikiLambdaBlockly drag-and-drop block editor] which I made to smooth over some of the site's problems, so if you want to try that out and give me some feedback I'd appreciate it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 14:36, 6 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #247 is out: References from Wikidata now available ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-08|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we announce that is now possible to pass references in Wikidata statements, we introduce the [https://abstract-data.toolforge.org/ Abstract Data dashboard], we report you on the presentation about Abstract Wikipedia at WikiCon Australia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1778520600 May 11, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:16, 8 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== RGBA colour, spelling... ==
Something that has always irked me a little bit is the spelling of [[Z28579|RGBA colour (Z28579)]]. I guess this is not unsurprising for me considering my use of US English but I think there is more to it than preference and I want to try to argue for it being changed to use American spelling. I know that this probably has a snowball's chance in hell of actually garnering any support, so I won't really be miffed if the spelling remains as it is, but I thought it wouldn't hurt to raise this regardless.
The main issue I have with it is the spelling of the original proposal. When infernostars raised the [[Wikifunctions:Type proposals/RGBA color|type proposal]], the spelling was 「RGBA color」. Of the comments that mentioned the word 「colo[u]r」, two used British spelling while six used the American spelling as used in the proposal. The only thing that really pointed to the use of ''colour'' was the fact that the catalog page on color functions used that spelling already. For all intents and purposes, the spelling of the original proposal should have been maintained, but it was not; [[User:DVrandecic (WMF)|DVrandecic]], the eventual creator of the type, used a different spelling.
It should be noted that there was really no reason for this to occur and while it is an undoubtedly minor issue I still believe it should be rolled back and the type should use the spelling of the original proposal and majority of editor comments. In [[abstract:Q936|OpenStreetMap]], there have been keyvalue proposals that have had the finalized spelling that gets put to use be in British English despite the original proposal being in American English; this has usually occurred with proposals relating to 「X center/centre」 tags. This makes sense on the surface, because OpenStreetMap is maintained by a UK organization, and still has close ties to Europe. The Wikimedia Foundation, however, is an ''American'' company. This is often brought up as a fallible argument when debating article spelling on the English Wikipedia, and I don't bring it up to support that 「RGBA color」 should be used for that exact reason, but rather to state that OpenStreetMap's general policy on tag names need not apply here. It appears to me that, at least initially, the majority of 「core contributors」 to Wikifunctions used British English; I can name YoshiRulz, 99of9, GrounderUK, and VIGNERON.<ref group="color">I'm avoiding linking to these folks because I don't think pinging them about this discussion is all too necessary unless they themselves want to be involved; I don't want to clutter their inboxes just to briefly mention them. I pinged Denny because, well, I'm asking him a question directly, but everyone else I would prefer to join this discussion by their own accord... not that I wish for this decision to be confused as me going 「these people use British English so they will probably oppose my idea, I won't invite them to the discussion because of that」...no, I promise you that is not the reason.</ref> I see (or saw) these people ''everywhere'', so it makes sense that British English has prevailed in some sorts on this website, but I don't think that indicates that it should be the ''preferred'' spelling across the website, at least not to the point where a proposal should have its name changed to match such a "consensus".<ref group="color">It could be argued that the front-and-center ''Function catalogue'' using 「catalogue」 is actually indicative of such a "consensus", but ''catalogue'' is in a similar position to the word ''grey'' where I live (that is, the US) in that it is used just as often as its American counterpart. Also, consider Wiktionary's ''Beer parlour'' project chat.</ref>
The unnecessary modification of the original spelling is my main argument for changing it back... but of course, I must obligatorily state that on English Wikipedia, it is [[w:Color|Color]] and [[w:RGBA color model|RGBA color model]]; on Wikidata, it is [[d:Q1075|color]] and [[d:Q2325624|RGBA color space]]; in CSS (which typically uses hexadecimal triplets to specify RGBA values), the properties are <code>color</code>, <code>background-color</code>, etc.; bit of a weak jab, but on Schema.org it is [https://schema.org/color color], [https://schema.org/colorSwatch colorSwatch]; et cetera. {{Z|Z28580}} uses ''color'', so does {{Z|Z28591}} and its Python counterpart.
Mr. Vrandečić, I have to ask, I'm rather confused... you created the color type using British English spelling, but you were also responsible for the creation of the equality function which uses the American English spelling. You also seem to be writing in American English for the status updates, judging by your use of -''ize'' over -''ise'' endings and use of ''program'' over ''programme'' in [[Wikifunctions:Status updates/2026-04-16]]. Is there something I'm missing or have you switched your preferred variant somewhere along the way?
Anyways, do consider this if you wish... again, I don't suppose this will garner much support, it is the ''non-issuest'' of ''non-issues'', but it has irked me to the point where I want to ask about it to get some answers, if nothing else. I am not arguing for every other color function to have its name changed, just the type itself.
<references group="color"></references>
— [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:04, 8 May 2026 (UTC)
:This is a multilingual project; the <code>en</code> label is <code>RGBA colour</code> and the <code>en-us</code> label is <code>RGBA color</code>. Though I'm not able to switch to <code>en-us</code> via the language picker so that would need to be fixed.<!--
--><br>edit after reading your whole comment: The same is true of {{Q|1075}}, there are labels specified for multiple English variants. (In {{Q|2325624}} it's only an alias.) I agree that other websites' choices aren't binding on us, but from that, I conclude that the more widespread British/Commonwealth spellings should be used for the generic <code>en</code>. As for myself, I'm Aussie and I will continue to use the BrE spellings ([[w:en:Oxford_spelling#Language_tag_comparison|+ "routing"]], TIL) if only by muscle memory.<!--
--><br>[[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:42, 8 May 2026 (UTC)
:: Your lattermost point would normally be fine in a perfect world. Wikipedia's <code>convert</code> function defaults to "international" English, which I don't personally take issue with because it happens that we here in America are actually outliers for saying and spelling things differently... err, or we were for a while at least, nowadays it seems like an even split (plus you have "yield" vs. "give way" which is effectively the logical opposite of US's use of "meter" over "metre").
:: However, this is not a perfect world, and I don't think <code>en</code> should correspond to any particular variant. It is too fragmented across all software at this point to impose such a requirement. The inability to switch to <code>en-us</code> on this website foregoes an easy and simple solution to this problem that makes everyone happy, because the yanks (such as myself) can't be happy because we can't see the labels in American English even if we wanted to, and the other folk can't switch either as far as I'm aware (and the en-CA and en-GB languages in the preferences page seems to be deprecated). My point being, <code>en</code> is abused to mean "en-UK" just as often as it is abused to mean <code>en-US</code>; I think a decision shouldn't be made on such an assumption of one "default". — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:48, 12 May 2026 (UTC)
:Hi @[[User:Theki|rae]]! I have no opinion nor preference on this, and given my background, I am just entirely confused about my spelling preferences myself, as you can tell from my inconsistent usage. I learned British English in school and used that for maybe two decades or so, but moved to the US and lived there for more than a decade, enough to be naturalized, but now I am back in Europe and I am technically a professor at King's College London, soooo.... honestly, I do not know. I don't remember having put too much thought into it at the moment I created it. The good thing is that in Wikifunctions, just as in Wikidata, it is easy to change, without messing things up too much (unlike in Wikipedia), so my suggestion is, just make the change, see if anyone complains, and if they do, discuss it more. I don't know if there is a guideline already in Wikifunctions about the variants. I am happy either way, and honestly, I keep forgetting which variant is which most of the time. --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 18:16, 10 May 2026 (UTC)
:: I can definitely understand this, although I am unfortunately rather passionate about any minutiae involving preferential minor differences in ''anything'', of which AmE vs. BrE chiefly is. So I dedicate a lot of headspace to it. More than I should. Not that I wish to imply that the comment above that I have wrote is of an irrational nature, or done out of spite or pure emotion and subjectivity; I do genuinely believe that ''RGBA color'' is beyond just a personal preference and is just logical. I may boldly go and change it, but for some reason I was expecting that changing the English label of a Type would require elevated permissions, and I also didn't want to do it only to get immediately reverted because it ''did'' strike a chord with someone, when I could instead see how apathetic, supportive, or in opposition interested people are beforehand and ''then'' act accordingly. I was not meaning to antagonize you over your spelling habits, I did actually use British English for a few years starting in 2020 before I went back to American English, so I'd be a hypocrite for me to decry you for not always sticking to some arbitrary standard of spelling words over the other. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:55, 12 May 2026 (UTC)
:Although I spell it “colour”, I think it makes more sense to use “color” for the type, since that is almost always the required spelling when the string functions as a keyword.
:More generally, though, Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en". This is unusual, in my experience, as "en" is widely misused in place of "en-US", where there are recorded spelling differences.
:(I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere. Use of -ize rather than -ise is a matter of personal preference or house style, but regional autocorrect encourages -ise.) [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:00, 12 May 2026 (UTC)
:: ''Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en"''
:: Definitely agreeing with you on the latter being a good choice. However, I suspect the favoring of "colour" over "color" may be because, in terms of language codes, when sorted alphabetically <code>en-us</code> actually comes ''after'' <code>en-gb</code>. Although, the frontend seems to be sorting <code>en-ca</code> after <code>en-gb</code>, so I don't actually know how correct that is.
:: ''I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere''
:: The context of the spelling was "''No program for the NLG SIG meeting for next Tuesday has been proposed''". In that usage context, I think it makes sense to assume that ''program'' is not being used to refer to a computer program, but to a ''program of events'' or similar, something that you would spell as a ''programme'' in British English. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:02, 12 May 2026 (UTC)
:{{s}} this. I'm obviously biased but I believe American English is preferable generally, American dominance on the internet (our Department of Defen'''s'''e invented it!) and rapidly-increasing consumption of American media by international English speakers means that more people use American English's conventions, this is clear through for example [http://trends.google.com/explore?q=color%2Ccolour&date=all&geo=Worldwide search trends] (though they aren't particularly reliable). Perhaps this is a bit of a supremacist opinion, but we should have internal consistency, and if we must choose, American English should be our first choice (then Indian and then British English) [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:10, 12 May 2026 (UTC)
:: This is rather flawed reasoning, though. I think probably any given British or Indian person would not agree on using that as the reasoning for this, not that you are necessarily ''completely wrong'', but if this is not a good enough reason for English Wikipedia's (admittedly extremely flawed) ''ENGVAR'' policy then I don't think it's likely it will pass here either.
:: Although of note is that [https://books.google.com/ngrams/graph?content=color%2Ccolour&year_start=1800&year_end=2022&corpus=en&smoothing=3&case_insensitive=true Google ngrams] agree with you, but "color" vs. "colour" is an eternal holy war that will not be won by demonstrating that more books use US spelling over Commonwealth spelling. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:44, 12 May 2026 (UTC)
:::You're probably right that it's not very sound. I'm biased in that other varieties of English irk me, and that's probably mutual for people who are used to other varieties of English when they read what I write! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:56, 12 May 2026 (UTC)
:I've decided to boldly [[Special:Permalink/274271|make the change]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:02, 12 May 2026 (UTC)
:: Thank you. Considering both you and GrounderUK seem to consider it an okay change, I think this will do for now.
:: I should note that the matter of whether to move [[Wikifunctions:Catalogue/Colour functions]] in response to this (however this discussion will ultimately turn out) is a whole other can of worms, in my view. I can't say I have an opinion on that at the moment, but I'm putting it out there regardless. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:06, 12 May 2026 (UTC)
:::Personally, I'm in favor of moving the page and renaming all of the items on it. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:10, 12 May 2026 (UTC)
::I don't like this (exactly because of the American hegemony you cited), but again, it shouldn't matter because the software is meant to be multilingual. Clearly there's a bug preventing you from picking an English variant/dialect as your display language. But the search bar and Function/Type autocompletion do check the English variants for matches. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:15, 12 May 2026 (UTC)
== Proposals on the architecture of Abstract Content rendering ==
Starting from a discussion born on the Telegram chat, I've explained two different proposals on how the NLG on Abstract Wikipedia should be organized in the page [[abstract:User:Dv103/Abstract articles architectures]]. Please come to contribute to the discussion, or to propose alternatives. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 14:31, 11 May 2026 (UTC)
:Thank you for dedicating your time to writing this, it is very informative. I will try to add input once I'm not in over my head with finals. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:27, 12 May 2026 (UTC)
== Display function for HTML fragment ==
Currently, any collapsed Z89 literal appears as<blockquote><> [[Z89|HTML fragment]]</blockquote>If I were to create a new Function which returned something like<blockquote><> 123-byte HTML fragment <q><nowiki><td><span lang=</nowiki>…</q></blockquote>could that be connected to replace the collapsed form, or would it require changes to the Wikilambda software? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:14, 11 May 2026 (UTC)
:It might work, but I doubt it. Those angled brackets suggest that the collapsed form is not simply defaulting to the type’s label. Looking at [[:phab:T410509]], I’ve concluded that enhancements to the collapsed form were never considered, rather than being actively rejected. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:12, 12 May 2026 (UTC)
::[[:Phab:T391985]] documents the original design. Note the fifth bullet point under “Acceptance criteria”. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:21, 12 May 2026 (UTC)
:I'm not sure the byte-size is necessary, but the outer tag (or first outer tag, though generally I'd prefer most fragments use a wrapper tag if it needs multiple like JSX does, but that's a whole different topic) would be nice. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 12:51, 12 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #248 is out: A higher meaning ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-15|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss functions creating language fragments, we present our latest news in Types, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:36, 15 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
== [[Z34510]] ==
This function, which determines if a Wikidata item for a {{q|5}} has an undeprecated {{p|21}} statement of {{q|6581097}}, returns false for {{q|173399}}, a transgender man. This is because his item assigns his P21 statement to {{q|2449503}}, not {{q|6581097}}. I'm not sure how to account for this discrepancy. Should {{z|34510}}:
# Include {{q|2449503}} as a value that can lead to a true result,
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a man?") could return true for either "male" or "trans man",
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a trans man?") could return true for "trans man",
# Not exist at all?
[[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 16:48, 16 May 2026 (UTC)
:I can't think of a single use case where you would need to determine if a person is a cisgender man and nothing else. Functions are good for generalizing across multiple possibilities when they exist, so I think it would be best if trans men were considered a part of the criteria for returning a true value. If asking for specifically {{q|6581097}}s and ''nothing'' else was desired then the function name would be a misnomer as Elliot Page is inarguably a male (at least in the view of most reasonable and intelligent people). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 19:03, 16 May 2026 (UTC)
:You made the function in the first place; what were you planning on using it for? AW? Maybe it should return a {{Z|25501}} which can then be passed on to other NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:01, 16 May 2026 (UTC)
== Lexeme from wikidata label, or "best" lexeme from wikidata item ==
I was looking into fixing [[Z28028]]. I found that I could add "requires grammatical feature: definite article" to "United Kingdom" (L8558). Now I'm stuck on how to get to that lexeme from {{Q|145}}. There's [[Z23471]], but that for very good reason gives you multiple lexemes with the same sense, and I just want the best one like how the label is always the best string. Is there a function that can do this?
There's definitely the case of a Wikidata label that isn't a lexeme (most commonly multiple lexemes) but I'm only considering the case where it is one lexeme here. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 20:02, 16 May 2026 (UTC)
:There is {{Z|Z27327}}, that tries to give the best lexeme through various heuristics. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 22:22, 16 May 2026 (UTC)
:: Wonderful! I did stumble upon [[Z33818]] but this is perfect. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:25, 17 May 2026 (UTC)
== [[Z29591]] isn't working for me ==
For instance, trying to manually put in the exact inputs for one of the test cases just returns an empty Monolingual text. See [https://www.wikifunctions.org/wiki/Z29591?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29591%22%2C%22Z29591K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3257809%22%7D%2C%22Z29591K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z29591K3%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z29591K4%22%3A%22Z1002%22%7D]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 01:17, 17 May 2026 (UTC)
:You used [[:d:Q22006653]] rather than [[:d:Q1075]]. It looks like the [https://www.wikifunctions.org/wiki/Special:RunFunction?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D explanatory error] is suppressed by the [https://www.wikifunctions.org/view/en/Z30009?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30009%22%2C%22Z30009K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D%2C%22Z30009K2%22%3A%22Z801%22%7D final transformation]. The returned result is not actually empty; if you expand it, you can see that it is an unresolved function call. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 09:59, 17 May 2026 (UTC)
== [[Z35298]] ==
Does anyone know what the problem with this implementation is? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 21:14, 18 May 2026 (UTC)
:There is a bug that doesn't allow Python implementation to return nested lists. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:31, 19 May 2026 (UTC)
::Is there a Phabricator task for this? Searching through them is hell. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 03:22, 20 May 2026 (UTC)
:::A bit of time ago I opened [[phab:T392750]], which is very similar to this issue. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:26, 20 May 2026 (UTC)
== May 2026 Wikimedia Café meetups regarding the Wikimedia Foundation Annual Plan ==
<div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)">
<div class="box" style="float:left; padding-top: 15px; padding-right: 15px;">[[File:Wikimedia Café logo in plain SVG format.svg|75px|alt=The logo for the Wikimedia Café]]</div>
Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities during the last weekend of May. Both sessions will focus on the [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2026-2027 the 2026-2027 Wikimedia Foundation Annual Plan]. Participants may attend either or both sessions.
#'''Saturday, 30 May 2026 at 15:00 UTC''' ([https://zonestamp.toolforge.org/1780153200 timestamp converter]), at a time friendly to the Americas, Africa, and Europe
#'''Sunday, 31 May 2026 at 05:00 UTC''' ([https://zonestamp.toolforge.org/1780203600 timestamp converter]), at a time friendly to Asia and the Pacific
Café participants are highly encouraged to read in advance [https://en.wikipedia.org/wiki/User:Sohom_Datta/annual_plan_guide at least this summary of the plan]. Optionally, Café participants are encouraged to read portions of the plan that interest them and [https://meta.wikimedia.org/wiki/Talk:Wikimedia_Foundation_Annual_Plan/2026-2027 ask questions or provide feedback on the Annual Plan talk page].
Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#May_2026_meetings_with_a_focus_on_Wikimedia_Foundation_Annual_Plan/2026-2027 tables of timestamp conversions for both sessions], [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#Agenda._This_will_be_an_approximately_1_hour_Caf%C3%A9_session,_and_is_extendible_for_an_additional_30_minutes_if_needed. the agenda], and [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]!
<br />
[[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div>
<span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 19:56, 21 May 2026 (UTC)
== How to handle items without lexemes ==
NLG functions relay heavily on the presence of lexemes associated to items on Wikidata. But we know that not all the Wikidata items have an associated lexeme. There are multiple reasons why an item does not have an associated lexeme, like:
# The lexeme has not been created yet
# The item represents a place
# The item represents a person
# The item represents a specific concept that can only be expressed by a specific combination of words that cannot be [[Wikidata:Wikidata:Lexicographical data/Notability|notable]] (like {{Q|Q61220733}}).
My doubt is: what should we do with this fourth category? For many languages, just using the Wikidata item label is not possible, since it is necessary to conjugate the words or to retrieve grammatical information like the gender. What should we do? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:09, 23 May 2026 (UTC)
:In that particular example, I think the thing to do is read its {{P|279}}: {{Q|21191270}}, then have some kind of heuristic based on that which says to take its {{P|8345}} and attach that Item's label to a Form of the word for "episode". In general, synthesising Lexemes for proper nouns is one of the problems that [[abstract:User:Dv103/Abstract_articles_architectures|proposals in your list here]] will have to address. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:59, 23 May 2026 (UTC)
[[File:Wikidata content 2024.svg|thumb|Content of Wikidata by type]]
::{{ping|Dv103}} very good point.
::For your point 2, it depends of the place but I think that quite often a lexeme can be created (most "Administrative territorial entity", most geographical entity, etc.). And with 3, your can add a lot of types (see pie chart) : Scholarly article, Human (with a very few exception), Wikimedia Category, Disambig, etc. which is (rough estimation) 2/3 of Wikidata items.
::A common rule (in dictionaries since forever and in Lexemes) is to not create an entry which is the "sum of its part". In this case, "Star Trek episode" is just episode + Star Trek, nothing more than its part. So logically, as {{U|YoshiRulz}} said, when no corresponding lexeme is found, the item should be decomposed the same way, the hard part is to know how to decompose it as the property will vary ; P31 and P279 are an obvious start but beyond that, I'm not sure we could find a general solution.
::PS: it's beyond you question but there is also the reverse problem, how to select one lexeme when multiple are linked to the same item...
::Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:43, 24 May 2026 (UTC)
:::For the point 2, I think humans will be used way more than scholarly articles and disambiguations in NLG functions (outside references), that's why humans concern me more (still a cool pie chart, though).
:::For the reverse problem, there is already {{Z|Z27327}}: it's far from perfect, but usually makes a decent choice. Obviously it is not "complete", and probably it will never be complete, but it will have to be progressively improved by the community. And probably in the future we will need to create similar functions to select the best lexeme in more specific cases.
:::For my fourth point, I didn't think about the decomposition, but it is something that could be done with another never-complete community-mantained function, that progressively keeps being improved. If [[Wikifunctions:Type proposals/Semantic unit|semantic units]] will be implemented, through them it could actually be possible to do this operation in a laguage-independent way. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:10, 24 May 2026 (UTC)
::{{re|YoshiRulz}} Proper noun synthesis, along with other fallbacks for realizing the names of concepts that don't have lexemes, is merely a step within the overall abstract content rendering process and is not inherently tied to the process itself; having the ability to [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/graph/client.py#L327 run any number of fallback mechanisms], instead of a raw call to (the equivalent of) Z27327, should be possible with any of the methods listed on the architectures page. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 16:41, 24 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #249 is out: Annual plan 2026-2027 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-23|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we present you the current draft of objectives for Wikifunctions and Abstract Wikipedia in the WMF Annual Plan 2026-2027, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 09:48, 25 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
:The new <code>return_type</code> param to [[Special:ListObjectsByType]] will show Functions returning e.g. {{Z|27951}} and {{Z|882}} if those are typed in manually, but the dropdown menu doesn't offer them, probably because it's a copy of the dropdown above (and there are no Persistent objects of those Types). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:12, 26 May 2026 (UTC)
== Type documentation template ==
Over the past couple of weeks, I've been developing and rolling out {{t|type documentation}}: a standardised layout for Type metadata, de/constructors, conversions, etc. on each Type's talk page. (The layout is loosely based on [[d:Template:Property documentation|Wikidata's]].) See [[Talk:Z16683|Integer]] for an example that uses most of its features, and [[Talk:Z99|Quote]] for one that doesn't.<br>At this point I can't think of anything more to add besides [[Help:Comparison_function_table/float64|filling out]] a couple more [[Help:Type_conversion_table/Codepoint|tables]]. But if any of you have ideas or feedback, please click through to the relevant talk page and leave me a message. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:29, 26 May 2026 (UTC)
:I really like what you're doing here. Thank you. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:26, 26 May 2026 (UTC)
:Yeah, nice work! I don’t think “Function declarations” is the best header for the collapsed table of searches by function signature, however. Now that it’s finally landed, we should probably include https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&return_type=Z16683 as well (outside the table). [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:23, 26 May 2026 (UTC)
== Apparent error in implementations of {{Z|20616}} ==
Please can I request help in how to understand a bug? Sorry if this is not the best place to ask.
I created lexemes [[d:Lexeme:L1566135|langue morte L1566135]] in French and [[d:Lexeme:L1566139|lengua muerta L1566139]] in Spanish, with property {{P|5185}} set to {{Q|Q1775415}} in each case. {{Z|20616}} should return a list of the grammatical genders of a given lexeme. It has two implementations, {{Z|Z20641}} and {{Z|Z21127}}, each of which works perfectly in the French case, returning a list containing Q1775415. But in the Spanish case, each of the two implementations wrongly returns an empty list. I cannot understand what is going wrong. How can I find out what is happening here? I would be grateful for any help or advice. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 13:56, 26 May 2026 (UTC)
:Both implementations return [https://www.wikifunctions.org/wiki/Z20616?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z20616%22%2C%22Z20616K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6825%22%2C%22Z6825K1%22%3A%7B%22Z1K1%22%3A%22Z6095%22%2C%22Z6095K1%22%3A%22L1566139%22%7D%7D%7D the same result]. As you added the gender only yesterday, I suppose it must have still been looking at a cached version of the lexeme from before that edit. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:06, 26 May 2026 (UTC)
::Thank you for answering. Yes, it works now. I thought it might have been something like that, but I waited more than 12 hours before testing it again today. I think that whenever SPARQL is in use, there will be caching issues, and it is a very bad problem. Is there any way of clearing the cache, or knowing when the cache will next be cleared, or how long it is necessary to wait before the changes come through? [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 18:59, 26 May 2026 (UTC)
:::Well, it depends on the cache. “Wikidata entities in the orchestrator cache timeout after 24 hours” [https://t.me/Wikifunctions/28369 according to] @[[User:DMartin (WMF)|DMartin (WMF)]]. There is currently no way to clear that. I don’t think we have a handy guide to the different caches in operation, but the “general” function-call cache should be reset for a particular function when that function is edited. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:05, 26 May 2026 (UTC)
efss8ox186l0ngix3hm799ove4achxb
278312
278282
2026-05-27T03:08:06Z
SpBot
978
archive 3 sections: 3 to [[Wikifunctions:Project chat/Archive/2026/04]] (after section [[Wikifunctions:Project chat/Archive/2026/04#“Key_not_found_()”?|“Key_not_found_()”?]]) - previous edit: [[:User:GrounderUK|GrounderUK]], 2026-05-26 22:05
278312
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== Legacy functions ==
If and when more robust methods of abstractly representing and generating linguistic content come around, and more efficient ways of creating abstract content are devised and implemented, I suspect that our current methods will require some form of deprecation. This is a significant source of concern for me in relation to WF and AW, questioning how prone our current methods of doing things are and eventually will be prone to obsolescence, and how it will be worked around when it comes. We have over 1 250 articles on AW presently, and these are rather all over the place. I suspect the maintenance burden from keeping these articles up to code will eventually, err, creep up on us, I suppose, and some kind of major refactoring will be necessary. We are definitely in a period of experimentation and whatnot right now but eventually, like with enwiki, some sort of structure and rigor will form and I suspect it will start to become rather boring for me...
I, for one, very much enjoy experimenting with new and better ways to do things here. I don't personally mind changing things to use a new and better paradigm if need be, that sort of thing highly excites me, but of course there will be things that are left behind, and I suspect maybe bots will be employed to deal with this? A lot of Wikipedia sister sites seem to do that, e.g. going and fixing up use of deprecated templates. Considering the nature of Wikifunctions and Abstract Wikipedia I suspect certain maintenance tasks will be made simpler or even trivial by the typical uniformity of our implementations.
I guess I am just concerned if Wikifunctions or Abstract Wikipedia will ever accrue its own kind of "technical debt" with how we are plowing through things presently, and if there is a plan for how we will eventually seek to mitigate that. Maybe too early to ask this question, but I am a notoriously anxious person, so I thought it wouldn't hurt to raise the question regardless... — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 21:30, 26 April 2026 (UTC)
:I very much agree, thank you for expressing my position so well. {{ping|Immanuelle}} has been using an AI-generated tool (well, they haven't edited in a week, perhaps it's a break or perhaps they don't wish to contribute to the project any more) to create a bunch of articles en masse, which I have warned them multiple times is a bad idea (on top of evolving functions, all of the articles are one-sentence-per-paragraph, [[abstract:Q12184|like so]]). That's why I've been avoiding creating articles recently, I'd say I have a good fourth (no data to support, rough guess) of the comments on the wiki, yet less than a percentage of the article count (only three, including the [[abstract:Q319|first article]], though, so perhaps I'm the next [[w:Special:Permalink/908493298|office.bomis.com]]). [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:41, 27 April 2026 (UTC)
:: I feel that the overwhelming presence of these low-quality articles (which I admit I myself am [[abstract:Q1710970|guilty]]/[[abstract:Q7601858|of]]/[[abstract:Q39338|creating]], usually as testbeds) may incur a large maintenance burden. I do expect them to be easy to detect, however, as searching for the presence of "deprecated" NLG functions is trivial, and it is possible that replacing them with their future ''even abstracter™'' counterparts could be done automatically since they all have the same signatures and can be expected to create the same form of sentence. If it needs to be done manually for a while or for certain delinquent instances, my hope is that it will be fun, at least for a while.
:: I just hope that these hypothetical future waves of "this new and versatile way of abstractly representing linguistic content" obsoleting previous methods and requiring refactoring across all articles is only a one-time thing. We should strive to be as robust and flexible as possible from the outset as each brand new paradigm of abstraction is also a brand new maintenance burden for updating old articles. At the end of the day, at least ''some'' of these articles will still render to many different languages even if their methods of creating those sentences of theirs is completely outdated. Ergo, the time it takes for the switchover to be performed across our articles should not be a persistent inconvenience for users (as, of course, they will always still be able to read the content as it was before since these legacy functions aren't being deleted outright), and the increased availability that the new methods will bring about will likely act as motivation for them to join the effort in refactoring (「You're telling me that if I rewrite this article in this cool Lisp-looking stuff then I can probably read it in [[abstract:Q9307|Galician]]?? COOL!」). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 20:26, 27 April 2026 (UTC)
:::Totally agree. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:54, 28 April 2026 (UTC)
:::My vague plan is to implement a default function returning an {{Z|Z89}}, for each language-neutral function. A single function would convert any of these to a {{Z|Z11}}, so that a composition of the two can be implemented as the current default until such time as the language-neutral function is ready to return a [[Z89]]. We can already convert a [[Z11]] to a [[Z89]] so, although there is more to be done in this space, existing language-specific functions could be adapted to return a [[Z89]] quite mechanistically.
:::Although we certainly could deliver parallel Z89 functions for each existing Z11 function, I don’t think we should assume that particular outcome. Provided the Z89 captures a lang attribute from the Z11’s language tag, the two representations should be largely interchangeable, although I am expecting a Z89 to carry additional attributes at the span level that would be lost on conversion to a Z11 (along with any higher-level tags and attributes).
:::When I say there is “more to be done in this space”, I am referring to a new type that would allow HTML fragments to be represented as tractable Wikifunctions objects, but this is currently drafted only in my head! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:21, 29 April 2026 (UTC)
== Filtering types of objects ==
Hello!
I have tried to comb through my own edit history several times, but it's really hard to search for specifics because there's no differentiation between different types of objects (functions, implementations, tests, etc.) in the logs as far as I can tell.
Am I missing anything? I want it to work sort of like how filtering by namespace works. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 27 April 2026 (UTC)
:There is differentiation, it's just rather hard to look through. Since all ZObjects are just JSON data at their core, you can search for instances of <code>{ "Z1K1": "Z[type]"</code>. I haven't tried this so I'm not sure how well it would work and I know MediaWiki search syntax treats quotation marks as a special character, but I have seen Wikifunctions pages link to searches using this before. There is also [[Special:ListObjectsByType]] but it is sitewide rather than specific to your edit history in particular. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 18:59, 27 April 2026 (UTC)
::''[It doesn’t help directly here, but please see [[WF:Find]] for more details of how this works.]'' [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:24, 29 April 2026 (UTC)
:See the feature requests [[phab:T399244]]/[[phab:T373735]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:06, 28 April 2026 (UTC)
:The lack of filtering edits by namespace is exactly the problem that I was trying to solve with the [[User:Amire80/wikifunctionsanalytics]] tool.
:I even kind of succeeded, but it has two major problems:
:# It doesn't have any real frontend, so you have to know some SQL to use it (or ask other people who know SQL).
:# It doesn't get information from the live site, but from the dump, which appears to be updated once a month.
:I've made a [https://quarry.wmcloud.org/query/104794 sample query for you]. Unfortunately, it won't do anything at the moment because of the second problem—your edits started in April 2026, which isn't over yet, so the dump for it hasn't been processed. But I hope that early in May you'll be able to use the same query and see something useful.
:(I plan to add support for recent edits, but I haven't done it yet. Now that I more or less figured out how to process Wikifunctions edits, I'm focused on trying to understand Abstract Wikipedia edits. Processing up-to-date edits from both sites will possibly be the next thing I work on, but if you know some Python and want to try doing it yourself, don't wait for me—[https://gitlab.wikimedia.org/toolforge-repos/wikifunctions-analytics Patches welcome].) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 18:51, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]], I've just updated the data until the end of April. Now the query to which I linked above gives some results. You can also try running other queries if you know SQL. (Or try asking for other queries if you don't.) [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 03:26, 3 May 2026 (UTC)
== [[Z34213]] ==
I'm not quite sure why this implementation is failing. Could someone take a look? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 02:24, 28 April 2026 (UTC)
:I've [https://phabricator.wikimedia.org/T419933#11863997 notified] the team that this is still occurring, the issue was marked as resolved. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:52, 28 April 2026 (UTC)
:Some useful tips:
:* create more testcases: sometimes it is a random error, so try to see how consistent it is between testcases
:* your implementation is very inefficient, since it fetches items and lexemes a lot of times. Ideally, each item and each lexeme should be only fetched once in all the execution tree.
:[[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 06:06, 28 April 2026 (UTC)
::Caching (''should?'') means that the lexeme and item data are cached, so the call doesn't actually execute multiple times. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 17:51, 28 April 2026 (UTC)
:::Are lexemes and items actually cached within the same function execution? Even if they are only partially fetched and/or fetched in bulk? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:54, 28 April 2026 (UTC)
::::I don't have any evidence to prove that it works but that's definitely A. what's supposed to happen and B. the ideal behavior. This happens because the Z680X functions can be cached just like any other. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 18:02, 28 April 2026 (UTC)
::::It is unclear. In general, I believe identical branches are resolved only once in orchestration, but there is also independent caching of Wikidata fetches.
::::According to @[[User:DMartin (WMF)|DMartin (WMF)]] ([https://t.me/Wikifunctions/30374 on Telegram]):
::::<blockquote>Well, no. We have caching of Wikidata entities that have been retrieved, but not of the results of nested function calls. There is a proposal for doing this in the context of the V2 composition language, when it's a bit more mature, and it's regarded as a relatively high priority.</blockquote>
::::It’s hard to tell whether fetches in nested calls are, in fact, cached and available for other nested calls in the same call, since it is not generally the actual fetch that consumes the most resources. Rather (I believe), it is construction and transmission of the result object, which is currently repeated afresh in each nested call (unless it is in an identical branch).
::::I hope that’s clear, and I apologise in advance if it happens to be inaccurate! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 29 April 2026 (UTC)
:::::Oh, I should clarify. There is a lot of caching going on, in several different places. Lexemes and items ''are'' cached by the orchestrator within the same function execution, even if they are only partially fetched and/or fetched in bulk. When I said that we don't have caching of the results of nested function calls, I meant that's not happening in general, for all nested function calls in compositions. But fetching of Wikidata entities gets special treatment, so yes, fetched content from Wikidata is cached, regardless if it was fetched by a top-level call or a nested call.
:::::It is also true that the construction of a ZObject from the fetched JSON might happen more than once within the same function execution, depending on how a composition has been structured. However, the construction of the ZObject is actually very fast, compared to the elapsed time of getting the JSON from Wikidata. [[User:DMartin (WMF)|DMartin (WMF)]] ([[User talk:DMartin (WMF)|talk]]) 18:04, 1 May 2026 (UTC)
== Question about cardinal numbers ==
I was about to edit {{Z|Z16435}} to add my function {{Z|Z34308}}, but I noticed that none of the other functions have a gender parameter.
Should I create a new wrapper function "Bulgarian cardinal, neuter", or should I just remove the gender parameter and always return neuter? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:39, 28 April 2026 (UTC)
:The “cardinal” functions should return the words used for “counting” numbers in the abstract.
:We should consider converting them to return a {{Z|Z11}} rather than a {{Z|Z6}}. It may even be appropriate to return a {{Z|Z12}} to cater for language variants. Either way, I think that would be the approach to adopt for inflected forms, unless reference to specific lexeme-forms is required. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:52, 28 April 2026 (UTC)
::This. If a native of your language were to count up, which form would they be most likely to use? [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:29, 28 April 2026 (UTC)
::: {{re|GrounderUK|Feeglgeef}} Thanks for both your input!
::: I relabeled the aforementioned function to {{Z|Z34308}}, and created a new wrapper function {{Z|Z34457}}.
::: Should I specify that my old function is a monolingual text in parentheses? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:26, 28 April 2026 (UTC)
::::You don't have to, unless you think that is something that would require distinction when viewing the function in a list of search results &c. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:36, 28 April 2026 (UTC)
== Optional/nullable function parameters ==
Hello!
Recently, I was informed that Wikifunctions has no optional/nullable function parameters as of now.
Are there any future plans to support this, and/or workarounds? Maybe create a union type system like "{{Z|6}} or {{Z|23}}". <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 17:53, 28 April 2026 (UTC)
:What I do for this is use an "is empty" function corresponding to the type of the parameter in an If statement. If it isn't empty, the function works as intended. Otherwise, it does something else. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 17:58, 28 April 2026 (UTC)
:Unions are not a thing (yet) on Wikifunctions, but you can always define an argument of type {{Z|Z1}}, which means that all types are allowed (I already did this for {{Z|Z26737}}; note that it is still a ugly workaround, don't use it for high level functions). Also, note that usually on Wikifunctions we use {{Z|Z24}} as the null value. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:00, 28 April 2026 (UTC)
:: {{re|JJPMaster|Dv103}} Thanks for your help!
:: @[[User:Dv103|Dv103]] told me a function call with a missing parameter is treated as an invalid function call, so how does the "is empty" function work with that?
:: Also, setting the type to {{Z|1}} seems naive, like setting the type as <code>any</code> in TypeScript...
:: Related question: Are there plans to add default values to parameters (outside of "if empty")? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 18:19, 28 April 2026 (UTC)
:::Setting the type to {{Z|Z1}} is actually naive, and that's why I advised you to only use it for low-level functions. Currently there is nothing better. Sometimes, type correctness is not actually checked, so it might seem that nullable types are possible. But it is still an hack, and it could broke anytime since it is not intended behavior.
:::I don't think that there are current plans to add default values (but correct me if I'm wrong). The closest thing that comes to my mind is that, if you incorporate Wikifunctions into Wikitext, you can leave empty some fields (only of some specific types) and Parsoid will replace them to their default value. This is done only depending on the type, and not on the functions. For example, {{Z|Z6091}} and {{Z|Z6001}} are assigned the QID associated to the page, and {{Z|Z20420}} is assigned the current date. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 18:56, 28 April 2026 (UTC)
:::@[[User:QuickQuokka|QuickQuokka]]: At the very least, [[Z10008]] accepts a null input. Maybe that feature is unique to the String type—I am not sure. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 19:10, 28 April 2026 (UTC)
::::I think it's just not checked, but it shouldn't be intended. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:20, 28 April 2026 (UTC)
::::Strings and typed lists can be “empty” in the sense that their length can be zero. Typed pairs may also be “empty” in a degenerate sense, but such an object will not be returned from a code implementation. A typed map with no entries will also fail to be returned from code, although it is fine in compositions.
::::For a genuinely optional parameter, I prefer a properly typed list, which at least encourages an argument of the correct type. {{Z|Z813}} is also typically faster than {{Z|Z10008}}. Quite a good example of this approach is {{Z|Z23723}}, where it helps to resolve the type union (using [[Z1]]) for both Z6003K1 and Z6003K3. Of course, there’s nothing to prevent more than one element in the list, but additional elements are easily ignored. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:55, 28 April 2026 (UTC)
:Pinging {{ping|Jdforrester (WMF)|prefix=|p=}}, I believe there are no current plans. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:02, 28 April 2026 (UTC)
::@[[User:QuickQuokka|QuickQuokka]]: I'm afraid there are no current plans to build out optional params, indeed; we would be happy to review this if a compelling case was made, but it'd be a lot of work to re-build the [[Wikifunctions:Function model|function model]] with that support and ensure we don't break (too many) things. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 19:11, 28 April 2026 (UTC)
== Z6830 for Chinese ==
I was trying to use {{Z|Z6830}} for implementation in the Chinese-language. And turns out most of the Lexeme on Wikidata is using [[d:Q727694]] as the language instead of [[d:Q7850]]. This makes it impossible to use the mentioned function above, since Standard Chinese is not available (or did I miss something?). Is there a way to fetch lexemes with language=[[d:Q727694]] from item? [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 18:20, 30 April 2026 (UTC)
:@[[User:Sun8908|Sun8908]] There is [[Z1006]] for Chinese and it has the language code zh. There is an overview of languages in [[Module:Wikifunctions label]] so you can search there for chinese versions and choose the one you need. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 20:53, 5 May 2026 (UTC)
::I know that. The problem is when using the function [[Z6830]], it cannot retrieve lexeme with language [[d:Q727694]] (but it is the "Chinese language" with the most current Wikidata lexemes, see [https://ordia.toolforge.org/language/ ordia]). I think it should be a Wikidata problem, I might fix it (possibly by creating the same lexemes with language code zh) on Wikidata. Thanks anyway. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 05:39, 6 May 2026 (UTC)
:Could you provide an example of a Chinese lexeme that has a linked Wikidata item, or a Z6830 function call that fails to find such a lexeme where one exists? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 07:55, 6 May 2026 (UTC)
::Here: [[d:Lexeme:L846083]]. I think that's a primary reason of me trying to look into this problem, as the label in zh for [[d:Q6256]] (country) is not a single phrase (see its talk page on WD for more information). This makes some Abstract Wikipedia articles very weird in Chinese when {{Z|Z26570}} is used, so lexeme could potentially fix that. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 10:33, 6 May 2026 (UTC)
:::Thank you. It looks as though {{Z|Z6830}} [https://www.wikifunctions.org/view/en/Z6830?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6830%22%2C%22Z6830K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q6256%22%7D%2C%22Z6830K2%22%3A%7B%22Z1K1%22%3A%22Z6092%22%2C%22Z6092K1%22%3A%22P5137%22%7D%2C%22Z6830K3%22%3A%7B%22Z1K1%22%3A%22Z60%22%2C%22Z60K1%22%3A%22cmn%22%2C%22Z60K2%22%3A%5B%22Z6%22%5D%7D%7D returns that lexeme for language tag "cmn"]. Perhaps that tag should be added into the helpers for {{Z|Z24144}}? If it is widely used for lexemes, perhaps it should have its own {{Z|Z60}}? In any event, improvements might be considered under [[:phab:T390563]] (or otherwise), including amending [[Z6830]] to also consider "cmn" (and "zho", "chi"…?) when requests are made for "zh-hans" or "zho-hant" (or others?) @[[User:Winston Sung|Winston Sung]] @[[User:DMartin (WMF)|DMartin (WMF)]] [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 17:22, 6 May 2026 (UTC)
::::If you go to [[d:Special:NewLexeme]] and put in [[d:Q727694]] as the language, it is going to tell you it has an unrecognized language code. So I believe "cmn" should not be a {{Z|Z60}} by default? I also started [[d:Wikidata:Project_chat#Lexemes_with_language_Standard_Chinese_(Q727694)|a discussion on WD]] regarding this. I guess we can still use it as a fallback language though if possible. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 03:43, 7 May 2026 (UTC)
::::We don't have a separated <code>cmn</code> BCP 47 language subtag in MediaWiki and Wikidata at the moment. <code>zho</code> and <code>chi</code> are ISO 639 language codes but not BCP 47 language subtags.
::::For Modern Standard Mandarin, please use <code>zh-*</code> language tags for now. -- [[User:Winston Sung|Winston Sung]] ([[User talk:Winston Sung|talk]]) 15:26, 8 May 2026 (UTC)
== Key not found error ==
Is there a reason why I am getting key not found error for this [[Z34677|function]] {{Z|Z34677}}? All the underlying functions run and all the test cases work. The debug information does not give more details. Any pointers? Thanks in advance [[User:Jsamwrites|John Samuel]] 19:24, 1 May 2026 (UTC)
:It was passing the [[Z6091]] to {{Z|34641}} when that takes a [[Z6001]]. I've fixed that, but there's some other problem with the logic, so I've left it disconnected. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:42, 1 May 2026 (UTC)
::@[[User:YoshiRulz|YoshiRulz]] Thanks a lot. [[User:Jsamwrites|John Samuel]] 20:21, 1 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #246 is out: Request for input: what should we count for Abstract Wikipedia ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we ask you what would be the relevant metrics for Abstract Wikipedia, we discuss our latest news on Composition Language v2, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 12:21, 2 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== Any formal process for deletion of pages ==
Does a formal process exist for the deletion of functions, implementations, and tests that includes a notification system for creators, analogous to Wikidata’s process, explaining the rationale behind the deletion (or proposal for deletion)? [[User:Jsamwrites|John Samuel]] 12:36, 3 May 2026 (UTC)
:Does [[Wikifunctions:Requests for deletions]] work? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 13:00, 3 May 2026 (UTC)
:Please see the discussion at [[Wikifunctions talk:Requests for deletions#Should we expect Objects' creators to get pinged on deletion proposals?]].
:As I see it, it is the proposer’s responsibility to consult appropriately before making a request and we expect our administrators to act only when satisfied that appropriate consultation has occurred. In many cases, no consultation is required. Administrators may delete their own contributions without making a request, but this is not a practice I would encourage. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:51, 3 May 2026 (UTC)
== Implementation of rational number in JS doesn't match in Z19677 (Rational number) and Z28579 (RGBA colour) ==
In {{Z|19677}} it's
<syntaxhighlight lang=js>
{
"K1": sign * numerator,
"K2": denominator
}
</syntaxhighlight>
but in {{Z|28579}} it's
<syntaxhighlight lang=js>
[ sign * numerator, denominator ]
</syntaxhighlight> '''<span style="font-family:Iosevka,monospace">[[User:沈澄心|<span style="color:#9f3526">dring</span>]][[User talk:沈澄心|<span style="color:#534fa3">sim</span>]]</span>''' 05:15, 4 May 2026 (UTC)
:I'm guessing this is why [[Z34743]] fails all the tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:00, 18 May 2026 (UTC)
== Nested functions in compositions ==
I wish it will be easier to a add another function about a specific existing function in a function implementation based on a composition. When I write long functions in spreadsheets I usually stat with a small part and then I try to go further and after important steps I test if the output is as expected. I created [[Z34826]] to get the German gender specific occupation lexeme for a specific person based on their gender. I wanted to add a function around the existing one and it was not successful. It is not very easy to implement as it requires the possibily to move a part to another section but I think it can be helpful if it will be implemented. So far I spend more time as expected on the function. Describing it with words what the function needs to do is much easier than implementing it here in Wikifunctions. So I think there needs to be improvement to make Wikifunctions more accessible. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:10, 5 May 2026 (UTC)
:Have you tried to use the copy-paste functionality? It is very useful to move parts of composition arounn. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 07:12, 6 May 2026 (UTC)
:I've also found the composition editor to be wholly unsuitable for any expressions more than a few levels deep. (Even with the <code>localStorage</code> clipboard, because of its overzealous type checks.) Compositions naturally grow out from the "leaves", the immediate operations on the inputs, while the interface really wants you to build from the "root". I mostly use the [https://yoshirulz.gitlab.io/WikiLambdaBlockly drag-and-drop block editor] which I made to smooth over some of the site's problems, so if you want to try that out and give me some feedback I'd appreciate it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 14:36, 6 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #247 is out: References from Wikidata now available ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-08|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we announce that is now possible to pass references in Wikidata statements, we introduce the [https://abstract-data.toolforge.org/ Abstract Data dashboard], we report you on the presentation about Abstract Wikipedia at WikiCon Australia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1778520600 May 11, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:16, 8 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
== RGBA colour, spelling... ==
Something that has always irked me a little bit is the spelling of [[Z28579|RGBA colour (Z28579)]]. I guess this is not unsurprising for me considering my use of US English but I think there is more to it than preference and I want to try to argue for it being changed to use American spelling. I know that this probably has a snowball's chance in hell of actually garnering any support, so I won't really be miffed if the spelling remains as it is, but I thought it wouldn't hurt to raise this regardless.
The main issue I have with it is the spelling of the original proposal. When infernostars raised the [[Wikifunctions:Type proposals/RGBA color|type proposal]], the spelling was 「RGBA color」. Of the comments that mentioned the word 「colo[u]r」, two used British spelling while six used the American spelling as used in the proposal. The only thing that really pointed to the use of ''colour'' was the fact that the catalog page on color functions used that spelling already. For all intents and purposes, the spelling of the original proposal should have been maintained, but it was not; [[User:DVrandecic (WMF)|DVrandecic]], the eventual creator of the type, used a different spelling.
It should be noted that there was really no reason for this to occur and while it is an undoubtedly minor issue I still believe it should be rolled back and the type should use the spelling of the original proposal and majority of editor comments. In [[abstract:Q936|OpenStreetMap]], there have been keyvalue proposals that have had the finalized spelling that gets put to use be in British English despite the original proposal being in American English; this has usually occurred with proposals relating to 「X center/centre」 tags. This makes sense on the surface, because OpenStreetMap is maintained by a UK organization, and still has close ties to Europe. The Wikimedia Foundation, however, is an ''American'' company. This is often brought up as a fallible argument when debating article spelling on the English Wikipedia, and I don't bring it up to support that 「RGBA color」 should be used for that exact reason, but rather to state that OpenStreetMap's general policy on tag names need not apply here. It appears to me that, at least initially, the majority of 「core contributors」 to Wikifunctions used British English; I can name YoshiRulz, 99of9, GrounderUK, and VIGNERON.<ref group="color">I'm avoiding linking to these folks because I don't think pinging them about this discussion is all too necessary unless they themselves want to be involved; I don't want to clutter their inboxes just to briefly mention them. I pinged Denny because, well, I'm asking him a question directly, but everyone else I would prefer to join this discussion by their own accord... not that I wish for this decision to be confused as me going 「these people use British English so they will probably oppose my idea, I won't invite them to the discussion because of that」...no, I promise you that is not the reason.</ref> I see (or saw) these people ''everywhere'', so it makes sense that British English has prevailed in some sorts on this website, but I don't think that indicates that it should be the ''preferred'' spelling across the website, at least not to the point where a proposal should have its name changed to match such a "consensus".<ref group="color">It could be argued that the front-and-center ''Function catalogue'' using 「catalogue」 is actually indicative of such a "consensus", but ''catalogue'' is in a similar position to the word ''grey'' where I live (that is, the US) in that it is used just as often as its American counterpart. Also, consider Wiktionary's ''Beer parlour'' project chat.</ref>
The unnecessary modification of the original spelling is my main argument for changing it back... but of course, I must obligatorily state that on English Wikipedia, it is [[w:Color|Color]] and [[w:RGBA color model|RGBA color model]]; on Wikidata, it is [[d:Q1075|color]] and [[d:Q2325624|RGBA color space]]; in CSS (which typically uses hexadecimal triplets to specify RGBA values), the properties are <code>color</code>, <code>background-color</code>, etc.; bit of a weak jab, but on Schema.org it is [https://schema.org/color color], [https://schema.org/colorSwatch colorSwatch]; et cetera. {{Z|Z28580}} uses ''color'', so does {{Z|Z28591}} and its Python counterpart.
Mr. Vrandečić, I have to ask, I'm rather confused... you created the color type using British English spelling, but you were also responsible for the creation of the equality function which uses the American English spelling. You also seem to be writing in American English for the status updates, judging by your use of -''ize'' over -''ise'' endings and use of ''program'' over ''programme'' in [[Wikifunctions:Status updates/2026-04-16]]. Is there something I'm missing or have you switched your preferred variant somewhere along the way?
Anyways, do consider this if you wish... again, I don't suppose this will garner much support, it is the ''non-issuest'' of ''non-issues'', but it has irked me to the point where I want to ask about it to get some answers, if nothing else. I am not arguing for every other color function to have its name changed, just the type itself.
<references group="color"></references>
— [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:04, 8 May 2026 (UTC)
:This is a multilingual project; the <code>en</code> label is <code>RGBA colour</code> and the <code>en-us</code> label is <code>RGBA color</code>. Though I'm not able to switch to <code>en-us</code> via the language picker so that would need to be fixed.<!--
--><br>edit after reading your whole comment: The same is true of {{Q|1075}}, there are labels specified for multiple English variants. (In {{Q|2325624}} it's only an alias.) I agree that other websites' choices aren't binding on us, but from that, I conclude that the more widespread British/Commonwealth spellings should be used for the generic <code>en</code>. As for myself, I'm Aussie and I will continue to use the BrE spellings ([[w:en:Oxford_spelling#Language_tag_comparison|+ "routing"]], TIL) if only by muscle memory.<!--
--><br>[[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:42, 8 May 2026 (UTC)
:: Your lattermost point would normally be fine in a perfect world. Wikipedia's <code>convert</code> function defaults to "international" English, which I don't personally take issue with because it happens that we here in America are actually outliers for saying and spelling things differently... err, or we were for a while at least, nowadays it seems like an even split (plus you have "yield" vs. "give way" which is effectively the logical opposite of US's use of "meter" over "metre").
:: However, this is not a perfect world, and I don't think <code>en</code> should correspond to any particular variant. It is too fragmented across all software at this point to impose such a requirement. The inability to switch to <code>en-us</code> on this website foregoes an easy and simple solution to this problem that makes everyone happy, because the yanks (such as myself) can't be happy because we can't see the labels in American English even if we wanted to, and the other folk can't switch either as far as I'm aware (and the en-CA and en-GB languages in the preferences page seems to be deprecated). My point being, <code>en</code> is abused to mean "en-UK" just as often as it is abused to mean <code>en-US</code>; I think a decision shouldn't be made on such an assumption of one "default". — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:48, 12 May 2026 (UTC)
:Hi @[[User:Theki|rae]]! I have no opinion nor preference on this, and given my background, I am just entirely confused about my spelling preferences myself, as you can tell from my inconsistent usage. I learned British English in school and used that for maybe two decades or so, but moved to the US and lived there for more than a decade, enough to be naturalized, but now I am back in Europe and I am technically a professor at King's College London, soooo.... honestly, I do not know. I don't remember having put too much thought into it at the moment I created it. The good thing is that in Wikifunctions, just as in Wikidata, it is easy to change, without messing things up too much (unlike in Wikipedia), so my suggestion is, just make the change, see if anyone complains, and if they do, discuss it more. I don't know if there is a guideline already in Wikifunctions about the variants. I am happy either way, and honestly, I keep forgetting which variant is which most of the time. --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 18:16, 10 May 2026 (UTC)
:: I can definitely understand this, although I am unfortunately rather passionate about any minutiae involving preferential minor differences in ''anything'', of which AmE vs. BrE chiefly is. So I dedicate a lot of headspace to it. More than I should. Not that I wish to imply that the comment above that I have wrote is of an irrational nature, or done out of spite or pure emotion and subjectivity; I do genuinely believe that ''RGBA color'' is beyond just a personal preference and is just logical. I may boldly go and change it, but for some reason I was expecting that changing the English label of a Type would require elevated permissions, and I also didn't want to do it only to get immediately reverted because it ''did'' strike a chord with someone, when I could instead see how apathetic, supportive, or in opposition interested people are beforehand and ''then'' act accordingly. I was not meaning to antagonize you over your spelling habits, I did actually use British English for a few years starting in 2020 before I went back to American English, so I'd be a hypocrite for me to decry you for not always sticking to some arbitrary standard of spelling words over the other. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:55, 12 May 2026 (UTC)
:Although I spell it “colour”, I think it makes more sense to use “color” for the type, since that is almost always the required spelling when the string functions as a keyword.
:More generally, though, Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en". This is unusual, in my experience, as "en" is widely misused in place of "en-US", where there are recorded spelling differences.
:(I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere. Use of -ize rather than -ise is a matter of personal preference or house style, but regional autocorrect encourages -ise.) [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 11:00, 12 May 2026 (UTC)
:: ''Wikidata’s lexicographic data happens to favour “colour” over “color” and (quite rightly, in my view) lacks a specific representation for "en"''
:: Definitely agreeing with you on the latter being a good choice. However, I suspect the favoring of "colour" over "color" may be because, in terms of language codes, when sorted alphabetically <code>en-us</code> actually comes ''after'' <code>en-gb</code>. Although, the frontend seems to be sorting <code>en-ca</code> after <code>en-gb</code>, so I don't actually know how correct that is.
:: ''I would also say it is standard British English to use “program” in a programming context and “programme” elsewhere''
:: The context of the spelling was "''No program for the NLG SIG meeting for next Tuesday has been proposed''". In that usage context, I think it makes sense to assume that ''program'' is not being used to refer to a computer program, but to a ''program of events'' or similar, something that you would spell as a ''programme'' in British English. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:02, 12 May 2026 (UTC)
:{{s}} this. I'm obviously biased but I believe American English is preferable generally, American dominance on the internet (our Department of Defen'''s'''e invented it!) and rapidly-increasing consumption of American media by international English speakers means that more people use American English's conventions, this is clear through for example [http://trends.google.com/explore?q=color%2Ccolour&date=all&geo=Worldwide search trends] (though they aren't particularly reliable). Perhaps this is a bit of a supremacist opinion, but we should have internal consistency, and if we must choose, American English should be our first choice (then Indian and then British English) [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:10, 12 May 2026 (UTC)
:: This is rather flawed reasoning, though. I think probably any given British or Indian person would not agree on using that as the reasoning for this, not that you are necessarily ''completely wrong'', but if this is not a good enough reason for English Wikipedia's (admittedly extremely flawed) ''ENGVAR'' policy then I don't think it's likely it will pass here either.
:: Although of note is that [https://books.google.com/ngrams/graph?content=color%2Ccolour&year_start=1800&year_end=2022&corpus=en&smoothing=3&case_insensitive=true Google ngrams] agree with you, but "color" vs. "colour" is an eternal holy war that will not be won by demonstrating that more books use US spelling over Commonwealth spelling. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:44, 12 May 2026 (UTC)
:::You're probably right that it's not very sound. I'm biased in that other varieties of English irk me, and that's probably mutual for people who are used to other varieties of English when they read what I write! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:56, 12 May 2026 (UTC)
:I've decided to boldly [[Special:Permalink/274271|make the change]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:02, 12 May 2026 (UTC)
:: Thank you. Considering both you and GrounderUK seem to consider it an okay change, I think this will do for now.
:: I should note that the matter of whether to move [[Wikifunctions:Catalogue/Colour functions]] in response to this (however this discussion will ultimately turn out) is a whole other can of worms, in my view. I can't say I have an opinion on that at the moment, but I'm putting it out there regardless. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:06, 12 May 2026 (UTC)
:::Personally, I'm in favor of moving the page and renaming all of the items on it. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:10, 12 May 2026 (UTC)
::I don't like this (exactly because of the American hegemony you cited), but again, it shouldn't matter because the software is meant to be multilingual. Clearly there's a bug preventing you from picking an English variant/dialect as your display language. But the search bar and Function/Type autocompletion do check the English variants for matches. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:15, 12 May 2026 (UTC)
== Proposals on the architecture of Abstract Content rendering ==
Starting from a discussion born on the Telegram chat, I've explained two different proposals on how the NLG on Abstract Wikipedia should be organized in the page [[abstract:User:Dv103/Abstract articles architectures]]. Please come to contribute to the discussion, or to propose alternatives. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 14:31, 11 May 2026 (UTC)
:Thank you for dedicating your time to writing this, it is very informative. I will try to add input once I'm not in over my head with finals. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:27, 12 May 2026 (UTC)
== Display function for HTML fragment ==
Currently, any collapsed Z89 literal appears as<blockquote><> [[Z89|HTML fragment]]</blockquote>If I were to create a new Function which returned something like<blockquote><> 123-byte HTML fragment <q><nowiki><td><span lang=</nowiki>…</q></blockquote>could that be connected to replace the collapsed form, or would it require changes to the Wikilambda software? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:14, 11 May 2026 (UTC)
:It might work, but I doubt it. Those angled brackets suggest that the collapsed form is not simply defaulting to the type’s label. Looking at [[:phab:T410509]], I’ve concluded that enhancements to the collapsed form were never considered, rather than being actively rejected. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:12, 12 May 2026 (UTC)
::[[:Phab:T391985]] documents the original design. Note the fifth bullet point under “Acceptance criteria”. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:21, 12 May 2026 (UTC)
:I'm not sure the byte-size is necessary, but the outer tag (or first outer tag, though generally I'd prefer most fragments use a wrapper tag if it needs multiple like JSX does, but that's a whole different topic) would be nice. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 12:51, 12 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #248 is out: A higher meaning ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-15|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss functions creating language fragments, we present our latest news in Types, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:36, 15 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
== [[Z34510]] ==
This function, which determines if a Wikidata item for a {{q|5}} has an undeprecated {{p|21}} statement of {{q|6581097}}, returns false for {{q|173399}}, a transgender man. This is because his item assigns his P21 statement to {{q|2449503}}, not {{q|6581097}}. I'm not sure how to account for this discrepancy. Should {{z|34510}}:
# Include {{q|2449503}} as a value that can lead to a true result,
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a man?") could return true for either "male" or "trans man",
# Not include {{q|2449503}} as a value that can lead to a true result, while another function (e.g., "Q5 is a trans man?") could return true for "trans man",
# Not exist at all?
[[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 16:48, 16 May 2026 (UTC)
:I can't think of a single use case where you would need to determine if a person is a cisgender man and nothing else. Functions are good for generalizing across multiple possibilities when they exist, so I think it would be best if trans men were considered a part of the criteria for returning a true value. If asking for specifically {{q|6581097}}s and ''nothing'' else was desired then the function name would be a misnomer as Elliot Page is inarguably a male (at least in the view of most reasonable and intelligent people). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 19:03, 16 May 2026 (UTC)
:You made the function in the first place; what were you planning on using it for? AW? Maybe it should return a {{Z|25501}} which can then be passed on to other NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:01, 16 May 2026 (UTC)
== Lexeme from wikidata label, or "best" lexeme from wikidata item ==
I was looking into fixing [[Z28028]]. I found that I could add "requires grammatical feature: definite article" to "United Kingdom" (L8558). Now I'm stuck on how to get to that lexeme from {{Q|145}}. There's [[Z23471]], but that for very good reason gives you multiple lexemes with the same sense, and I just want the best one like how the label is always the best string. Is there a function that can do this?
There's definitely the case of a Wikidata label that isn't a lexeme (most commonly multiple lexemes) but I'm only considering the case where it is one lexeme here. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 20:02, 16 May 2026 (UTC)
:There is {{Z|Z27327}}, that tries to give the best lexeme through various heuristics. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 22:22, 16 May 2026 (UTC)
:: Wonderful! I did stumble upon [[Z33818]] but this is perfect. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:25, 17 May 2026 (UTC)
== [[Z29591]] isn't working for me ==
For instance, trying to manually put in the exact inputs for one of the test cases just returns an empty Monolingual text. See [https://www.wikifunctions.org/wiki/Z29591?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29591%22%2C%22Z29591K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q3257809%22%7D%2C%22Z29591K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z29591K3%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z29591K4%22%3A%22Z1002%22%7D]. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 01:17, 17 May 2026 (UTC)
:You used [[:d:Q22006653]] rather than [[:d:Q1075]]. It looks like the [https://www.wikifunctions.org/wiki/Special:RunFunction?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D explanatory error] is suppressed by the [https://www.wikifunctions.org/view/en/Z30009?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30009%22%2C%22Z30009K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z30784%22%2C%22Z30784K1%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z21394%22%2C%22Z21394K1%22%3A%5B%22Z6%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q22006653%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q21264361%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D%5D%7D%7D%7D%2C%22Z30009K2%22%3A%22Z801%22%7D final transformation]. The returned result is not actually empty; if you expand it, you can see that it is an unresolved function call. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 09:59, 17 May 2026 (UTC)
== [[Z35298]] ==
Does anyone know what the problem with this implementation is? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 21:14, 18 May 2026 (UTC)
:There is a bug that doesn't allow Python implementation to return nested lists. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:31, 19 May 2026 (UTC)
::Is there a Phabricator task for this? Searching through them is hell. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 03:22, 20 May 2026 (UTC)
:::A bit of time ago I opened [[phab:T392750]], which is very similar to this issue. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 05:26, 20 May 2026 (UTC)
== May 2026 Wikimedia Café meetups regarding the Wikimedia Foundation Annual Plan ==
<div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)">
<div class="box" style="float:left; padding-top: 15px; padding-right: 15px;">[[File:Wikimedia Café logo in plain SVG format.svg|75px|alt=The logo for the Wikimedia Café]]</div>
Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities during the last weekend of May. Both sessions will focus on the [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2026-2027 the 2026-2027 Wikimedia Foundation Annual Plan]. Participants may attend either or both sessions.
#'''Saturday, 30 May 2026 at 15:00 UTC''' ([https://zonestamp.toolforge.org/1780153200 timestamp converter]), at a time friendly to the Americas, Africa, and Europe
#'''Sunday, 31 May 2026 at 05:00 UTC''' ([https://zonestamp.toolforge.org/1780203600 timestamp converter]), at a time friendly to Asia and the Pacific
Café participants are highly encouraged to read in advance [https://en.wikipedia.org/wiki/User:Sohom_Datta/annual_plan_guide at least this summary of the plan]. Optionally, Café participants are encouraged to read portions of the plan that interest them and [https://meta.wikimedia.org/wiki/Talk:Wikimedia_Foundation_Annual_Plan/2026-2027 ask questions or provide feedback on the Annual Plan talk page].
Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#May_2026_meetings_with_a_focus_on_Wikimedia_Foundation_Annual_Plan/2026-2027 tables of timestamp conversions for both sessions], [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#Agenda._This_will_be_an_approximately_1_hour_Caf%C3%A9_session,_and_is_extendible_for_an_additional_30_minutes_if_needed. the agenda], and [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]!
<br />
[[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div>
<span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 19:56, 21 May 2026 (UTC)
== How to handle items without lexemes ==
NLG functions relay heavily on the presence of lexemes associated to items on Wikidata. But we know that not all the Wikidata items have an associated lexeme. There are multiple reasons why an item does not have an associated lexeme, like:
# The lexeme has not been created yet
# The item represents a place
# The item represents a person
# The item represents a specific concept that can only be expressed by a specific combination of words that cannot be [[Wikidata:Wikidata:Lexicographical data/Notability|notable]] (like {{Q|Q61220733}}).
My doubt is: what should we do with this fourth category? For many languages, just using the Wikidata item label is not possible, since it is necessary to conjugate the words or to retrieve grammatical information like the gender. What should we do? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:09, 23 May 2026 (UTC)
:In that particular example, I think the thing to do is read its {{P|279}}: {{Q|21191270}}, then have some kind of heuristic based on that which says to take its {{P|8345}} and attach that Item's label to a Form of the word for "episode". In general, synthesising Lexemes for proper nouns is one of the problems that [[abstract:User:Dv103/Abstract_articles_architectures|proposals in your list here]] will have to address. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:59, 23 May 2026 (UTC)
[[File:Wikidata content 2024.svg|thumb|Content of Wikidata by type]]
::{{ping|Dv103}} very good point.
::For your point 2, it depends of the place but I think that quite often a lexeme can be created (most "Administrative territorial entity", most geographical entity, etc.). And with 3, your can add a lot of types (see pie chart) : Scholarly article, Human (with a very few exception), Wikimedia Category, Disambig, etc. which is (rough estimation) 2/3 of Wikidata items.
::A common rule (in dictionaries since forever and in Lexemes) is to not create an entry which is the "sum of its part". In this case, "Star Trek episode" is just episode + Star Trek, nothing more than its part. So logically, as {{U|YoshiRulz}} said, when no corresponding lexeme is found, the item should be decomposed the same way, the hard part is to know how to decompose it as the property will vary ; P31 and P279 are an obvious start but beyond that, I'm not sure we could find a general solution.
::PS: it's beyond you question but there is also the reverse problem, how to select one lexeme when multiple are linked to the same item...
::Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:43, 24 May 2026 (UTC)
:::For the point 2, I think humans will be used way more than scholarly articles and disambiguations in NLG functions (outside references), that's why humans concern me more (still a cool pie chart, though).
:::For the reverse problem, there is already {{Z|Z27327}}: it's far from perfect, but usually makes a decent choice. Obviously it is not "complete", and probably it will never be complete, but it will have to be progressively improved by the community. And probably in the future we will need to create similar functions to select the best lexeme in more specific cases.
:::For my fourth point, I didn't think about the decomposition, but it is something that could be done with another never-complete community-mantained function, that progressively keeps being improved. If [[Wikifunctions:Type proposals/Semantic unit|semantic units]] will be implemented, through them it could actually be possible to do this operation in a laguage-independent way. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:10, 24 May 2026 (UTC)
::{{re|YoshiRulz}} Proper noun synthesis, along with other fallbacks for realizing the names of concepts that don't have lexemes, is merely a step within the overall abstract content rendering process and is not inherently tied to the process itself; having the ability to [https://gitlab.com/mahir256/ninai/-/blob/main/ninai/graph/client.py#L327 run any number of fallback mechanisms], instead of a raw call to (the equivalent of) Z27327, should be possible with any of the methods listed on the architectures page. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 16:41, 24 May 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #249 is out: Annual plan 2026-2027 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-23|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we present you the current draft of objectives for Wikifunctions and Abstract Wikipedia in the WMF Annual Plan 2026-2027, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 09:48, 25 May 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30536976 -->
:The new <code>return_type</code> param to [[Special:ListObjectsByType]] will show Functions returning e.g. {{Z|27951}} and {{Z|882}} if those are typed in manually, but the dropdown menu doesn't offer them, probably because it's a copy of the dropdown above (and there are no Persistent objects of those Types). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:12, 26 May 2026 (UTC)
== Type documentation template ==
Over the past couple of weeks, I've been developing and rolling out {{t|type documentation}}: a standardised layout for Type metadata, de/constructors, conversions, etc. on each Type's talk page. (The layout is loosely based on [[d:Template:Property documentation|Wikidata's]].) See [[Talk:Z16683|Integer]] for an example that uses most of its features, and [[Talk:Z99|Quote]] for one that doesn't.<br>At this point I can't think of anything more to add besides [[Help:Comparison_function_table/float64|filling out]] a couple more [[Help:Type_conversion_table/Codepoint|tables]]. But if any of you have ideas or feedback, please click through to the relevant talk page and leave me a message. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:29, 26 May 2026 (UTC)
:I really like what you're doing here. Thank you. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:26, 26 May 2026 (UTC)
:Yeah, nice work! I don’t think “Function declarations” is the best header for the collapsed table of searches by function signature, however. Now that it’s finally landed, we should probably include https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&return_type=Z16683 as well (outside the table). [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:23, 26 May 2026 (UTC)
== Apparent error in implementations of {{Z|20616}} ==
Please can I request help in how to understand a bug? Sorry if this is not the best place to ask.
I created lexemes [[d:Lexeme:L1566135|langue morte L1566135]] in French and [[d:Lexeme:L1566139|lengua muerta L1566139]] in Spanish, with property {{P|5185}} set to {{Q|Q1775415}} in each case. {{Z|20616}} should return a list of the grammatical genders of a given lexeme. It has two implementations, {{Z|Z20641}} and {{Z|Z21127}}, each of which works perfectly in the French case, returning a list containing Q1775415. But in the Spanish case, each of the two implementations wrongly returns an empty list. I cannot understand what is going wrong. How can I find out what is happening here? I would be grateful for any help or advice. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 13:56, 26 May 2026 (UTC)
:Both implementations return [https://www.wikifunctions.org/wiki/Z20616?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z20616%22%2C%22Z20616K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z6825%22%2C%22Z6825K1%22%3A%7B%22Z1K1%22%3A%22Z6095%22%2C%22Z6095K1%22%3A%22L1566139%22%7D%7D%7D the same result]. As you added the gender only yesterday, I suppose it must have still been looking at a cached version of the lexeme from before that edit. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:06, 26 May 2026 (UTC)
::Thank you for answering. Yes, it works now. I thought it might have been something like that, but I waited more than 12 hours before testing it again today. I think that whenever SPARQL is in use, there will be caching issues, and it is a very bad problem. Is there any way of clearing the cache, or knowing when the cache will next be cleared, or how long it is necessary to wait before the changes come through? [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 18:59, 26 May 2026 (UTC)
:::Well, it depends on the cache. “Wikidata entities in the orchestrator cache timeout after 24 hours” [https://t.me/Wikifunctions/28369 according to] @[[User:DMartin (WMF)|DMartin (WMF)]]. There is currently no way to clear that. I don’t think we have a handy guide to the different caches in operation, but the “general” function-call cache should be reset for a particular function when that function is edited. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:05, 26 May 2026 (UTC)
fnpkxf81iyad6wycltqab4ffq2gsbbm
Wikifunctions:Requests for user groups
4
3790
278264
278139
2026-05-26T18:26:55Z
Ameisenigel
44
/* HenkvD */ done
278264
wikitext
text/x-wiki
{{shortcut|[[WF:RFG]]|[[WF:PERM]]|[[WF:RFUG]]}}
This is the place to request specific user groups:
{{ombox
| image = [[File:Echo user-rights icon.svg|60x60px|alt=|link=]]
| text = '''How to make a request'''
# Edit the section for the user group you wish to request
# Copy the following and ''append'' it to the text-area:
## Requests without required discussion: <code><nowiki>{{subst:rfg|1={{subst:REVISIONUSER}}|2=reason ~~~~}}</nowiki></code>
## Functioneer requests (required 48-hour discussion): <code><nowiki>{{subst:rfg|3=1|length=2 days|1={{subst:REVISIONUSER}}|2=reason ~~~~}}</nowiki></code>
## Requests with required 1-week discussion: <code><nowiki>{{subst:rfg|3=1|1={{subst:REVISIONUSER}}|2=reason ~~~~}}</nowiki></code>
# Replace <code>reason</code> with a rationale based on the guidelines specified for the user group
}}
: ''Archived requests can be found at [[Wikifunctions:Requests for user groups/Archive]]''
{{Autoarchive resolved section
| age = 1
| archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
| level = 3
}}
== Functioneer ==
{{see also|Wikifunctions:Functioneers}}
=== HenkvD ===
:{{UL2.0|1=HenkvD|contributions=1|deletedcontributions=1|editcount=1|blocklog=1|rightslog=1|crosswiki=1}}
:''Discussion open until: 12:00, 26 May 2026 (UTC)''
:reason I have been creating a few functions, implementations and test cases for Abstract Wikipedia. I think I understand the processes now, and like to be able to connect new creations myself, and possibly in the future to connect others as well. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 12:00, 24 May 2026 (UTC)
::{{s}} lgtm [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:12, 24 May 2026 (UTC)
:: {{S}} -- [[User:Asked42|Asked42]] ([[User talk:Asked42|talk]]) 15:19, 24 May 2026 (UTC)
:{{done}} --[[User:Ameisenigel|Ameisenigel]] ([[User talk:Ameisenigel|talk]]) 18:26, 26 May 2026 (UTC)
{{Section resolved|1=[[User:Ameisenigel|Ameisenigel]] ([[User talk:Ameisenigel|talk]]) 18:26, 26 May 2026 (UTC)}}
== Autopatroller ==
{{See also|Wikifunctions:Autopatrollers}}
== Administrator ==
{{see also|Wikifunctions:Administrators}}
== Interface administrator ==
{{see also|Wikifunctions:Interface administrators}}
== Translation administrator ==
{{see also|Wikifunctions:Translation administrators}}
=== Eihel ===
:{{UL2.0|1=Eihel|contributions=1|deletedcontributions=1|editcount=1|blocklog=1|rightslog=1|crosswiki=1}}
:''Discussion open until: 23:39, 28 May 2026 (UTC)''
:Simply help the project 😉 —[[User:Eihel|Eihel]] ([[User talk:Eihel|talk]]) 23:39, 21 May 2026 (UTC)
#Hmm. You had 19 edits at the time of request (of those which were in the last two years, none added any content), though you now have 49. You have translationadmin on three other projects, so I'd be rather shocked if you didn't know how to use the tools. For now I '''don't object''' (note to closer, please count as neutral), I'd be willing to actually support if you'd actually translated this project more (on, say, a recent status update), and elaborated on what you want to do with the rights. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 01:02, 23 May 2026 (UTC)
#:I'm changing this to {{o}}. You still haven't specified why you need the rights and what you'll do with them. You have plenty of experience with Wikimedia, I know you know "simply help the project" isn't enough. You probably ''do'' have a good reason for asking for these rights, and I need to hear it before I can support this. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 07:34, 25 May 2026 (UTC)
#::The tasks of TAs are delimited: prepare pages correctly for translation, then marking them for translation. On Wikifunctions, there's another specific task: documenting translation units, that is, the pages blocked by an abusefilter, but accessible to TAs. Here's what I offer. Cordially. —[[User:Eihel|Eihel]] ([[User talk:Eihel|talk]]) 11:07, 25 May 2026 (UTC)
#:::I'm aware. Part of the process of requesting positions of trust is explaining why it would benefit the project to give you them. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 20:25, 25 May 2026 (UTC)
== Bureaucrat ==
{{see also|Wikifunctions:Bureaucrats}}
== Miscellaneous requests ==
== See also ==
* [[Wikifunctions:User groups]]
** [[mw:Help:Wikifunctions/User rights]] for additional context about functioneers, maintainers, sysops, and bureaucrats
[[Category:User groups|*]]
9kqg56nhrvkqzud1au0z1a7e8dtusjw
Wikifunctions:Administrators' noticeboard
4
9491
278288
278163
2026-05-27T00:13:25Z
Eihel
102
Pending marking of Template:Administrators' noticeboard
278288
wikitext
text/x-wiki
{{shortcut|[[WF:AN]]}}
<div style="border:1px solid grey; margin:1em 5em 2em; padding:1.5em 1em;">
<!-- Don't remove this, it adds the new-thread tool to the page.-->__NEWSECTIONLINK__
[[Category:Help]]
<big>Welcome to the '''Administrators' noticeboard for Wikifunctions'''!</big>
This is a noticeboard for '''matters requiring [[Special:MyLanguage/Wikifunctions:Administrators|administrator]] attention'''.
* If you wish for something to be deleted, please use [[Wikifunctions:Requests for deletions]].
* If you want to report a bug in Wikifunctions software, please see [[Wikifunctions:Report a technical problem]].
* Matters not requiring administrator action should be raised at [[Wikifunctions:Project chat|Project chat]].
* To report [[Special:MyLanguage/Wikifunctions:Vandalism|vandalism]] on Wikifunctions: Please use [[Wikifunctions:Report vandalism]]
* Please add <code><nowiki>{{section resolved|1=~~~~}}</nowiki></code> to resolved sections.
</div>
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{Flatlist|{{Special:PrefixIndex/Wikifunctions:Administrators' noticeboard/Archive/|stripprefix=1}} }}}}
<!-- Add new reports below this line -->
== Inactive functioneers ==
* [[User:Autom]]
* <del>[[User:Butko]]</del>
* [[User:Egezort]]
* [[User:Elwinlhq]]
* <del>[[User:Habst]]</del>
* <del>[[User:Lucas Werkmeister]]</del>
* <del>[[User:Mahir256]]</del>
* <del>[[User:Papuass]]</del>
* [[User:Renamerr]]
* [[User:Sannita (WMF)]] (I'm not sure if the right should be removed from a staff member, but they ''are'' inactive)
* [[User:Wooze]]
* <del>[[User:ZI Jony]]</del>
* [[User:Zippybonzo]]
* <del>[[User:沈澄心]]</del>
All of these users meet the threshold of inactivity on [[WF:Functioneer]]. Thanks, [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 18:56, 20 May 2026 (UTC)
:Hello @[[User:Feeglgeef|Feeglgeef]],
:I have stopped adding new functions, and I wouldn't mind if I'm removed from the functioneers list. If at any point I want it back, I'll request it. Thanks,
:Ege [[User:Egezort|Egezort]] ([[User talk:Egezort|talk]]) 19:00, 20 May 2026 (UTC)
:I have been inactive for some time, indeed. I just made an useful edit with intention to return at some point. [[User:Papuass|Papuass]] ([[User talk:Papuass|talk]]) 19:49, 20 May 2026 (UTC)
:I'm still interested in making new functions, but if there is a process for re-requesting access I don't mind requesting again. --[[User:Habst|Habst]] ([[User talk:Habst|talk]]) 20:35, 20 May 2026 (UTC)
::We're not a bureaucracy, so in my opinion just expressing interest in keeping the role is enough. I'll strike your name. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 20:36, 20 May 2026 (UTC)
:I'm still interested in project and I would like to keep the Functioneer rights, but don't have enough time at the moment. I hope that I'll can create thome new functions sporadically. --[[User:Butko|Butko]] ([[User talk:Butko|talk]]) 09:53, 21 May 2026 (UTC)
::Stricken. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 03:31, 25 May 2026 (UTC)
:I'm still interested in making new functions. Regards, [[User:ZI Jony|<span style="color:#8B0000">'''ZI Jony'''</span>]] [[User talk:ZI Jony|<sup><span style="color:Green"><i>(Talk)</i></span></sup>]] 17:15, 21 May 2026 (UTC)
:Am fine with it being removed, I was interested at one point in the concept of WF but when I rarely contribute to enwp I see no reason right now in keeping it around and will re-request if I gain interest again [[User:Zippybonzo|Zippybonzo]] ([[User talk:Zippybonzo|talk]]) 18:06, 21 May 2026 (UTC)
:I would like to keep the Functioneer rights, as they could be useful in future when someone sets up Wikifunctions for more Wikidata Lexeme Forms templates (see [[Wikifunctions:Projects using Wikifunctions]] and [[:d:Wikidata:Wikidata Lexeme Forms#Wikifunctions support]]). I’ve just made an edit on the [[Z10119|sandbox function]], maybe that suffices to technically fulfill the requirement. [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 21:23, 21 May 2026 (UTC)
::I've stricken your name. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 22:21, 21 May 2026 (UTC)
:You can remove my permissions as well, I will not have time to contribute regularly again until winter at the earliest. [[User:Autom|Autom]] ([[User talk:Autom|talk]]) 19:20, 22 May 2026 (UTC)
: I'm still interested in making new functions and implementations (e.g. [[Z34743]]). '''<span style="font-family:Iosevka,monospace">[[User:沈澄心|<span style="color:#9f3526">dring</span>]][[User talk:沈澄心|<span style="color:#534fa3">sim</span>]]</span>''' 10:38, 24 May 2026 (UTC)
:: I've stricken your name. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:10, 24 May 2026 (UTC)
: I do still plan to make new functions, particularly around transliteration from different pronunciation schemes into given target languages (and as long as discussions around abstract content architecture remain stagnant). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 18:48, 25 May 2026 (UTC)
d2wui3bvus46hui1jhv5u0ziradx7h5
Z13464
0
24433
278459
277912
2026-05-27T11:36:53Z
GrounderUK
50
Added Z31249 and Z35218 to the approved list of implementations
278459
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z13464"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z8",
"Z17K2": "Z13464K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "function to apply"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "anzuwendende Funktion"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "aplikovaná funkce"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z1"
},
"Z17K2": "Z13464K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of first arguments"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Liste des ersten Arguments"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "seznam hodnot prvního argumentu"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z1",
"Z17K2": "Z13464K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "common second argument"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "zweites Argument"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "společný druhý argument"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z1"
},
"Z8K3": [
"Z20",
"Z13465",
"Z33120",
"Z33903",
"Z34975",
"Z35638"
],
"Z8K4": [
"Z14",
"Z13466",
"Z31249",
"Z35218"
],
"Z8K5": "Z13464"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apply a two-parameter function to a list of first arguments and a common second argument"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "tinye ọrụ paramita abụọ na ndepụta nke arụmụka mbụ na arụmụka nke abụọ nkịtị"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Funktion mit zwei Parametern auf Liste anwenden"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "aplikovat 2-funkci na seznam a fixní druhý arg"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"apply2 list scalar",
"apply a two parameter function to a list of first arguments and a common second argument",
"map function to list with argument",
"map2",
"apply two-parameter function to list and common second arg"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns a list of the results of running the function once for each item on the list, each time with the first argument from the list and the second argument in common."
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "weghachi ndepụta nke rịzọlt"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "gibt eine Liste der Ergebnisse aus"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "Aplikuje funkci se dvěma argumenty, přičemž pro první parametr bere hodnoty dodaného seznamu, druhý parametr je dodaný fixní. Vrátí seznam výsledků těchto volání."
}
]
}
}
esxkfynehp701wv6w9v6px3zietuz27
Z19001
0
39164
278265
173777
2026-05-26T18:41:53Z
Ameisenigel
44
de
278265
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z19001"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z16829",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z16829",
"Z16829K1": "Z16109"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19084",
"Z19084K2": "Z16098"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Type of September is Gregorian calendar month"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le type de septembre est mois calendaires grég."
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "September ist Monat des Gregorianischen Kalenders"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
5ldwwuj1kbjn2ih87jn6fips7wl3rhc
Z19002
0
39165
278266
173780
2026-05-26T18:42:23Z
Ameisenigel
44
de
278266
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z19002"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z16829",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z16829",
"Z16829K1": {
"Z1K1": "Z16683",
"Z16683K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16662"
},
"Z16683K2": {
"Z1K1": "Z13518",
"Z13518K1": "42"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19084",
"Z19084K2": "Z16683"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Type of −42 is Integer"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le type de -42 est entier"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "-42 ist Integer"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
07z4en6lztbowzwm7n4hzyv1ge6y279
Z19003
0
39168
278267
173766
2026-05-26T18:42:51Z
Ameisenigel
44
de
278267
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z19003"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z16829",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z16829",
"Z16829K1": "Z16939"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19084",
"Z19084K2": "Z16927"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Type of Ede Ajana is Igbo calendar month"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le type d'Ede Ajana est mois du calendrier igbo"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Ede Ajana ist ein Monat des Igbo-Kalenders"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1360",
"Z31K2": [
"Z6",
"Z16939.Z1K1 == Z16927"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7e9soinx73wuymgragxq0mx9ni1n6te
Z19004
0
39169
278268
127906
2026-05-26T18:44:49Z
Ameisenigel
44
de
278268
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z19004"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z18683",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z18683",
"Z18683K1": "Z17814",
"Z18683K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z10237",
"Z10237K2": {
"Z1K1": "Z7",
"Z7K1": "Z13052",
"Z13052K1": "Z17814",
"Z13052K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "CE/AD is not Boolean:True"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "n. Chr. ≠ wahr"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "expect True because strict object equality is False whereas object equality is True"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "ergibt wahr, da die strikte Objektgleichheit falsch ist, wenn die boolesche Ungleichheit wahr ist"
}
]
}
}
hx0ps9wthoylen9e0q9omc5crikm5e8
Z19005
0
39170
278269
173767
2026-05-26T18:45:16Z
Ameisenigel
44
de
278269
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z19005"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z16829",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z16829",
"Z16829K1": "Z17404"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19084",
"Z19084K2": "Z17402"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Type of Tuesday is Day of the week"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le type de mardi est jour de la semaine"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Dienstag ist ein Wochentag"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rqi17go3idaqulxwakjoz9w4vyg0uci
Z19006
0
39171
278270
173783
2026-05-26T18:46:11Z
Ameisenigel
44
de
278270
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z19006"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z16829",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z16829",
"Z16829K1": "Z17815"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19084",
"Z19084K2": "Z17813"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Type of BC(E) is Gregorian era"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le type d'avant Jésus-Christ est ère grégorienne"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "v. Chr. ist eine Ära des Gregorianischen Kalenders"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fu1pknxs0yv74o3xxfghfysz916efrw
Z19007
0
39172
278271
127921
2026-05-26T18:49:46Z
Ameisenigel
44
de
278271
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z19007"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z17464",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z17464",
"Z17464K1": {
"Z1K1": "Z7",
"Z7K1": "Z16829",
"Z16829K1": [
"Z40",
{
"Z1K1": "Z40",
"Z40K1": "Z41"
},
{
"Z1K1": "Z40",
"Z40K1": "Z42"
}
]
},
"Z17464K2": {
"Z1K1": "Z7",
"Z7K1": "Z16829",
"Z16829K1": [
"Z40"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Boolean lists have the same Type when one is empty"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "boolesche Liste ist typisierte Liste"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"same Typed list Types (Boolean)"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "replicates Z16833, which fails while this passes"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Liste mit den Werten [wahr,falsch] hat gleiches Referenzobjekt wie typisierte boolesche Liste"
}
]
}
}
0pdzjkt6x8kts70ibw2i7bs0dnka9eb
Z19008
0
39174
278272
173788
2026-05-26T18:52:17Z
Ameisenigel
44
de
278272
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z19008"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z16829",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z16829",
"Z16829K1": {
"Z1K1": "Z7",
"Z7K1": "Z16829",
"Z16829K1": [
"Z40",
{
"Z1K1": "Z40",
"Z40K1": "Z41"
},
{
"Z1K1": "Z40",
"Z40K1": "Z42"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19084",
"Z19084K2": "Z4"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Type of Boolean-list’s Type is Type"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le type de la liste booléenne typée est type"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Typ des Typs der boolesche Liste ist Typ"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "all Types have Type (Z4) as their Type"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Typ ist der Typ aller Typen"
}
]
}
}
5ecpa61ighnnlw3gccnlj3iuzwhpnrt
Z19009
0
39185
278273
127983
2026-05-26T18:54:53Z
Ameisenigel
44
de
278273
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z19009"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z19009K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "text"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Text"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z19010"
],
"Z8K5": "Z19009"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Phonetic transcription of Tunisian"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Phonetische Transkription von Tunesisch"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns a phonetic transcription of an Arabic Script text written in Tunisian Arabic using the NOTA Guidelines"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "gibt eine phonetische Transkription eines Textes in tunesischem Arabisch aus"
}
]
}
}
gmqnwzkah9kgb7wye3nck2of28neavn
Z19010
0
39186
278274
138860
2026-05-26T18:55:29Z
Ameisenigel
44
de
278274
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z19010"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z19009",
"Z14K3": {
"Z1K1": "Z16",
"Z16K1": "Z610",
"Z16K2": "def Z19009(Z19009K1):\n\timport re\n\tpattern = re.compile(r'([\\u064B-\\u0659])([\\u0651])')\n\tstring = pattern.sub(r'\\2\\1', Z19009K1)\n\tstring = string.replace(\"ّ\",\":\")\n\tstring = string.replace(\"يِي\", \"ji:\")\n\tstring = string.replace(\"يٙا\", \"jƐ:\")\n\tstring = string.replace(\"يٙا\", \"jƐ:\")\n\tstring = string.replace(\"يَا\", \"jɐ:\")\n\tstring = string.replace(\"يُو\", \"ju:\")\n\tstring = string.replace(\"يِي \", \"ji\")\n\tstring = string.replace(\"يٙا \", \"jæ\")\n\tstring = string.replace(\"يَا \", \"jɐ\")\n\tstring = string.replace(\"يُو \", \"ju\")\n\tstring = string.replace(\"يَ\", \"jɐ\")\n\tstring = string.replace(\"يٙ\", \"jæ\")\n\tstring = string.replace(\"يُ\", \"jo\")\n\tstring = string.replace(\"يِ\", \"ji\")\n\tstring = string.replace(\"ُوا\", \"u\")\n\tstring = string.replace(\"وِي\", \"wi:\")\n\tstring = string.replace(\"وٙا\", \"wƐ:\")\n\tstring = string.replace(\"وَا\", \"wɐ:\")\n\tstring = string.replace(\"وُو\", \"wu:\")\n\tstring = string.replace(\"وِي \", \"wi \")\n\tstring = string.replace(\"وٙا \", \"wƐ \")\n\tstring = string.replace(\"وَا \", \"wɐ \")\n\tstring = string.replace(\"وُو \", \"wu \")\n\tstring = string.replace(\"وِ\", \"wi\")\n\tstring = string.replace(\"وٙ\", \"wæ\")\n\tstring = string.replace(\"وَ\", \"wɐ\")\n\tstring = string.replace(\"وُ\", \"wo\")\n\tstring = string.replace(\"َا \", \"ɐ \")\n\tstring = string.replace(\"ٙا \", \"æ \")\n\tstring = string.replace(\"ِ \", \"i \")\n\tstring = string.replace(\"ُ \", \"u \")\n\tstring = string.replace(\"هْ\", \"h\")\n\tstring = string.replace(\"َا\", \"ɐ:\")\n\tstring = string.replace(\"َى\", \"ɐ\")\n\tstring = string.replace(\"َ\", \"ɐ\")\n\tstring = string.replace(\"ٙا\", \"Ɛ:\")\n\tstring = string.replace(\"َى\", \"æ\")\n\tstring = string.replace(\"ٙ\", \"æ\")\n\tstring = string.replace(\"ُو \", \"u \")\n\tstring = string.replace(\"ُه \", \"u \")\n\tstring = string.replace(\"ُو\", \"u:\")\n\tstring = string.replace(\"ِي \", \"i \")\n\tstring = string.replace(\"ِي\", \"i:\")\n\tstring = string.replace(\"ةْ\", \"t\")\n\tstring = string.replace(\"ة\", \"\")\n\tstring = string.replace(\"الص\", \"ɪsˁ:\")\n\tstring = string.replace(\"الض\", \"ɪðˁ:\")\n\tstring = string.replace(\"الظ\", \"ɪðˁ:\")\n\tstring = string.replace(\"الث\", \"ɪθ:\")\n\tstring = string.replace(\"الق\", \"ɪlq\")\n\tstring = string.replace(\"الف\", \"ɪlf\")\n\tstring = string.replace(\"الغ\", \"ɪlʁ\")\n\tstring = string.replace(\"الع\", \"ɪlʕ\")\n\tstring = string.replace(\"اله\", \"ɪlh\")\n\tstring = string.replace(\"الخ\", \"ɪlχ\")\n\tstring = string.replace(\"الح\", \"ɪlħ\")\n\tstring = string.replace(\"الج\", \"ɪlʒ\")\n\tstring = string.replace(\"الد\", \"ɪd:\")\n\tstring = string.replace(\"الذ\", \"ɪð:\")\n\tstring = string.replace(\"الط\", \"ɪtˁ:\")\n\tstring = string.replace(\"الك\", \"ɪlk\")\n\tstring = string.replace(\"الم\", \"ɪlm\")\n\tstring = string.replace(\"الن\", \"ɪn:\")\n\tstring = string.replace(\"الت\", \"ɪt:\")\n\tstring = string.replace(\"الأ\", \"ɪlʔ\")\n\tstring = string.replace(\"الل\", \"ɪl:\")\n\tstring = string.replace(\"الب\", \"ɪlb\")\n\tstring = string.replace(\"الي\", \"ɪlj\")\n\tstring = string.replace(\"الس\", \"ɪs:\")\n\tstring = string.replace(\"الش\", \"ɪʃ:\")\n\tstring = string.replace(\"الر\", \"ɪz:\")\n\tstring = string.replace(\"الآ\", \"ɪl:Ɛ:\")\n\tstring = string.replace(\"الو\", \"ɪl:u\")\n\tstring = string.replace(\"الز\", \"ɪz:\")\n\tstring = string.replace(\"الإ\", \"ɪlʔ\")\n\tstring = string.replace(\"الص\", \"ɪsˁ:\")\n\tstring = string.replace(\"الض\", \"ɪðˁ:\")\n\tstring = string.replace(\"الظ\", \"ɪðˁ:\")\n\tstring = string.replace(\"الث\", \"ɪθ:\")\n\tstring = string.replace(\"الق\", \"ɪlq\")\n\tstring = string.replace(\"الف\", \"ɪlf\")\n\tstring = string.replace(\"الغ\", \"ɪlʁ\")\n\tstring = string.replace(\"العْ\", \"ɪlʕ\")\n\tstring = string.replace(\"الع\", \"ɪlʕ\")\n\tstring = string.replace(\"اله\", \"ɪlh\")\n\tstring = string.replace(\"الخ\", \"ɪlχ\")\n\tstring = string.replace(\"الح\", \"ɪlħ\")\n\tstring = string.replace(\"الج\", \"ɪlʒ\")\n\tstring = string.replace(\"الد\", \"ɪd:\")\n\tstring = string.replace(\"الذ\", \"ɪð:\")\n\tstring = string.replace(\"الط\", \"ɪtˁ:\")\n\tstring = string.replace(\"الك\", \"ɪlk\")\n\tstring = string.replace(\"الم\", \"ɪlm\")\n\tstring = string.replace(\"الن\", \"ɪn:\")\n\tstring = string.replace(\"الت\", \"ɪt:\")\n\tstring = string.replace(\"الأ\", \"ɪlʔ\")\n\tstring = string.replace(\"الل\", \"ɪl:\")\n\tstring = string.replace(\"الب\", \"ɪlb\")\n\tstring = string.replace(\"الي\", \"ɪlj\")\n\tstring = string.replace(\"الس\", \"ɪs:\")\n\tstring = string.replace(\"الش\", \"ɪʃ:\")\n\tstring = string.replace(\"الر\", \"ɪz:\")\n\tstring = string.replace(\"الآ\", \"ɪlƐ\")\n\tstring = string.replace(\"الو\", \"ɪl:u\")\n\tstring = string.replace(\"الز\", \"ɪz:\")\n\tstring = string.replace(\"الإ\", \"ɪlʔ\")\n\tstring = string.replace(\"الص\", \"ɪsˁ:\")\n\tstring = string.replace(\"الض\", \"ɪðˁ:\")\n\tstring = string.replace(\"الظ\", \"ɪðˁ:\")\n\tstring = string.replace(\"الث\", \"ɪθ:\")\n\tstring = string.replace(\"الق\", \"ɪlq\")\n\tstring = string.replace(\"الف\", \"ɪlf\")\n\tstring = string.replace(\"الغ\", \"ɪlʁ\")\n\tstring = string.replace(\"الع\", \"ɪlʕ\")\n\tstring = string.replace(\"اله\", \"ɪlh\")\n\tstring = string.replace(\"الخ\", \"ɪlχ\")\n\tstring = string.replace(\"الح\", \"ɪlħ\")\n\tstring = string.replace(\"الج\", \"ɪlʒ\")\n\tstring = string.replace(\"الد\", \"ɪd:\")\n\tstring = string.replace(\"الذ\", \"ɪð:\")\n\tstring = string.replace(\"الط\", \"ɪtˁ:\")\n\tstring = string.replace(\"الك\", \"ɪlk\")\n\tstring = string.replace(\"الم\", \"ɪlm\")\n\tstring = string.replace(\"الن\", \"ɪn:\")\n\tstring = string.replace(\"الت\", \"ɪt:\")\n\tstring = string.replace(\"الأ\", \"ɪlʔ\")\n\tstring = string.replace(\"الل\", \"ɪl:\")\n\tstring = string.replace(\"الب\", \"ɪlb\")\n\tstring = string.replace(\"الي\", \"ɪlj\")\n\tstring = string.replace(\"الس\", \"ɪs:\")\n\tstring = string.replace(\"الش\", \"ɪʃ:\")\n\tstring = string.replace(\"الر\", \"ɪr:\")\n\tstring = string.replace(\"الآ\", \"ɪl:Ɛ\")\n\tstring = string.replace(\"الو\", \"ɪl:u\")\n\tstring = string.replace(\"الز\", \"ɪz:\")\n\tstring = string.replace(\"الإ\", \"ɪlʔ\")\n\tstring = string.replace(\"الپ\", \"ɪlp\")\n\tstring = string.replace(\"الڥ\", \"ɪlv\")\n\tstring = string.replace(\"الڨ\", \"ɪlg\")\n\tstring = string.replace(\"ص\", \"sˁ\")\n\tstring = string.replace(\"ض\", \"ðˁ\")\n\tstring = string.replace(\"ظ\", \"ðˁ\")\n\tstring = string.replace(\"ث\", \"θ\")\n\tstring = string.replace(\"ق\", \"q\")\n\tstring = string.replace(\"ف\", \"f\")\n\tstring = string.replace(\"غ\", \"ʁ\")\n\tstring = string.replace(\"ع\", \"ʕ\")\n\tstring = string.replace(\"ه\", \"h\")\n\tstring = string.replace(\"خ\", \"χ\")\n\tstring = string.replace(\"ح\", \"ħ\")\n\tstring = string.replace(\"ج\", \"ʒ\")\n\tstring = string.replace(\"د\", \"d\")\n\tstring = string.replace(\"ذ\", \"ð\")\n\tstring = string.replace(\"ط\", \"tˁ\")\n\tstring = string.replace(\"ك\", \"k\")\n\tstring = string.replace(\"م\", \"m\")\n\tstring = string.replace(\"ن\", \"n\")\n\tstring = string.replace(\"ت\", \"t\")\n\tstring = string.replace(\"أ\", \"ʔ\")\n\tstring = string.replace(\"ل\", \"l\")\n\tstring = string.replace(\"ب\", \"b\")\n\tstring = string.replace(\"س\", \"s\")\n\tstring = string.replace(\"ش\", \"ʃ\")\n\tstring = string.replace(\"ر\", \"r\")\n\tstring = string.replace(\"آ\", \"ʔƐ\")\n\tstring = string.replace(\"ز\", \"z\")\n\tstring = string.replace(\"إ\", \"ʔ\")\n\tstring = string.replace(\"پ\", \"p\")\n\tstring = string.replace(\"ڥ\", \"v\")\n\tstring = string.replace(\"ڨ\", \"g\")\n\tstring = string.replace(\"ئ\", \"ʔ\")\n\tstring = string.replace(\"ؤ\", \"ʔ\")\n\tstring = string.replace(\"ي\", \"j\")\n\tstring = string.replace(\"و\", \"w\")\n\tstring = string.replace(\"ِ\", \"ɪ\")\n\tstring = string.replace(\"ُ\", \"o\")\n\tletters = [\"z\", \"zˁ\", \"nˁ\", \"mˁ\", \"lˁ\", \"rˁ\", \"bˁ\", \"sˁ\", \"ðˁ\", \"θ\", \"q\", \"f\", \"ʁ\", \"ʕ\", \"h\", \"χ\", \"ħ\", \"ʒ\", \"d\", \"ð\", \"tˁ\", \"k\", \"m\", \"n\", \"t\", \"ʔ\", \"l\", \"b\", \"s\", \"ʃ\", \"r\", \"p\", \"v\", \"g\", \"j\", \"w\"]\n\tstring = string.replace(\"ْ\", \"\")\n\tstring = string.replace(\"ˁæ\", \"ˁɐ\")\n\tstring = string.replace(\"bɐ\", \"bˁɐ\")\n\tstring = string.replace(\"rɐ\", \"rˁɐ\")\n\tstring = string.replace(\"lɐ\", \"lˁɐ\")\n\tstring = string.replace(\"mɐ\", \"mˁɐ\")\n\tstring = string.replace(\"nɐ\", \"nˁɐ\")\n\tstring = string.replace(\"zɐ\", \"zˁɐ\")\n\tstring = string.replace(\"ɐb\", \"ɐbˁ\")\n\tstring = string.replace(\"ɐr\", \"ɐrˁ\")\n\tstring = string.replace(\"ɐl\", \"ɐlˁ\")\n\tstring = string.replace(\"ɐm\", \"ɐmˁ\")\n\tstring = string.replace(\"ɐn\", \"ɐnˁ\")\n\tstring = string.replace(\"ɐz\", \"ɐzˁ\")\n\tfor l in letters:\n\t\tstring = string.replace(\"o\"+l+\"ɐ\", \"u\"+l+\"ɐ\")\n\t\tstring = string.replace(\"o\"+l+\"æ\", \"u\"+l+\"æ\")\n\t\tstring = string.replace(\"o\"+l+\"i\", \"u\"+l+\"i\")\n\t\tstring = string.replace(\"o\"+l+\"u\", \"u\"+l+\"u\")\n\t\tstring = string.replace(\"o\"+l+\"i\", \"u\"+l+\"i\")\n\t\tstring = string.replace(\"o\"+l+\"ɪ\", \"u\"+l+\"ɪ\")\n\t\tstring = string.replace(\"o\"+l+\"o\", \"u\"+l+\"o\")\n\t\tstring = string.replace(\"o\"+l+\"Ɛ\", \"u\"+l+\"Ɛ\")\n\t\tstring = string.replace(\"o\"+l+\"ɐ\", \"u\"+l+\"ɐ\")\n\t\tstring = string.replace(\"ɪ\"+l+\"æ\", \"i\"+l+\"æ\")\n\t\tstring = string.replace(\"ɪ\"+l+\"i\", \"i\"+l+\"i\")\n\t\tstring = string.replace(\"ɪ\"+l+\"u\", \"i\"+l+\"u\")\n\t\tstring = string.replace(\"ɪ\"+l+\"i\", \"i\"+l+\"i\")\n\t\tstring = string.replace(\"ɪ\"+l+\"ɪ\", \"i\"+l+\"ɪ\")\n\t\tstring = string.replace(\"ɪ\"+l+\"o\", \"i\"+l+\"o\")\n\t\tstring = string.replace(\"ɪ\"+l+\"Ɛ\", \"i\"+l+\"Ɛ\")\n\tstring = string.replace(\"ا\", \"ɪ\")\n\tstring = string.replace(\": \", \" \")\n\tvowels = [\"æ\", \"ɐ\", \"i\", \"u\"]\n\tfor v in vowels:\n\t\tstring = string.replace(v+\" e\", v+\" \")\n\tif (string[len(string)-1]==\":\"): string = string[:-1]\n\tif (string[len(string)-1]==\"i\"): string = string[:-1]+\"i\"\n\tif (string[len(string)-1]==\"Ɛ\"): string = string[:-1]+\"æ\"\n\tstring = string.replace(\"ttˤ\", \"tˤː\")\n\tstring = string.replace(\"tˤt\", \"tˤː\")\n\tstring = string.replace(\"χh\", \"χː\")\n\tstring = string.replace(\"χʁ\", \"χː\")\n\tstring = string.replace(\"tɡ\", \"dɡ\")\n\tstring = string.replace(\"fd\", \"vd\")\n\tstring = string.replace(\"ħh\", \"ħː\")\n\tstring = string.replace(\"nl\", \"lː\")\n\tstring = string.replace(\"sd\", \"zd\")\n\tstring = string.replace(\"td\", \"dː\")\n\tstring = string.replace(\"dt\", \"tː\")\n\tstring = string.replace(\"ln\", \"nː\")\n\tstring = string.replace(\"hʕ\", \"ħː\")\n\tstring = string.replace(\"tð\", \"dð\")\n\tstring = string.replace(\"hħ\", \"ħː\")\n\tstring = string.replace(\"nr\", \"rː\")\n\tstring = string.replace(\"nf\", \"mf\")\n\tstring = string.replace(\"qk\", \"qː\")\n\tstring = string.replace(\"kq\", \"qː\")\n\tstring = string.replace(\"lr\", \"rː\")\n\tstring = string.replace(\"ʁh\", \"χː\")\n\tstring = string.replace(\"ʕh\", \"ħː\")\n\tstring = string.replace(\"ʃd\", \"ʒd\")\n\tstring = string.replace(\"nb\", \"mb\")\n\tstring = string.replace(\"ʕħ\", \"ħː\")\n\tstring = string.replace(\"tz\", \"d͡z\")\n\tstring = string.replace(\"tʒ\", \"d͡ʒ\")\n\tstring = string.replace(\"fv\", \"v:\")\n\tvoiced = [\"b\", \"d\", \"ɡ\", \"d͡z\", \"ð\", \"z\", \"ʒ\", \"ʁ\", \"ʕ\"]\n\tfor vv in voiced:\n\t\tstring = string.replace(\"f\"+vv, \"v\"+vv)\n\tvoiceless = [\"p\", \"t\", \"k\", \"q\", \"ʔ\", \"f\", \"θ\", \"s\", \"ʃ\", \"χ\", \"ħ\", \"h\"]\n\tfor vl in voiceless:\n\t\tstring = string.replace(\"b\"+vl, \"p\"+vl)\n\treturn string\t"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Phonetic transcription of Tunisian, python"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Phonetische Transkription von Tunesisch in Python"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
etq0ew4ntc0uok14ab7qr1g0lbqb1lc
Wikifunctions:Catalogue/String operations
4
41922
278456
277219
2026-05-27T11:15:24Z
YoshiRulz
10156
/* Comparison */ Add comparisons table
278456
wikitext
text/x-wiki
[[File:Wikifunctions-logo-string-operations.svg|200px|right]]
{{see also|WF:Catalogue/Character operations}}
These are functions that deal with {{Z+|Z6}}
==Evaluation==
These functions perform simple tests on a text string to tell you if something else needs to be done, or they already are in an expected format.
===Empty strings===
* {{Z+|Z10008}}
** {{Z+|Z12941}}
* {{Z+|Z24331}}
* {{Z+|Z11082}}
** {{Z+|Z32556}}
===Case and character types===
* {{Z+|Z10083}}
* {{Z+|Z10715}}
** {{Z+|Z28182}}
* {{Z+|Z10336}}
* {{Z+|Z11349}}
* {{Z+|Z10346}}
* {{Z+|Z11383}}
* {{Z+|Z10375}}
* {{Z+|Z10363}}
* {{Z+|Z10897}}
* {{Z+|Z10324}}
* {{Z+|Z25592}}
* {{Z+|Z11678}}
* {{Z+|Z11684}}
* {{Z+|Z12626}}
===Other===
* {{Z+|Z10096}}
* {{Z+|Z19170}}
* {{Z+|Z19191}}
* {{Z+|Z19217}}
* {{Z+|Z13482}}
*{{Z+|Z14083}}
* {{Z+|Z11573}}
==Properties and metrics==
===Length===
* {{Z+|Z11040}}
* {{Z+|Z17036}}
* {{Z+|Z17030}}
===Distance===
* {{Z+|Z11328}}
* {{Z+|Z10393}}
===Get specific characters or substrings===
====Anywhere in the string====
* {{Z+|Z24472}}
** {{Z+|Z14244}}
* {{Z+|Z28630}}
** {{Z+|Z14592}}
====At the start====
* {{Z+|Z31145}}
** {{Z+|Z32065}}
** {{Z+|Z10901}}
* {{Z+|Z15996}}
* {{Z+|Z22344}}
====At the end====
* {{Z+|Z31845}}
** {{Z+|Z11060}}
* {{Z+|Z14460}}
* {{Z+|Z14463}}
==Comparison==
{{Help:Comparison function table/String}}
===Equality===
* {{Z+|Z866}}
* {{Z+|Z10539}}
* {{Z+|Z10379}}
* {{Z+|Z18898}}
===Substrings and characters===
* {{Z+|Z10615}}
* {{Z+|Z10618}}
* {{Z+|Z11693}}
* {{Z+|Z14483}}
* {{Z+|Z13119}}
* {{Z+|Z10973}}
* {{Z+|Z19177}}
===Length===
* {{Z+|Z11690}}
* {{Z+|Z11519}}
==String search==
* {{Z+|Z10070}}
* {{Z+|Z14450}}
* {{Z+|Z31826}}
** {{Z+|Z31268}}
==Transformation==
These perform character replacements and other basic operations.
===Add characters===
====To the start and end====
* {{Z+|Z11145}}
====To the end (suffix)====
* {{Z+|Z27528}}
* {{Z+|Z27529}}
=====If the string doesn't already end with a specific suffix=====
* {{Z+|Z17973}}
======Language-specific suffixes======
* {{Z+|Z18066}}
* {{Z+|Z18050}}
* {{Z+|Z18042}}
* {{Z+|Z18039}}
* {{Z+|Z18036}}
* {{Z+|Z18020}}
* {{Z+|Z18017}}
* {{Z+|Z17952}}
* {{Z+|Z17942}}
* {{Z+|Z17939}}
* {{Z+|Z17749}}
* {{Z+|Z17904}}
* {{Z+|Z17948}}
* {{Z+|Z17791}}
===Replace characters===
====Anywhere in the string====
* {{Z+|Z10075}}
* {{Z+|Z14613}}
* {{Z+|Z29506}}
* {{Z+|Z11492}}
* {{Z+|Z11501}}
====At the end (suffix)====
* {{Z+|Z11178}}
* {{Z+|Z27159}}
=====Language-specific suffixes=====
* {{Z+|Z18092}}
* {{Z+|Z18026}}
* {{Z+|Z17827}}
* {{Z+|Z17915}}
* {{Z+|Z17918}}
* {{Z+|Z27517}}
* {{Z+|Z27522}}
* {{Z+|Z27525}}
* {{Z+|Z27534}}
* {{Z+|Z27535}}
* {{Z+|Z27536}}
* {{Z+|Z27537}}
* {{Z+|Z27546}}
===Delete or discard characters===
====Anywhere in the string====
* {{Z+|Z10052}}
* {{Z+|Z11531}}
* {{Z+|Z14119}}
* {{Z+|Z11193}}
* {{Z+|Z14494}}
* {{Z+|Z10171}}
* {{Z+|Z14515}}
* {{Z+|Z14520}}
=====Duplicates=====
* {{Z+|Z11102}}
** {{Z+|Z19185}}
* {{Z+|Z22507}}
====At the start and end====
* {{Z+|Z26414}}
* {{Z+|Z11151}}
====At the start (prefix)====
* {{Z+|Z14636}}
** {{Z+|Z14456}}
* {{Z+|Z31955}}
** {{Z+|Z31880}}
* {{Z+|Z11410}}
* {{Z+|Z11412}}
* {{Z+|Z11414}}
* {{Z+|Z11416}}
====At the end (suffix)====
* {{Z+|Z11879}}
* {{Z+|Z11170}}
* {{Z+|Z11418}}
* {{Z+|Z11420}}
* {{Z+|Z11422}}
* {{Z+|Z11424}}
====Whitespace====
* {{Z+|Z10079}}
** {{Z+|Z10084}}
** {{Z+|Z10095}}
===Concatenation and duplication===
* {{Z+|Z10000}}
** {{Z+|Z27182}}
** {{Z+|Z21394}}
** {{Z+|Z12899}}
** {{Z+|Z22504}}
** {{Z+|Z22514}}
** {{Z+|Z27385}}
** {{Z+|Z19654}}
* {{Z+|Z10753}}
** {{Z+|Z12624}}
** {{Z+|Z10911}}
===Case===
* {{Z+|Z10018}}
* {{Z+|Z10047}}
** {{Z+|Z32953}}
* {{Z+|Z10251}}
* {{Z+|Z10290}}
* {{Z+|Z10816}}
* {{Z+|Z10281}}
===Formatting and presentation===
* {{Z+|Z19612}}
* {{Z+|Z11484}}
* {{Z+|Z11490}}
* {{Z+|Z35494}}
* {{Z+|Z13473}}
* {{Z+|Z14770}}
* {{Z+|Z10108}}
* {{Z+|Z22511}}
* {{Z+|Z31471}}
=== Other ===
* {{Z+|Z22699}}
* {{Z+|Z10012}}
* {{Z+|Z13060}}
* {{Z+|Z22717}}
* {{Z+|Z25614}}
* {{Z+|Z27053}}
* {{Z+|Z32085}}
== Regular expressions ==
* {{Z+|Z25847}}
* {{Z+|Z25829}}
** {{Z+|Z25833}}
** {{Z+|Z25853}}
* {{Z+|Z12316}}
* {{Z+|Z10193}}
** {{Z+|Z29153}}
** {{Z+|Z29890}}
==Encode and decode==
* {{Z+|Z10366}}
* {{Z+|Z10373}}
* {{Z+|Z10761}}
* {{Z+|Z10774}}
* {{Z+|Z10944}}
* {{Z+|Z10956}}
* {{Z+|Z10309}}
* {{Z+|Z10970}}
* {{Z+|Z11003}}
* {{Z+|Z11007}}
* {{Z+|Z14189}}
* {{Z+|Z14195}}
* {{Z+|Z10057}}
* {{Z+|Z10062}} (needed to demonstrate base64 encode/decode examples)
==Cryptography==
===Caesar cipher===
(alphabet needs to be specified when calling these functions)
* {{Z+|Z12812}}
* {{Z+|Z10846}}
* {{Z+|Z10627}} [[:en:ROT13|ROT13 encrypt/decrypt]]
* {{Z+|Z10851}}
* {{Z+|Z17530}}
* {{Z+|Z17526}}
* {{Z+|Z20669}}
* {{Z+|Z23869}}
===Substitution ciphers===
* {{Z+|Z22725}}
* {{Z+|Z22728}}
===Vigenère cipher===
* {{Z+|Z23848}}
* {{Z+|Z23851}}
* {{Z+|Z23953}}
* {{Z+|Z23956}}
===Cryptographic hash functions===
(would be better with types representing a stream of bytes)
* {{Z+|Z10148}} [[wikidata:Q47476577|SHA-1]]
* {{Z+|Z10124}} [[wikidata:Q47465971|SHA-256]]
* {{Z+|Z10132}} [[wikidata:Q47465971|SHA-384]]
* {{Z+|Z10067}} [[wikidata:Q47465971|SHA-512]]
==Wikitext and Mediawiki string operations==
* {{Z+|Z11019}}
* {{Z+|Z11139}}
* {{Z+|Z10919}}
* {{Z+|Z11156}}
* {{Z+|Z17954}}
* {{Z+|Z17956}}
==Comma-separated values (CSV)==
* {{Z+|Z11094}}
==Color operations==
Only includes functions that operate on hex triplets. For other color functions, see [[Wikifunctions:Catalogue/Color functions]].
* {{Z+|Z12997}}
* {{Z+|Z13017}}
* {{Z+|Z17664}}
* {{z+|Z17687}}
* {{Z+|Z17713}}
* {{Z+|Z13023}}
* {{Z+|Z13028}}
* {{Z+|Z18184}}
* {{Z+|Z18189}}
* {{Z+|Z18196}}
* {{Z+|Z18204}}
* {{Z+|Z18208}}
* {{Z+|Z18212}}
* {{Z+|Z18263}}
* {{Z+|Z18268}}
* {{Z+|Z18296}}
* {{Z+|Z18300}}
==HTML fragments==
See [[Wikifunctions:Catalogue/HTML operations]]
[[Category:Lists of functions]]
r3swsvx3c949nvoe8ebfmus1bz845hh
Wikifunctions:Catalogue/Date operations
4
41958
278461
274554
2026-05-27T11:53:39Z
YoshiRulz
10156
Add de/construction and comparison tables
278461
wikitext
text/x-wiki
== Date operations ==
=== Gregorian calendar dates ===
{{Help:Type deconstruction table/Gregorian date}}
See [[Wikifunctions:Suggest a function#Gregorian calendar date|suggested functions]] for more function ideas.
==== Operations on a date ====
* {{Z+|Z20440}}
* {{Z+|Z24968}}
* {{Z+|Z20750}}
* {{Z+|Z20816}}
==== Information about a date ====
* {{Z+|Z20421}}
* {{Z+|Z24936}}
* {{Z+|Z24948}}
* {{Z+|Z24962}}
* {{Z+|Z28143}}
* {{Z+|Z25248}}
* {{Z+|Z24122}}
* {{Z+|Z25266}}
* {{Z+|Z20740}}
* {{Z+|Z20822}}
* {{Z+|Z20741}}
* {{Z+|Z25280}}
* {{Z+|Z26059}}
==== Information between two dates ====
{{Help:Comparison function table/Gregorian date}}
* {{Z+|Z20430}}
* {{Z+|Z25271}}
* {{Z+|Z25276}}
* {{Z+|Z20756}}
* {{Z+|Z24918}}
* {{Z+|Z27190}}
* {{Z+|Z27198}}
** {{Z+|Z24901}}
* {{Z+|Z20744}}
* {{Z+|Z31188}}
* {{Z+|Z20856}}
===== Conversions =====
{{Help:Type conversion table/Gregorian date}}
* {{Z+|Z25603}}
* {{Z+|Z25711}}
* {{Z+|Z22844}}
* {{Z+|Z23801}}
* {{Z+|Z23808}}
* {{Z+|Z23246}}
* {{Z+|Z24884}}
* {{Z+|Z27478}}
* {{Z+|Z28119}}
* {{Z+|Z28911}}
* {{Z+|Z28600}}
==== Dates to strings ====
* {{Z+|Z20780}}
** {{Z+|Z32997}}
* {{Z+|Z20788}}
* {{Z+|Z22214}}
* {{Z+|Z20770}}
* {{Z+|Z24880}}
* {{Z+|Z20776}}
* {{Z+|Z20773}}
* {{Z+|Z20782}}
* {{Z+|Z20794}}
* {{Z+|Z20785}}
* {{Z+|Z20791}}
* {{Z+|Z23197}}
* {{Z+|Z27655}}
* {{Z+|Z20801}}
==== Strings to dates ====
* {{Z+|Z20808}}
* {{Z+|Z23976}}
* {{Z+|Z24007}}
* {{Z+|Z23984}}
* {{Z+|Z23990}}
* {{Z+|Z23961}}
=== Day of Roman year ===
{{Help:Type deconstruction table/Day of Roman year}}
* {{Z+|Z20388}}
* {{Z+|Z20343}}
* {{Z+|Z24936}}
* {{Z+|Z20355}}
* {{Z+|Z20399}}
* {{Z+|Z20357}}
* {{Z+|Z20362}}
* {{Z+|Z20367}}
* {{Z+|Z20406}}
* {{Z+|Z20591}}
* {{Z+|Z22933}}
* {{Z+|Z24974}}
* {{Z+|Z23427}}
* {{Z+|Z26166}}
* {{Z+|Z26237}}
** {{Z+|Z29911}}
* {{Z+|Z26271}}
=== Using non-date types ===
* {{Z+|Z10996}}
* {{Z+|Z11015}}
* {{Z+|Z11011}}
* {{Z+|Z12176}}
* {{Z+|Z13163}}
* {{Z+|Z16914}}
* {{Z+|Z13306}}
* {{Z+|Z16908}}
* {{Z+|Z13300}}
* {{Z+|Z13335}}
* {{Z+|Z18957}}
* {{Z+|Z18961}}
* {{Z+|Z29899}}
** {{Z+|Z29916}}
=== Bengali date operations ===
* {{Z+|Z12926}}
* {{Z+|Z18131}}
* {{Z+|Z18435}}
* {{Z+|Z18462}}
* {{Z+|Z18169}}
* {{Z+|Z18573}}
* {{Z+|Z18582}}
* {{Z+|Z18387}}
* {{Z+|Z18397}}
* {{Z+|Z18662}}
== Year operations ==
===Gregorian year===
{{Help:Type deconstruction table/Gregorian year}}
==== Information about a year ====
* {{Z+|Z20172}}
* {{Z+|Z20314}}
* {{Z+|Z20185}}
* {{Z+|Z20160}}
* {{Z+|Z20181}}
* {{Z+|Z20257}}
* {{Z+|Z22920}}
* {{Z+|Z20290}}
* {{Z+|Z20302}}
* {{Z+|Z20277}}
* {{Z+|Z23254}}
* {{Z+|Z23269}}
* {{Z+|Z20610}}
* {{Z+|Z20648}}
* {{Z+|Z20730}}
** {{Z+|Z29903}}
* {{Z+|Z23423}}
* {{Z+|Z23427}}
* {{Z+|Z23455}}
* {{Z+|Z23474}}
* {{Z+|Z24222}}
* {{Z+|Z24229}}
* {{Z+|Z24244}}
* {{Z+|Z28855}}
* {{Z+|Z28875}}
==== Comparing two years ====
{{Help:Comparison function table/Gregorian year}}
*{{Z+|Z20166}}
*{{Z+|Z20219}}
*{{Z+|Z28833}}
*{{Z+|Z25568}}
*{{Z+|Z25575}}
==== Conversions ====
* {{Z+|Z20241}}
* {{Z+|Z23193}}
* {{Z+|Z22910}}
* {{Z+|Z20198}}
* {{Z+|Z20192}}
* {{Z+|Z24948}}
* {{Z+|Z20371}}
* {{Z+|Z20588}}
* {{Z+|Z20185}}
* {{Z+|Z20160}}
* {{Z+|Z20257}}
* {{Z+|Z22920}}
* {{Z+|Z22030}}
* {{Z+|Z23246}}
* {{Z+|Z28777}}
==== Intro for year ====
* {{Z+|Z20898}}
* {{Z+|Z20767}}
* {{Z+|Z20727}}
* {{Z+|Z20597}}
* {{Z+|Z21590}}
==Day of the week==
*{{Z+|Z17414}}
*{{Z+|Z20421}}
*{{Z+|Z17420}}
*{{Z+|Z17435}}
*{{Z+|Z17517}}
*{{Z+|Z17478}}
*{{Z+|Z17485}}
*{{Z+|Z17452}}
*{{Z+|Z17536}}
*{{Z+|Z17506}}
*{{Z+|Z17511}}
*{{Z+|Z20290}}
*{{Z+|Z20302}}
*{{Z+|Z17540}}
*{{Z+|Z17516}}
*{{Z+|Z17549}}
*{{Z+|Z17556}}
*{{Z+|Z17578}}
*{{Z+|Z23415}}
*{{Z+|Z23419}}
==Month operations==
=== Gregorian months ===
*{{Z+|Z16137}}
*{{Z+|Z16136}}
*{{Z+|Z16299}}
*{{Z+|Z16255}}
*{{Z+|Z16230}}
*{{Z+|Z16330}}
*{{Z+|Z26504}}
*{{Z+|Z16580}}
*{{Z+|Z16272}}
*{{Z+|Z16289}}: doesn't support void
*{{Z+|Z16584}}
*{{Z+|Z16648}}
*{{Z+|Z16542}}
*{{Z+|Z16316}}
*{{Z+|Z16332}}
*{{Z+|Z16348}}
*{{Z+|Z16307}}
*{{Z+|Z16293}}
*{{Z+|Z13596}}
*{{Z+|Z22240}}: Don't know what to do with void
*{{Z+|Z23403}}: Same
*{{Z+|Z26280}}
[[Special:Search/ : "Z8K2 Z16098" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z16098" OR "Z17K1 Z16098" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z16098" |All Gregorian calendar month functions]]
=== Igbo months ===
*{{Z+|Z16000}}
*{{Z+|Z16945}}
*{{Z+|Z16955}}
*{{Z+|Z16972}}
*{{Z+|Z16973}}
*{{Z+|Z16990}}
*{{Z+|Z17685}}
[[Special:Search/ : "Z8K2 Z16927" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z16927" OR "Z17K1 Z16927" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z16927" |All Igbo month functions]]
== Era operations ==
=== Gregorian era ===
* {{Z+|Z17817}}
* {{Z+|Z17977}}
* {{Z+|Z18072}}
* {{Z+|Z18080}}
* {{Z+|Z18084}}
* {{Z+|Z25060}}
[[Special:Search/: "Z8K2 Z17813" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z17813" OR "Z17K1 Z17813" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z17813" |All Gregorian era functions]]
== Language specific ==
=== Basque ===
* {{Z+|Z18826}}
=== Arabic ===
* {{Z+|Z20013}}
[[Category:Lists of functions]]
72pjmxzpus1txkh4j7mvdfqfca047qr
278462
278461
2026-05-27T11:56:16Z
YoshiRulz
10156
Add hatnotes
278462
wikitext
text/x-wiki
== Time operations ==
{{main|WF:Catalogue/Time operations}}
== Date operations ==
{{see also|WF:Catalogue/Wikidata operations#Wikidata time}}
=== Gregorian calendar dates ===
{{Help:Type deconstruction table/Gregorian date}}
See [[Wikifunctions:Suggest a function#Gregorian calendar date|suggested functions]] for more function ideas.
==== Operations on a date ====
* {{Z+|Z20440}}
* {{Z+|Z24968}}
* {{Z+|Z20750}}
* {{Z+|Z20816}}
==== Information about a date ====
* {{Z+|Z20421}}
* {{Z+|Z24936}}
* {{Z+|Z24948}}
* {{Z+|Z24962}}
* {{Z+|Z28143}}
* {{Z+|Z25248}}
* {{Z+|Z24122}}
* {{Z+|Z25266}}
* {{Z+|Z20740}}
* {{Z+|Z20822}}
* {{Z+|Z20741}}
* {{Z+|Z25280}}
* {{Z+|Z26059}}
==== Information between two dates ====
{{Help:Comparison function table/Gregorian date}}
* {{Z+|Z20430}}
* {{Z+|Z25271}}
* {{Z+|Z25276}}
* {{Z+|Z20756}}
* {{Z+|Z24918}}
* {{Z+|Z27190}}
* {{Z+|Z27198}}
** {{Z+|Z24901}}
* {{Z+|Z20744}}
* {{Z+|Z31188}}
* {{Z+|Z20856}}
===== Conversions =====
{{Help:Type conversion table/Gregorian date}}
* {{Z+|Z25603}}
* {{Z+|Z25711}}
* {{Z+|Z22844}}
* {{Z+|Z23801}}
* {{Z+|Z23808}}
* {{Z+|Z23246}}
* {{Z+|Z24884}}
* {{Z+|Z27478}}
* {{Z+|Z28119}}
* {{Z+|Z28911}}
* {{Z+|Z28600}}
==== Dates to strings ====
* {{Z+|Z20780}}
** {{Z+|Z32997}}
* {{Z+|Z20788}}
* {{Z+|Z22214}}
* {{Z+|Z20770}}
* {{Z+|Z24880}}
* {{Z+|Z20776}}
* {{Z+|Z20773}}
* {{Z+|Z20782}}
* {{Z+|Z20794}}
* {{Z+|Z20785}}
* {{Z+|Z20791}}
* {{Z+|Z23197}}
* {{Z+|Z27655}}
* {{Z+|Z20801}}
==== Strings to dates ====
* {{Z+|Z20808}}
* {{Z+|Z23976}}
* {{Z+|Z24007}}
* {{Z+|Z23984}}
* {{Z+|Z23990}}
* {{Z+|Z23961}}
=== Day of Roman year ===
{{Help:Type deconstruction table/Day of Roman year}}
* {{Z+|Z20388}}
* {{Z+|Z20343}}
* {{Z+|Z24936}}
* {{Z+|Z20355}}
* {{Z+|Z20399}}
* {{Z+|Z20357}}
* {{Z+|Z20362}}
* {{Z+|Z20367}}
* {{Z+|Z20406}}
* {{Z+|Z20591}}
* {{Z+|Z22933}}
* {{Z+|Z24974}}
* {{Z+|Z23427}}
* {{Z+|Z26166}}
* {{Z+|Z26237}}
** {{Z+|Z29911}}
* {{Z+|Z26271}}
=== Using non-date types ===
* {{Z+|Z10996}}
* {{Z+|Z11015}}
* {{Z+|Z11011}}
* {{Z+|Z12176}}
* {{Z+|Z13163}}
* {{Z+|Z16914}}
* {{Z+|Z13306}}
* {{Z+|Z16908}}
* {{Z+|Z13300}}
* {{Z+|Z13335}}
* {{Z+|Z18957}}
* {{Z+|Z18961}}
* {{Z+|Z29899}}
** {{Z+|Z29916}}
=== Bengali date operations ===
* {{Z+|Z12926}}
* {{Z+|Z18131}}
* {{Z+|Z18435}}
* {{Z+|Z18462}}
* {{Z+|Z18169}}
* {{Z+|Z18573}}
* {{Z+|Z18582}}
* {{Z+|Z18387}}
* {{Z+|Z18397}}
* {{Z+|Z18662}}
== Year operations ==
===Gregorian year===
{{Help:Type deconstruction table/Gregorian year}}
==== Information about a year ====
* {{Z+|Z20172}}
* {{Z+|Z20314}}
* {{Z+|Z20185}}
* {{Z+|Z20160}}
* {{Z+|Z20181}}
* {{Z+|Z20257}}
* {{Z+|Z22920}}
* {{Z+|Z20290}}
* {{Z+|Z20302}}
* {{Z+|Z20277}}
* {{Z+|Z23254}}
* {{Z+|Z23269}}
* {{Z+|Z20610}}
* {{Z+|Z20648}}
* {{Z+|Z20730}}
** {{Z+|Z29903}}
* {{Z+|Z23423}}
* {{Z+|Z23427}}
* {{Z+|Z23455}}
* {{Z+|Z23474}}
* {{Z+|Z24222}}
* {{Z+|Z24229}}
* {{Z+|Z24244}}
* {{Z+|Z28855}}
* {{Z+|Z28875}}
==== Comparing two years ====
{{Help:Comparison function table/Gregorian year}}
*{{Z+|Z20166}}
*{{Z+|Z20219}}
*{{Z+|Z28833}}
*{{Z+|Z25568}}
*{{Z+|Z25575}}
==== Conversions ====
* {{Z+|Z20241}}
* {{Z+|Z23193}}
* {{Z+|Z22910}}
* {{Z+|Z20198}}
* {{Z+|Z20192}}
* {{Z+|Z24948}}
* {{Z+|Z20371}}
* {{Z+|Z20588}}
* {{Z+|Z20185}}
* {{Z+|Z20160}}
* {{Z+|Z20257}}
* {{Z+|Z22920}}
* {{Z+|Z22030}}
* {{Z+|Z23246}}
* {{Z+|Z28777}}
==== Intro for year ====
* {{Z+|Z20898}}
* {{Z+|Z20767}}
* {{Z+|Z20727}}
* {{Z+|Z20597}}
* {{Z+|Z21590}}
==Day of the week==
*{{Z+|Z17414}}
*{{Z+|Z20421}}
*{{Z+|Z17420}}
*{{Z+|Z17435}}
*{{Z+|Z17517}}
*{{Z+|Z17478}}
*{{Z+|Z17485}}
*{{Z+|Z17452}}
*{{Z+|Z17536}}
*{{Z+|Z17506}}
*{{Z+|Z17511}}
*{{Z+|Z20290}}
*{{Z+|Z20302}}
*{{Z+|Z17540}}
*{{Z+|Z17516}}
*{{Z+|Z17549}}
*{{Z+|Z17556}}
*{{Z+|Z17578}}
*{{Z+|Z23415}}
*{{Z+|Z23419}}
==Month operations==
=== Gregorian months ===
*{{Z+|Z16137}}
*{{Z+|Z16136}}
*{{Z+|Z16299}}
*{{Z+|Z16255}}
*{{Z+|Z16230}}
*{{Z+|Z16330}}
*{{Z+|Z26504}}
*{{Z+|Z16580}}
*{{Z+|Z16272}}
*{{Z+|Z16289}}: doesn't support void
*{{Z+|Z16584}}
*{{Z+|Z16648}}
*{{Z+|Z16542}}
*{{Z+|Z16316}}
*{{Z+|Z16332}}
*{{Z+|Z16348}}
*{{Z+|Z16307}}
*{{Z+|Z16293}}
*{{Z+|Z13596}}
*{{Z+|Z22240}}: Don't know what to do with void
*{{Z+|Z23403}}: Same
*{{Z+|Z26280}}
[[Special:Search/ : "Z8K2 Z16098" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z16098" OR "Z17K1 Z16098" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z16098" |All Gregorian calendar month functions]]
=== Igbo months ===
*{{Z+|Z16000}}
*{{Z+|Z16945}}
*{{Z+|Z16955}}
*{{Z+|Z16972}}
*{{Z+|Z16973}}
*{{Z+|Z16990}}
*{{Z+|Z17685}}
[[Special:Search/ : "Z8K2 Z16927" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z16927" OR "Z17K1 Z16927" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z16927" |All Igbo month functions]]
== Era operations ==
=== Gregorian era ===
* {{Z+|Z17817}}
* {{Z+|Z17977}}
* {{Z+|Z18072}}
* {{Z+|Z18080}}
* {{Z+|Z18084}}
* {{Z+|Z25060}}
[[Special:Search/: "Z8K2 Z17813" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z17813" OR "Z17K1 Z17813" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z17813" |All Gregorian era functions]]
== Language specific ==
=== Basque ===
* {{Z+|Z18826}}
=== Arabic ===
* {{Z+|Z20013}}
[[Category:Lists of functions]]
o34x06lq3s98792ezqebosxj0wf8ydt
Wikifunctions:Catalogue/Wikidata operations
4
41959
278458
274835
2026-05-27T11:34:18Z
YoshiRulz
10156
/* Wikidata time */ Add de/construction table
278458
wikitext
text/x-wiki
== Subpages ==
* [[Wikifunctions:Catalogue/Wikidata operations/Property|Wikidata property operations]]
* [[Wikifunctions:Catalogue/Wikidata operations/Item|Wikidata item operations]]
* [[Wikifunctions:Catalogue/Wikidata operations/Lexeme|Wikidata lexeme operations]]
* [[Wikifunctions:Catalogue/Wikidata operations/Statement|Wikidata statement operations]]
== Wikidata property claims / qualifiers ==
{{Help:Type deconstruction table/Wikidata property claim}}
* {{Z+|Z6807}}
* {{Z+|Z28294}}
** {{Z+|Z28308}}
** {{Z+|Z30175}}
** {{Z+|Z32097}}
** {{Z+|Z28312}}
* {{Z+|Z28297}}
* {{Z+|Z28300}}
** {{Z+|Z28304}}
===Wikidata claim types===
* {{Z+|Z29718}}
==Wikidata time==
{{Help:Type deconstruction table/Wikidata time}}
* {{Z+|Z25726}}
** {{Z+|Z28133}}
==Wikidata sitelink==
{{Help:Type deconstruction table/Wikidata sitelink}}
* {{Z|Z31988}}
* {{Z|Z6839}}
* {{Z|Z31931}}
* {{Z|Z31934}}
* {{Z|Z31703}}
* {{Z|Z31973}}
* {{Z|Z31976}}
== Real life information retrieved using Wikidata ==
=== People ===
* {{Z+|Z27758}}
=== Music ===
* {{Z+|Z28803}}
[[Category:Lists of functions]]
[[Category:Wikidata]]
8hltmw2x9uvek68u4pcrqc4k55eygwa
278464
278458
2026-05-27T11:56:54Z
YoshiRulz
10156
/* Wikidata time */ Add hatnote
278464
wikitext
text/x-wiki
== Subpages ==
* [[Wikifunctions:Catalogue/Wikidata operations/Property|Wikidata property operations]]
* [[Wikifunctions:Catalogue/Wikidata operations/Item|Wikidata item operations]]
* [[Wikifunctions:Catalogue/Wikidata operations/Lexeme|Wikidata lexeme operations]]
* [[Wikifunctions:Catalogue/Wikidata operations/Statement|Wikidata statement operations]]
== Wikidata property claims / qualifiers ==
{{Help:Type deconstruction table/Wikidata property claim}}
* {{Z+|Z6807}}
* {{Z+|Z28294}}
** {{Z+|Z28308}}
** {{Z+|Z30175}}
** {{Z+|Z32097}}
** {{Z+|Z28312}}
* {{Z+|Z28297}}
* {{Z+|Z28300}}
** {{Z+|Z28304}}
===Wikidata claim types===
* {{Z+|Z29718}}
==Wikidata time==
{{see also|WF:Catalogue/Date operations}}
{{Help:Type deconstruction table/Wikidata time}}
* {{Z+|Z25726}}
** {{Z+|Z28133}}
==Wikidata sitelink==
{{Help:Type deconstruction table/Wikidata sitelink}}
* {{Z|Z31988}}
* {{Z|Z6839}}
* {{Z|Z31931}}
* {{Z|Z31934}}
* {{Z|Z31703}}
* {{Z|Z31973}}
* {{Z|Z31976}}
== Real life information retrieved using Wikidata ==
=== People ===
* {{Z+|Z27758}}
=== Music ===
* {{Z+|Z28803}}
[[Category:Lists of functions]]
[[Category:Wikidata]]
j65pygff3qvn5lx2l91dy1pmzrc6q6x
Z20616
0
44178
278262
222311
2026-05-26T16:35:33Z
Dv103
11127
Added Z35267 to the approved list of test cases
278262
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z20616"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6005",
"Z17K2": "Z20616K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "lexème"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Lexem"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "লেক্সিম"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z8K3": [
"Z20",
"Z20633",
"Z23299",
"Z35267"
],
"Z8K4": [
"Z14",
"Z20641",
"Z21127"
],
"Z8K5": "Z20616"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical genders from Wikidata lexeme"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "genre grammatical d'un lexème"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "grammatikalisches Geschlecht aus Lexem"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "從 Wikidata 擷取詞位的文法性別"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "উইকিউপাত্ত লেক্সিমের ব্যাকরণগত লিঙ্গ"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"sex",
"masculine or feminine",
"grammatical gender from Lexeme"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1011",
"Z31K2": [
"Z6",
"উইকিউপাত্ত লিঙ্গ",
"লেক্সিমের লিঙ্গ"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "indique le genre, \"masculin\" ou \"féminin\", d'un lexème"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "gibt das grammatikalische Geschlecht von einem Lexem"
}
]
}
}
du2unt8sl67rfo11rumzhntx0as26dg
Z21430
0
47292
278451
272278
2026-05-27T08:26:41Z
WikiLambda system
3
Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]])
278451
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z21430"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z21430K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "leading binary bit"
}
]
}
}
],
"Z8K2": "Z16659",
"Z8K3": [
"Z20",
"Z21432",
"Z21433",
"Z21434"
],
"Z8K4": [
"Z14",
"Z34776",
"Z21431"
],
"Z8K5": "Z21430"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "convert leading binary bit to float64 sign"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "converts a string of \"0\" to positive, and a string of \"1\" to negative"
}
]
}
}
gar494pa5q6qc9atf29getntvlmx5ct
Wikifunctions:Catalogue/Persistent object
4
51814
278454
274720
2026-05-27T10:30:19Z
YoshiRulz
10156
Add fetching table
278454
wikitext
text/x-wiki
[[Category:Lists of functions]]
''Note that there are currently some bugs in the handling of persistent objects, especially in tests.'' See [https://www.wikifunctions.org/w/index.php?title=Wikifunctions%3AProject_chat&diff=106798&oldid=106723]
== Persistent object functions ==
{{Help:Fetching function table/Reference}}
* {{Z+|Z828}}
* {{Z+|Z29542}}
* {{Z+|Z29120}}
** {{Z+|Z29539}}
*** {{Z+|Z16556}}
**** {{Z+|Z16568}}
== Persistent object search strings ==
* {{Z+|Z22849}}
* {{Z+|Z22973}}
* {{Z+|Z23072}}
ll3u9qayz0nc01j73046qqidt1f6pct
Z23934
0
54297
278370
276833
2026-05-27T06:38:31Z
WikiLambda system
3
Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]])
278370
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z23934"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z23934K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "rational"
}
]
}
}
],
"Z8K2": "Z19677",
"Z8K3": [
"Z20",
"Z23936",
"Z24327"
],
"Z8K4": [
"Z14",
"Z23935",
"Z35440"
],
"Z8K5": "Z23934"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "non-integer part of rational"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"fractional part of Rational"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fg233qic1m55fvo33mq3mms0zvy3oww
Wikifunctions:Catalogue/Time operations
4
58463
278460
257950
2026-05-27T11:39:01Z
YoshiRulz
10156
Add de/construction and conversion tables
278460
wikitext
text/x-wiki
= Time operations =
== Time of day operations ==
{{Help:Type deconstruction table/Time of day}}
{{Help:Type conversion table/Time of day}}
* {{Z+|Z25098}}
* {{Z+|Z25082}}
* {{Z+|Z25085}}
* {{Z+|Z25088}}
* {{Z+|Z25094}}
** {{Z+|Z25102}}
** {{Z+|Z25705}}
** {{Z+|Z25701}}
* {{Z+|Z25091}}
** {{Z+|Z29883}}
* {{Z+|Z25118}}
** {{Z+|Z25683}}
* {{Z+|Z25108}}
* {{Z+|Z25179}}
* {{Z+|Z25113}}
** {{Z+|Z32126}}
** {{Z+|Z28037}}
* {{Z+|Z25167}}
* {{Z+|Z25191}}
* {{Z+|Z25187}}
* {{Z+|Z25207}}
* {{Z+|Z27461}}
** {{Z+|Z28072}}
* {{Z+|Z27225}}
* {{Z+|Z29884}}
ixgwoee4ouyaitjhs5ehdif35i48l8m
278463
278460
2026-05-27T11:56:45Z
YoshiRulz
10156
Add hatnote
278463
wikitext
text/x-wiki
{{see also|WF:Catalogue/Date operations}}
= Time operations =
== Time of day operations ==
{{Help:Type deconstruction table/Time of day}}
{{Help:Type conversion table/Time of day}}
* {{Z+|Z25098}}
* {{Z+|Z25082}}
* {{Z+|Z25085}}
* {{Z+|Z25088}}
* {{Z+|Z25094}}
** {{Z+|Z25102}}
** {{Z+|Z25705}}
** {{Z+|Z25701}}
* {{Z+|Z25091}}
** {{Z+|Z29883}}
* {{Z+|Z25118}}
** {{Z+|Z25683}}
* {{Z+|Z25108}}
* {{Z+|Z25179}}
* {{Z+|Z25113}}
** {{Z+|Z32126}}
** {{Z+|Z28037}}
* {{Z+|Z25167}}
* {{Z+|Z25191}}
* {{Z+|Z25187}}
* {{Z+|Z25207}}
* {{Z+|Z27461}}
** {{Z+|Z28072}}
* {{Z+|Z27225}}
* {{Z+|Z29884}}
hpaa3vy5cewq1tme2zdmc8ijhz1ilo3
Wikifunctions:Catalogue/HTML operations
4
69531
278457
275548
2026-05-27T11:19:09Z
YoshiRulz
10156
Add de/construction and comparison tables
278457
wikitext
text/x-wiki
Functions that are directly related to [[Help:HTML_fragments|HTML fragments]].
==Comparison and evaluation==
{{Help:Comparison function table/HTML fragment}}
* {{Z+|Z877}}
* {{Z+|Z29045}}
* {{Z+|Z29572}}
** {{Z+|Z29576}}
==Conversion==
{{Help:Type deconstruction table/HTML fragment}}
* {{Z+|Z27854}}
* {{Z+|Z27861}}
* {{Z+|Z33470}}
** {{Z+|Z27868}}
** {{Z+|Z19384}}
==Transformation==
===Concatenation===
* {{Z+|Z27849}}
** {{Z+|Z27926}}
** {{Z+|Z32149}}
*{{Z+|Z32234}}
===Tag wrapping===
* {{Z+|Z27873}}
** {{Z+|Z33470}}
*** {{Z+|Z33457}}
** {{Z+|Z35049}}
* {{Z+|Z30058}}
* {{Z+|Z29582}}
===Text and element styling===
* {{Z+|Z29052}}
* {{Z+|Z28914}}
* {{Z+|Z31729}}
* {{Z+|Z32925}}
===Other===
* {{Z+|Z27932}}
==Page elements==
===Headers and sections===
* {{Z+|Z31465}}
** {{Z+|Z32145}}
===Paragraphs and lists===
*{{Z+|Z32123}}
** {{Z+|Z32163}}
** {{Z+|Z33068}}
* {{Z+|Z32179}}
* {{Z+|Z32180}}
** {{Z+|Z32215}}
===Links and buttons===
* {{Z+|Z30016}}
* {{Z+|Z31697}}
** {{Z+|Z29588}}
* {{Z+|Z28904}}
* {{Z+|Z30954}}
=== References and citations ===
{{Seealso|Wikifunctions:Catalogue/Wikidata_operations/Item#Citations}}
* {{Z+|Z31906}}
* {{Z+|Z31917}}
* {{Z+|Z31921}}
* {{Z+|Z32053}}
===Tables===
* {{Z+|Z35017}}
* {{Z+|Z27878}}
* {{Z+|Z23293}}
* {{Z+|Z29580}}
==Linguistic applications==
* {{Z+|Z26333}}
* {{Z+|Z29055}}
* {{Z+|Z28602}}
** {{Z+|Z28928}}
* {{Z+|Z29488}}
**{{Z+|Z29557}}
* {{Z+|Z29186}}
==Sentence and fragment generation==
* {{Z+|Z32962}}
[[Category:Lists of functions]]
mc62rq0l7xzexrzqnv8w638hblc4558
Wikifunctions:Catalogue/Wikidata operations/Property
4
70153
278452
276220
2026-05-27T08:42:52Z
YoshiRulz
10156
Add de/construction and fetching tables
278452
wikitext
text/x-wiki
{{Help:Type deconstruction table/Wikidata property reference}}
{{Help:Fetching function table/Wikidata property reference}}
== Wikidata property operations ==
{{Help:Type deconstruction table/Wikidata property}}
* {{Z+|Z6802}}
* {{Z+|Z19267}}
* {{Z+|Z20046}}
* {{Z+|Z29727}}
* {{Z+|Z6822}}
** {{Z+|Z35036}}
* {{Z+|Z23223}}
** {{Z+|Z29829}}
*** {{Z+|Z29825}}
* {{Z+|Z23225}}
* {{Z+|Z23227}}
* {{Z+|Z23229}}
* {{Z+|Z35103}}
* {{Z+|Z35364}}
=== Search for ===
* [[Special:Search/: "Z8K2 Z6002" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6002" OR "Z8K2 Z6092" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6092"|Functions returning an explicit Wikidata property object or reference, singly or in a list]]
* [[Special:Search/: "Z17K1 Z6002" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6002" OR "Z17K1 Z6092" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6092"|Functions expecting an explicit Wikidata property object or reference, singly or in a list]]
[[Category:Lists of functions]]
[[Category:Wikidata]]
cu2usgcj9zkmrbbl73ytj4hwucu2zn9
Wikifunctions:Catalogue/Wikidata operations/Lexeme
4
70155
278453
272992
2026-05-27T10:28:32Z
YoshiRulz
10156
Add de/construction and fetching tables
278453
wikitext
text/x-wiki
== Lexeme sense operations ==
{{Help:Type deconstruction table/Wikidata lexeme sense}}
*{{Z+|Z6826}}
*{{Z+|Z6806}}
*{{Z+|Z23112}}
*{{Z+|Z23114}}
*{{Z+|Z23116}}
*{{Z+|Z23433}}
**{{Z+|Z23489}}
*{{Z+|Z21577}}
*{{Z+|Z20673}}
* {{Z+|Z27292}}
* {{Z+|Z27340}}
=== Search for ===
* [[Special:Search/: "Z8K2 Z6006" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6006" OR "Z8K2 Z6096" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6096" OR "Z17K1 Z6006" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6006" OR "Z17K1 Z6096" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6096"|Functions expecting or returning an explicit Wikidata lexeme sense or reference, singly or in a list]]
== Lexeme sense reference operations ==
{{Help:Type deconstruction table/Wikidata lexeme sense reference}}
*{{Z+|Z23127}}
*{{Z+|Z23130}}
== Lexeme form operations ==
{{Help:Type deconstruction table/Wikidata lexeme form}}
* {{Z+|Z6824}}
* {{Z+|Z6804}}
* {{Z+|Z19271}}
* {{Z+|Z22399}}
* {{Z+|Z22396}}
* {{Z+|Z22478}}
* {{Z+|Z22483}}
* {{Z+|Z23118}}
* {{Z+|Z22638}}
** {{Z+|Z22487}}
** {{Z+|Z22556}}
** {{Z+|Z27499}}
* {{Z+|Z22490}}
* {{Z+|Z29957}}
=== Search for ===
[[Special:Search/: "Z8K2 Z6004" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6004" OR "Z8K2 Z6094" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6094" OR "Z17K1 Z6004" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6004" OR "Z17K1 Z6094" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6094"|Functions expecting or returning an explicit Wikidata lexeme form object or reference, singly or in a list]]
{{Help:Type deconstruction table/Wikidata lexeme form reference}}
== Lexeme reference operations ==
{{Help:Type deconstruction table/Wikidata lexeme reference}}
{{Help:Fetching function table/Wikidata lexeme reference}}
*{{Z+|Z19285}}
*{{Z+|Z6825}}
**{{Z+|Z32373}}
*{{Z+|Z19287}}
*{{Z+|Z22249}}
== Lexeme operations ==
{{Help:Type deconstruction table/Wikidata lexeme}}
=== Lemma operations ===
*{{Z+|Z19293}}
=== Language operations ===
*{{Z+|Z19295}}
*{{Z+|Z19276}}
=== Lexical category operations ===
*{{Z+|Z19298}}
==== Grammatical gender operations ====
*{{Z+|Z26676}}
*{{Z+|Z21739}}
*{{Z+|Z30349}}
=== Form operations ===
*{{Z+|Z19302}}
*{{Z+|Z19232}}
*{{Z+|Z19234}}
*{{Z+|Z19241}}
** {{Z+|Z34943}}
*** {{Z+|Z27410}}
*{{Z+|Z19243}}
*{{Z+|Z19252}}
*{{Z+|Z19260}}
*{{Z+|Z22559}}
*{{Z+|Z19340}}
=== Sense operations ===
*{{Z+|Z19282}}
*{{Z+|Z23486}}
===Other operations===
* {{Z+|Z19300}}
* {{Z+|Z32998}}
* {{Z+|Z22696}}
* {{Z+|Z19285}}
=== Search for ===
[[Special:Search/: "Z8K2 Z6005" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6005" OR "Z8K2 Z6095" OR "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6095" OR "Z17K1 Z6005" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6005" OR "Z17K1 Z6095" OR "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6095"|Functions expecting or returning an explicit Wikidata lexeme object or reference, singly or in a list]]
* [[Special:Search/: "Z8K2 Z6005"|Functions returning an explicit Wikidata lexeme object]]
** [[Special:Search/: "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6005|or a list of them]]
* [[Special:Search/: "Z8K2 Z6095"|Functions returning an explicit Wikidata lexeme reference]]
** [[Special:Search/: "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6095|or a list of them]]
* [[Special:Search/: "Z17K1 Z6005"|Functions expecting an explicit Wikidata lexeme object]]
** [[Special:Search/: "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6005|or a list of them]]
* [[Special:Search/: "Z17K1 Z6095"|Functions expecting an explicit Wikidata lexeme reference]]
** [[Special:Search/: "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 Z6095|or a list of them]]
[[Category:Lists of functions]]
[[Category:Wikidata]]
0veblfofyco0u8bt9002xe064wtqxsf
User:Bunnypranav/sectionResolved.js
2
71170
278455
273255
2026-05-27T10:54:42Z
Bunnypranav
9976
add two more pages
278455
javascript
text/javascript
// <nowiki>
/*
* Adds a "mark resolved" button next to each section edit link on
* Wikifunctions:Requests for deletions and other specified pages. Clicking posts the standard
* done/resolved reply to that section.
* Appends :{{Done}}~~~~ and {{Section resolved|1=~~~~}}.
*/
(function () {
var page = mw.config.get('wgPageName');
var action = mw.config.get('wgAction');
// List of pages where the script should run
var allowedPages = [
'Wikifunctions:Requests_for_deletions',
'Wikifunctions:Report_vandalism',
'Wikifunctions:Requests_for_user_groups',
'Wikifunctions:Administrators%27_noticeboard'
];
// Check if the current page is in the allowed list and we are in 'view' mode
if (!allowedPages.includes(page) || action !== 'view') {
return;
}
mw.loader.using(['mediawiki.util', 'mediawiki.api']).then(function () {
var api = new mw.Api();
var sections = document.querySelectorAll('.mw-editsection');
sections.forEach(function (editSection) {
var editLink = editSection.querySelector('a');
if (!editLink) {
return;
}
var sectionId = mw.util.getParamValue('section', editLink.href);
if (!sectionId || sectionId === '0') {
return; // skip lead or invalid sections
}
// Avoid adding twice
if (editSection.dataset.rfddoneAttached === 'true') {
return;
}
editSection.dataset.rfddoneAttached = 'true';
var button = document.createElement('a');
button.href = '#';
button.textContent = 'mark resolved';
button.title = 'Post {{done}} and {{Section resolved}} to this section';
button.addEventListener('click', function (e) {
e.preventDefault();
postResolution(api, sectionId, button);
});
// Match the edit-section bracket style
var open = document.createElement('span');
open.className = 'mw-editsection-bracket';
open.textContent = '[';
var close = document.createElement('span');
close.className = 'mw-editsection-bracket';
close.textContent = ']';
editSection.appendChild(document.createTextNode(' '));
editSection.appendChild(open);
editSection.appendChild(button);
editSection.appendChild(close);
});
});
function postResolution(api, sectionId, trigger) {
if (trigger.dataset.rfddoneBusy === 'true') {
return;
}
trigger.dataset.rfddoneBusy = 'true';
var originalText = trigger.textContent;
trigger.textContent = 'posting';
newtext = `
:{{done}} ~~~~
{{Section resolved|1=~~~~}}`;
api.postWithToken('csrf', {
action: 'edit',
title: mw.config.get('wgPageName'),
section: sectionId,
appendtext: '\n:{{done}} ~~~~\n{{Section resolved|1=~~~~}}\n',
summary: 'Mark section resolved ([[User:Bunnypranav/sectionResolved.js|sectionResolved]])',
watchlist: 'nochange'
}).done(function () {
location.reload();
}).fail(function (error) {
trigger.textContent = originalText;
trigger.dataset.rfddoneBusy = 'false';
mw.notify('Failed to post resolution: ' + error, { type: 'error' });
});
}
})();
// </nowiki>
rpucd639sgom984smy3i8dmwlhj8428
Wikifunctions:Project chat/Archive/2026/04
4
80104
278311
278158
2026-05-27T03:08:05Z
SpBot
978
archiving 3 sections from [[Wikifunctions:Project chat]] (after section [[Wikifunctions:Project chat/Archive/2026/04#“Key_not_found_()”?|“Key_not_found_()”?]])
278311
wikitext
text/x-wiki
{{Talkarchive}}
== Wikifunctions & Abstract Wikipedia Newsletter #242 is out: Request for Discussion: Syntactic tables ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-04-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we introduce a proposal for Natural Language Generation, we introduce a page for function suggestions from Abstract Wikipedia, we inform you that there will be a presentation about Abstract Wikipedia at WikiCon Australia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1776101400 April 13, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:37, 3 April 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
:<small>This section was archived on a request by: [[User:Mdktb|Mdktb]] ([[User talk:Mdktb|talk]]) 17:13, 10 April 2026 (UTC)</small>
== Special:CreateObject doesn't let me create a typed list ==
Hello. I tried to create a typed list with all English varieties on Wikifunctions, to create consistency between different configs, but [[Special:CreateObject]] doesn't show typed list as an option for creating. Is this a bug or an intentional restriction? [[User:ChaoticVermillion|ChaoticVermillion]] ([[User talk:ChaoticVermillion|talk]]) 08:24, 2 April 2026 (UTC)
:@[[User:ChaoticVermillion|ChaoticVermillion]]: A typed list is an instance of a function call, which is prohibited as a persisted Object. Maybe you want an enum? See [[Wikifunctions:Type proposals]] for the process for creating such a thing. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 12:01, 2 April 2026 (UTC)
::I don't want any sort of enum for this, I just want a list of English varieties (English, American English, Australian English, etc.) as an object that I can put in configs. I tried making an object as a function call, but apparently I have to be a member of the staff to do it. [[User:ChaoticVermillion|ChaoticVermillion]] ([[User talk:ChaoticVermillion|talk]]) 12:07, 2 April 2026 (UTC)
:::I’ve started this with {{Z|Z33034}}. I’m guessing you were trying to create an object of type {{Z|Z7}} rather than an object whose type is a [[Z7]]. There’s a subtle but important difference. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 12:29, 2 April 2026 (UTC)
::::How do you create a object whose type is a [[Z7]] then? I can't see any option to do this. [[User:ChaoticVermillion|ChaoticVermillion]] ([[User talk:ChaoticVermillion|talk]]) 12:32, 2 April 2026 (UTC)
:::::When you are creating an object you must specify its type. By default, the UI expects you to provide a reference to the type, so you can just type in the selector box and click the type you want. For an object like a typed list, the type is specified as a function call, so you click the menu dots beside “type” and choose “function call” instead of “reference”. The selector now allows you to search for functions that can return a type object. You start entering “typed list” and select it in the normal way. Then the UI will allow you to specify the argument to the function call, which is the type shared by all elements in the list. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:12, 2 April 2026 (UTC)
== Unable to use the Z32643 function. ==
I'm trying to use the [[Z32643]] (Article-less multi instantiating fragment) function to edit an article in Abstract Wikipedia, but it looks like it's missing connected implementations, and it looks like i don't have the permissions to connect the function with the implementation and use it in ab.wiki.
Since i'm not familiar with Wikifunctions, i would like to get help for this specific problem.
Thanks. --[[User:Mattiz6276|Mattiz6276]] ([[User talk:Mattiz6276|talk]]) 13:50, 2 April 2026 (UTC)
:@[[User:Mattiz6276|Mattiz6276]]: Hey there, it looks like that's a work-in-progress by @[[User:MetalBreaksAndBends|MetalBreaksAndBends]]. There's only a fall-back implementation, Z32652, which fails its own test for a second item. I can connect the items together but it might not work as you expect? [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 14:06, 2 April 2026 (UTC)
::Maybe… I don’t think functions without implementations should be appearing on AW so I have amended the label to avoid giving the impression that this function is available. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 14:23, 2 April 2026 (UTC)
== Being able to use edit summaries ==
I have wanted to use edit summaries a few times when connecting or disconnecting implementations or tests, and I have found that the only way to do that is to use the [[:User:%D7%9E%D7%A7%D7%A3/wikilambda_editsource.js|wikilambda editsource]] tool. I feel like it would be a lot more convenient to be able to make these edit summaries without having to use that tool. [[User:ChaoticVermillion|ChaoticVermillion]] ([[User talk:ChaoticVermillion|talk]]) 08:40, 3 April 2026 (UTC)
== Definite forms ==
[[Talk:Z32162|I've noticed an incomplete implementation and would like to work on fixing it, but need advice.]] [[User:Ijon|Ijon]] ([[User talk:Ijon|talk]]) 21:05, 3 April 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #243 is out: Community proposals for capturing meaning ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-04-10|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we report on three community proposals on syntactic approaches, we introduce a new Type (Complex numbers), we report on current hiccups on Abstract Wikipedia, we share more information about a presentation about Abstract Wikipedia at WikiCon Australia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1776101400 April 13, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:35, 10 April 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
:<small>This section was archived on a request by: [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:12, 3 May 2026 (UTC)</small>
== Wikifunctions & Abstract Wikipedia Newsletter #244 is out: Milestones; Some major issues hopefully resolved ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-04-16|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we celebrate 4000 functions on Wikifunctions and 1000 abstract articles on Abstract Wikipedia, we announce that we should have fixed some major issues with the websites, we inform you on our latest outreach activities, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 10:22, 17 April 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
:<small>This section was archived on a request by: [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:12, 3 May 2026 (UTC)</small>
== Help me understand why test passes but running function with same input errors ==
I've been working on a function that I thought I had working correctly: {{Z+|Z31108}}.
It has a test which is passing, but when I enter the same Wikidata item as the test uses (or any other relevant item that it ought to work for), it errors. I can't figure out what's wrong (and the function itself seemed to be working as expected the last time worked on it, a month ago), and I don't know how to interpret the error info.
The error output is:
<code>
Error type: Unspecified error
Error data:
error information: "cannot read property 'Z6003K4' of undefined"
Execution debug logs:
Z12696K2 (find this) ==> ZObject<Z1K1:{'Z1K1': 'Z9', 'Z9K1': 'Z6007'},Z6007K1:ZObject<Z1K1:{'Z1K1': 'Z9', 'Z9K1': 'Z6092'},Z6092K1:P3831>,Z6007K2:ZObject<Z1K1:{'Z1K1': 'Z9', 'Z9K1': 'Z6091'},Z6091K1:Q7380503>,Z6007K3:ZReference<Z6021>>
</code>
-- [[User:Ragesoss|Ragesoss]] ([[User talk:Ragesoss|talk]]) 18:02, 10 April 2026 (UTC)
:Hmm… I’ve had a quick look and found a comparable error with {{Z|Z29937}}, which was passing “4 months ago”. The debug comes from {{Z|Z12863}}, after it fails to find a match. This is probably because Z6007K3 is ZReference("Z6021") rather than a Z6020 object, as it appears in the debug logs for your test “28 days ago”:
:"Z6007K3":{"Z1K1":{"Z1K1":"Z9","Z9K1":"Z6020"},"Z6020K1":{"Z9K1":"Z6021"}}
:This means it’s probably a bug introduced by a recent software change. I’ll take a closer look over the weekend, but the actual error for your test case now is:
:Unspecified error (error information: "cannot read property 'Z6003K4' of undefined")
:I’m guessing that’s from there being no guard against an empty array in {{Z|Z23681}}, but we’ll see. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 23:22, 10 April 2026 (UTC)
:I tracked down the bug to [[Z29869]] and fixed that, but the tests for [[Z31659]] are still failing. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 05:44, 11 April 2026 (UTC)
::Thanks. I’ve re-implemented {{Z|Z23680}} with {{Z|Z33331}} so we at least get a meaningful error in {{Z|Z31108}}. The new implementation explicitly caters for the alternative representation of {{Z|Z6040}} and errors on the empty list it gets from {{Z|Z31659}}.
::I also made a [[Z33332|simple Python implementation]], which seems to work. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 16:29, 11 April 2026 (UTC)
== No place to ask to activate a function? ==
I just discovered the {{Z|Z11390}} function and decided to make an overarching language-selecting function for it. After some fiddling around and studying how {{Z|Z32321}} and its set works, I now have {{Z|Z33439}} which has a config object ({{Z|Z33441}}) that selects between the two preexisting language-specific versions I found (English and Malayalam) and the new one I created for my other native language, {{Z|Z33440}}.
Except I can't get these to work, because, from what I understand, only [[Wikifunctions:Functioneers|functioneers]] can activate newly created functions and implementations?
So where do I apply for the {{Z|Z33439}} and {{Z|Z33440}} functions to be activated? Perhaps we should have a place to ask for it, a la [[w:WP:NPP]] — call it [[Project:New Functions Patrol|New Functions Patrol]] if you will. —[[User:UndueMarmot|<span style="color:#705ccb;">Undue</span><span style="color:#cfdfa3;background-color:#705ccb;">Marmot</span>]] ([[User talk:UndueMarmot|talk]]) 08:58, 14 April 2026 (UTC)
:There's [[Wikifunctions:Community portal]] for this. By the way, {{Z|Z33445}} doesn't work because all the code must be inside the main function in Python code. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 09:19, 14 April 2026 (UTC)
::Huh. How could I have missed that?
::But anyway, I've moved the code in {{Z|Z33445}} into inside the main function block.
::Is there any reason why WF decided not to simply allow anyone to write functions? After all, that's how it works with wikitext templates, and these functions are fundamentally serving the same purposes as templates, just written in a different way. —[[User:UndueMarmot|<span style="color:#705ccb;">Undue</span><span style="color:#cfdfa3;background-color:#705ccb;">Marmot</span>]] <small>([[User talk:UndueMarmot|talk]])</small> 11:25, 14 April 2026 (UTC)
:::I've fixed a couple of technical issues, but tests still fail. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 11:28, 14 April 2026 (UTC)
::::The tests pass now after some more changes to the code: [[Special:Diff/265232/cur]]. —[[User:UndueMarmot|<span style="color:#705ccb;">Undue</span><span style="color:#cfdfa3;background-color:#705ccb;">Marmot</span>]] <small>([[User talk:UndueMarmot|talk]])</small> 12:01, 14 April 2026 (UTC)
:::::{{D|Connected}} [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:02, 14 April 2026 (UTC)
:::I think it's a security issue, since Wikifunctions implementations could teoretically be malicious. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 11:29, 14 April 2026 (UTC)
::::This ^^^. We're very lenient, though, once you've created a few working functions you can apply for the right, per [[WF:Functioneer]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 12:26, 14 April 2026 (UTC)
::::That explanation [[phab:T343559#11421293|doesn't add up]]. A reason to limit ''connection powers'' to Functioneers might be to prevent vandalism, considering Functions can be used across wikis. But user-provided code is already being executed even without a Functioneer connecting it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:01, 16 April 2026 (UTC)
== Actual difference between {{Z|Z26039}} and {{Z|Z26095}} ==
What is the actual difference between these two functions? I ask, since it seems to me that the current distinction is more or less that the first one doesn't use an indefinite article in English, while the second does. Which is not a good distinction in a project that should be language neutral. This doubt emerged from my use of the first one in [[abstract:Q124441]], which @[[User:Hogü-456|Hogü-456]] made me notice that is probably wrong. My question is: why is it wrong? How could we clarify the difference? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:46, 19 April 2026 (UTC)
:I think the difference is if there is an indefinite article like a or an before the subject or not. In German there can be cases where a definite article is necessary before the subject. I looked at the functions and before the object both times an article is mentioned. As it depends on the language and the word what is the correct function to use I hope it will be clarified and it is an example of the necessity to have a human with understanding in a specific language check it. I hope there will be longer functions what generate more content about a specific kind of item. Then it is necessary to write one such function per language and it can be then applied to several items. It still requires checks and so maybe it is better to write down what item category needs what kind of introduction sentence function for what language. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 20:05, 19 April 2026 (UTC)
::The point of these two functions (and of the entire Abstract Wikipedia project) is that they should be defined in a purely language-independent way, so that the translation to actual language can be done automatically. This is the reason why these functions have been renamed; I think that this attempt was not succesful, since meaning is still unclear. My proposal to clarify them would be to invoke the concept of [[w:specificity (linguistics)|specificity]]: {{Z|Z26039}} should be named "specific subject is instance of (string)", and should be used only when the QID of the subject uniquely identifies a single thing; {{Z|Z26095}} should instead be renamed in "non-specific subject is kind of (Monolingual text)", and should be used when the QID refers to a multitude of real life items, and we are specifying the class that all these item belong to. This clarification would not still be enough, since it doesn't explain how mass nouns are handled (is water a unique thing? Does {{Q|Q7802}} refer to a single piece of bread or to the entirety of bread, like water?). This problem is very tricky, since mass noun are language-specific and blurry the line between these two functions. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 20:58, 19 April 2026 (UTC)
:Simply put, one corresponds to P31 and the other to P279. Paris is an {{Q|P31}} a {{Q|Q1549591}}
:whereas a {{Q|Q1549591}} is a {{Q|P279}} (alias “kind of”) {{Q|Q515}}. Whether the Wikidata knowledge representation will be sufficient to resolve into fluent natural language representations in all languages is, of course, a crucial question. Where it is not, the Abstract Wikipedia knowledge representation will need to supplement the Wikidata content with additional details about the relation between the participants or the participants themselves, and these details should be language-neutral, to the extent that this is practicable. The item {{Q|Q124441}} has no [[:d:Q124441#P31|P31]] statements; it has only [[:d:Q124441#P279|P279]]s, including one relating it to {{Q|Q212920}}, which suggests {{Z|Z26095}} is the appropriate choice here even if the rendering in some languages is the same. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 22:52, 19 April 2026 (UTC)
::Thanks for explaining it. I think that I'll change the implementation of {{Z|Z26095}}, so that in Italian it produces more or less the same output of {{Z|Z26039}} (both with the definite article). [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 11:24, 20 April 2026 (UTC)
== Equivalent of Z6830 for lexemes ==
Is there an equivalent of {{Z|Z6830}} that enables retrieving all lexemes pointing to a particular lexeme using a specific property? [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 21:06, 20 April 2026 (UTC)
:There's {{Z|6831}} but I think that's slightly different again to what you're after. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:31, 21 April 2026 (UTC)
::Thanks for sharing that one, I did not know it existed. But you are right, it’s not quite what I am looking for. I want a function that would take a Wikidata property reference (like P5191, which is ‘derived from lexeme’) and a Wikidata lexeme reference, and return a list of lexemes that reference that lexeme using that property. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 13:23, 21 April 2026 (UTC)
== Storing huge datasets ==
It is not a necessity I suppose, but an idea came to me earlier to write a function that would give the corresponding [[en:Shavian alphabet|Shavian alphabet representation]] of an English word written with the Latin alphabet, or perhaps apply that operation to an entire sentence. However, just trying to guess as to what the IPA pronunciation of each word passed into it could be is is both not ideal (pronunciations obviously can and will vary widely between accents) and infeasible <s>(Wikidata lexemes don't really seem to account for pronunciation)</s>. It happens, though, that a comprehensive Shavian dictionary exists named the [https://readlex.pythonanywhere.com/ ''Read Lexicon''], which uses pronunciation and spelling similar to that used by the creator of the alphabet himself. This would be a good dataset to use in performing this translation in the function, but it appears that, all in all, the total size of the dictionary is [https://github.com/Shavian-info/readlex/blob/main/readlex.json ''nearly 26MB''] when formatted as JSON, which would certainly be larger when converted into a typed list.
I am wondering if this will ever be feasible or admissible, or if there is really a way around this if importing such a large set of data is deemed impractical. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 22:30, 20 April 2026 (UTC)
:{{re|Theki}} "Wikidata lexemes don't really seem to account for pronunciation"" is patently untrue; not only does every Bokmål lexeme form have IPA attached to it (thanks to Jon Harald Søby), but there are lots of languages--including English--that have pronunciation information, whether through IPA or otherwise, indicated on their forms. The big issue of course is that adding this data is not always possible to perform efficiently--for instance, I'd love to have Yiddish pronunciation respellings from Paul Abelson's dictionary on as many English forms as possible, but this dictionary not being previously processed makes this difficult. The data set you have brought up, if a suitable reading of [[:m:Wikilegal/Lexicographical_Data]] allows it, could be added as {{P|7243}} statements on various English forms. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 23:20, 20 April 2026 (UTC)
::Well, sorry... I haven't witnessed these pronunciation statements before, I wasn't aware of their existence until you pointed it out. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 15:02, 21 April 2026 (UTC)
:I got 1,900,000 characters into [[Z33875]] before the UI gave up on me. I'm not sure what the limit is. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 15:21, 21 April 2026 (UTC)
== Could not serialize input JS object: Number <small><small>[insert tested number here]</small></small> ==
I'm not one to throw my problems at others, but I have no idea how to fix this. Am implementing {{Z|Z24602}} in JavaScript, which requires returning a typed map. It now works for every type of value except numbers. Tried explicitly converting the numbers to float64, but either way it throws the error above. Would appreciate it if anyone could diagnose or fix the problem, as my knowledge of Wikifunctions is amateur at best. Thank you. [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 00:32, 23 April 2026 (UTC)
:The quick answer is that like some list-related functions, code implementations returning typed maps are not possible unless the type of the objects in the map is specified in the function signature (e.g. if it was a map from Strings to Natural numbers only). So unfortunately, I think you've chosen a function that is not really possible at the moment. There are a few ideas of how we might address this, but for the moment, work on something else. Sorry! --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:21, 23 April 2026 (UTC)
:Maybe explicitly using [[Z13518|natural numbers]] would work? I would try using <code>{ "Z1K1": "Z13518", "Z13518K1": "[number]" }</code> to represent numbers, perhaps, and seeing if that works. Of course, you would also probably have to adapt this for other types that cannot be serialized, and I'm not sure how easy that would be to generalize (assuming [[w:Don't repeat yourself|DRYness]] is desired). — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:39, 23 April 2026 (UTC)
== Please disconnect implementation ==
I think I've fixed my issue with {{Z|Z33986}}, but I can't edit an actively connected implementations with my rights. I must admit it is an AI-aided fix, I feel very strongly about disclosing that.
Courtesy pinging [[User:Theki]] and [[User:Feeglgeef]]. [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 18:51, 23 April 2026 (UTC)
: Additionally, I think the JS might be working. [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 18:52, 23 April 2026 (UTC)
: Just to clarify, I mean disconnect the Python implementation please. [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 18:53, 23 April 2026 (UTC)
:{{Done}} I've disconnected the Python implementation.
:I've also added a couple of tests. The rule is a bit more complicated than adding a maqaf before every character that is not a Hebrew letter. Unfortunately, I don't think I'll have time to fix the implementations any time soon. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 19:03, 23 April 2026 (UTC)
:: Thank you!
:: Also, for some reason I thought you put a maqaf before all gershayim, so thanks for correcting me. [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 19:09, 23 April 2026 (UTC)
:::No, that's not the rule.
:::The rest of this reply is an [[:wikt:info-dump|infodump]], feel free to ignore it :)
:::In [https://hebrew-academy.org.il/topic/hahlatot/punctuation/ the Academy's punctuation rules], the rule for adding a maqaf is written kind of badly: שמים מקף ברצף שיש בו שני סוגי גופנים, כגון אותיות ומספרים ("maqaf is added in a sequence in which there are two types of fonts, such as letters and numerals"). These are not different types of "fonts", but different types of characters, and I should email them about it. It gives the examples <span lang="he" dir="rtl">ה־12</span> and <span lang="he" dir="rtl">ב־DNA</span>. It doesn't say anything explicitly about quotation marks, but in other places on the same page, you have stuff like <span lang="he" dir="rtl">ב"הארץ"</span>, and from that I deduce that a maqaf is not needed before double quotes if there are Hebrew letters inside the double quotes.
:::That said, a few people do think that there must be a maqaf before double quotes. I have a somewhat surprising example of somebody who always does it: translators of Scientology materials into Hebrew. At least that's what they did last time I looked at them, about ten years ago. Those people are certainly prolific, and they get points from me for consistency, but this not the prevalent standard. (And if I recall correctly, they use the minus and not the proper Hebrew maqaf, and they don't get any points from me for that!)
:::Also, the name of the character is just "double quotes" and not "gershayim". Gershayim are mostly for abbreviations, although most people use the same character for them. I use ״ for gershayim, as do a few other nerds, but we're the minority. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 19:35, 23 April 2026 (UTC)
:::: {{re|Amire80}} Yeah, "font" is a weird choice of wording here by the Academy...<br> I think I'll follow your guidance and not use a maqaf for quotes beginning with Hebrew letters. <br> I should also add more tests for different types of quotes, like straight (", '), curly (“, ”, ‘, ’), gershayim (״, ׳), including single quotes.<br> P.S. gotta deduct points from Scientology for being a cult but that's neither here nor there [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 20:49, 23 April 2026 (UTC)
:::: {{re|Amire80}} Courtesy ping because I mistyped your username on the last message. Anyways I'm also gonna do that tomorrow because I'm tired now... [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 20:50, 23 April 2026 (UTC)
== Help with creating a function for Abstract Wikipedia ==
Hello! I was inspired by {{Z|Z26570}} to create {{Z|Z33975}}, however I'm not sure how I add specific language implementations here. Can anybody help me? [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 10:41, 23 April 2026 (UTC)
: I think I figured it out, I created a new object with the language config type, added {{Z|Z14310}} to my implementation, and added a new function for English... At least I think that's how it works... [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 13:16, 23 April 2026 (UTC)
::You have the right idea, as far as I know. I went ahead and connected the implementations you created as they appear to work fine for English, and added a test for {{Z|Z33975}} (which passes [[File:Twemoji 1f601.svg|24px]]). I also corrected an error you made on the config object where you appear to have accidentally connected English to {{Z|Z33975}} instead of {{Z|Z33977}}. Thank you for contributing! — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 13:45, 23 April 2026 (UTC)
::: {{re|Theki}} Thank you so much for you help! Could you please kindly also connect the implementations for {{Z|Z33986}} which I just made, which is going to be used for the Hebrew implementation of {{Z|Z33975}}. [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 14:11, 23 April 2026 (UTC)
::::You seem to be returning the wrong type in both implementations. Functioneers should not connect implementations that don't work for non-functioneers. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:13, 23 April 2026 (UTC)
::::: {{re|Feeglgeef}} Oh thank you for pointing that out! I am still a bit new to this project and confused, so I need to read up some more about this. How do I return a monolingual text object? [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 14:17, 23 April 2026 (UTC)
::::::I'm trying to fix it for you, the construction of ZObjects in code implementations is a bit difficult right now. Since the State origin using entity and class function will (presumably) be composition, perhaps {{Z|33975}} can be adjusted to return a string, using {{Z|26107}} and {{Z|26107}}? [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:21, 23 April 2026 (UTC)
:::::I did not notice any discrepancies from looking at the functions by themselves, and it seemed to work fine on my end. Is it bad practice for NLG functions to return the monolingual text type? I had assumed it was logical. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:24, 23 April 2026 (UTC)
::::::Both implementations are failing all three tests on my end. No consensus has been established as to whether monolingual texts or strings should be used, so it's like the [[w:War of the currents|war of the currents]] but for Wikifunctions. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:27, 23 April 2026 (UTC)
:::::::Oh, you were referring to {{Z|Z33986}}. I assumed you were stating that something was wrong in the earlier English functions that I missed; I apologize for the misunderstanding. Has there been any centralized discussion on this string vs. monolingual text issue? — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:31, 23 April 2026 (UTC)
::::::::Not that I'm aware of, I've brought it up on the telegram twice before, though. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:49, 23 April 2026 (UTC)
::::::::The centralised discussion is at [[WT:Abstract Wikipedia/2025 fragment experiments#Proposed recommendation: Fragments should return Z11/monolingual strings]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 07:19, 24 April 2026 (UTC)
::::::: {{re|Theki|Feeglgeef}} Can only functioneers test implementations? For me I can't test it at all... [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 14:32, 23 April 2026 (UTC)
::::::::AFAIK, test cases are only immediately testable during editing of a function if they are connected. This is one of my personal pain points with Wikifunctions, iterating on functions without exhaustive connected test cases makes debugging practically impossible for non-functioneers working on newly-created functions... I (or Feeglgeef) can quickly connect the tests you need for you if you want, although if they are not well-formed they may need to be disconnected again afterwards. Additionally, I could temporarily connect the implementation you are writing so that you can test it on the sidebar as you work, but I'm not sure if this is advisable. That functionality is also something that unfortunately only works when not disconnected. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 14:43, 23 April 2026 (UTC)
:::::::::Yup, agree with you on all points, thanks. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 14:48, 23 April 2026 (UTC)
== Connect implementations ==
Hello!
I'm done with the implementations of {{Z|Z33986}} both in JS and Python, and all tests pass.
Pinging @[[User:Amire80|Amire80]] to check if all the tests I've added are alright. [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 15:24, 24 April 2026 (UTC)
:Connected. It's possible that some more changes will be needed, but it looks OK now.
:Another little comment: It should be called "clitic" and not "prefix". [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 15:56, 24 April 2026 (UTC)
: {{re|Amire80}} Thanks for your comment! Luckily labels are easy to edit, so I'll get to it.
: Currently I'm working on Bulgarian {{z|Z34072}} and {{z|Z34084}}, along with other Bulgarian functions. After I'm finished with those I'll take your advice. [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 16:01, 24 April 2026 (UTC)
== Please connect my Bulgarian implementations ==
I recently created the following Bulgarian functions:
* {{Z|Z34070}} (currently broken, I think because another function I built it upon is unimplemented)
* {{Z|Z34088}}
* {{Z|Z34105}}
* {{Z|Z34072}}
* {{Z|Z34084}}
Can somebody please connect these functions, and perhaps suggest other functions I could localize? [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 19:03, 24 April 2026 (UTC)
: Specifically, [[Z34070]] is based on [[Z34072]] [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 19:05, 24 April 2026 (UTC)
:{{done}} for everything that passes, [[Z34070]] still does not work after purging WF's cache, though. For future reference, please request on the [[WF:Community portal|community portal]] instead of the project chat. Thank you for your work! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 20:03, 24 April 2026 (UTC)
:: {{re|Feeglgeef}} Thank you for your help! I will keep in mind to go to the [[project: community portal| community portal]] in future instead for this.
:: I still don't understand why {{Z|Z34070}} fails... It's implementation is almost completely identical to [[Z30399]] from {{Z|Z30397}}, unless I messed something up... [[User:QuickQuokka|QuickQuokka]] ([[User talk:QuickQuokka|talk]]) 20:11, 24 April 2026 (UTC)
:::{{done}} No, it was mostly just timing out. It is better to use selective fetches where possible. One case is failing to match the expected results, but at least it is returning something. For all I know, it might even be acceptable! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 20:35, 24 April 2026 (UTC)
:::: {{re|GrounderUK}} Thank you so much for your help! The one failed case is with a definite article, so I feel like that might be fixed in the future... <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 20:43, 24 April 2026 (UTC)
== Editor experience suggestions ==
I'm a bit frustrated with the editing experience on Wikifunctions, and I have suggestions based on pain points I've had contributing to this project:
* Adding a wizard to create functions, implementations, and tests in one flow, somewhat like Wikimedia Commons' upload wizard
* A sandbox for experimenting without changing mainspace functions, and maybe letting non-functioneers connect implementations ([[Project: Sandbox]] doesn't seem to fit this)
* We could have functions for creation based on the sandbox, like how Wikipedia has articles for creation and edit requests,
* Maybe even another test instance of Wikifunctions, like how Wikidata has [[testwikidata:|Test Wikidata]]
I really like this project and I don't mean to whine, but it certainly has a lot of pain points both for technical and non-technical people. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 20:41, 24 April 2026 (UTC)
: It's also really complicated to localize functions, so maybe we should add another wizard for that, where you can choose a language, and then create the new function with the aforementioned function wizard, and it just automatically adds it to the related language configuration object of the related function. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 20:48, 24 April 2026 (UTC)
:# Sounds good to me.
:# A sandbox available is [[Z10119]], though an extension-provided sandbox that allows you to manipulate the types, code, and tests easily without interfering with the mainspace would be nice.
:# [[WF:Suggest a function|This page]] works to some extent, though it's too messy in my opinion.
:# We used to have a "beta cluster" but it [[phab:rOMWC5f625c5846b5f779473fa32c9a02d87e59215dfa|got shut down]] just over a year ago because it was broken.
:[[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 21:07, 24 April 2026 (UTC)
== Language parameters in language-specific functions ==
I think that an effort should be made to give the different natural language options corresponding to different English dialects, Chinese scripts, etc. more of a use
(I added the test {{Z|Z34119}} to {{Z|Z26095}} and unsurprisingly it fails). There are two main problems with this approach that I can identify:
* If you ask the majority of these functions to make a sentence in British English, much of the time it will give you an output with missing words, because it does not fallback to English labels in the case of a British English label for that item missing. The same applies for every other English dialect, British English is just an example here.
* Uninformed editors will probably see the presence of a language parameter on these functions, consider it redundant, and remove it. [[Special:Diff/268074|I have made this mistake before]].
In my opinion, in a perfect world, all of these language generation functions would output monolingual text, and if the user asks for American English text, then American English text is what they'll get. If the user asks for Japanese text in hiragana specifically, then that's what they'll get in return. This is not as high-priority as just rendering text in the language plainly in the first place, but it's something that I feel is still worth devoting some effort to.
Right now switching functions to use this paradigm is difficult because, on the one hand, I don't know if consensus tends towards this direction being ideal or advisable, and I don't want to make changes like this without at least notifying the wider community. In addition, all tests break once a parameter is added or removed, and the function editor does not recognize the change in number of parameters and therefore you have to remove the function call, re-add it along with all of its parameters it had previously (which is a tedious cut-and-paste job), and then it will work again. This is something that you can do in five seconds by just adding a few lines of JSON to the test source, but this is not directly editable from the Web browser. This tedium is largely what's preventing me from doing this on a larger scale, besides asking for comments first.
If anyone has any insights or comments on this, then that would be appreciated. If a reference of functions with and without the support for language variants is needed, of course [[WF:NLG]] can be perused, but I've also my own list cataloged at [[User:Theki/functions#language]]...
Of course, this thread has many similarities to [[#"language" argument for certain functions|the one above]], but this concerns me going out and making this consistent across these NLG functions. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 21:09, 24 April 2026 (UTC)
:I've created {{Z|Z34122}} as an extension to {{Z|Z34039}} for larger functions. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 21:34, 24 April 2026 (UTC)
:Just to confirm that I, for one, support a Natural language parameter for all natural-language functions. The concern about getting them all aligned is just that we haven’t finally settled on {{Z|Z11}} being preferred to {{Z|Z89}} or some other type that conserves the text’s provenance, so we risk having to change them all again. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:07, 25 April 2026 (UTC)
== Why is my test failing? ==
Hello! I recently made {{Z|Z34139}} based on [[wikt:Module:bg-translit]], and the test case {{Z|Z34141}} is failing on both implementations, despite the expected output and actual output being the same as far as I can tell.
I tried looking at the Unicode codepoints of the output, but those are also identical. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 06:21, 25 April 2026 (UTC)
:Yes, it’s a tricky one. I’ve added a normalize step to the result validation in {{Z|Z34141}}, which confirms it is a normalization issue. It looks like it is in the code but I don’t know whether simply normalizing the result is the way to go. Logically, you would normalize both the input and the result. The implementations of {{Z|Z10384}} show you how to do this. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 09:41, 25 April 2026 (UTC)
== Edit request ==
Hello! I have an edit request for {{Z|Z23752}} and {{Z|Z23414}}.
Please replace all the "an/a" logic with <code>Z21739(Argument reference)</code>, both for readability and for more accuracy ("a university is an institution") <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 09:50, 25 April 2026 (UTC)
:{{D}} [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:24, 25 April 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #245 is out: The Foundation's search for the perfect language ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-04-25|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we present an academic paper about Abstract Wikipedia, we discuss our latest Type created, and we take a look at the newest created functions.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 09:54, 25 April 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30325620 -->
:@[[User:Sannita (WMF)|Sannita (WMF)]], @[[User:DVrandecic (WMF)|DVrandecic (WMF)]], technical meta-question: the newsletter quotes the article:
::the only way to contest its algorithm is to click 👍 or 👎 (Crawford and Gillespie 2016)
:This quotation sounds sensible, but the article's [https://link.springer.com/article/10.1007/s00146-026-02899-w web version], and the PDF that is downloadable from the same page doesn't actually show the emojis. It rather shows text that looks lacking:
::the only way to contest its algorithm is to click or (Crawford and Gillespie [https://link.springer.com/article/10.1007/s00146-026-02899-w#ref-CR14 2016])
:Where did you get the emojis? Is it your (probably correct) guess or is there a version somewhere that actually shows the emojis? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 15:16, 25 April 2026 (UTC)
::Scratch that. I've found a version with correct emojis: https://wikihistories.github.io/wikilambda-the-ultimate/ [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 15:37, 25 April 2026 (UTC)
== Requested deletion of test ==
Please delete {{Z|Z34143}}. this was never valid Bulgarian, I messed up. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:19, 25 April 2026 (UTC)
:[[WF:RFD]] please. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 16:40, 25 April 2026 (UTC)
== Request for comment (global AI policy) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}}
[[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|talk]]) 00:57, 26 April 2026 (UTC)
</bdi>
<!-- Message sent by User:Codename Noreste@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 -->
== “Key not found ()”? ==
What am I doing wrong in {{Z|Z34137}}? [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 00:39, 25 April 2026 (UTC)
:You were passing a [[Z6091]] to {{Z|32290}}, but it takes a [[Z6001]]. Fixed. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 07:10, 26 April 2026 (UTC)
::{{done|Thank you}}! [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 14:13, 26 April 2026 (UTC)
== Is it OK to connect the implementation? ==
Hello!
I recently applied for functioneer on [[WF:RFG]], and I was wondering whether I could connect the implementation for {{Z|Z34165}} despite its dependency {{Z|Z34149}} being currently unimplemented. That is <em>if</em> I get accepted.
I am planning on implementing it based on [[wikt:module:bg-nominal]], but am still having trouble figuring it out for now. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 09:04, 26 April 2026 (UTC)
== Past tense function ==
Is there a function like {{Z|Z26039}}, but for the past tense (e.g. "Leo Tolstoy <em>was</em> a writer.")?
If not, I will create it myself, I just want to make sure there's not a duplicate. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:10, 26 April 2026 (UTC)
: {{Done}} with {{Z|Z34224}}, but I have a few kinks to work out with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:35, 26 April 2026 (UTC)
:: I need to create some other similar functions for the past tense, I have some ideas:
::* {{Z|Z26095}}
::* {{Z|Z32643}}
::* {{Z|Z28016}}
::* {{Z|Z26570}}
::* {{Z|Z33975}}
::* {{Z|Z27243}}
::* <ins>{{Z|Z26627}}</ins>
::* <ins>{{Z|Z27627}}</ins>
::* <ins>{{Z|Z27173}}</ins>
::* <ins>{{Z|Z29591}}</ins>
::
:: Are there any I have missed? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 10:57, 26 April 2026 (UTC)
:I think that here we are starting to walk on dangerous waters: what does past mean? Is it a recent o a far past? Does it have ripercussions on the present or not? Is it just a thing that happened once, many times or for a continuative period of time?
:Consider that various languages distinguish between many different types of past. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:38, 26 April 2026 (UTC)
:: {{re|Dv103}} That is a fair point...
:: How do we go about solving this problem though? I don't think having every sentence on Abstract Wikipedia be "X is a Y" is a very good idea.
:: Maybe we have different functions for all these variations of past you mentioned that just map into "X was a Y." in English? <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 13:31, 26 April 2026 (UTC)
:::To properly solve this problem, we should use a more complete abstract content representation model, like for example the proposal of [[Wikifunctions:Type proposals/Semantic unit|Semantic units]] (look at [[Wikifunctions:Type proposals/Semantic unit/Douglas Adams|the example]] to see how times could be handled). For now, since we're still stuck with single fragment generation functions (that I hope will be slowly replaced with the complete represenation model, when available), we could just restrict your function to a very specific meaning, like "subject was an instance of, for most of its existence" (which means for example that it could be used to say "Douglas Adams was a writer", but not "Abraham Lincoln was a president", since he only was a president for 4 years). Probably my definition is still too vague, and this is why we need to go beyond these fragment generating functions. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 19:47, 26 April 2026 (UTC)
::Nitpick... I don't like that it outputs a string instead of monolingual text. With {{Z|Z26039}} it's used so much that I think it's unfixable in that case beyond deprecating it if people care that much, but {{Z|Z34224}} doesn't even have any connected implementations yet. Consider it, maybe?
::Nitpick 2... {{Z|Z34227}} is missing a language parameter. — [[User:Theki|rae<sup>5e</sup>]] <[[User talk:Theki|talk]]> 16:08, 26 April 2026 (UTC)
::: I will consider that!
::: I just did that because that's what {{Z|Z26039}} does, so I assumed I should follow suit with it. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:48, 26 April 2026 (UTC)
ah81h9xktqurssrvqxc6kjfvvoxs1ux
Z33848
0
80858
278263
273496
2026-05-26T17:33:33Z
Theki
2389
normalize
278263
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z33848"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z33848K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "article"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z33848K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20",
"Z33849",
"Z34102"
],
"Z8K4": [
"Z14",
"Z33850",
"Z35009"
],
"Z8K5": "Z33848"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "abstract wikilink (sentence case)"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns a link to an Abstract Wikipedia article with a sentence-case label in the preferred language or the first available fallback. Use Z32428 to preserve case of label."
}
]
}
}
5iajdqe8plu3a7196b1ne1ha6kid4cf
Z34281
0
81547
278278
277602
2026-05-26T21:21:13Z
HenkvD
1290
+ Dutch
278278
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z34281"
},
"Z2K2": {
"Z1K1": "Z14294",
"Z14294K1": [
"Z14293",
{
"Z1K1": "Z14293",
"Z14293K1": "Z23726",
"Z14293K2": [
"Z60",
"Z1002"
]
},
{
"Z1K1": "Z14293",
"Z14293K1": "Z26771",
"Z14293K2": [
"Z60",
"Z1592"
]
},
{
"Z1K1": "Z14293",
"Z14293K1": "Z34434",
"Z14293K2": [
"Z60",
"Z1004"
]
},
{
"Z1K1": "Z14293",
"Z14293K1": "Z35611",
"Z14293K2": [
"Z60",
"Z1011"
]
},
{
"Z1K1": "Z14293",
"Z14293K1": "Z35615",
"Z14293K2": [
"Z60",
"Z1157"
]
}
],
"Z14294K2": "Z23726"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "config for classifying sentence"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
sloe77zofaz4up8xh4ob5xtab94znpg
Z34282
0
81548
278280
276347
2026-05-26T21:23:26Z
HenkvD
1290
Added Z35670 to the approved list of test cases
278280
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z34282"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z34282K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z34282K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z34284",
"Z35670"
],
"Z8K4": [
"Z14",
"Z34283"
],
"Z8K5": "Z34282"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "classifying sentence – entity"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"classifying sentence - entity"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
afcw98pil28fkzz4cn8kb8ysmqukeaw
Z34284
0
81550
278281
269642
2026-05-26T21:23:55Z
HenkvD
1290
[en]
278281
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z34284"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z34282",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z34282",
"Z34282K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q456"
},
"Z34282K2": "Z1002"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Lyon is a commune of France."
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "[en] Lyon is a commune of France, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
5393vihbafclmt3co4yjiyxwr14my31
Help:Type deconstruction table/Natural language
12
83411
278448
275159
2026-05-27T08:09:59Z
YoshiRulz
10156
Add extract aliases function
278448
wikitext
text/x-wiki
{{Help:Type deconstruction table/preface|Z60|Natural language}}
|-
| rowspan="2" | {{Z|35171}}
! K1: {{Z|6}}
| {{Z|14329}}
|-
! K2: <{{Z|6}}>[...]
| {{Z|35747}}
|-
! colspan="3" |
|-
| {{Z|860}}
! K1
| [[Z14329]]
|}
8m9yv8u1qd37ivservg66hwfi0hkd5z
Help:Type deconstruction table/Wikidata lexeme form reference
12
83419
278444
275165
2026-05-27T07:57:42Z
YoshiRulz
10156
Add constructor and deconstructor
278444
wikitext
text/x-wiki
{{Help:Type deconstruction table/preface|Z6094|Wikidata lexeme form reference}}
|-
| {{Z|35743}}
! K1: {{Z|6}}
| {{Z|35745}}
|-
| —
! K1
| {{Z|30591}}
|}
5tw8u6dka65ajj90wrgs6u9wpz5rphz
Help:Comparison function table/Integer
12
83966
278387
277341
2026-05-27T06:49:33Z
YoshiRulz
10156
Add non-zero and non-positive functions
278387
wikitext
text/x-wiki
{{Help:Comparison function table/preface|Z16683|Integer}}
|-
! {{nowrap|n<sub>1</sub> ≠ n<sub>2</sub>}}<br><small>[[d:Q110013332|Q110013332]]</small>
| {{Z|35475}}
! rowspan="4" |
! {{nowrap|n<sub>1</sub> ⟺ n<sub>2</sub>}}<br><small>[[d:Q7797295|Q7797295]]</small>
| {{Z|35449}}
|-
! {{nowrap|n<sub>1</sub> < n<sub>2</sub>}}<br><small>[[d:Q52834024|Q52834024]]</small>
| {{Z|Z17140}}
! {{nowrap|n<sub>1</sub> > n<sub>2</sub>}}<br><small>[[d:Q47035128|Q47035128]]</small>
| {{Z|17132}}
|-
! {{nowrap|n<sub>1</sub> ≤ n<sub>2</sub>}}<br><small>[[d:Q55935272|Q55935272]]</small>
| {{Z|17363}}
! {{nowrap|n<sub>1</sub> ≥ n<sub>2</sub>}}<br><small>[[d:Q55935291|Q55935291]]</small>
| {{Z|17173}}
|-
! {{nowrap|n<sub>1</sub> {{=}} n<sub>2</sub>}}<br><small>[[d:Q842346|Q842346]]</small>
| {{Z|16688}}
! {{nowrap|n<sub>1</sub> ≈ n<sub>2</sub>}}<br><small>[[d:Q26161438|Q26161438]]</small>
| —
|-
! colspan="5" |
|-
! {{nowrap|n ≠ 0}}
| {{Z|35702}}
! rowspan="4" |
! {{nowrap|n ⟺ 0}}
| {{Z|17105}}
|-
! {{nowrap|n < 0}}
| {{Z|17215}}
! {{nowrap|n > 0}}
| {{Z|17204}}
|-
! {{nowrap|n ≤ 0}}
| {{Z|35709}}
! {{nowrap|n ≥ 0}}
| {{Z|17229}}
|-
! {{nowrap|n {{=}} 0}}
| {{Z|17239}}
| colspan="2" |
|-
! colspan="5" |
|-
! {{nowrap|n<sub>1</sub> ≤ n<sub>2</sub> ≤ n<sub>3</sub>}}
| colspan="4" | {{Z|17591}}
|-
! {{nowrap|n<sub>1</sub> ≡ n<sub>2</sub> mod m}}<br><small>[[d:Q3773677|Q3773677]]</small>
| colspan="4" | {{Z|32261}}
|-
! | {{nowrap|{{!}}n<sub>1</sub>{{!}} {{=}} {{!}}n<sub>2</sub>{{!}}}}
| colspan="4" | {{Z|17254}}
|-
! {{nowrap|sgn(n<sub>1</sub>) {{=}} sgn(n<sub>2</sub>)}}
| colspan="4" | {{Z|17249}}
|-
! {{nowrap|n<sub>1</sub> ∣ n<sub>2</sub>}}<br><small>[[d:Q109497082|Q109497082]]</small>
| colspan="4" | {{Z|20266}}
|}
s6xpba4g0cfs1jfxmoek65a853x6fzw
Help:Comparison function table/Natural
12
84007
278369
277340
2026-05-27T06:38:26Z
YoshiRulz
10156
Add non-zero function
278369
wikitext
text/x-wiki
{{Help:Comparison function table/preface|Z13518|Natural}}
|-
! {{nowrap|n<sub>1</sub> ≠ n<sub>2</sub>}}<br><small>[[d:Q110013332|Q110013332]]</small>
| {{Z|14416}}
! rowspan="4" |
! {{nowrap|n<sub>1</sub> ⟺ n<sub>2</sub>}}<br><small>[[d:Q7797295|Q7797295]]</small>
| {{Z|16731}}
|-
! {{nowrap|n<sub>1</sub> < n<sub>2</sub>}}<br><small>[[d:Q52834024|Q52834024]]</small>
| {{Z|13689}}
! {{nowrap|n<sub>1</sub> > n<sub>2</sub>}}<br><small>[[d:Q47035128|Q47035128]]</small>
| {{Z|13676}}
|-
! {{nowrap|n<sub>1</sub> ≤ n<sub>2</sub>}}<br><small>[[d:Q55935272|Q55935272]]</small>
| {{Z|13695}}
! {{nowrap|n<sub>1</sub> ≥ n<sub>2</sub>}}<br><small>[[d:Q55935291|Q55935291]]</small>
| {{Z|13682}}
|-
! {{nowrap|n<sub>1</sub> {{=}} n<sub>2</sub>}}<br><small>[[d:Q842346|Q842346]]</small>
| {{Z|13522}}
! {{nowrap|n<sub>1</sub> ≈ n<sub>2</sub>}}<br><small>[[d:Q26161438|Q26161438]]</small>
| —
|-
! colspan="5" |
|-
! {{nowrap|n ≠ 0}}
| {{Z|35693}}
! rowspan="2" |
| colspan="2" |
|-
! {{nowrap|n {{=}} 0}}
| {{Z|23883}}
| colspan="2" |
|-
! colspan="5" |
|-
! {{nowrap|n {{=}} 1}}
| {{Z|31547}}
! |
! {{nowrap|n {{=}} 2}}
| {{Z|31554}}
|-
! {{nowrap|n<sub>1</sub> ≤ n<sub>2</sub> ≤ n<sub>3</sub>}}
| colspan="4" | {{Z|14711}}
|-
! {{nowrap|n<sub>1</sub> ∣ n<sub>2</sub>}}<br><small>[[d:Q109497082|Q109497082]]</small>
| colspan="4" | {{Z|13740}}
|-
! {{nowrap|gcd(n<sub>1</sub>, n<sub>2</sub>) {{=}} 1}}<br><small>[[d:Q104752|Q104752]]</small>
| colspan="4" | {{Z|13701}}
|}
ok9v6ugtxkjfrza6e12pzzw8d0zyc2q
Help:Comparison function table/Rational
12
84008
278421
278217
2026-05-27T07:20:48Z
YoshiRulz
10156
Add non-positive, compareTo and inequality functions
278421
wikitext
text/x-wiki
{{Help:Comparison function table/preface|Z19677|Rational}}
|-
! {{nowrap|q<sub>1</sub> ≠ q<sub>2</sub>}}<br><small>[[d:Q110013332|Q110013332]]</small>
| {{Z|35727}}
! rowspan="4" |
! {{nowrap|q<sub>1</sub> ⟺ q<sub>2</sub>}}<br><small>[[d:Q7797295|Q7797295]]</small>
| {{Z|35721}}
|-
! {{nowrap|q<sub>1</sub> < q<sub>2</sub>}}<br><small>[[d:Q52834024|Q52834024]]</small>
| {{Z|19753}}
! {{nowrap|q<sub>1</sub> > q<sub>2</sub>}}<br><small>[[d:Q47035128|Q47035128]]</small>
| {{Z|19751}}
|-
! {{nowrap|q<sub>1</sub> ≤ q<sub>2</sub>}}<br><small>[[d:Q55935272|Q55935272]]</small>
| {{Z|19754}}
! {{nowrap|q<sub>1</sub> ≥ q<sub>2</sub>}}<br><small>[[d:Q55935291|Q55935291]]</small>
| {{Z|19752}}
|-
! {{nowrap|q<sub>1</sub> {{=}} q<sub>2</sub>}}<br><small>[[d:Q842346|Q842346]]</small>
| {{Z|19686}}
! {{nowrap|q<sub>1</sub> ≈ q<sub>2</sub>}}<br><small>[[d:Q26161438|Q26161438]]</small>
| {{Z|24506}}
|-
! colspan="5" |
|-
! {{nowrap|q ≠ 0}}
| —
! rowspan="4" |
! {{nowrap|q ⟺ 0}}
| {{Z|19717}}
|-
! {{nowrap|q < 0}}
| {{Z|21714}}
! {{nowrap|q > 0}}
| {{Z|21702}}
|-
! {{nowrap|q ≤ 0}}
| {{Z|35714}}
! {{nowrap|q ≥ 0}}
| {{Z|21721}}
|-
! {{nowrap|q {{=}} 0}}
| {{Z|19922}}
| colspan="2" |
|-
! colspan="5" |
|-
! {{nowrap|q {{=}} 1}}
| colspan="4" | {{Z|25200}}
|-
! {{nowrap|a {{=}} c ∧ b {{=}} d}}
| colspan="4" | {{Z|19892}}
|-
! {{nowrap|q<sub>1</sub> ≤ q<sub>2</sub> ≤ q<sub>3</sub>}}
| colspan="4" | {{Z|24403}}
|-
! {{nowrap|q<sub>1</sub> {{=}} q<sub>2</sub><sup>-1</sup>}}
| colspan="4" | {{Z|19931}}
|}
oiaedcszm7vxekmnw7j0vvp8rv6kwtm
Z35615
0
84193
278276
277652
2026-05-26T21:18:48Z
HenkvD
1290
Added Z35616 to the approved list of test cases
278276
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35615"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z35615K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subject"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35616"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35615"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Classifying sentence in Dutch"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
0okesyg4rmu5qnsh1ftkd0sedv616e5
278277
278276
2026-05-26T21:18:52Z
HenkvD
1290
Added Z35617 to the approved list of implementations
278277
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35615"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z35615K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subject"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35616"
],
"Z8K4": [
"Z14",
"Z35617"
],
"Z8K5": "Z35615"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Classifying sentence in Dutch"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
4qranhfu5mzx00524buxjt0u8exttsu
Help:Comparison function table/HTML fragment
12
84309
278437
278215
2026-05-27T07:38:16Z
YoshiRulz
10156
Add inequality, empty and not empty functions
278437
wikitext
text/x-wiki
{{Help:Comparison function table/preface|Z89|HTML fragment}}
|-
! {{nowrap|f<sub>1</sub> ≠ f<sub>2</sub>}}<br><small>[[d:Q110013332|Q110013332]]</small>
| {{Z|35732}}
|-
! {{nowrap|f<sub>1</sub> ⊇ f<sub>2</sub>}}<br><small>[[d:Q1332977|Q1332977]]</small>
| {{Z|29572}}
|-
|-
! {{nowrap|f<sub>1</sub> {{=}} f<sub>2</sub>}}<br><small>[[d:Q842346|Q842346]]</small>
| {{Z|877}}
|-
! colspan="5" |
|-
! {{nowrap|f ≠ <empty>}}
| {{Z|35740}}
|-
! {{nowrap|f {{=}} <empty>}}
| {{Z|35737}}
|-
! colspan="5" |
|-
! {{nowrap|f<sub>1</sub> ⫊ f<sub>2</sub>}}
| {{Z|29576}}
|-
! {{nowrap|f ⊇ s}}
| {{Z|29045}}
|}
gcz152uymcapxnhptr58af24j6qybxd
User:YoshiRulz/Type documentation/search table
2
84322
278352
278256
2026-05-27T04:02:02Z
YoshiRulz
10156
Change table title and expand it to fill space
278352
wikitext
text/x-wiki
* [[Special:WhatLinksHere/{{{1|Z16683}}}]] (all links from all namespaces, misses any references from Implementations-by-code)
* [[Special:Search/: "{{{1|Z16683}}}"|Search for <code>"{{{1|Z16683}}}"</code> in mainspace]] (includes references from Implementations-by-code)
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"
! colspan="3" | Queries for {{Z|8}} declarations
|-
! rowspan="2" style="text-align: end;" | (…)
! rowspan="2" style="text-align: start;" | → {{{1|Z16683}}}
| {{#tag:{{#ifeq:{{{1|Z16683}}}|Z1|s|span}}|[https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&return_type=Z1&orderby=oldest Special:ListObjectsByType/Z8/{{{1|Z16683}}}]|class=plainlinks}}
|-
| [[Special:Search/: "Z8K2 {{{1|Z16683}}}"|Search for <code>{{nowrap|"Z8K2 {{{1|Z16683}}}"}}</code> in mainspace]]
|-
! style="text-align: end;" | {{nowrap|({{{1|Z16683}}}, …)}}
! style="text-align: start;" | → …
| [[Special:Search/: "Z8K1 Z17 Z1K1 Z17 Z17K1 {{{1|Z16683}}}"|Search for <code>{{nowrap|"Z8K1 Z17 Z1K1 Z17 Z17K1 {{{1|Z16683}}}"}}</code> in mainspace]]
|-
! style="text-align: end;" | {{nowrap|(¬{{{1|Z16683}}}, …, {{{1|Z16683}}}, …)}}
! style="text-align: start;" | → …
| [[Special:Search/: "Z17K1 {{{1|Z16683}}}" -"Z8K1 Z17 Z1K1 Z17 Z17K1 {{{1|Z16683}}}"|Search for <code>{{nowrap|"Z17K1 {{{1|Z16683}}}"}} {{nowrap|-"Z8K1 Z17 Z1K1 Z17 Z17K1 {{{1|Z16683}}}"}}</code> in mainspace]]
|-
! style="text-align: end;" | {{nowrap|(…, {{{1|Z16683}}}, …)}}
! style="text-align: start;" | → {{{1|Z16683}}}
| [[Special:Search/: "Z8K2 {{{1|Z16683}}}" "Z17K1 {{{1|Z16683}}}"|Search for <code>{{nowrap|"Z8K2 {{{1|Z16683}}}"}} {{nowrap|"Z17K1 {{{1|Z16683}}}"}}</code> in mainspace]]
|-
! colspan="3" |
|-
! style="text-align: end;" | (…)
! style="text-align: start;" | {{nowrap|→ <{{{1|Z16683}}}>[…]}}
| [[Special:Search/: "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1|Z16683}}}"|Search for <code>{{nowrap|"Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1|Z16683}}}"}}</code> in mainspace]]
|-
! style="text-align: end;" | {{nowrap|(…, <{{{1|Z16683}}}>[…], …)}}
! style="text-align: start;" | → …
| [[Special:Search/: "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1|Z16683}}}"|Search for <code>{{nowrap|"Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1|Z16683}}}"}}</code> in mainspace]]
|-
! style="text-align: end;" | {{nowrap|(…, <{{{1|Z16683}}}>[…], …)}}
! style="text-align: start;" | {{nowrap|→ <{{{1|Z16683}}}>[…]}}
| [[Special:Search/: "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1|Z16683}}}" "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1|Z16683}}}"|Search for <code>{{nowrap|"Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1|Z16683}}}"}} {{nowrap|"Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1|Z16683}}}"}}</code> in mainspace]]
|-
! colspan="3" | More: {{Z|22849}}<!--
--><span style="float: inline-end;">{{mini navbar|User:YoshiRulz/Type documentation/search table}}</span>
|}
eu87h6ixdyq8hz61ta8b7ib49x2beqh
278353
278352
2026-05-27T04:05:01Z
YoshiRulz
10156
Preview in context, switch from Integer to Quote
278353
wikitext
text/x-wiki
<onlyinclude><includeonly>* [[Special:WhatLinksHere/{{{1}}}]] (all links from all namespaces, misses any references from Implementations-by-code)
* [[Special:Search/: "{{{1}}}"|Search for <code>"{{{1}}}"</code> in mainspace]] (includes references from Implementations-by-code)
{| class="mw-collapsible mw-collapsed wikitable" style="width: 100%;"
! colspan="3" | Queries for {{Z|8}} declarations
|-
! rowspan="2" style="text-align: end;" | (…)
! rowspan="2" style="text-align: start;" | → {{{1}}}
| {{#tag:{{#ifeq:{{{1}}}|Z1|s|span}}|[https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&return_type=Z1&orderby=oldest Special:ListObjectsByType/Z8/{{{1}}}]|class=plainlinks}}
|-
| [[Special:Search/: "Z8K2 {{{1}}}"|Search for <code>{{nowrap|"Z8K2 {{{1}}}"}}</code> in mainspace]]
|-
! style="text-align: end;" | {{nowrap|({{{1}}}, …)}}
! style="text-align: start;" | → …
| [[Special:Search/: "Z8K1 Z17 Z1K1 Z17 Z17K1 {{{1}}}"|Search for <code>{{nowrap|"Z8K1 Z17 Z1K1 Z17 Z17K1 {{{1}}}"}}</code> in mainspace]]
|-
! style="text-align: end;" | {{nowrap|(¬{{{1}}}, …, {{{1}}}, …)}}
! style="text-align: start;" | → …
| [[Special:Search/: "Z17K1 {{{1}}}" -"Z8K1 Z17 Z1K1 Z17 Z17K1 {{{1}}}"|Search for <code>{{nowrap|"Z17K1 {{{1}}}"}} {{nowrap|-"Z8K1 Z17 Z1K1 Z17 Z17K1 {{{1}}}"}}</code> in mainspace]]
|-
! style="text-align: end;" | {{nowrap|(…, {{{1}}}, …)}}
! style="text-align: start;" | → {{{1}}}
| [[Special:Search/: "Z8K2 {{{1}}}" "Z17K1 {{{1}}}"|Search for <code>{{nowrap|"Z8K2 {{{1}}}"}} {{nowrap|"Z17K1 {{{1}}}"}}</code> in mainspace]]
|-
! colspan="3" |
|-
! style="text-align: end;" | (…)
! style="text-align: start;" | {{nowrap|→ <{{{1}}}>[…]}}
| [[Special:Search/: "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1}}}"|Search for <code>{{nowrap|"Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1}}}"}}</code> in mainspace]]
|-
! style="text-align: end;" | {{nowrap|(…, <{{{1}}}>[…], …)}}
! style="text-align: start;" | → …
| [[Special:Search/: "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1}}}"|Search for <code>{{nowrap|"Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1}}}"}}</code> in mainspace]]
|-
! style="text-align: end;" | {{nowrap|(…, <{{{1}}}>[…], …)}}
! style="text-align: start;" | {{nowrap|→ <{{{1}}}>[…]}}
| [[Special:Search/: "Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1}}}" "Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1}}}"|Search for <code>{{nowrap|"Z8K2 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1}}}"}} {{nowrap|"Z17K1 Z1K1 Z7 Z7K1 Z881 Z881K1 {{{1}}}"}}</code> in mainspace]]
|-
! colspan="3" | More: {{Z|22849}}<!--
--><span style="float: inline-end;">{{mini navbar|User:YoshiRulz/Type documentation/search table}}</span>
|}</includeonly></onlyinclude>
Preview:
{{type documentation|Z99|Quote}}
tpegcflxnjsyrzde6vvi791vh7zjoa1
Z35670
0
84323
278279
2026-05-26T21:23:10Z
HenkvD
1290
[nl] zondag is een weekdag.
278279
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35670"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z34282",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z34282",
"Z34282K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q132"
},
"Z34282K2": "Z1157"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "zondag is een weekdag."
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "[nl] zondag is een weekdag."
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
svtwfk7fzf0ff3khx8oaeurqqdwnrx3
Template:Dynamite
10
84324
278284
2026-05-26T23:19:19Z
Eihel
102
Created page with "{{ {{#ifexist:{{#switch:{{{t|}}}|yes=Template:|#default =}}{{{title}}}/{{Zh other|zh|{{Int:Lang}}}} | {{{title}}}/{{Zh other|zh|{{Int:Lang}}}} | {{#ifexist:{{#switch:{{{t|}}}|yes=Template:|#default= }}{{{title}}}/en |{{{title}}}/en |{{{title}}} }} }} }}<noinclude>{{Documentation}}</noinclude>"
278284
wikitext
text/x-wiki
{{ {{#ifexist:{{#switch:{{{t|}}}|yes=Template:|#default =}}{{{title}}}/{{Zh other|zh|{{Int:Lang}}}}
| {{{title}}}/{{Zh other|zh|{{Int:Lang}}}}
| {{#ifexist:{{#switch:{{{t|}}}|yes=Template:|#default= }}{{{title}}}/en
|{{{title}}}/en
|{{{title}}}
}}
}} }}<noinclude>{{Documentation}}</noinclude>
isir0ysuqjj7vwaa2e3q6xksaq40qg6
278286
278284
2026-05-26T23:26:40Z
Eihel
102
+ y for yes
278286
wikitext
text/x-wiki
{{ {{#ifexist:{{#switch:{{{t|}}}|yes=Template:|y=Template:|#default =}}{{{title}}}/{{Zh other|zh|{{Int:Lang}}}}
| {{{title}}}/{{Zh other|zh|{{Int:Lang}}}}
| {{#ifexist:{{#switch:{{{t|}}}|yes=Template:|y=Template:|#default= }}{{{title}}}/en
|{{{title}}}/en
|{{{title}}}
}}
}} }}<noinclude>{{Documentation}}</noinclude>
7dpipky352lww4nz3r75tt8vq8mb712
Template:Dynamite/doc
10
84325
278285
2026-05-26T23:25:07Z
Eihel
102
+ doc
278285
wikitext
text/x-wiki
<noinclude>{{Documentation subpage}}</noinclude>
<templatedata>
{
"description": "This template will return a translatable page in the user's interface language if such a page exists; else, it'll return the \"/en\" page. If \"/en\" page also doesn't exist, this will return the source page of the target template.",
"params": {
"title": {
"label": "title",
"description": "Title of the page to transclude, as in a template transclusion (prefixed with namespace except for the template namespace, \":\" prefix for mainspace pages)",
"example": ":VisualEditor/Newsletter/header",
"type": "wiki-template-name",
"required": true
},
"t": {
"label": "template",
"description": "Whether the title belongs to a template (needed for existence check)",
"type": "line",
"suggestedvalues": [
"yes",
"no"
],
"default": "no"
}
}
}
</templatedata>
== Usage ==
* <code><nowiki>{{dynamite|title=template name|t=yes}}</nowiki></code>
* <code><nowiki>{{dynamite|title=:page name}}</nowiki></code>
== Examples ==
* <code><nowiki>{{dynamite|title=Wikifunctions:Administrators' noticeboard|t=yes}}</nowiki></code> will include:
** [[Template:Wikifunctions:Administrators' noticeboard/en]] if user interface is in English,
** [[Template:Wikifunctions:Administrators' noticeboard/fr]] if user interface is in French,
** [[Template:Wikifunctions:Administrators' noticeboard/de]] if user interface is in German;
<includeonly>
[[Category:Internationalization templates]]
[[Category:User interface language dependent templates]]
</includeonly>
iugjjmdrluqdptumdqhstjqyhu3rc6g
Template:Administrators' noticeboard
10
84326
278287
2026-05-26T23:46:04Z
Eihel
102
Created page with "<noinclude><languages />[[Category:Headers{{#translation:}}]]</noinclude><onlyinclude>{{shortcut|[[WF:AN]]}} <div style="border:1px solid grey; margin:1em 5em 2em; padding:1.5em 1em;"> <span style="font-size:x-large;"><translate>Welcome to the '''Administrators' noticeboard for Wikifunctions'''!</translate></span> <translate> This is a noticeboard for '''matters requiring [[<tvar name="1">Special:MyLanguage/Wikifunctions:Administrators</tvar>|administrators]] attention'..."
278287
wikitext
text/x-wiki
<noinclude><languages />[[Category:Headers{{#translation:}}]]</noinclude><onlyinclude>{{shortcut|[[WF:AN]]}}
<div style="border:1px solid grey; margin:1em 5em 2em; padding:1.5em 1em;">
<span style="font-size:x-large;"><translate>Welcome to the '''Administrators' noticeboard for Wikifunctions'''!</translate></span>
<translate>
This is a noticeboard for '''matters requiring [[<tvar name="1">Special:MyLanguage/Wikifunctions:Administrators</tvar>|administrators]] attention'''.
</translate>
* <translate>If you wish for something to be deleted, please use <tvar name="1">[[Wikifunctions:Requests for deletions]]</tvar>.</translate>
* <translate>If you want to report a bug in Wikifunctions software, please see <tvar name="1">[[Wikifunctions:Report a technical problem]]</tvar>.</translate>
* <translate>Matters not requiring administrator action should be raised at [[<tvar name="1">Wikifunctions:Project chat</tvar>|Project chat]].</translate>
* <translate>To report [[Special:MyLanguage/Wikifunctions:Vandalism|vandalism]] on Wikifunctions: Please use <tvar name="1">[[Wikifunctions:Report vandalism]]</tvar>.</translate>
* <translate>Please add <tvar name="1"><code><nowiki>{{section resolved|1=~~~~}}</nowiki></code></tvar> to resolved sections.</translate><br />
<span class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--action-progressive cdx-button--weight-primary" style="white-space:break-spaces; text-align:center; gap:0;"role="button" aria-disabled="false"><translate>Add a topic</translate></span>
<span class="plainlinks plainlinksneverexpand noarchive noprint" style="float:right; font-size:x-small; padding-top:2em;">[[Template:Administrators' noticeboard|<translate>Translate</translate>]]</span>
<div style="margin-top:1em;"></div>
</div></onlyinclude><includeonly>
[[Category:Requests]]
</includeonly>
1sr5ny7zkkx8r80b3615rlexxa9a19j
Z35672
0
84328
278295
2026-05-27T02:16:38Z
99of9
1622
278295
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35672"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z35672K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35672"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "sentence separator"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"single space",
"sentence spacer",
"space sentences"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns an HTML fragment which should appear between sentences. After everything that belongs with the first sentence, and before everything that belongs in the second. English: a single space"
}
]
}
}
egtzmyjhpw28nlbo0423b3cwok0zc9k
278299
278295
2026-05-27T02:18:01Z
99of9
1622
Added Z35673 and Z35674 to the approved list of test cases
278299
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35672"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z35672K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20",
"Z35673",
"Z35674"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35672"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "sentence separator"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"single space",
"sentence spacer",
"space sentences"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns an HTML fragment which should appear between sentences. After everything that belongs with the first sentence, and before everything that belongs in the second. English: a single space"
}
]
}
}
hsbieyjf5zxtxruvkmamp3b6cwr27f5
278302
278299
2026-05-27T02:20:32Z
99of9
1622
Added Z35675 to the approved list of implementations
278302
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35672"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z35672K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20",
"Z35673",
"Z35674"
],
"Z8K4": [
"Z14",
"Z35675"
],
"Z8K5": "Z35672"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "sentence separator"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"single space",
"sentence spacer",
"space sentences"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns an HTML fragment which should appear between sentences. After everything that belongs with the first sentence, and before everything that belongs in the second. English: a single space"
}
]
}
}
fheocwfoy3b6y488j7k5z3vdsdmmf7h
278326
278302
2026-05-27T03:19:50Z
99of9
1622
278326
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35672"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z35672K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20",
"Z35673",
"Z35674"
],
"Z8K4": [
"Z14",
"Z35675"
],
"Z8K5": "Z35672"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "sentence separator"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"single space",
"sentence spacer",
"space sentences",
"sentence joiner"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns an HTML fragment which should appear between sentences. After everything that belongs with the first sentence, and before everything that belongs in the second. English: a single space"
}
]
}
}
d9i7170uhrlczikmiccifjetht8yddl
278327
278326
2026-05-27T03:19:57Z
99of9
1622
Added Z35686 to the approved list of implementations
278327
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35672"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z35672K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20",
"Z35673",
"Z35674"
],
"Z8K4": [
"Z14",
"Z35675",
"Z35686"
],
"Z8K5": "Z35672"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "sentence separator"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"single space",
"sentence spacer",
"space sentences",
"sentence joiner"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns an HTML fragment which should appear between sentences. After everything that belongs with the first sentence, and before everything that belongs in the second. English: a single space"
}
]
}
}
45bkgozb58yt4jg5bqz7p0591655aj9
278328
278327
2026-05-27T03:20:02Z
99of9
1622
Removed Z35675 from the approved list of implementations
278328
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35672"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z35672K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20",
"Z35673",
"Z35674"
],
"Z8K4": [
"Z14",
"Z35686"
],
"Z8K5": "Z35672"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "sentence separator"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"single space",
"sentence spacer",
"space sentences",
"sentence joiner"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns an HTML fragment which should appear between sentences. After everything that belongs with the first sentence, and before everything that belongs in the second. English: a single space"
}
]
}
}
8ehr5zn74x2j2hct4nwnvdsvxbz0nhs
278339
278328
2026-05-27T03:23:49Z
99of9
1622
nudge
278339
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35672"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z35672K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20",
"Z35673",
"Z35674"
],
"Z8K4": [
"Z14",
"Z35686"
],
"Z8K5": "Z35672"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "sentence separator"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"single space",
"sentence spacer",
"space sentences",
"sentence joiner",
"join sentences"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns an HTML fragment which should appear between sentences. After everything that belongs with the first sentence, and before everything that belongs in the second. English: a single space"
}
]
}
}
qe3x2jwe87k98kiij305y37cbeu7093
Z35673
0
84329
278296
2026-05-27T02:17:04Z
99of9
1622
278296
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35673"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35672",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35672",
"Z35672K1": "Z1002"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z877",
"Z877K2": {
"Z1K1": "Z89",
"Z89K1": " "
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English: single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
orftmdflr0khks83t2ha83vdewruacf
Z35674
0
84330
278297
2026-05-27T02:17:35Z
99of9
1622
278297
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35674"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35672",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35672",
"Z35672K1": "Z1830"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z877",
"Z877K2": {
"Z1K1": "Z89",
"Z89K1": ""
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Japanese: empty string"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
qcxilewbpgp2m07uptzqasxq7dqbvy1
278298
278297
2026-05-27T02:17:47Z
99of9
1622
278298
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35674"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35672",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35672",
"Z35672K1": "Z1830"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z877",
"Z877K2": {
"Z1K1": "Z89",
"Z89K1": ""
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Japanese: empty fragment"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
kkflmnwq8bf53brmnmyk9zztswq8j8w
Z35675
0
84331
278300
2026-05-27T02:19:05Z
99of9
1622
278300
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35675"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35672",
"Z14K2": {
"Z1K1": "Z89",
"Z89K1": " "
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "space separator, hardcode single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
jmrhazvg4o3affzeglmht5p52j9ay16
278301
278300
2026-05-27T02:19:26Z
99of9
1622
278301
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35675"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35672",
"Z14K2": {
"Z1K1": "Z89",
"Z89K1": " "
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "#space separator, hardcode single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lz8xpffqcc6xwyh3tmmhthzgesg1kmm
Z35676
0
84332
278303
2026-05-27T03:03:24Z
99of9
1622
278303
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35676"
},
"Z2K2": {
"Z1K1": "Z14294",
"Z14294K1": [
"Z14293"
],
"Z14294K2": {
"Z1K1": "Z9",
"Z9K1": ""
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "configuration of sentence separators (string)"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
sg1nygq2a9w9vhym4jobj5rw9ro0vj5
278304
278303
2026-05-27T03:04:16Z
99of9
1622
278304
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35676"
},
"Z2K2": {
"Z1K1": "Z14294",
"Z14294K1": [
"Z14293"
],
"Z14294K2": {
"Z1K1": "Z9",
"Z9K1": ""
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "config of sentence separators (string)"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
d2pkkhbgsn2t9mgfd04awguh3ypmh4q
278310
278304
2026-05-27T03:07:00Z
99of9
1622
278310
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35676"
},
"Z2K2": {
"Z1K1": "Z14294",
"Z14294K1": [
"Z14293"
],
"Z14294K2": "Z35677"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "config of sentence separators (string)"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
r5ow17zdgeydbg9lt78z5a71rgt8g3g
278338
278310
2026-05-27T03:23:26Z
99of9
1622
278338
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35676"
},
"Z2K2": {
"Z1K1": "Z14294",
"Z14294K1": [
"Z14293",
{
"Z1K1": "Z14293",
"Z14293K1": "Z35687",
"Z14293K2": [
"Z60",
"Z1830"
]
}
],
"Z14294K2": "Z35677"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "config of sentence separators (string)"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lc2ewtvhdh43hcyvxawqueaqnpwq227
Z35677
0
84333
278305
2026-05-27T03:05:37Z
99of9
1622
278305
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35677"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35677"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"space"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "return a single space"
}
]
}
}
rfrgp54xvr0tab8cd8h38upt64ica05
278307
278305
2026-05-27T03:06:14Z
99of9
1622
Added Z35678 to the approved list of test cases
278307
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35677"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35678"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35677"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"space"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "return a single space"
}
]
}
}
p4xcg2hwkoatsw5iw1hsy1gljoxfaig
278309
278307
2026-05-27T03:06:47Z
99of9
1622
Added Z35679 to the approved list of implementations
278309
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35677"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35678"
],
"Z8K4": [
"Z14",
"Z35679"
],
"Z8K5": "Z35677"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"space"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "return a single space"
}
]
}
}
nx8hakmshslbbx33kmjy9bqomtrr53g
278315
278309
2026-05-27T03:12:58Z
99of9
1622
Added Z35680 to the approved list of implementations
278315
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35677"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35678"
],
"Z8K4": [
"Z14",
"Z35679",
"Z35680"
],
"Z8K5": "Z35677"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"space"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "return a single space"
}
]
}
}
3pshu0w7f1v97r6g6ckv1omkfezv3b5
278317
278315
2026-05-27T03:13:35Z
99of9
1622
Added Z35681 to the approved list of implementations
278317
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35677"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35678"
],
"Z8K4": [
"Z14",
"Z35679",
"Z35680",
"Z35681"
],
"Z8K5": "Z35677"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"space"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "return a single space"
}
]
}
}
108a55hsx506ys1xs0et875a69gyn28
278319
278317
2026-05-27T03:14:29Z
99of9
1622
Added Z35682 to the approved list of implementations
278319
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35677"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35678"
],
"Z8K4": [
"Z14",
"Z35679",
"Z35680",
"Z35681",
"Z35682"
],
"Z8K5": "Z35677"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"space"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "return a single space"
}
]
}
}
4haa4nzvymkkqvrczdqmshsra39cn9v
278351
278319
2026-05-27T03:52:38Z
WikiLambda system
3
Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]])
278351
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35677"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35678"
],
"Z8K4": [
"Z14",
"Z35681",
"Z35680",
"Z35682",
"Z35679"
],
"Z8K5": "Z35677"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"space"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "return a single space"
}
]
}
}
81td82ng69tycrpl3hbhl042mchu2sx
278355
278351
2026-05-27T05:49:54Z
WikiLambda system
3
Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]])
278355
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35677"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35678"
],
"Z8K4": [
"Z14",
"Z35679",
"Z35682",
"Z35681",
"Z35680"
],
"Z8K5": "Z35677"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"space"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "return a single space"
}
]
}
}
qxpcx77fl57vncqom873rgzii8tro5q
Z35678
0
84334
278306
2026-05-27T03:06:00Z
99of9
1622
278306
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35678"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35677",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35677"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": " "
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "always return a single space"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
82pkfcr7pu67x08j4dxzw4zyxnilhel
Z35679
0
84335
278308
2026-05-27T03:06:35Z
99of9
1622
278308
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35679"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35677",
"Z14K2": " "
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space, compose string object"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
dukecz2rrs8tkw21k53lhwq3qwsb2jz
Template:Troggle Switch
10
84336
278313
2026-05-27T03:08:30Z
Scratch Creator
80181
Created page with "{{Clickable button}}"
278313
wikitext
text/x-wiki
{{Clickable button}}
g5com2f3mxzrr1lf9se4j4ujbg4xlbs
278330
278313
2026-05-27T03:20:45Z
Scratch Creator
80181
Redirected page to [[Template:Toggle switch]]
278330
wikitext
text/x-wiki
#REDIRECT [[Template:Toggle switch]]
{{R from move}}
tq83pdn0sp3bcxnqyfme59swulr43qp
Z35680
0
84337
278314
2026-05-27T03:12:43Z
99of9
1622
278314
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35680"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35677",
"Z14K3": {
"Z1K1": "Z16",
"Z16K1": "Z610",
"Z16K2": "def Z35677():\n\treturn \" \""
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space, python"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
pjq7gs9t7p4x2vfyuyldk1x2ifwbfxz
Z35681
0
84338
278316
2026-05-27T03:13:21Z
99of9
1622
278316
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35681"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35677",
"Z14K3": {
"Z1K1": "Z16",
"Z16K1": "Z600",
"Z16K2": "function Z35677( ) {\n\treturn (\" \");\n}"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space, javascript"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
i7vp9hdpjpdgwtyrylcrdw00revt8nl
Z35682
0
84339
278318
2026-05-27T03:14:16Z
99of9
1622
278318
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35682"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35677",
"Z14K2": "Z13128"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "single space, compose reference"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
h0f8sh8jqn6r3ka54zx3ynzqp7m0xvh
Z35683
0
84340
278320
2026-05-27T03:15:32Z
99of9
1622
278320
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35683"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z8",
"Z17K2": "Z35683K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "function to apply"
}
]
}
}
],
"Z8K2": "Z1",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35683"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apply0"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apply a function with 0 arguments"
}
]
}
}
ks62nidmewmwjc110mqyhzj2vyfhucb
278322
278320
2026-05-27T03:17:02Z
99of9
1622
Added Z35684 to the approved list of test cases
278322
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35683"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z8",
"Z17K2": "Z35683K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "function to apply"
}
]
}
}
],
"Z8K2": "Z1",
"Z8K3": [
"Z20",
"Z35684"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35683"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apply0"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apply a function with 0 arguments"
}
]
}
}
onbs0ae19e6qta0hls0sw1m22uoawh9
278324
278322
2026-05-27T03:17:56Z
99of9
1622
Added Z35685 to the approved list of implementations
278324
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35683"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z8",
"Z17K2": "Z35683K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "function to apply"
}
]
}
}
],
"Z8K2": "Z1",
"Z8K3": [
"Z20",
"Z35684"
],
"Z8K4": [
"Z14",
"Z35685"
],
"Z8K5": "Z35683"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apply0"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apply a function with 0 arguments"
}
]
}
}
sn9hevrym2egynet5nceg1u0dgphpn7
Z35684
0
84341
278321
2026-05-27T03:16:48Z
99of9
1622
278321
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35684"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35683",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35683",
"Z35683K1": "Z35677"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": " "
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apply0(single space()) = \" \""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
3dtyd61dm4jv459432re9apeiwrzcc5
Z35685
0
84342
278323
2026-05-27T03:17:37Z
99of9
1622
278323
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35685"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35683",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": {
"Z1K1": "Z18",
"Z18K1": "Z35683K1"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apply0, composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
42ccpbgyk4db3rm0qkylprcnjdma6au
Z35686
0
84343
278325
2026-05-27T03:19:17Z
99of9
1622
278325
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35686"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35672",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z35683",
"Z35683K1": {
"Z1K1": "Z7",
"Z7K1": "Z14310",
"Z14310K1": "Z35676",
"Z14310K2": {
"Z1K1": "Z18",
"Z18K1": "Z35672K1"
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "sentence separator, configured"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
t45lx5lrk9w0cb5g1pm3wii4p9nd2rc
Template:Toggle switch
10
84344
278329
2026-05-27T03:20:37Z
Scratch Creator
80181
Created page with "<includeonly>{{#ifeq:{{{1|}}}|on |[[File:Toggle {{{color|green}}}.png|link={{{link|}}}|80px]] |[[File:Toggle grey.png|link={{{link|}}}|80px]]}}</includeonly> <noinclude>{{documentation}}</noinclude>"
278329
wikitext
text/x-wiki
<includeonly>{{#ifeq:{{{1|}}}|on
|[[File:Toggle {{{color|green}}}.png|link={{{link|}}}|80px]]
|[[File:Toggle grey.png|link={{{link|}}}|80px]]}}</includeonly>
<noinclude>{{documentation}}</noinclude>
hzuut9csyp7nrusuvqlicaw7p5yewp5
Z35687
0
84345
278331
2026-05-27T03:21:46Z
99of9
1622
278331
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35687"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35687"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string \"\""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"empty string",
"blank string"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns an empty string"
}
]
}
}
syyn8olzpzjz84ina15p4m90ez4ix1d
278334
278331
2026-05-27T03:22:31Z
99of9
1622
Added Z35688 to the approved list of test cases
278334
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35687"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35688"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35687"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string \"\""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"empty string",
"blank string"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns an empty string"
}
]
}
}
6avs5e9sh7pi4netz9ea1wp4i2phm7g
278337
278334
2026-05-27T03:23:15Z
99of9
1622
Added Z35689 to the approved list of implementations
278337
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35687"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35688"
],
"Z8K4": [
"Z14",
"Z35689"
],
"Z8K5": "Z35687"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string \"\""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"empty string",
"blank string"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns an empty string"
}
]
}
}
jeprh083g1r6kfa6zf1z5rta1r6sr0m
278346
278337
2026-05-27T03:38:27Z
99of9
1622
Added Z35690 to the approved list of implementations
278346
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35687"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35688"
],
"Z8K4": [
"Z14",
"Z35689",
"Z35690"
],
"Z8K5": "Z35687"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string \"\""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"empty string",
"blank string"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns an empty string"
}
]
}
}
7sjzl2eot607ony8fg51zb832yz2bd9
278348
278346
2026-05-27T03:39:04Z
99of9
1622
Added Z35691 to the approved list of implementations
278348
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35687"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35688"
],
"Z8K4": [
"Z14",
"Z35689",
"Z35690",
"Z35691"
],
"Z8K5": "Z35687"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string \"\""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"empty string",
"blank string"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns an empty string"
}
]
}
}
6qc67q8xz1ug32u9eg05p73rvsj39cp
278350
278348
2026-05-27T03:39:46Z
99of9
1622
Added Z35692 to the approved list of implementations
278350
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35687"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35688"
],
"Z8K4": [
"Z14",
"Z35689",
"Z35690",
"Z35691",
"Z35692"
],
"Z8K5": "Z35687"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string \"\""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"empty string",
"blank string"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns an empty string"
}
]
}
}
9tq1gviak5owshrify571z4hy5rr4qm
278374
278350
2026-05-27T06:41:35Z
WikiLambda system
3
Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]])
278374
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35687"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17"
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z35688"
],
"Z8K4": [
"Z14",
"Z35692",
"Z35691",
"Z35690",
"Z35689"
],
"Z8K5": "Z35687"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string \"\""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"empty string",
"blank string"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns an empty string"
}
]
}
}
r162ra1p6ye9xhnisr8ame5a2ya9nbw
Template:R from move
10
84346
278332
2026-05-27T03:22:02Z
Scratch Creator
80181
Created page with "<noinclude>{{hatnote|This rcat template is automatically added to all new redirects that result from page moves; it must be added manually to older redirects when appropriate.}}{{This is a redirect/rcat}} </noinclude>{{Redirect template |id=R from move |name=From a page move |from=a page that has been moved (renamed) |info=This page was kept as a redirect to avoid breaking links, both internal and external, that may have been made to the old page name. |all cat..."
278332
wikitext
text/x-wiki
<noinclude>{{hatnote|This rcat template is automatically added to all new redirects that result from page moves; it must be added manually to older redirects when appropriate.}}{{This is a redirect/rcat}}
</noinclude>{{Redirect template
|id=R from move
|name=From a page move
|from=a page that has been moved (renamed)
|info=This page was kept as a redirect to avoid breaking links, both internal and external, that may have been made to the old page name.
|all category=Redirects from moves
}}<includeonly>{{R from move/except}}</includeonly><noinclude>
<!-- Place categories on /doc subpage; interwikis go to Wikidata. -->
{{Documentation}}
</noinclude>
jb1j0dw49p25rsnw8nldcu4oogum41x
Z35688
0
84347
278333
2026-05-27T03:22:17Z
99of9
1622
278333
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35688"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35687",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35687"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": ""
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "always return an empty string"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
t17pa8txmf3s8o1fv7hp5abb6uq2xz9
Template:Hatnote
10
84348
278335
2026-05-27T03:22:56Z
Scratch Creator
80181
Created page with "<includeonly>{{#invoke:Hatnote|hatnote}}</includeonly><noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
278335
wikitext
text/x-wiki
<includeonly>{{#invoke:Hatnote|hatnote}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
8nnude79i1y2v6yy2z7j285k1k4v8p3
Z35689
0
84349
278336
2026-05-27T03:23:02Z
99of9
1622
278336
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35689"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35687",
"Z14K2": ""
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string, compose \"\""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
eiv5dump58e07q0gc9nvn957cpi20sl
Template:Redirect template
10
84350
278340
2026-05-27T03:25:05Z
Scratch Creator
80181
Created page with "{{#invoke:Redirect template|main}}<noinclude> {{Documentation}}</noinclude>"
278340
wikitext
text/x-wiki
{{#invoke:Redirect template|main}}<noinclude>
{{Documentation}}</noinclude>
1cl28dcwjsrtge5hedu653jwub1cll3
Module:TNT/config
828
84351
278341
2026-05-27T03:26:12Z
Scratch Creator
80181
Created page with "-- -- INTRO: (!!! DO NOT RENAME THIS PAGE !!!) -- This module allows any template or module to be copy/pasted between -- wikis without any translation changes. All translation text is stored -- in the global Data:*.tab pages on Commons, and used everywhere. -- -- SEE: https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules -- -- ATTENTION: -- Please do NOT rename this module - it has to be identical on all wikis. -- This code is maintained..."
278341
Scribunto
text/plain
--
-- INTRO: (!!! DO NOT RENAME THIS PAGE !!!)
-- This module allows any template or module to be copy/pasted between
-- wikis without any translation changes. All translation text is stored
-- in the global Data:*.tab pages on Commons, and used everywhere.
--
-- SEE: https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules
--
-- ATTENTION:
-- Please do NOT rename this module - it has to be identical on all wikis.
-- This code is maintained at https://www.mediawiki.org/wiki/Module:TNT
-- Please do not modify it anywhere else, as it may get copied and override your changes.
-- Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT
--
-- DESCRIPTION:
-- The "msg" function uses a Commons dataset to translate a message
-- with a given key (e.g. source-table), plus optional arguments
-- to the wiki markup in the current content language.
-- Use lang=xx to set language. Example:
--
-- {{#invoke:TNT | msg
-- | I18n/Template:Graphs.tab <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab -->
-- | source-table <!-- uses a translation message with id = "source-table" -->
-- | param1 }} <!-- optional parameter -->
--
--
-- The "doc" function will generate the <templatedata> parameter documentation for templates.
-- This way all template parameters can be stored and localized in a single Commons dataset.
-- NOTE: "doc" assumes that all documentation is located in Data:Templatedata/* on Commons.
--
-- {{#invoke:TNT | doc | Graph:Lines }}
-- uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab
-- if the current page is Template:Graph:Lines/doc
--
local config = (function()
local ok, res = pcall(mw.loadData, "Module:TNT/config");
return ok and res or {};
end)();
local p = {}
local i18nDataset = 'I18n/Module:TNT.tab'
-- Forward declaration of the local functions
local sanitizeDataset, loadData, link, formatMessage
function p.msg(frame)
local dataset, id
local params = {}
local lang = nil
for k, v in pairs(frame.args) do
if k == 1 then
dataset = mw.text.trim(v)
elseif k == 2 then
id = mw.text.trim(v)
elseif type(k) == 'number' then
params[k - 2] = mw.text.trim(v)
elseif k == 'lang' and v ~= '_' then
lang = mw.text.trim(v)
end
end
return formatMessage(dataset, id, params, lang)
end
-- Identical to p.msg() above, but used from other lua modules
-- Parameters: name of dataset, message key, optional arguments
-- Example with 2 params: format('I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.format(dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('format', 1, dataset, 'string')
checkType('format', 2, key, 'string')
return formatMessage(dataset, key, {...})
end
-- Identical to p.msg() above, but used from other lua modules with the language param
-- Parameters: language code, name of dataset, message key, optional arguments
-- Example with 2 params: formatInLanguage('es', I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.formatInLanguage(lang, dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('formatInLanguage', 1, lang, 'string')
checkType('formatInLanguage', 2, dataset, 'string')
checkType('formatInLanguage', 3, key, 'string')
return formatMessage(dataset, key, {...}, lang)
end
-- Obsolete function that adds a 'c:' prefix to the first param.
-- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab'
function p.link(frame)
return link(frame.args[1])
end
local implGetTemplateData;
function p.doc(frame)
local dataset = sanitizeDataset(frame.args[1])
local json, dataPage, categories = implGetTemplateData(nil, dataset, frame.args)
return frame:extensionTag('templatedata', json) ..
formatMessage(i18nDataset, 'edit_doc', {link(dataPage)}) ..
(categories or "");
end
function p.getTemplateData(dataset)
local data = implGetTemplateData(true, dataset);
return data;
end
function p.getTemplateDataNew(...)
return implGetTemplateData(nil, ...);
end
function implGetTemplateData(legacy, dataset, args)
-- TODO: add '_' parameter once lua starts reindexing properly for "all" languages
local data, dataPage, categories = loadData(
dataset, nil, not legacy and 'TemplateData' or nil);
local names = {}
for _, field in ipairs(data.schema.fields) do
table.insert(names, field.name)
end
local numOnly = true
local params = {}
local paramOrder = {}
for _, row in ipairs(data.data) do
local newVal = {}
local name = nil
for pos, columnName in ipairs(names) do
if columnName == 'name' then
name = row[pos]
else
newVal[columnName] = row[pos]
end
end
if name then
if (
(type(name) ~= "number")
and (
(type(name) ~= "string")
or not string.match(name, "^%d+$")
)
) then
numOnly = false
end
params[name] = newVal
table.insert(paramOrder, name)
end
end
-- Work around json encoding treating {"1":{...}} as an [{...}]
if numOnly then
params['zzz123']=''
end
local json = mw.text.jsonEncode({
params=params,
paramOrder=paramOrder,
description=data.description,
-- TODO: Store this in a dataset:
format = (args and args.format or nil),
})
if numOnly then
json = string.gsub(json,'"zzz123":"",?', "")
end
return json, dataPage, categories;
end
-- Local functions
sanitizeDataset = function(dataset)
if not dataset then
return nil
end
dataset = mw.text.trim(dataset)
if dataset == '' then
return nil
elseif string.sub(dataset,-4) ~= '.tab' then
return dataset .. '.tab'
else
return dataset
end
end
loadData = function(dataset, lang, dataType)
dataset = sanitizeDataset(dataset)
if not dataset then
error(formatMessage(i18nDataset, 'error_no_dataset', {}))
end
-- Give helpful error to thirdparties who try and copy this module.
if not mw.ext or not mw.ext.data or not mw.ext.data.get then
error(string.format([['''Missing JsonConfig extension, or not properly configured;
Cannot load https://commons.wikimedia.org/wiki/Data:%s.
See https://www.mediawiki.org/wiki/Extension:JsonConfig#Supporting_Wikimedia_templates''']], dataset))
end
local dataPage = dataset;
local data, categories;
if dataType == 'TemplateData' then
dataPage = 'TemplateData/' .. dataset;
data = mw.ext.data.get(dataPage, lang);
if data == false then
data = mw.ext.data.get('Templatedata/' .. dataset, lang);
if data ~= false then
local legacyTemplateDataCategoryName = config.legacyTemplateDataCategoryName;
if legacyTemplateDataCategoryName ~= false then
categories = string.format(
'[[Category:%s%s]]',
legacyTemplateDataCategoryName or "Templates using legacy global TemplateData table name",
config.translatableCategoryLink and mw.getCurrentFrame():callParserFunction("#translation:") or ""
);
end
dataPage = 'Templatedata/' .. dataset;
end
end
else
data = mw.ext.data.get(dataset, lang)
end
if data == false then
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Missing Commons dataset ' .. i18nDataset)
else
error(formatMessage(i18nDataset, 'error_bad_dataset', {link(dataPage)}))
end
end
return data, dataPage, categories;
end
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix
link = function(dataset)
return 'c:Data:' .. mw.text.trim(dataset or '')
end
formatMessage = function(dataset, key, params, lang)
for _, row in pairs(loadData(dataset, lang).data) do
local id, msg = unpack(row)
if id == key then
local result = mw.message.newRawMessage(msg, unpack(params or {}))
return result:plain()
end
end
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Invalid message key "' .. key .. '"')
else
error(formatMessage(i18nDataset, 'error_bad_msgkey', {key, link(dataset)}))
end
end
return p
2ii65lh3z6ssbx7s7r8h0vsbnbhbiyl
Template:This is a redirect/rcat
10
84352
278342
2026-05-27T03:28:57Z
Scratch Creator
80181
Created page with "{{#ifeq:{{NAMESPACE}}|Template talk||'''{{small|When used inside the {{Tl|Redirect category shell}} template:}}}}''' {{Mbox | name = This is a redirect/rcat | type = move | image = none | style = margin-top: 1.1em; border: solid 1px darkblue; border-left-width: 0.5em; | textstyle = padding-top: 0.9em; padding-bottom: 0.9em; | text = '''This page is a [[Wikipedia:Redirect|redirect]]. <small>The following [[Wikipedia:Categorizing redirects|categories]] are used to trac..."
278342
wikitext
text/x-wiki
{{#ifeq:{{NAMESPACE}}|Template talk||'''{{small|When used inside the {{Tl|Redirect category shell}} template:}}}}'''
{{Mbox
| name = This is a redirect/rcat
| type = move
| image = none
| style = margin-top: 1.1em; border: solid 1px darkblue; border-left-width: 0.5em;
| textstyle = padding-top: 0.9em; padding-bottom: 0.9em;
| text = '''This page is a [[Wikipedia:Redirect|redirect]]. <small>The following [[Wikipedia:Categorizing redirects|categories]] are used to track and monitor this redirect:</small>'''
{{#ifeq:{{PAGENAME}}|R avoided double redirect|<includeonly>{{{text|{{ {{#switch:{{PAGENAME}}|This is a redirect/rcat=|This is a redirect/rcat/sandbox=|This is a redirect/rcat/testcases=|#default={{PAGENAME}}}}|embed=yes}}}}}</includeonly>|
<noinclude>* (Text of rcat)</noinclude><includeonly>{{{text|{{ {{#switch:{{PAGENAME}}|This is a redirect/rcat=|This is a redirect/rcat/sandbox=|This is a redirect/rcat/testcases=|#default={{PAGENAME}}}}|embed=yes}}}}}</includeonly>}}
''<small>When appropriate, [[WP:PP|protection levels]] are automatically sensed, described and categorized.</small>''
}}
{{#ifeq:{{NAMESPACE}}|Template talk||{{#if:{{{1|}}}||<br />'''{{small|When used by itself:}}'''}}}}<noinclude>
{{Documentation}}
</noinclude>
nri3bmx476z9cnc3bfgs95x16ukyefs
Module:Hatnote
828
84353
278343
2026-05-27T03:30:42Z
Scratch Creator
80181
Created page with "-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the {{hatnote}} and {{format link}} meta-templates and includes -- -- helper functions for other Lua hatnote modules...."
278343
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote --
-- --
-- This module produces hatnote links and links to related articles. It --
-- implements the {{hatnote}} and {{format link}} meta-templates and includes --
-- helper functions for other Lua hatnote modules. --
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg
local mArguments -- lazily initialise [[Module:Arguments]]
local yesno -- lazily initialise [[Module:Yesno]]
local formatLink -- lazily initialise [[Module:Format link]] ._formatLink
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
function p.defaultClasses(inline)
-- Provides the default hatnote classes as a space-separated string; useful
-- for hatnote-manipulation modules like [[Module:Hatnote group]].
return
(inline == 1 and 'hatnote-inline' or 'hatnote') .. ' ' ..
'navigation-not-searchable'
end
function p.disambiguate(page, disambiguator)
-- Formats a page title with a disambiguation parenthetical,
-- i.e. "Example" → "Example (disambiguation)".
checkType('disambiguate', 1, page, 'string')
checkType('disambiguate', 2, disambiguator, 'string', true)
disambiguator = disambiguator or 'disambiguation'
return mw.ustring.format('%s (%s)', page, disambiguator)
end
function p.findNamespaceId(link, removeColon)
-- Finds the namespace id (namespace number) of a link or a pagename. This
-- function will not work if the link is enclosed in double brackets. Colons
-- are trimmed from the start of the link by default. To skip colon
-- trimming, set the removeColon parameter to false.
checkType('findNamespaceId', 1, link, 'string')
checkType('findNamespaceId', 2, removeColon, 'boolean', true)
if removeColon ~= false then
link = removeInitialColon(link)
end
local namespace = link:match('^(.-):')
if namespace then
local nsTable = mw.site.namespaces[namespace]
if nsTable then
return nsTable.id
end
end
return 0
end
function p.makeWikitextError(msg, helpLink, addTrackingCategory, title)
-- Formats an error message to be returned to wikitext. If
-- addTrackingCategory is not false after being returned from
-- [[Module:Yesno]], and if we are not on a talk page, a tracking category
-- is added.
checkType('makeWikitextError', 1, msg, 'string')
checkType('makeWikitextError', 2, helpLink, 'string', true)
yesno = require('Module:Yesno')
title = title or mw.title.getCurrentTitle()
-- Make the help link text.
local helpText
if helpLink then
helpText = ' ([[' .. helpLink .. '|help]])'
else
helpText = ''
end
-- Make the category text.
local category
if not title.isTalkPage -- Don't categorise talk pages
and title.namespace ~= 2 -- Don't categorise userspace
and yesno(addTrackingCategory) ~= false -- Allow opting out
then
category = 'Hatnote templates with errors'
category = mw.ustring.format(
'[[%s:%s]]',
mw.site.namespaces[14].name,
category
)
else
category = ''
end
return mw.ustring.format(
'<strong class="error">Error: %s%s.</strong>%s',
msg,
helpText,
category
)
end
local curNs = mw.title.getCurrentTitle().namespace
p.missingTargetCat =
--Default missing target category, exported for use in related modules
((curNs == 0) or (curNs == 14)) and
'Articles with hatnote templates targeting a nonexistent page' or nil
function p.quote(title)
--Wraps titles in quotation marks. If the title starts/ends with a quotation
--mark, kerns that side as with {{-'}}
local quotationMarks = {
["'"]=true, ['"']=true, ['“']=true, ["‘"]=true, ['”']=true, ["’"]=true
}
local quoteLeft, quoteRight = -- Test if start/end are quotation marks
quotationMarks[string.sub(title, 1, 1)],
quotationMarks[string.sub(title, -1, -1)]
if quoteLeft or quoteRight then
title = mw.html.create("span"):wikitext(title)
end
if quoteLeft then title:css("padding-left", "0.15em") end
if quoteRight then title:css("padding-right", "0.15em") end
return '"' .. tostring(title) .. '"'
end
--------------------------------------------------------------------------------
-- Hatnote
--
-- Produces standard hatnote text. Implements the {{hatnote}} template.
--------------------------------------------------------------------------------
p[''] = function (frame) return p.hatnote(frame:newChild{ title = "Template:Hatnote" }) end
function p.hatnote(frame)
local args = getArgs(frame)
local s = args[1]
if not s then
return p.makeWikitextError(
'no text specified',
'Template:Hatnote#Errors',
args.category
)
end
return p._hatnote(s, {
extraclasses = args.extraclasses,
selfref = args.selfref
})
end
function p._hatnote(s, options)
checkType('_hatnote', 1, s, 'string')
checkType('_hatnote', 2, options, 'table', true)
options = options or {}
local inline = options.inline
local hatnote = mw.html.create(inline == 1 and 'span' or 'div')
local extraclasses
if type(options.extraclasses) == 'string' then
extraclasses = options.extraclasses
end
hatnote
:attr('role', 'note')
:addClass(p.defaultClasses(inline))
:addClass(extraclasses)
:addClass(options.selfref and 'selfref' or nil)
:wikitext(s)
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'Module:Hatnote/styles.css' }
} .. tostring(hatnote)
end
return p
qps4k9ys6ba1dq9msz6m6lq3kfc4w6t
Module:Hatnote/styles.css
828
84354
278344
2026-05-27T03:32:26Z
Scratch Creator
80181
Created page with "/* {{pp|small=y}} */ .hatnote { font-style: italic; } /* Limit structure CSS to divs because of [[Module:Hatnote inline]] */ div.hatnote { /* @noflip */ padding-left: 1.6em; margin-bottom: 0.5em; } .hatnote i { font-style: normal; } /* The templatestyles causes an 'empty' span between hatnotes */ .hatnote + span.mw-empty-elt + .hatnote, /* remove this selector when Parsoid is the only parser, see also [[phab:T200206]] */ .hatnote + link + .hatnote { margin-top:..."
278344
sanitized-css
text/css
/* {{pp|small=y}} */
.hatnote {
font-style: italic;
}
/* Limit structure CSS to divs because of [[Module:Hatnote inline]] */
div.hatnote {
/* @noflip */
padding-left: 1.6em;
margin-bottom: 0.5em;
}
.hatnote i {
font-style: normal;
}
/* The templatestyles causes an 'empty' span between hatnotes */
.hatnote + span.mw-empty-elt + .hatnote,
/* remove this selector when Parsoid is the only parser, see also [[phab:T200206]] */
.hatnote + link + .hatnote {
margin-top: -0.5em;
}
@media print {
body.ns-0 .hatnote {
display: none !important;
}
}
8oift3eve95te8chs4adr5fpl4pmpmd
Z35690
0
84355
278345
2026-05-27T03:38:13Z
99of9
1622
278345
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35690"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35687",
"Z14K3": {
"Z1K1": "Z16",
"Z16K1": "Z610",
"Z16K2": "def Z35687():\n\treturn \"\""
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string, python"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2nf7k9xka40pmff3to2sop6lcfkwhal
Z35691
0
84356
278347
2026-05-27T03:38:53Z
99of9
1622
278347
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35691"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35687",
"Z14K3": {
"Z1K1": "Z16",
"Z16K1": "Z600",
"Z16K2": "function Z35687( ) {\n\treturn (\"\");\n}"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string, javascript"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
n5in63h6yrf73n4pan7ga5r91grnigk
Z35692
0
84357
278349
2026-05-27T03:39:33Z
99of9
1622
278349
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35692"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35687",
"Z14K2": "Z11853"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "empty string, compose reference"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
jsyn9gsoek8i9b71sxxjwi4hp1z0pls
User talk:YoshiRulz/Type documentation/search table
3
84358
278354
2026-05-27T04:12:47Z
YoshiRulz
10156
/* ListObjectsByType */ new section
278354
wikitext
text/x-wiki
== ListObjectsByType ==
{{ping|GrounderUK}} re: [[WF:Project_chat#c-GrounderUK-20260526162300-YoshiRulz-20260526122900|your comment here]], do you just mean the link to [[Special:ListObjectsByType]] should be moved up, outside the table? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 04:12, 27 May 2026 (UTC)
cde6i0ncl8h3ppurbls9bdjrdlpbpkz
Z35693
0
84359
278356
2026-05-27T06:34:02Z
YoshiRulz
10156
Create function
278356
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35693"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z13518",
"Z17K2": "Z35693K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35693"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Natural number not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Natural number positive",
"non-zero Natural number",
"Natural number ≠ 0",
"Natural number \u003E 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2d070xix0c9jb5m5o5ig2qaxat1fbyi
278361
278356
2026-05-27T06:35:34Z
YoshiRulz
10156
Added Z35694, Z35695, Z35696 and Z35697 to the approved list of test cases
278361
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35693"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z13518",
"Z17K2": "Z35693K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35694",
"Z35695",
"Z35696",
"Z35697"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35693"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Natural number not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Natural number positive",
"non-zero Natural number",
"Natural number ≠ 0",
"Natural number \u003E 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
1tnmypkqdk6kzn3e72y3gjltc4j8hvs
278363
278361
2026-05-27T06:37:01Z
99of9
1622
Added Z35698 to the approved list of implementations
278363
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35693"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z13518",
"Z17K2": "Z35693K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35694",
"Z35695",
"Z35696",
"Z35697"
],
"Z8K4": [
"Z14",
"Z35698"
],
"Z8K5": "Z35693"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Natural number not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Natural number positive",
"non-zero Natural number",
"Natural number ≠ 0",
"Natural number \u003E 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rezo3gqvemz3jf4dlpyhgz90qq36ta8
278366
278363
2026-05-27T06:37:40Z
YoshiRulz
10156
Added Z35699 to the approved list of implementations
278366
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35693"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z13518",
"Z17K2": "Z35693K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35694",
"Z35695",
"Z35696",
"Z35697"
],
"Z8K4": [
"Z14",
"Z35698",
"Z35699"
],
"Z8K5": "Z35693"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Natural number not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Natural number positive",
"non-zero Natural number",
"Natural number ≠ 0",
"Natural number \u003E 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
gzrveyqvfpu055wkzzal1qrizj6dnlh
278367
278366
2026-05-27T06:37:58Z
99of9
1622
Added Z35700 to the approved list of implementations
278367
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35693"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z13518",
"Z17K2": "Z35693K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35694",
"Z35695",
"Z35696",
"Z35697"
],
"Z8K4": [
"Z14",
"Z35698",
"Z35699",
"Z35700"
],
"Z8K5": "Z35693"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Natural number not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Natural number positive",
"non-zero Natural number",
"Natural number ≠ 0",
"Natural number \u003E 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rz4ar92z1pja953g2lt8df2aa0a6mts
278371
278367
2026-05-27T06:38:37Z
99of9
1622
Added Z35701 to the approved list of implementations
278371
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35693"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z13518",
"Z17K2": "Z35693K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35694",
"Z35695",
"Z35696",
"Z35697"
],
"Z8K4": [
"Z14",
"Z35698",
"Z35699",
"Z35700",
"Z35701"
],
"Z8K5": "Z35693"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Natural number not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Natural number positive",
"non-zero Natural number",
"Natural number ≠ 0",
"Natural number \u003E 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
seuoouzcm0hpd3jed51g1558k30l45s
278373
278371
2026-05-27T06:39:57Z
99of9
1622
278373
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35693"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z13518",
"Z17K2": "Z35693K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35694",
"Z35695",
"Z35696",
"Z35697"
],
"Z8K4": [
"Z14",
"Z35698",
"Z35699",
"Z35700",
"Z35701"
],
"Z8K5": "Z35693"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Natural number not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Natural number positive",
"non-zero Natural number",
"Natural number ≠ 0",
"Natural number \u003E 0",
"is not zero",
"is number not zero",
"number is not zero"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
02p6h9eprvdfjsxaljvle8rogq1seyl
Z35694
0
84360
278357
2026-05-27T06:35:06Z
YoshiRulz
10156
Create test
278357
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35694"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35693",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35693",
"Z35693K1": {
"Z1K1": "Z13518",
"Z13518K1": "0"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "0 isn't non-zero"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ivpuq5ucxeapzvamz8uoxem2v8biibu
Z35695
0
84361
278358
2026-05-27T06:35:10Z
YoshiRulz
10156
Create test
278358
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35695"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35693",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35693",
"Z35693K1": {
"Z1K1": "Z13518",
"Z13518K1": "1"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "1 is non-zero"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
64ockfdhymqnfwinpltnrmbap6n8c6e
Z35696
0
84362
278359
2026-05-27T06:35:14Z
YoshiRulz
10156
Create test
278359
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35696"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35693",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35693",
"Z35693K1": {
"Z1K1": "Z13518",
"Z13518K1": "4"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "4 is non-zero"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
hfshgurb4rjcbbu82i6qa4eb4xa9m1q
Z35697
0
84363
278360
2026-05-27T06:35:17Z
YoshiRulz
10156
Create test
278360
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35697"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35693",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35693",
"Z35693K1": {
"Z1K1": "Z13518",
"Z13518K1": "1000000"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "1000000 is non-zero"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ejpn0rqtxgedbk7kamcdas6bkfegjw4
Z35698
0
84364
278362
2026-05-27T06:36:47Z
99of9
1622
278362
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35698"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35693",
"Z14K3": {
"Z1K1": "Z16",
"Z16K1": "Z600",
"Z16K2": "function Z35693( Z35693K1 ) {\n\treturn (Z35693K1!=0);\n}"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "not zero, javascript !=0"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rx0vbnqn3qp2v1jenge9hlwtxndmbo2
Z35699
0
84365
278364
2026-05-27T06:37:28Z
YoshiRulz
10156
Create implementation
278364
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35699"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35693",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z14416",
"Z14416K1": {
"Z1K1": "Z18",
"Z18K1": "Z35693K1"
},
"Z14416K2": {
"Z1K1": "Z13518",
"Z13518K1": "0"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Natural number not zero, composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
r1hmh5e5lk4jvaywpq8v9qcwg45341w
278372
278364
2026-05-27T06:39:12Z
YoshiRulz
10156
Disambiguate en label
278372
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35699"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35693",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z14416",
"Z14416K1": {
"Z1K1": "Z18",
"Z18K1": "Z35693K1"
},
"Z14416K2": {
"Z1K1": "Z13518",
"Z13518K1": "0"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Natural number not zero, inequality composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
thv91nzru4hqdxjcxeg6t9rceowa9u5
Z35700
0
84366
278365
2026-05-27T06:37:37Z
99of9
1622
278365
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35700"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35693",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z10216",
"Z10216K1": {
"Z1K1": "Z7",
"Z7K1": "Z23883",
"Z23883K1": {
"Z1K1": "Z18",
"Z18K1": "Z35693K1"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "not zero, compose not(zero())"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
p0728vuf8993i2laq28zmfftb5kbw4l
Z35701
0
84367
278368
2026-05-27T06:38:26Z
99of9
1622
278368
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35701"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35693",
"Z14K3": {
"Z1K1": "Z16",
"Z16K1": "Z610",
"Z16K2": "def Z35693(Z35693K1):\n\treturn Z35693K1!=0"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "not zero, python !=0"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
pm34lvs1qydsbsv9l7pt96nbrjgk3ht
Z35702
0
84368
278375
2026-05-27T06:42:09Z
YoshiRulz
10156
Create function
278375
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35702"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z16683",
"Z17K2": "Z35702K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35702"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"non-zero Integer",
"Integer ≠ 0",
"Integer is not 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
h3w93qkqwjqyiekze26z5pb0i7l7kox
278379
278375
2026-05-27T06:43:27Z
YoshiRulz
10156
Added Z35703, Z35704 and Z35705 to the approved list of test cases
278379
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35702"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z16683",
"Z17K2": "Z35702K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35703",
"Z35704",
"Z35705"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35702"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"non-zero Integer",
"Integer ≠ 0",
"Integer is not 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
q1idr3aeoz2ywamzwon4exzvxlngkzz
278382
278379
2026-05-27T06:44:36Z
YoshiRulz
10156
Added Z35706 and Z35707 to the approved list of implementations
278382
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35702"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z16683",
"Z17K2": "Z35702K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35703",
"Z35704",
"Z35705"
],
"Z8K4": [
"Z14",
"Z35706",
"Z35707"
],
"Z8K5": "Z35702"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"non-zero Integer",
"Integer ≠ 0",
"Integer is not 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ktu6m94ya5dt3ngtxkz520v9dtw2lyd
278384
278382
2026-05-27T06:46:57Z
WikiLambda system
3
Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]])
278384
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35702"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z16683",
"Z17K2": "Z35702K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35703",
"Z35704",
"Z35705"
],
"Z8K4": [
"Z14",
"Z35707",
"Z35706"
],
"Z8K5": "Z35702"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"non-zero Integer",
"Integer ≠ 0",
"Integer is not 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
sreloelts722qnyrzzf1yknciruuf39
278385
278384
2026-05-27T06:47:04Z
YoshiRulz
10156
Added Z35708 to the approved list of implementations
278385
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35702"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z16683",
"Z17K2": "Z35702K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35703",
"Z35704",
"Z35705"
],
"Z8K4": [
"Z14",
"Z35706",
"Z35707",
"Z35708"
],
"Z8K5": "Z35702"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"non-zero Integer",
"Integer ≠ 0",
"Integer is not 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
qzg87l1nxc1nawzce1j6haundkdnq4w
278392
278385
2026-05-27T06:51:51Z
WikiLambda system
3
Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]])
278392
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35702"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z16683",
"Z17K2": "Z35702K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35703",
"Z35704",
"Z35705"
],
"Z8K4": [
"Z14",
"Z35707",
"Z35708",
"Z35706"
],
"Z8K5": "Z35702"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer not zero?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"non-zero Integer",
"Integer ≠ 0",
"Integer is not 0"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
1gat5sxipgub7p35pggyzfuerjnuud5
Z35703
0
84369
278376
2026-05-27T06:43:00Z
YoshiRulz
10156
Create test
278376
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35703"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35702",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35702",
"Z35702K1": {
"Z1K1": "Z16683",
"Z16683K1": "Z16661",
"Z16683K2": {
"Z1K1": "Z13518",
"Z13518K1": "0"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "0 isn't non-zero (Integer)"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
6cxy07tz4e73qk83g5b1xdtokdga59l
Z35704
0
84370
278377
2026-05-27T06:43:09Z
YoshiRulz
10156
Create test
278377
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35704"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35702",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35702",
"Z35702K1": {
"Z1K1": "Z16683",
"Z16683K1": "Z16660",
"Z16683K2": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "+2 is non-zero"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
4i1d44xouap0qtl32tex129qr5lcqc5
Z35705
0
84371
278378
2026-05-27T06:43:17Z
YoshiRulz
10156
Create test
278378
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35705"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35702",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35702",
"Z35702K1": {
"Z1K1": "Z16683",
"Z16683K1": "Z16662",
"Z16683K2": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "-2 is non-zero"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
j17eismd1e68j38r7swrtshzoa265ou
Z35706
0
84372
278380
2026-05-27T06:43:53Z
YoshiRulz
10156
Create implementation
278380
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35706"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35702",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z35693",
"Z35693K1": {
"Z1K1": "Z7",
"Z7K1": "Z17144",
"Z17144K1": {
"Z1K1": "Z18",
"Z18K1": "Z35702K1"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer not zero, abs composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
cdd1kst3h3d65qd6njzxw1wr7rzjop9
Z35707
0
84373
278381
2026-05-27T06:44:26Z
YoshiRulz
10156
Create implementation
278381
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35707"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35702",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z35475",
"Z35475K1": {
"Z1K1": "Z18",
"Z18K1": "Z35702K1"
},
"Z35475K2": {
"Z1K1": "Z16683",
"Z16683K1": "Z16661",
"Z16683K2": {
"Z1K1": "Z13518",
"Z13518K1": "0"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer not zero, inequality composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
d3ar2rusli5cuy91m6ujz7g963giy03
Z35708
0
84374
278383
2026-05-27T06:46:43Z
YoshiRulz
10156
Create implementation
278383
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35708"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35702",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z16750",
"Z16750K1": {
"Z1K1": "Z7",
"Z7K1": "Z17105",
"Z17105K1": {
"Z1K1": "Z18",
"Z18K1": "Z35702K1"
}
},
"Z16750K2": "Z16661"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer not zero, neutral sign composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
pdidnopbamnktdoq7698pj5jq9g88gw
Z35709
0
84375
278386
2026-05-27T06:48:48Z
YoshiRulz
10156
Create function
278386
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35709"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z16683",
"Z17K2": "Z35709K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35709"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer non-positive?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Integer negative or zero",
"Integer ≤ 0",
"Integer is not positive"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fiva7crazfysf9sqcc676emr6n2hnc2
278391
278386
2026-05-27T06:51:01Z
YoshiRulz
10156
Added Z35710, Z35711 and Z35712 to the approved list of test cases
278391
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35709"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z16683",
"Z17K2": "Z35709K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35710",
"Z35711",
"Z35712"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35709"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer non-positive?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Integer negative or zero",
"Integer ≤ 0",
"Integer is not positive"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7ffaogshcyci3szmg1urc5t946zdnz9
278394
278391
2026-05-27T06:52:31Z
YoshiRulz
10156
Added Z35713 to the approved list of implementations
278394
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35709"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z16683",
"Z17K2": "Z35709K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35710",
"Z35711",
"Z35712"
],
"Z8K4": [
"Z14",
"Z35713"
],
"Z8K5": "Z35709"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer non-positive?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Integer negative or zero",
"Integer ≤ 0",
"Integer is not positive"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
icods1truue7gmqr0obr1cllsx3dm7k
278405
278394
2026-05-27T07:07:01Z
YoshiRulz
10156
Added Z35720 to the approved list of implementations
278405
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35709"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z16683",
"Z17K2": "Z35709K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35710",
"Z35711",
"Z35712"
],
"Z8K4": [
"Z14",
"Z35713",
"Z35720"
],
"Z8K5": "Z35709"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer non-positive?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Integer negative or zero",
"Integer ≤ 0",
"Integer is not positive"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ld831jrbqpbotga4rk2es5d3r8iousk
Z35710
0
84376
278388
2026-05-27T06:50:39Z
YoshiRulz
10156
Create test
278388
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35710"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35709",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35709",
"Z35709K1": {
"Z1K1": "Z16683",
"Z16683K1": "Z16661",
"Z16683K2": {
"Z1K1": "Z13518",
"Z13518K1": "0"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "0 is non-positive"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
5g645tt07er9hpnisq9r2qnuu1v06rh
Z35711
0
84377
278389
2026-05-27T06:50:43Z
YoshiRulz
10156
Create test
278389
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35711"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35709",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35709",
"Z35709K1": {
"Z1K1": "Z16683",
"Z16683K1": "Z16660",
"Z16683K2": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "+2 isn't non-positive"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
9sh4ae4cvrve7iu3fxcro1hz3pgnw4o
Z35712
0
84378
278390
2026-05-27T06:50:48Z
YoshiRulz
10156
Create test
278390
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35712"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35709",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35709",
"Z35709K1": {
"Z1K1": "Z16683",
"Z16683K1": "Z16662",
"Z16683K2": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "-2 is non-positive"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
f59hlxauwhbmr10nupp41s9yrc5uwbw
Z35713
0
84379
278393
2026-05-27T06:52:20Z
YoshiRulz
10156
Create implementation
278393
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35713"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35709",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z16768",
"Z16768K1": {
"Z1K1": "Z7",
"Z7K1": "Z17105",
"Z17105K1": {
"Z1K1": "Z18",
"Z18K1": "Z35709K1"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer non-positive, via-sign composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
5apiom75ud3hynuyb257ljq0f5wjts5
Z35714
0
84380
278395
2026-05-27T07:03:47Z
YoshiRulz
10156
Create function
278395
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35714"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35714K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35714"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Rational number non-positive?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Rational negative or zero",
"Rational ≤ 0",
"Rational is not positive"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
quuo3q3w34u7i226gy4e67gyvgt2ukl
278399
278395
2026-05-27T07:05:03Z
YoshiRulz
10156
Added Z35715, Z35716 and Z35717 to the approved list of test cases
278399
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35714"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35714K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35715",
"Z35716",
"Z35717"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35714"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Rational number non-positive?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Rational negative or zero",
"Rational ≤ 0",
"Rational is not positive"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
4focdpu16jtxr6rzel87n9d8fadvh31
278401
278399
2026-05-27T07:05:49Z
YoshiRulz
10156
Added Z35718 to the approved list of implementations
278401
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35714"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35714K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35715",
"Z35716",
"Z35717"
],
"Z8K4": [
"Z14",
"Z35718"
],
"Z8K5": "Z35714"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Rational number non-positive?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Rational negative or zero",
"Rational ≤ 0",
"Rational is not positive"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
mzvlasddimtaa5qo657mmct8afog7d7
278404
278401
2026-05-27T07:07:00Z
YoshiRulz
10156
Added Z35719 to the approved list of implementations
278404
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35714"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35714K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35715",
"Z35716",
"Z35717"
],
"Z8K4": [
"Z14",
"Z35718",
"Z35719"
],
"Z8K5": "Z35714"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Rational number non-positive?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"is Rational negative or zero",
"Rational ≤ 0",
"Rational is not positive"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
f67kuxpyqqdevsiwphj7yz7ut52u0wt
Z35715
0
84381
278396
2026-05-27T07:04:43Z
YoshiRulz
10156
Create test
278396
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35715"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35714",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35714",
"Z35714K1": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16661"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "0"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "1"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "0/1 is non-positive"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
aogus9w84fravigbk6pttchn2zmnfrc
Z35716
0
84382
278397
2026-05-27T07:04:46Z
YoshiRulz
10156
Create test
278397
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35716"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35714",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35714",
"Z35714K1": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16660"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "22"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "7"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "22/7 isn't non-positive"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fx46o7phhqwkm2qjkdpoblq4w2z4gk8
Z35717
0
84383
278398
2026-05-27T07:04:50Z
YoshiRulz
10156
Create test
278398
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35717"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35714",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35714",
"Z35714K1": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16662"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "1"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "23"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "-1/23 is non-positive"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
76icc3km04hwugcp922rrtg5pmg2bs6
Z35718
0
84384
278400
2026-05-27T07:05:34Z
YoshiRulz
10156
Create implementation
278400
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35718"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35714",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z16768",
"Z16768K1": {
"Z1K1": "Z7",
"Z7K1": "Z19717",
"Z19717K1": {
"Z1K1": "Z18",
"Z18K1": "Z35714K1"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Rational non-positive, via-sign composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
slw2ril5ph33ck813snd92hv3rhorne
Z35719
0
84385
278402
2026-05-27T07:06:48Z
YoshiRulz
10156
Create implementation
278402
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35719"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35714",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z19754",
"Z19754K1": {
"Z1K1": "Z18",
"Z18K1": "Z35714K1"
},
"Z19754K2": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16661"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "0"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "1"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Rational number non-positive, leq composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
omqlt1im720kfgmk1f0qsh2d6wvgfyc
Z35720
0
84386
278403
2026-05-27T07:06:51Z
YoshiRulz
10156
Create implementation
278403
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35720"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35709",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z17363",
"Z17363K1": {
"Z1K1": "Z18",
"Z18K1": "Z35709K1"
},
"Z17363K2": {
"Z1K1": "Z16683",
"Z16683K1": "Z16661",
"Z16683K2": {
"Z1K1": "Z13518",
"Z13518K1": "0"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is Integer non-positive, less or equal composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
iobhgnrtxet21jv8wp2vev72k6qptui
Z35721
0
84387
278406
2026-05-27T07:08:12Z
YoshiRulz
10156
Create function
278406
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35721"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35721K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35721K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second"
}
]
}
}
],
"Z8K2": "Z16659",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35721"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Sign of difference of Rational numbers"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
l18937aj0w6vwz0ebusf4vsq20mqnqo
278409
278406
2026-05-27T07:09:55Z
YoshiRulz
10156
Added Z35723 to the approved list of implementations
278409
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35721"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35721K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35721K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second"
}
]
}
}
],
"Z8K2": "Z16659",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z35723"
],
"Z8K5": "Z35721"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Sign of difference of Rational numbers"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ojtqd2ig1xbd7tllwmfl38j7fielu0v
278413
278409
2026-05-27T07:13:04Z
YoshiRulz
10156
Added Z35724, Z35725 and Z35726 to the approved list of test cases
278413
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35721"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35721K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35721K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second"
}
]
}
}
],
"Z8K2": "Z16659",
"Z8K3": [
"Z20",
"Z35724",
"Z35725",
"Z35726"
],
"Z8K4": [
"Z14",
"Z35723"
],
"Z8K5": "Z35721"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Sign of difference of Rational numbers"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
bmdij2j4pitpex24z08be88fepfsku7
Z35722
0
84388
278407
2026-05-27T07:09:21Z
Taqi1109
10003
Create new test: "alamat" (address) → "علامت"
278407
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35722"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z31670",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z31670",
"Z31670K1": "alamat"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "علامت"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "\"alamat\" (address) → \"علامت\""
},
{
"Z1K1": "Z11",
"Z11K1": "Z1531",
"Z11K2": " \"alamat\" → \"علامت\""
},
{
"Z1K1": "Z11",
"Z11K1": "Z1434",
"Z11K2": " \"alamat\" → \"علامت\""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"alamat",
"علامت"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1531",
"Z31K2": [
"Z6",
"alamat",
"علامت"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1434",
"Z31K2": [
"Z6",
"alamat",
"علامت"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
pnjkw0p3fyohtym15gkqgz2bthi4h0m
Z35723
0
84389
278408
2026-05-27T07:09:35Z
YoshiRulz
10156
Create implementation
278408
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35723"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35721",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z19717",
"Z19717K1": {
"Z1K1": "Z7",
"Z7K1": "Z19699",
"Z19699K1": {
"Z1K1": "Z18",
"Z18K1": "Z35721K1"
},
"Z19699K2": {
"Z1K1": "Z18",
"Z18K1": "Z35721K2"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Sign of difference of Rationals, composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
aki92fgeh4dktbi4yr5kimeczy8lao8
Z35724
0
84390
278410
2026-05-27T07:11:04Z
YoshiRulz
10156
Create test
278410
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35724"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35721",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35721",
"Z35721K1": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16660"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "22"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "7"
}
},
"Z35721K2": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16660"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "3"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "1"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z16667",
"Z16667K2": "Z16660"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(22/7).compareTo(3/1) = +"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
46bkwisf2i78w7ax0ip10hqedgo6kwy
Z35725
0
84391
278411
2026-05-27T07:12:21Z
YoshiRulz
10156
Create test
278411
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35725"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35721",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35721",
"Z35721K1": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16662"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "9"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
},
"Z35721K2": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16661"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "0"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "1"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z16667",
"Z16667K2": "Z16662"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(-9/2).compareTo(0) = -"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ofymzsge8syldko0gkxcu0tmx26y76c
Z35726
0
84392
278412
2026-05-27T07:12:55Z
YoshiRulz
10156
Create test
278412
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35726"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35721",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35721",
"Z35721K1": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16660"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "10"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
},
"Z35721K2": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16660"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "5"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "1"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z16667",
"Z16667K2": "Z16661"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(10/2).compareTo(5/1) = 0"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
sz1iflsmmdd8qfuipy7tgvj1bx7efae
Z35727
0
84393
278414
2026-05-27T07:16:25Z
YoshiRulz
10156
Create function
278414
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35727"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35727K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35727K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35727"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "are Rational numbers different?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"Rational number inequality",
"unequal Rational numbers",
"are Rational numbers not equal?",
"are Rational numbers not equivalent?",
"Rational ≠ other"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
evwti0mkcua1dxmouhyf23qcyr6ivhw
278416
278414
2026-05-27T07:18:20Z
YoshiRulz
10156
Added Z35728 to the approved list of implementations
278416
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35727"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35727K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35727K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z35728"
],
"Z8K5": "Z35727"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "are Rational numbers different?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"Rational number inequality",
"unequal Rational numbers",
"are Rational numbers not equal?",
"are Rational numbers not equivalent?",
"Rational ≠ other"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
sx60vooiefr2i466e3nd1evz6yua8ut
278420
278416
2026-05-27T07:19:40Z
YoshiRulz
10156
Added Z35729, Z35730 and Z35731 to the approved list of test cases
278420
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35727"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35727K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z19677",
"Z17K2": "Z35727K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35729",
"Z35730",
"Z35731"
],
"Z8K4": [
"Z14",
"Z35728"
],
"Z8K5": "Z35727"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "are Rational numbers different?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"Rational number inequality",
"unequal Rational numbers",
"are Rational numbers not equal?",
"are Rational numbers not equivalent?",
"Rational ≠ other"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
l85kpqs301ajpgrzentizhzlutfi127
Z35728
0
84394
278415
2026-05-27T07:18:07Z
YoshiRulz
10156
Create implementation
278415
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35728"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35727",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z10216",
"Z10216K1": {
"Z1K1": "Z7",
"Z7K1": "Z19686",
"Z19686K1": {
"Z1K1": "Z18",
"Z18K1": "Z35727K1"
},
"Z19686K2": {
"Z1K1": "Z18",
"Z18K1": "Z35727K2"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "are Rationals different, not equiv. composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lj8pe8923d17jj9i7w0bnafgrdrd6py
Z35729
0
84395
278417
2026-05-27T07:19:25Z
YoshiRulz
10156
Create test
278417
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35729"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35727",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35727",
"Z35727K1": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16662"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "1"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
},
"Z35727K2": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16660"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "1"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(-1/2, 1/2) -\u003E T"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
qi28i41bo44qavdo9i50snkme3xgyeg
Z35730
0
84396
278418
2026-05-27T07:19:27Z
YoshiRulz
10156
Create test
278418
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35730"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35727",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35727",
"Z35727K1": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16662"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "1"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
},
"Z35727K2": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16662"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "1"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(-1/2, -1/2) -\u003E F"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
bjrwf4m950dnagn7aezeman4gp3zbpq
Z35731
0
84397
278419
2026-05-27T07:19:29Z
YoshiRulz
10156
Create test
278419
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35731"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35727",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35727",
"Z35727K1": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16662"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "1"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "2"
}
},
"Z35727K2": {
"Z1K1": "Z19677",
"Z19677K1": {
"Z1K1": "Z16659",
"Z16659K1": "Z16662"
},
"Z19677K2": {
"Z1K1": "Z13518",
"Z13518K1": "2"
},
"Z19677K3": {
"Z1K1": "Z13518",
"Z13518K1": "4"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(-1/2, -2/4) -\u003E F"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
m8th7sun1m5fvhfdrvni2yf0v634enq
Z35732
0
84398
278422
2026-05-27T07:22:58Z
YoshiRulz
10156
Create function
278422
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35732"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z89",
"Z17K2": "Z35732K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z89",
"Z17K2": "Z35732K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35732"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "are HTML fragments different?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"HTML fragment inequality",
"unequal HTML fragments",
"are HTML fragments not equal",
"HTML fragment ≠ other"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
j4fgze78p8dw7klvuv3q7d4vijlu9nb
278426
278422
2026-05-27T07:26:09Z
YoshiRulz
10156
Added Z35733, Z35734 and Z35735 to the approved list of test cases
278426
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35732"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z89",
"Z17K2": "Z35732K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z89",
"Z17K2": "Z35732K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35733",
"Z35734",
"Z35735"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35732"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "are HTML fragments different?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"HTML fragment inequality",
"unequal HTML fragments",
"are HTML fragments not equal",
"HTML fragment ≠ other"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
9enpwkck1pitmllkyfaycl9gv1c2rys
278428
278426
2026-05-27T07:27:53Z
YoshiRulz
10156
Added Z35736 to the approved list of implementations
278428
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35732"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z89",
"Z17K2": "Z35732K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z89",
"Z17K2": "Z35732K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z35733",
"Z35734",
"Z35735"
],
"Z8K4": [
"Z14",
"Z35736"
],
"Z8K5": "Z35732"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "are HTML fragments different?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"HTML fragment inequality",
"unequal HTML fragments",
"are HTML fragments not equal",
"HTML fragment ≠ other"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
sufn35c102p5jj5iu5q26nyqt890eqy
Z35733
0
84399
278423
2026-05-27T07:25:04Z
YoshiRulz
10156
Create test
278423
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35733"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35732",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35732",
"Z35732K1": {
"Z1K1": "Z89",
"Z89K1": "\u003Cspan\u003Etext\u003C/span\u003E"
},
"Z35732K2": {
"Z1K1": "Z89",
"Z89K1": "\u003Cdiv\u003Etext\u003C/div\u003E"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(\u003Cspan\u003Etext\u003C/span\u003E, \u003Cdiv\u003Etext\u003C/div\u003E) -\u003E T"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
sqf2ik4100si6ylv04lnajr5px24cf6
Z35734
0
84400
278424
2026-05-27T07:25:09Z
YoshiRulz
10156
Create test
278424
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35734"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35732",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35732",
"Z35732K1": {
"Z1K1": "Z89",
"Z89K1": "\u003Cspan\u003Etext\u003C/span\u003E"
},
"Z35732K2": {
"Z1K1": "Z89",
"Z89K1": "\u003Cspan\u003Etext\u003C/span\u003E"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(\u003Cspan\u003Etext\u003C/span\u003E, \u003Cspan\u003Etext\u003C/span\u003E) -\u003E F"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
33b687i4lyyw0p1uv9jkx1x5bxu18xd
Z35735
0
84401
278425
2026-05-27T07:25:48Z
YoshiRulz
10156
Create test
278425
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35735"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35732",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35732",
"Z35732K1": {
"Z1K1": "Z89",
"Z89K1": "\u003Cspan\u003Etext\u003C/span\u003E"
},
"Z35732K2": {
"Z1K1": "Z89",
"Z89K1": "\u003CSPAN\u003Etext\u003C/SPAN\u003E"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(\u003Cspan\u003Etext\u003C/span\u003E, \u003CSPAN\u003Etext\u003C/SPAN\u003E) -\u003E T"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
dq83lwviqzjknaspr832w2a336u3lo7
Z35736
0
84402
278427
2026-05-27T07:27:41Z
YoshiRulz
10156
Create implementation
278427
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35736"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35732",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z10216",
"Z10216K1": {
"Z1K1": "Z7",
"Z7K1": "Z877",
"Z877K1": {
"Z1K1": "Z18",
"Z18K1": "Z35732K1"
},
"Z877K2": {
"Z1K1": "Z18",
"Z18K1": "Z35732K2"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "are HTML fragments different, not eq. composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
m75slnsx1k3hchfeo5d22lmdoo118vm
Z35737
0
84403
278429
2026-05-27T07:29:03Z
YoshiRulz
10156
Create function
278429
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35737"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z89",
"Z17K2": "Z35737K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "fragment"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35737"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is HTML fragment empty?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
80mpzitdssigo316v2120x6phk37v0k
278432
278429
2026-05-27T07:31:17Z
YoshiRulz
10156
Added Z35738 and Z35739 to the approved list of implementations
278432
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35737"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z89",
"Z17K2": "Z35737K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "fragment"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z35738",
"Z35739"
],
"Z8K5": "Z35737"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is HTML fragment empty?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
qn92o71nrhw95qpdvz8vcas20ekpue9
Z35738
0
84404
278430
2026-05-27T07:30:10Z
YoshiRulz
10156
Create implementation
278430
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35738"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35737",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z877",
"Z877K1": {
"Z1K1": "Z18",
"Z18K1": "Z35737K1"
},
"Z877K2": "Z32729"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is HTML fragment empty, equality composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
3vxx8adonaqcjme4s6luidy9c0xyofq
Z35739
0
84405
278431
2026-05-27T07:31:05Z
YoshiRulz
10156
Create implementation
278431
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35739"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35737",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z10008",
"Z10008K1": {
"Z1K1": "Z7",
"Z7K1": "Z27854",
"Z27854K1": {
"Z1K1": "Z18",
"Z18K1": "Z35737K1"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is HTML fragment empty, via-string composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
b6ninbmzqcypyt95spg1jmz5fusbdmg
Z35740
0
84406
278433
2026-05-27T07:35:38Z
YoshiRulz
10156
Create function
278433
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35740"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z89",
"Z17K2": "Z35740K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "fragment"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35740"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is HTML fragment not empty?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ophhy36vvq5lcknrotah0fkg922qvw3
278436
278433
2026-05-27T07:37:54Z
YoshiRulz
10156
Added Z35741 and Z35742 to the approved list of implementations
278436
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35740"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z89",
"Z17K2": "Z35740K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "fragment"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z35741",
"Z35742"
],
"Z8K5": "Z35740"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is HTML fragment not empty?"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8mtx12yvqukx1ph9buf85sra3mxnjbu
Z35741
0
84407
278434
2026-05-27T07:36:43Z
YoshiRulz
10156
Create implementation
278434
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35741"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35740",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z35732",
"Z35732K1": {
"Z1K1": "Z18",
"Z18K1": "Z35740K1"
},
"Z35732K2": "Z32729"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is HTML fragment not empty, inequality composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ggtje4aqkxikw2e0i8e2bm0qzfo33nk
Z35742
0
84408
278435
2026-05-27T07:37:17Z
YoshiRulz
10156
Create implementation
278435
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35742"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35740",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z24331",
"Z24331K1": {
"Z1K1": "Z7",
"Z7K1": "Z27854",
"Z27854K1": {
"Z1K1": "Z18",
"Z18K1": "Z35740K1"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "is HTML fragment not empty, via-string composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
gtre5xu5jzcppaafjwymer588shfc18
Z35743
0
84409
278438
2026-05-27T07:52:51Z
YoshiRulz
10156
Create function
278438
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35743"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z35743K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "LFID"
}
]
}
}
],
"Z8K2": "Z6094",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35743"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata lexeme form reference from LFID String"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ek2xr22vwpgpcc3ctkxepuyega6erlm
278440
278438
2026-05-27T07:54:21Z
YoshiRulz
10156
Added Z35744 to the approved list of implementations
278440
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35743"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z35743K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "LFID"
}
]
}
}
],
"Z8K2": "Z6094",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z35744"
],
"Z8K5": "Z35743"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata lexeme form reference from LFID String"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
io64rtbf0yvrsflfapu3aprlq6ydacn
Z35744
0
84410
278439
2026-05-27T07:54:04Z
YoshiRulz
10156
Create implementation
278439
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35744"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35743",
"Z14K2": {
"Z1K1": "Z6094",
"Z6094K1": {
"Z1K1": "Z18",
"Z18K1": "Z35743K1"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Form reference from LFID String, composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
knlm9cnkpsds8pzxv4146aesnixmyxn
Z35745
0
84411
278441
2026-05-27T07:55:26Z
YoshiRulz
10156
Create function
278441
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35745"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6094",
"Z17K2": "Z35745K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Form reference"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35745"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata lexeme form reference to String"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rlhpsfck17gpw6g9f2c62z3plvbv118
278443
278441
2026-05-27T07:57:29Z
YoshiRulz
10156
Added Z35746 to the approved list of implementations
278443
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35745"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6094",
"Z17K2": "Z35745K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Form reference"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z35746"
],
"Z8K5": "Z35745"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata lexeme form reference to String"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
3ouylkhu0moheja4pgh1d0gdlhx7vnh
Z35746
0
84412
278442
2026-05-27T07:57:03Z
YoshiRulz
10156
Create implementation
278442
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35746"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35745",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z803",
"Z803K1": {
"Z1K1": "Z39",
"Z39K1": "Z6094K1"
},
"Z803K2": {
"Z1K1": "Z18",
"Z18K1": "Z35745K1"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Form reference to String, composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
bru62j38m2jmzlchufc63np4q51nllt
Z35747
0
84413
278445
2026-05-27T08:07:53Z
YoshiRulz
10156
Create function
278445
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35747"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z35747K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6"
},
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z35747"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "extract aliases from Natural language object"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
53p6tw7nozyilif5x0ei19h22pb600j
278447
278445
2026-05-27T08:09:56Z
YoshiRulz
10156
Added Z35748 to the approved list of implementations
278447
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35747"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z35747K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6"
},
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z35748"
],
"Z8K5": "Z35747"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "extract aliases from Natural language object"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
brh266iyzjrb05by3fxjjyjpcdkatz0
278450
278447
2026-05-27T08:11:11Z
YoshiRulz
10156
Added Z35749 to the approved list of test cases
278450
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35747"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z35747K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6"
},
"Z8K3": [
"Z20",
"Z35749"
],
"Z8K4": [
"Z14",
"Z35748"
],
"Z8K5": "Z35747"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "extract aliases from Natural language object"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
62yt0n20q7wgcnohtnh9czdaq0kh9zc
Z35748
0
84414
278446
2026-05-27T08:08:51Z
YoshiRulz
10156
Create implementation
278446
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35748"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z35747",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z803",
"Z803K1": {
"Z1K1": "Z39",
"Z39K1": "Z60K2"
},
"Z803K2": {
"Z1K1": "Z18",
"Z18K1": "Z35747K1"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "extract aliases from Natural language, composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
r86shs9aoeyct5v3k7hbibyrq274ed5
Z35749
0
84415
278449
2026-05-27T08:10:56Z
YoshiRulz
10156
Create test
278449
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z35749"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z35747",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z35747",
"Z35747K1": "Z1039"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z889",
"Z889K2": [
"Z6",
"swh"
],
"Z889K3": "Z866"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Z1039 -\u003E [ \"swh\" ]"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fz5dqu8qki3i6dk7jupzc4w9o18cnra