The on-wiki version of this newsletter can be found here: https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2026-04-02 ---- Request for Discussion: Towards a more modular NLG
One drawback of the current approach towards NLG is that it is very tightly coupled between the conceptual "thing" you want to say and the choice of a single Function to serve that need. It could benefit from more modularity, to support some languages better and reduce the challenge of using them. Since the launch of Abstract Wikipedia, there have been so many discussions coming up that it is difficult to keep track of all and join them all, but one thing I noticed is how to create functions that allow to create grammatically correct sentences and at the same time allow for the kind of annotation and formatting we are used from Wikipedia articles, e.g. emphasis, links, etc.
I made a proposal last year, which received a fair amount of criticism. In the light of the use cases and requirements we are noticing right now, I have improved and significantly simplified the proposal. But there doesn’t seem to be an answer yet: we want to present this as a contribution to the on-going discussion and to open it for finding answers together. The proposal is currently here: Syntactic tables https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposal/Syntactic_table . Functions suggested by Abstract Wikipedia
The Abstract Wikipedia community has created a page to collect suggestions https://abstract.wikipedia.org/wiki/Abstract_Wikipedia:Suggested_functions from the Abstract Wikipedia community to the Wikifunctions community for what would particularly help them. We are hoping for a fruitful cooperation! Recent Changes in the software
This week, we implemented a new caching system to address an ongoing issue where results differed between the two Wikimedia datacenters. This should mostly resolve the user-facing inconsistencies, though more work is needed to ensure the system scales. We deployed this early, on Monday morning, to test its impact in isolation (T419666 https://phabricator.wikimedia.org/T419666).
We also addressed a number of bugs: Wikifunctions special pages now correctly show a message when ZObject creation is not enabled, such as on Abstract Wikipedia (T421148 https://phabricator.wikimedia.org/T421148). We fixed an issue so that clicking on Wikifunctions objects from Abstract Wikipedia now correctly opens them on Wikifunctions (T420670 https://phabricator.wikimedia.org/T420670). A problem in the article creation workflow has also been addressed; attempting to create an abstract article for a Wikidata item that already has a page no longer overwrites existing content, now users see an appropriate message and are redirected to the existing article (T420725 https://phabricator.wikimedia.org/T420725). In addition, previews now properly set content language and direction, improving alignment and readability, especially for RTL languages (T420687 https://phabricator.wikimedia.org/T420687). Finally, we fixed a bug where we mis-set the page context, so publishing a new abstract article from some links would always fail (T420916 https://phabricator.wikimedia.org/T420916 ). News in Types: Grammatical voices
Based on two proposals by Dv103 https://www.wikifunctions.org/wiki/User:Dv103 for Grammatical voices https://en.wikipedia.org/wiki/Voice%20(grammar), a proposal for active / middle / passive https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Grammatical_voice_(a/m/p), and a proposal for active / mediopassive https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Grammatical_voice_(a/mp), the respective two new lightweight enumerations have been created: Grammatical voice (active / mediopassive) (Z32792) https://www.wikifunctions.org/wiki/Z32792 and Grammatical voice (active / middle / passive) (Z32789) https://www.wikifunctions.org/wiki/Z32789. They join the existing Grammatical voice active / passive https://www.wikifunctions.org/wiki/Z28517 lightweight enumeration.
Please join in reviewing, discussing, and creating type proposals https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals. Wikifunctions presentation at WikiCon Australia on 11 April 2026
Toby Hudson https://www.wikifunctions.org/wiki/User:99of9 will be presenting Wikifunctions in Practice: Reusable Logic for Wikimedia https://meta.wikimedia.org/wiki/Event:WikiCon%20Australia%202026/Submissions/Wikifunctions%20in%20Practice:%20Reusable%20Logic%20for%20Wikimedia at WikiCon Australia https://meta.wikimedia.org/wiki/Event:WikiCon%20Australia%202026 on 11 April 2026 at 12:00 local time at the National Film and Sound Archive of Australia https://en.wikipedia.org/wiki/National%20Film%20and%20Sound%20Archive in Canberra https://en.wikipedia.org/wiki/Canberra.
Here is the description of the talk: *Wikifunctions promises something simple but ambitious: write logic once, and make it reusable across Wikimedia projects and languages. Small, well-chosen functions can have outsized impact and eliminate some updating, copy-pasting, or even translation.**This talk focuses on goals and practical usage rather than internals or programming, but will allow plenty of time for questions from the audience to dig into the details. We'll see what Wikifunctions is and what it's for. We will test a range of existing functions on Wikifunctions directly. We will see how to embed the result of a function call in a regular Wiki page elsewhere on a sister project. Then we will look ahead to how Wikifunctions will play a key role in the future Abstract Wikipedia.*
Thank you Toby for giving this presentation! And everyone have fun at WikiCon Australia! Volunteer’s Corner upcoming on 13 April 2026
The next Volunteers’ Corner will be on Monday, 13 April 2026 at 17:30 UTC https://zonestamp.toolforge.org/1776101400. We plan to have the following agenda: there will be time to ask questions and discuss all matters arising. We will celebrate the launch of Abstract Wikipedia Beta. If we have time, we will either write a function together or work on an Abstract Wikipedia article together (volunteer-led). Everyone is welcome to join us on Google Meet https://meet.google.com/xuy-njxh-rkw. Fresh Functions weekly: 102 new Functions
This week we had 102 new functions. This might be the first week where we ever had more than a hundred 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!
- add definite article to Lorrain form (Z32387) https://www.wikifunctions.org/wiki/Z32387 - "<instance> is a <class>" in Lorrain (Z32395) https://www.wikifunctions.org/wiki/Z32395 - X exists in N Ys, English (Z32399) https://www.wikifunctions.org/wiki/Z32399 - Malay second superlative form (paling) (Z32406) https://www.wikifunctions.org/wiki/Z32406 - X has Y, fully specified, English (Z32410) https://www.wikifunctions.org/wiki/Z32410 - English simple present collective sentence (Z32425) https://www.wikifunctions.org/wiki/Z32425 - abstract wikilink (Z32428) https://www.wikifunctions.org/wiki/Z32428 - item has statement with value for property (Z32431) https://www.wikifunctions.org/wiki/Z32431 - Portuguese word is feminine (Z32436) https://www.wikifunctions.org/wiki/Z32436 - State location using entity and class, Japanese (Z32442) https://www.wikifunctions.org/wiki/Z32442 - flatten map function (Z32453) https://www.wikifunctions.org/wiki/Z32453 - find up to n best Wikidata statement values (Z32456) https://www.wikifunctions.org/wiki/Z32456 - English short description for painting (Z32468) https://www.wikifunctions.org/wiki/Z32468 - [name] was born [date] in [place]. (Z32473) https://www.wikifunctions.org/wiki/Z32473 - X has Y, semantic + optional grammar, English (Z32496) https://www.wikifunctions.org/wiki/Z32496 - grammatical features indicate plural (broadly) (Z32506) https://www.wikifunctions.org/wiki/Z32506 - grammatical features indicate definite article, En (Z32516) https://www.wikifunctions.org/wiki/Z32516 - Latin simple present collective sentence (Z32522) https://www.wikifunctions.org/wiki/Z32522 - remove macrons from string (Z32527) https://www.wikifunctions.org/wiki/Z32527 - simple present collective sentence (Z32531) https://www.wikifunctions.org/wiki/Z32531 - Creative work - entity, class, creator, English (Z32536) https://www.wikifunctions.org/wiki/Z32536 - filter statements by property type unless excluded (Z32537) https://www.wikifunctions.org/wiki/Z32537 - [cs] prefix with v/ve (Z32541) https://www.wikifunctions.org/wiki/Z32541 - grammatical features indicate indefinite article (Z32550) https://www.wikifunctions.org/wiki/Z32550 - fallback string if empty or not a string (Z32556) https://www.wikifunctions.org/wiki/Z32556 - load and find one best Wikidata statement value 2 (Z32557) https://www.wikifunctions.org/wiki/Z32557 - number of all statements of a Wikidata item (Z32573) https://www.wikifunctions.org/wiki/Z32573 - number of specific statements of a Wikidata item (Z32577) https://www.wikifunctions.org/wiki/Z32577 - Creative work - entity, class, creator (Z32581) https://www.wikifunctions.org/wiki/Z32581 - group Typed pairs by first element (Z32585) https://www.wikifunctions.org/wiki/Z32585 - Intro for year in Czech (Z32588) https://www.wikifunctions.org/wiki/Z32588 - Find lexemes for a Wikidata item in language group (Z32599) https://www.wikifunctions.org/wiki/Z32599 - plural from wikidata item in language w/ features (Z32606) https://www.wikifunctions.org/wiki/Z32606 - English verb describing noun sentence (Z32621) https://www.wikifunctions.org/wiki/Z32621 - item indicates definite article, English (Z32645) https://www.wikifunctions.org/wiki/Z32645 - item represents a person (Z32663) https://www.wikifunctions.org/wiki/Z32663 - item represents a position indic. "the" in English (Z32668) https://www.wikifunctions.org/wiki/Z32668 - Japanese article-less instantiating sentence (Z32671) https://www.wikifunctions.org/wiki/Z32671 - is Kleenean not True? (Z32673) https://www.wikifunctions.org/wiki/Z32673 - Creative work - entity, class, creator, Japanese (Z32688) https://www.wikifunctions.org/wiki/Z32688 - item is a subclass of item or up to N more levels (Z32691) https://www.wikifunctions.org/wiki/Z32691 - apply a 3-param fn to a list of firsts, same 2&3 (Z32695) https://www.wikifunctions.org/wiki/Z32695 - is Unicode code point a combining mark? (Z32715) https://www.wikifunctions.org/wiki/Z32715 - create wikitable from caption and cell fragments (Z32731) https://www.wikifunctions.org/wiki/Z32731 - State location using entity and class, Dutch (Z32739) https://www.wikifunctions.org/wiki/Z32739 - English item label has equivalent alias with "the" (Z32749) https://www.wikifunctions.org/wiki/Z32749 - list of strings from Monolingual stringset (Z32753) https://www.wikifunctions.org/wiki/Z32753 - monolingual stringset from multilingual & language (Z32756) https://www.wikifunctions.org/wiki/Z32756 - first monolingual stringset in language from list (Z32757) https://www.wikifunctions.org/wiki/Z32757 - identical monolingual stringset (Z32758) https://www.wikifunctions.org/wiki/Z32758 - language of monolingual stringset (Z32766) https://www.wikifunctions.org/wiki/Z32766 - list of strings from multilingual stringset & lang (Z32772) https://www.wikifunctions.org/wiki/Z32772 - Czech cardinal (Z32780) https://www.wikifunctions.org/wiki/Z32780 - try synthesising IPA transcription for Lexeme Form (Z32787) https://www.wikifunctions.org/wiki/Z32787 - IPA transcription from Japanese kana text (Z32793) https://www.wikifunctions.org/wiki/Z32793 - Latin verb describing noun sentence (Z32831) https://www.wikifunctions.org/wiki/Z32831 - plural section title (single QID) (Z32839) https://www.wikifunctions.org/wiki/Z32839 - verb describing noun sentence (Z32843) https://www.wikifunctions.org/wiki/Z32843 - State location using entity and class, Latin (Z32848) https://www.wikifunctions.org/wiki/Z32848 - State location using entity and class, Swedish (Z32855) https://www.wikifunctions.org/wiki/Z32855 - are Functions' input and output types identical? (Z32864) https://www.wikifunctions.org/wiki/Z32864 - Wikidata link for item (Z32878) https://www.wikifunctions.org/wiki/Z32878 - Japanese simple present collective sentence (Z32881) https://www.wikifunctions.org/wiki/Z32881
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.
abstract-wikipedia@lists.wikimedia.org