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.
Functions suggested by Abstract Wikipedia
The Abstract Wikipedia community has created a page to collect suggestions 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).
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). We fixed an issue so that clicking on Wikifunctions objects from Abstract Wikipedia now correctly opens them on Wikifunctions (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). In addition, previews now properly set content language and direction, improving alignment and readability, especially for RTL languages (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).
News in Types: Grammatical voices
Based on two proposals by Dv103 for Grammatical voices, a proposal for active / middle / passive, and a proposal for active / mediopassive, the respective two new lightweight enumerations have been created: Grammatical voice (active / mediopassive) (Z32792) and Grammatical voice (active / middle / passive) (Z32789). They join the existing Grammatical voice active / passive lightweight enumeration.
Please join in reviewing, discussing, and creating type proposals.
Wikifunctions presentation at WikiCon Australia on 11 April 2026
Toby Hudson will be presenting Wikifunctions in Practice: Reusable Logic for Wikimedia at WikiCon Australia on 11 April 2026 at 12:00 local time at the National Film and Sound Archive of Australia in 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. 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.
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)
- "<instance> is a <class>" in Lorrain (Z32395)
- X exists in N Ys, English (Z32399)
- Malay second superlative form (paling) (Z32406)
- X has Y, fully specified, English (Z32410)
- English simple present collective sentence (Z32425)
- abstract wikilink (Z32428)
- item has statement with value for property (Z32431)
- Portuguese word is feminine (Z32436)
- State location using entity and class, Japanese (Z32442)
- flatten map function (Z32453)
- find up to n best Wikidata statement values (Z32456)
- English short description for painting (Z32468)
- [name] was born [date] in [place], English (Z32473)
- X has Y, semantic + optional grammar, English (Z32496)
- grammatical features indicate plural (broadly) (Z32506)
- grammatical features indicate definite article, En (Z32516)
- Latin simple present collective sentence (Z32522)
- remove macrons from string (Z32527)
- simple present collective sentence (Z32531)
- Creative work - entity, class, creator, English (Z32536)
- filter statements by property type unless excluded (Z32537)
- [cs] prefix with v/ve (Z32541)
- grammatical features indicate indefinite article (Z32550)
- fallback string if empty or not a string (Z32556)
- load and find one best Wikidata statement value 2 (Z32557)
- number of all statements of a Wikidata item (Z32573)
- number of specific statements of a Wikidata item (Z32577)
- creative work – entity, class, creator (Z32581)
- group Typed pairs by first element (Z32585)
- Intro for year in Czech (Z32588)
- Find lexemes for a Wikidata item in language group (Z32599)
- plural from wikidata item in language w/ features (Z32606)
- English verb describing noun sentence (Z32621)
- item indicates definite article, English (Z32645)
- item represents a person (Z32663)
- item represents a position indic. "the" in English (Z32668)
- Japanese article-less instantiating sentence (Z32671)
- is Kleenean not True? (Z32673)
- Creative work - entity, class, creator, Japanese (Z32688)
- item is a subclass of item or up to N more levels (Z32691)
- apply a 3-param fn to a list of firsts, same 2&3 (Z32695)
- is Unicode code point a combining mark? (Z32715)
- create wikitable from caption and cell fragments (Z32731)
- State location using entity and class, Dutch (Z32739)
- English item label has equivalent alias with "the" (Z32749)
- list of strings from Monolingual stringset (Z32753)
- monolingual stringset from multilingual & language (Z32756)
- first monolingual stringset in language from list (Z32757)
- identical monolingual stringset (Z32758)
- language of monolingual stringset (Z32766)
- list of strings from multilingual stringset & lang (Z32772)
- Czech cardinal (Z32780)
- try synthesising IPA transcription for Lexeme Form (Z32787)
- IPA transcription from Japanese kana text (Z32793)
- Latin verb describing noun sentence (Z32831)
- plural section title (single QID) (Z32839)
- verb describing noun sentence (Z32843)
- State location using entity and class, Latin (Z32848)
- State location using entity and class, Swedish (Z32855)
- are Functions' input and output types identical? (Z32864)
- Wikidata link for item (Z32878)
- Japanese simple present collective sentence (Z32881)
A complete list of all functions sorted by when they were created is available.