Jump to content

Wikifunctions:Status updates/2026-06-19

From Wikifunctions
Wikifunctions Status updates Translate

Abstract Wikipedia via mailing list Volunteer Response Team Abstract Wikipedia on IRC Wikifunctions on Telegram Wikifunctions on Mastodon Wikifunctions on Twitter Wikifunctions on Facebook Wikifunctions on YouTube Wikifunctions website Translate

The or not the, this is (the?) question

Last week’s Volunteers’ Corner had a lively debate about one specific question (recording available on Commons), contributed by Strobilomyces: if you want to make a sentence of the form “X is a Y.”, sometimes the X requires the definite article “the”, and sometimes it does not. Here are a few examples:

  • Paris is a city.
  • The Seine is a river.
  • Lake Superior is a lake.
  • The Atlantic is an ocean.
  • The Eiffel Tower is a monument.
  • Westminster Abbey is a monument.

The same is true for other languages that have definite articles, such as Spanish, French, or German. But each language has its own rules for the article. Here is an example sentence in four languages:

  • Latin is a language.
  • El latín es un idioma.
  • Le latin est une langue.
  • Latein ist eine Sprache.

How to tackle this kind of issue?

There are in principle two extreme solutions, which both work – in principle:

  1. Model whether each noun requires the definite article in Wikidata's Lexemes
  2. Have a smart Function that figures out whether a noun needs a definite article

Both approaches have their challenges: the approach with the Lexemes would require many, many Lexemes, as we would now need Lexemes for every river, monument, etc. in every language with articles. That would be a lot of Lexemes. A smart Function on the other hand might need to deal with many special cases even to the level of individual words, because all languages have irregularities, making the implementations very large. But both approaches would work, in principle.

Another solution is, as so often, to meet in the middle: use a Function to get the answer for the cases that can be expressed with a Function easily, and use Lexemes for the exceptions. The Function would then always look up the Lexeme first, and only if none is found, apply the Function as a best-guess.

Where are we currently? Wikidata has a property, requires grammatical feature (P5713), which is indeed used to state that specific senses require a determined article, e.g. for the Indus. All of these uses on Wikidata are currently applied to Lexemes in English only. We also have two Functions, item indicates definite article, English (Z32645) and item indicates zero article, English (Z32935), which both aim to answer whether an Item needs a definite article or not; again, only in English. So, we already have both parts of the puzzle at least available in principle, but neither of these seem to be integrated into the ways that Functions are actually used on Abstract Wikipedia, as can be seen e.g. on the article for the Eiffel Tower.

In a twist I didn’t expect, I gave Aarne Ranta a call after this Monday’s Volunteers’ Corner. Aarne is the founder of Grammatical Framework, one of the world’s leading symbolic natural language generation systems. Aarne has been an advisor for me and his work has been an inspiration for Abstract Wikipedia. So I asked him about this particular issue, and his first reaction was to laugh and to literally call it one of the hardest puzzles they had to solve. That was encouraging!

So I would like to end with a Call to Action: let us focus on this issue together for a bit, across some of the relevant languages, in order to show that this is a problem we can tackle and solve. I think if we answer Strobilomyces’ challenge, which may be one of the harder issues for our approach to natural language generation, we can be much more confident about the feasibility of the whole approach.

Recent Changes in the software

This week, we made a few improvements to how Abstract Wikipedia articles and embedded Wikifunctions outputs will appear across wikis.

On Abstract Wikipedia, empty articles now appear as red links in local wikitext and rendered fragments, consistent with how Wikipedia treats pages that have not been written yet (T424310). And when looking up labels for Abstract Wikipedia items, the system now falls back to mul (language-agnostic label) when no language-specific label exists (T427027).

For embedded Wikifunctions, we fixed a bug that meant previewing embedded Wikifunctions' HTML outputs didn't work except on Wikifunctions.org itself (T426024).

And as part of wider MediaWiki language support work, we've added Z2048 (sd-deva) as a new Language, and assigned sd-arab to Z1191, in addition to the existing sd code (T411110, T416161, T418886, and T426332).

News in Types: Syntactic tables… but not yet

We invite you all to create new and discuss the existing Type proposals so we can keep on creating new Types. Thanks to all the community members contributing to the discussion and writing proposals, making it possible to extend the Wikifunctions to new domains!

Earlier this week we implemented the Syntactic tables proposal, but it is still marked as experimental. So just be warned that it might be changed and even deprecated. On creation, the title exposed a bug with the UX for HTML fragments (T429379), which will be fixed next week. Until then, it's difficult to see the Type work. The experimental Type is here: (experimental) Syntactic table (Z36462)

Initially, I was first planning to implement the proposals for Semantic Unit and Syntactic Unit Types, but after conferring with Mahir256, who proposed the Types, it became clear that a number of features on the backend are still missing, so that their implementation at this point in time wouldn’t be useful. More details were discussed in this week’s NLG SIG meeting (see the next section).

NLG SIG recording

Recording of June 2026 NLG SIG meeting

This week’s NLG SIG meeting was about discussing the proposed new NLG types, and was particularly focused on the Semantic Unit proposal. Thanks to Mahir for presenting the type, demoing tools, and so patiently answering questions. The recording of the meeting is available on Commons.

Upcoming events

Friday, 19 June 2026 at 18:30 local time, Denny will visit the temporärhaus in Ulm, Germany, in order to introduce Wikidata, Wikifunctions, and Abstract Wikipedia, and discuss with the local community. Thanks to Hogü-456 for organizing the event!

Wikimania 2026, the annual main conference for all things Wikimedia, will be in Paris, France from 21–25 July this year. Mahir256 will organize a workshop on “From Abstract Content to Concrete Text with Wikidata Lexemes” on Friday, 16:00 local time, and we will be running an “Abstract Wikipedia workshop: Let's create a multi-lingual article!” on Saturday, 11:00 local time.

Fresh Functions weekly: 43 new Functions

This week we had 43 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!

A complete list of all functions sorted by when they were created is available.