The on-wiki version of this newsletter can be found here: https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2025-06-27 -- How many people are needed to write an encyclopedia?
Well, if you’re Pliny https://en.wikipedia.org/wiki/Pliny%20the%20Elder, you can do it alone. https://www.wikifunctions.org/wiki/File:Pliny_the_Elder,_Loggia_del_Consiglio,_Piazza_dei_Signori,_Verona_(37520060770)_(cropped).jpg
But since then, encyclopedias have been written by teams. And our favorite encyclopedia, Wikipedia, has been written by hundreds of thousands of volunteer contributors.
It is amazing to have hundreds of thousands of volunteer contributors working on an encyclopedia! We know that a diversity of contributors leads to a more robust quality of the encyclopedia. We know that enough contributors lead to more comprehensive coverage and to more current updates in Wikipedia. But we also know that most Wikipedia language editions have fewer than a dozen contributors. And that it is challenging to write a comprehensive and up-to-date encyclopedia with so few volunteer contributors.
Abstract Wikipedia aims to help with that issue by splitting up the *task of writing an encyclopedia* into two tasks:
1. The abstract encyclopedists, who are creating and maintaining the articles of the encyclopedia as Abstract Content 2. The language specialists, who are creating functions that take that Abstract Content and turn it into concrete articles for the readers, in their language
The abstract encyclopedists are expected to have a similar amount of work as the current Wikipedia communities have. Maybe a constant factor more, because it could be that doing their work using Abstract Content could be more difficult – writing Abstract Content instead of text. So we can safely expect that we will need many volunteer contributors to do so. This is also continuous work, as the content of Wikipedia needs to be updated. We may talk about the feasibility of this part some other day.
Today we want to focus on the team of language specialists. How large a team do they need to be? How much work do they have? What does their effort look like? They need to create and maintain the functions in Wikifunctions and the lexicographic data in Wikidata to turn Abstract Content into Wikipedia articles in a given language.
This is where the idea of Abstract Wikipedia shines: do we need thousands and tens of thousands of language specialists for each language? No! They can achieve their task with a team that is orders of magnitudes smaller. And yet they will make a comprehensive and up-to-date encyclopedia available in their language! Because they do not need to worry about the content of the encyclopedia, or about keeping it up-to-date: they only need to worry about the language generation functions and the lexicographic data.
The two main variables that determine the effort of the language specialists are the number of natural language generation functions that need to be implemented in that language, and the number of lexemes that are needed. Both numbers are difficult to estimate at the current time: the functions needed to achieve some reasonable coverage could range from 20 to 2000, the lexemes from a few hundreds to a few thousands.
If we estimate the effort to write a function to be about an hour, and to create a lexeme to be ten minutes, this results in (20 to 2000)x60 + (100 to 10,000)x10 = 2,200 to 220,000 minutes, or roughly 40 to 4,000 hours. Or, anywhere between a person week to a two person years. If we take the average order of magnitude for the estimates, we end up with 400 hours. So, with a group of five to ten people it would be one or two weeks of work.
But even a single dedicated person could get quite a bit of work done, and they would see steady progress, unlocking more and more generated sentences in their language edition of Wikipedia as they add functions and lexemes.
And the best part? Unlike the task of the abstract encyclopedists, who need to keep the encyclopedia up to date, the task of the language specialist is much more of a one-off: sure, there might be new words from time to time, there might be new functions needed, but that effort can likely be accomplished by a single volunteer contributor maintaining a whole language encyclopedia. Language doesn’t change as quickly as knowledge.
Now, is this Fermi estimate reasonable? Do we have a set of comparable experiences we can check this against? Yes! Grammatical Framework is a system that allows for natural language generation. Their community runs annual two-week summer schools, and one of the tasks they do is to add new languages to Grammatical Framework. And within these two weeks, a student or two can get quite far with realizing a language. This shows us that our estimate is more or less reasonable, within an order of magnitude one way or the other.
Whether it will really work out like this? I am excited to empirically learn the answer. And I hope you are excited too! Recent Changes in the software
This week we landed several smaller fixes and tweaks that get us closer to completing our planned work for the Quarter that ends next week.
On Wikidata support, we've tweaked the Type definition for point-in-time ( T391208 https://phabricator.wikimedia.org/T391208). On the lightweight enums side, we added a pre-defined Function, Z6895, to more easily get the referenced Wikidata entity from the use, and its built-in Implementation ( T397490 https://phabricator.wikimedia.org/T397490). We've added JavaScript converter functions and proposed Python converter functions for the new Wikidata quantity type, and converter functions are nearly done for Wikidata geo-coordinates. We thank the community for quickly contributing display and read functions for Wikidata quantity; a display function for Wikidata datetime; converter, equality, display, and read functions for Time of day; and several more auxiliary functions for other related types.
As part of our work to build a prototype of using HTML in Function outputs ( T396606 https://phabricator.wikimedia.org/T396606), we're introducing a pre-defined Equality function for instances of Z89/HTML fragment, Z877, and its built-in Implementation, Z977.
We landed some more measurement instrumentation around the API used to make Function calls and the code rendering embedded Function calls in pages, which we expect to let us track several proposed SLIs (T394320 https://phabricator.wikimedia.org/T394320, T394322 https://phabricator.wikimedia.org/T394322, T394323 https://phabricator.wikimedia.org/T394323, T394324 https://phabricator.wikimedia.org/T394324, T394325 https://phabricator.wikimedia.org/T394325, and T394326 https://phabricator.wikimedia.org/T394326) feeding into our draft SLO ( T390548 https://phabricator.wikimedia.org/T390548).
We fixed and released early a bug that meant empty lists of Implementations or Test cases would show with an "undefined" entry (T396978 https://phabricator.wikimedia.org/T396978).
We landed some fixes to the back-end services to better validate outputs of user-written code, which should avoid some odd bugs and make issues more immediately obvious and easier to understand (T395527 https://phabricator.wikimedia.org/T395527).
As part of wider work to use a newer logging library across MediaWiki code, User:Fomafix tweaked our code type hints to allow this upgrade ( T356451 https://phabricator.wikimedia.org/T356451) — thank you!
We're adjusting the language code for Z1124 to adopt a new primary code, 'en-simple' (T394401 https://phabricator.wikimedia.org/T394401). Fresh Functions weekly: 77 new Functions
This week we had 77 new functions. Quite a bit in cryptography, in music, and for the new Wikidata data. Thanks everybody for contributing. Check out the complete list of all functions sorted by when they were created https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&orderby=latest .
abstract-wikipedia@lists.wikimedia.org