Wikifunctions: where we are now, and what you can do

Translate This Post

Think of a website that can answer questions such as “how do I spell this in Morse code?”, “how do you write this as a Roman numeral?”, or “is this word a palindrome?”, maintained by a growing community of volunteers and completely free to access and edit. That’s Wikifunctions, the first new Wikimedia project in over a decade. A project for everyone to collaboratively create and maintain a library of code functions to support Wikimedia projects and beyond, in the world’s natural and programming languages. A project that you too can join!

In the nine months since the launch of the project, the community has already reached some important milestones: as of 25 March, more than 900 functions have been created by our community, to which are linked more than 1,300 implementations (which are different ways to execute a function) and more than 2,300 tests (which determine if a given function is doing the right thing).

Because Wikifunctions will provide infrastructure for Abstract Wikipedia, we are happy to see how many of these functions aren’t just for string manipulation, but also building blocks for generating natural language. We already have over 60 functions for creating text in Breton, and we also have functions for many other languages, such as Croatian, Igbo, Rohingya, Esperanto, as well as functions to tell if a character is from one of the three sets of characters used in Japanese (hiragana, katakana or kanji).

We recently released our second new type of values since launch, natural numbers, allowing for both basic functions (such as equality or addition) and for more complex functions (such as calculating Fibonacci numbers or turning numbers into the corresponding month of the year). In the week after its launch, the community created more than 100 functions that involve numbers!

Did you know that numeric functions can also work with Roman numerals? Think of the use on Latin Wikipedia of such functions!

Wikifunctions allows the creation of more powerful and thus potentially more computationally demanding digital artifacts than what we are used to from our other Wikimedia projects. For this reason, we introduced a new user role, the Functioneer, which was initially handed out by Wikimedia Foundation staff working on Wikifunctions. This allowed us to closely monitor the site during the first few weeks, to understand the load on our servers, and remedy issues as they were found. 

Last November, the community took over administration of this role, after drafting a policy on how to hand it out to new users. It was particularly encouraging seeing the community take on this task in complete autonomy, allowing us to focus more on the development of the project.

In the coming months, we plan to work on new types for natural language generation, which will allow us to integrate Wikifunctions with Wikidata. We are also preparing for our integration with Wikipedia by interviewing users from seven wiki communities (Arabic, Bengali, Dagbani, Hausa, Igbo, Italian, and Malayalam) about their needs and how we can best serve them.

If you want to get involved, you can go to the Wikifunctions website and start editing on your own. You can also join our monthly meeting (on Google Meet), open to everyone who is interested in knowing more about the project, and subscribe to our weekly newsletter, to keep in touch with the new developments.

Thanks to everyone involved! We are looking forward to co-creating Wikifunctions together with you.

Can you help us translate this article?

In order for this article to reach as many people as possible we would like your help. Can you translate this article to get the message out?