The on-wiki version of this newsletter can be found here: https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2025-09-12 ---- More than 3,000 functions on Wikifunctions
Since last week, thanks to the diligent work of the volunteer contributors, we now have more than 3,000 functions available on Wikifunctions! We want to congratulate the community on this milestone. That is about *four new functions every single day* since WIkifunctions has been launched.
Thank you!
In order to mark this occasion, we have identified the 3000th Function and look at it as the Function of the Week section below. (It is a little bit vague on how to choose the 3000th Function. At time of writing, we sorted all still existing functions by time of creation, and took the 3000th entry on that list. Note that this may lead to a different result in the future if older Functions get deleted).
I can tell you that there is a lot to talk about with this function! But see below. A Path to a World Where Everyone Can Share in the Sum of All Knowledge
Veronica Thamaini https://meta.wikimedia.org/wiki/User:VThamaini%20(WMF) and Denny Vrandečić https://www.wikifunctions.org/wiki/User:DVrandecic_(WMF) published a short perspective for the MacArthur Foundation, discussing the Abstract Wikipedia proposal, one of five finalists for MacArthur’s ongoing 100&Change program https://www.100andchange.org/.
You can read the text here: A Path to a World Where Everyone Can Share in the Sum of All Knowledge https://www.macfound.org/press/perspectives/a-path-to-a-world-where-everyone-can-share-in-the-sum-of-all-knowledge Cory presenting at the CEE 2025 meeting
The Wikimedia CEE Meeting https://meta.wikimedia.org/wiki/Wikimedia%20CEE%20Meeting%202025 will be held in Thessaloniki, Greece, 26-28 September, organized by Wikimedia UG Greece. Our own Cory Massaro https://www.wikifunctions.org/wiki/User:CMassaro_(WMF) will hold a presentation on Wikifunctions and Abstract Wikipedia there. He will discuss the kinds of natural language content that can currently be generated with Wikifunctions, then give a brief exploration of existing functions that work in multiple languages. Recent Changes in the software
This week, most of our landed work has been addressing issues found in usability testing (T397411 https://phabricator.wikimedia.org/T397411).
We have extended the Function search system to split user inputs if they contain spaces, so searching for 'fish count' will find 'counts of fishing' and 'levels of fish' and 'fishing' and 'counting' which would have been hidden before; previously we used the whole term only (T400268 https://phabricator.wikimedia.org/T400268). We also clarified the message shown when there are no results, which might prompt people to try a different term. We know that this will not work for languages that do not use spaces or where users don't know what term to use, but we hope that this will help users in more cases to find Functions with different names to what they type in, and we're keen to re-test the experience (T395477 https://phabricator.wikimedia.org/T395477).
When you add or edit a function call, the dialog checks your inputs for validity. We have changed how often it does this, rather than waiting for you to click out of the field, which should give feedback faster and let you click the "Insert" button more swiftly (T395476 https://phabricator.wikimedia.org/T395476). We have changed the design for the search dialog in the visual editor integration to be more prominent, so that suggested functions and search results look more different (T395474 https://phabricator.wikimedia.org/T395474).
We believe that we have fixed a user-facing bug that meant the "details" link in some cases would not work but instead silently crash, if the result was 'wrong' but no error was given (T403834 https://phabricator.wikimedia.org/T403834). We re-wrote and so improved the speed of the database query when fetching labels based on the user's requested languages, hopefully making the interface much snappier and less load on the databases when doing this step.
We fixed some of our internal tests that broke when MediaWiki's fall-back language for Asturian switched from Spanish to English (T292750 https://phabricator.wikimedia.org/T292750). We have tweaked the definition of some of our APIs so that they don't error when the help descriptions are generated on client wikis (T403151 https://phabricator.wikimedia.org/T403151). We added some logging to track down a noisy error related to incomplete data (T402670 https://phabricator.wikimedia.org/T402670). We switched the test version of Codex to v2.3.1 to match MediaWiki's (T403722 https://phabricator.wikimedia.org/T403722). Next round of Wiktionaries to receive embedded Wikifunctions calls
Next week, we plan to deploy the ability to embed calls to Wikifunctions to another set of Wiktionaries. We currently plan to deploy to the following 60 languages: Kannada, Lithuanian, Telugu, Ido, Norwegian (Bokmal and Nynorsk), Malay, Arabic, Burmese, Khmer, Afrikaans, Azerbaijani, Esperanto, Estonian, Limburgish, Danish, Croatian, Sanskrit, Breton, Slovak, Albanian, Swahili, Mon, Georgian, Latin, Occitan, Slovenian, Basque, Tagalog, Kyrgiz, Javanese, Sango, Lao, Min Nan, Sicilian, Urdu, Sinhala, Irish, Kazakh, Luxembourgish, Low German, Latvian, Western Frisian, Lombard, Welsh, Saraiki, Oriya, Pashto, Pa’O, Nepali, Bosnian, Fijian, Marathi, Nauru, Tatar, Oromu, and Kabardian.
They will join the 64 Wiktionary language editions that already have access to embedded Wikifunctions calls. Later this year, we plan to expand to further Wiktionaries. News in Types: Grammatical number (singular / dual / plural) and Chemical elements
In some languages, there isn’t just a singular and a plural – there’s also a dual https://en.wikipedia.org/wiki/Dual%20(grammatical%20number), a specific form only used when there are exactly two items. Based on the proposal by Dv103 https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Grammatical_number_(singular/dual/plural), we have no created a lightweight enumeration: Grammatical number (singular / dual / plural) (Z28215) https://www.wikifunctions.org/wiki/Z28215
We are looking forward to creating more of the requested lightweight types, but I’d like to see more people voting, reviewing, and discussing them. I think just one vote in addition to the proposer isn’t really enough. Please join the proposal discussions https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals.
The situation around the chemical elements (Chemical element (Z27951) https://www.wikifunctions.org/wiki/Z27951) type has improved, and they seem to work in most functions, but their display is still showing QIDs instead of labels (T404353 https://phabricator.wikimedia.org/T404353). Until this is resolved, I am keeping that type in the “In progress” category. Upcoming NLG SIG meeting on 23 September[edit source https://www.wikifunctions.org/w/index.php?title=Wikifunctions%3AStatus_updates%2F2025-09-12§ion=7&veaction=editsource ]
The next NLG SIG Meeting https://www.wikifunctions.org/wiki/Wikifunctions:NLG_SIG#Upcoming_meeting was planned next Tuesday. Due to some conflicting meetings we are moving the meeting by one week, to Tuesday, 23 September, 16:00-17:00 UTC. Denny Vrandečić will be presenting on abstract representation. Function of the Week: name for table header (Z27885)
Name for table header https://www.wikifunctions.org/wiki/Z27885 is a Function that takes a Wikidata item reference https://www.wikifunctions.org/wiki/Z6091 and a language https://www.wikifunctions.org/wiki/Z60, and returns a text representing that Wikidata item in the given language. This is specifically for using it in tables.
The interesting part is how clever the function is in order to get a good name for an item – and certainly something that can be reused or built upon:
First, it looks for a Lexeme that is connected to the item. If there is none, it takes the Label of the Item, also going through a fallback chain https://www.wikifunctions.org/wiki/Z27899. If there are Lexemes, it takes the best Lexeme for the given Item https://www.wikifunctions.org/wiki/Z27327 and then picks the representation string that is better matching https://www.wikifunctions.org/wiki/Z27327 against a set of grammatical features: singular, singulative, nominative, no mutation.
These are three quite complex Functions working together, with the goal to get a good representation for a given Item and increase coverage. Each of these Functions would be worthwhile to dive into and understand. This also reminds me of Mahir Morshed’s talk in March on finding lexemes for concepts https://elemwala.toolforge.org/static/nlgsig-18march.html, where he explores many more paths to finding the right Lexeme.
This is a fascinating and useful Function. Recording of September Volunteers’ Corner
This week, our Volunteers’ Corner stumbled over some service outages by Google Meet. Quite a few people who wanted to join, couldn’t, and others had issues with audio or video. We still had a corner, although with a number of improvisations. The recording of the September’s Volunteers’ Corner is, as always, available on Wikimedia Commons https://commons.wikimedia.org/wiki/File:Abstract_Wikipedia_Volunteer_Corner_2025-09.webm . Fresh Functions weekly: 27 new Functions
This week we had 27 new functions. Here is an incomplete list of functions with implementations and passing tests to get a taste of what functions have been created. Thanks everybody for contributing!
- quantities have identical units (Z27979) https://www.wikifunctions.org/wiki/Z27979 - UTC time of sunset for coordinates on date (Z27999) https://www.wikifunctions.org/wiki/Z27999 - UTC time of sunset for Wikidata location on date (Z28005) https://www.wikifunctions.org/wiki/Z28005 - sum of finite zero-centred power series (Z28009) https://www.wikifunctions.org/wiki/Z28009 - defining role sentence in German (Z28018) https://www.wikifunctions.org/wiki/Z28018 - default defining role sentence (Z28019) https://www.wikifunctions.org/wiki/Z28019 - defining role sentence in English (Z28026) https://www.wikifunctions.org/wiki/Z28026
A complete list of all functions sorted by when they were created https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&orderby=latest is available.