This edition of the newsletter can be found on-wiki here:

Let’s start building morphological paradigms!

Morphological functions are functions that take one form of a word and create a different form of the word that is required in order to follow grammatical and semantic rules. For example, it might take a word such as “letter” and return the plural form “letters”, or the present participle “lettering”. We talked previously about morphological paradigms, about the need for both lexemes in Wikidata and paradigms in Wikifunctions, and about a tool to check lexemes and paradigms against each other.

We think that Wikifunctions is now ready for us to start building functions that support morphological paradigms! We would like to invite the different language communities to join us at Wikifunctions and to start creating functions that create lexical forms.

Here are a few examples of such functions from the Wikifunctions Beta:

In most cases, these functions would be taking a string and returning a string (but there might be exceptions). The examples above illustrate two kinds of case: functions which aim to work for all words of a given part of speech (e.g. the English and French plural and the Swedish genitive, which aims to work for any noun), and those that work for a subset of a given part of speech (the examples cover German and Croatian feminine nouns, but could be more complex, such as Zaliznyak’s classification of Russian nouns or maybe also noun classes in Niger-Congo languages).

The morphological paradigms will often not be complete inside Wikifunctions. The idea is for exceptions to be caught by adding as forms to the lexicographical knowledge in Wikidata. The functions are for the reasonably regular forms and for the often generative rules agglutinative languages  (but what is a regular form and what is an exception is something the given language community will need to figure out). We are looking forward to communities to come together around the individual languages and for morphologizers, sets of morphological paradigms for a given language, to grow in Wikifunctions! We are particularly excited to see how far these can be built in a given natural language, and how autonomous the languages can become (and where they still depend on understanding English) - and how much these functions will benefit across languages. We also hope that capturing the paradigms can be a contribution to language preservation and revitalization.

We are aware that the situation is not yet ideal for this call to action, but we want to make this call sooner rather than later. We are actively working on improving the situation. If you want to contribute to this challenge, but don’t yet have functioneer rights, please apply here and explain which language you plan to work on. We will prioritize such applications. We are also aware that the current limitation on function calls to logged-in users makes it difficult to demo the functions and prevents it from integrating it into tools such as Form Checker or Lucas Werkmeister’s Wikidata Lexeme Forms. We are prioritizing resolving these issues.

Please reach out to us if you need help starting this effort for the language you are interested in, or if you hit any stumbling blocks on the way. We are looking forward to supporting you.

A few days ago, we started a conversation on the Wikifunctions Project Chat about what the right type for morphological functions should be, which also extended to IRC / Telegram. My summary of the comments is that we can go ahead with using strings as the argument and output type for morphological paradigms, given that in most cases a string-based function would be at the core of any other solution anyway. Thanks to everyone who participated in that discussion!

Thanks to Kutz Arrieta for a discussion and review of this newsletter. Thanks to William Avery for improving and working on the Form Checker tool. Thanks to everyone who participated in the discussion about the right type for morphological functions.

Volunteer’s Corner

The next Volunteer’s Corner will be on September 18, 2023, at 17:30 UTC at We plan to kick off that meeting with a live tutorial on building functions together.