The on-wiki version of this newsletter can be found here: https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2025-09-26 -- Accessing qualifiers in Wikidata statements
Wikifunctions has recently begun importing statements with *qualifiers*, whenever an entity is fetched from Wikidata. (Statements are imported inside Wikidata items, properties, lexemes, lexeme forms, and lexeme senses, whenever any of those entities is fetched.)
This change gives Wikifunctions users access to a substantially greater variety of facts and, in particular, multi-faceted facts that go beyond the bare assertion of a property’s value for a subject. For example, a population statement might say *(Chicago, population, 2,746,388)*, but it will also usually have a qualifier that tells *when* that number was true; *e.g.* *(point-in-time 2020)*, because the number came from the 2020 census. Many useful properties, in addition to population, are associated with temporal and other qualifiers.
Qualifiers are expressed using a new Wikifunctions Type Wikidata claim https://www.wikifunctions.org/wiki/Z6007 (which corresponds to Wikidata’s "*Snak*" type). This type includes three keys, for *property reference*, *value*, and *claim subtype* (discussed in the *News in Types* section below). Because the Wikidata statement https://www.wikifunctions.org/wiki/Z6003 Type also has these three keys, plus several others, a claim may be thought of as a skeletal (reduced, simpler) version of a Wikidata statement. If a statement has qualifiers, they show up as a list of claims, in the statement’s *qualifiers* key.
As an example, the Function Most recent year-specific sentence about item https://www.wikifunctions.org/wiki/Z28445 makes use of *point in time* qualifiers to generate sentences like *The population of Chicago was 2,746,388 in 2020*. It takes three arguments – a Wikidata item, a Wikidata property reference, and a natural language. The property reference should be a property, like *population*, whose instances are typically associated with a particular year and are annotated with *point in time* qualifiers. The function filters the item’s statements for those with the given property, selects the statement with the most recent *point in time* qualifier, extracts the year from that qualifier, and uses it in the generated sentence. It is currently only supported in English, but is configured (via Year-specific sentence from statement per language https://www.wikifunctions.org/wiki/Z28435) to allow for the addition of other languages. Coming: Wikifunctions to 25 more Wiktionaries and Wikimedia Incubator
Next week we are planning to roll out embedded Wikifunctions calls to a further 25 Wiktionaries, and to the Wikimedia Incubator.
The new Wiktionaries are: French, Greek, Spanish, Japanese, Indonesian, Dutch, Vietnamese, Italian, Finnish, Turkish, Korean, Swedish, Czech, Portuguese, Armenian, Tamil, Thai, Malagasy, Hindi, Persian, Catalan, Romanian, Hebrew, Bulgarian, and Simple English.
This will add to the existing 123 language editions of Wiktionaries that already have the ability to embed calls to Wikifunctions in their wiki. Recent Changes in the software https://www.wikifunctions.org/wiki/File:WE_2.2_Lexeme_Sense_UI_component_for_Wikifunctions_Demo.webm
This week we finished our Quarterly commitment around Lexeme senses, made some progress on another around errors, as well as a number of small issues.
One of our promised changes this Quarter was a new special view for interacting with Lexeme senses on Wikifunctions (T398307 https://phabricator.wikimedia.org/T398307), which went live this week. It should improve the experience when using Functions that interact with them, like Z6826. We have a video that shows how this component works, and how it improved on the previous version https://commons.wikimedia.org/wiki/File:WE_2.2%20Lexeme%20Sense%20UI%20component%20for%20Wikifunctions%20Demo.webm .
As part of our work to make it easy to create and use errors (T395475 https://phabricator.wikimedia.org/T395475), we are preparing a number of pre-defined Functions for this: Z850/try-catch https://www.wikifunctions.org/wiki/Z850, Z851/throw https://www.wikifunctions.org/wiki/Z851, Z852/is error type https://www.wikifunctions.org/wiki/Z852, and Z853/get error https://www.wikifunctions.org/wiki/Z853 (T404092 https://phabricator.wikimedia.org/T404092). We are also adding pre-defined test cases to these, to demonstrate that and how they are working. We are also changing how error types work, adding an identity key so they can be compared (T405114 https://phabricator.wikimedia.org/T405114). We also added a way for user-created errors to have rich content inside them (T404469 https://phabricator.wikimedia.org/T404469). Documentation and guidance on how to use these features will be coming soon.
We have fixed the light-weight enum display to work when more than 50 items are requested, which should fix the chemical enum that was showing QIDs unlabelled (T404353 https://phabricator.wikimedia.org/T404353). Following a Wikifunctions community member's request, we have added two new languages for the two scripts of Rohingya, Z1978/rhg-rohg https://www.wikifunctions.org/wiki/Z1978 and Z1979/rhg-arab https://www.wikifunctions.org/wiki/Z1979. Another request has led us to create a new pre-defined Function, Z6896/Get values from Wikidata enum https://www.wikifunctions.org/wiki/Z6896, for working with light-weight Wikidata enum Types (T397494 https://phabricator.wikimedia.org/T397494).
To better understand how people are using the integration into the visual editor to create embedded Wikifunctions calls, we have added some instrumentation to track activity (T402711 https://phabricator.wikimedia.org/T402711). News in Types I: Some value and no value statements
*Some value and no value statements.* Wikifunctions has also recently begun importing *some value* and *no value* statements. These come from Wikidata’s data model https://www.wikidata.org/wiki/Wikidata:Data%20model#No_value_and_unknown_value. A *some value* statement asserts that *there is a value* for the statement’s property that applies to the statement’s subject – but does not state what that value is. In other words, the specific value is unknown. (A *some value* statement also allows for the possibility that there could be multiple unknown values.) A *no value* statement asserts that *there is no value* for the statement’s property that applies to the statement’s subject.
These distinctions are made using the new Wikidata claim subtype https://www.wikifunctions.org/wiki/Z6020 Type – an enumeration type with the the instances value https://www.wikifunctions.org/wiki/Z6021 (for the usual kind of statement that includes a specific value), no value https://www.wikifunctions.org/wiki/Z6022, and some value https://www.wikifunctions.org/wiki/Z6023. Each Wikidata statement https://www.wikifunctions.org/wiki/Z6003 now has a key *claim subtype*, which contains one of these instances. Each Wikidata claim https://www.wikifunctions.org/wiki/Z6007 also has a key *claim subtype* containing one of these instances. News in Types II: Six new types for grammatical enumerations
This week, six community proposals for lightweight enumerations were implemented, all in on the topic of grammar:
- Grammatical number https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Grammatical_number_(singular/paucal/multal) with singular, paucal, and plural - Grammatical definiteness https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Grammatical_definiteness with definite and indefinite - Grammatical voice https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Grammatical_voice_(a/p) with active and passive - Grammatical polarity https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Grammatical_affirmation_and_negation with affirmation and negation - Grammatical cases https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Grammatical_cases_(n/g/d/a) with Nominative, Genitive, Dative, and Accusative - Grammatical degrees of comparison https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals/Grammatical_degree_of_comparison_(p/c/s) with positive, comparative, and superlative
There are more proposals out there https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals, and your review and vote matters! Lightning talk at Celtic Knot by Vigneron
This week on Tuesday was the Celtic Knot – Wikimedia Language Conference 2025 https://meta.wikimedia.org/wiki/Celtic%20Knot%20Conference%202025, offering a mix of workshop activities, presentations, lightning talks and activities. Nicolas Vigneron https://www.wikifunctions.org/wiki/User:VIGNERON presented a lightning talk about Wikifunction. The slides are available on Commons https://commons.wikimedia.org/wiki/File:Wikifunctions%20-%20Celtic%20Knot%202025%20Lightning%20Talk.pdf . Presentation at Wikimedia CEE by Cory
The Wikimedia CEE Meeting https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia%20CEE%20Meeting%202025 will be held in Thessaloniki, Greece, 26–28 September, organized by Wikimedia UG Greece. Our own Cory Massaro will hold a presentation on Wikifunctions and Abstract Wikipedia there. He will discuss the kinds of natural language content that can currently be generated with Wikifunctions, then give a brief exploration of existing Functions that already work in multiple languages. Recording of NLG SIG from Tuesday https://www.wikifunctions.org/wiki/File:Abstract_Wikipedia_NLG_SIG_Meeting_2025-09.webm
This week Tuesday was also the latest meeting of the Wikifunctions:NLG SIG https://www.wikifunctions.org/wiki/Wikifunctions:NLG_SIG. Denny https://www.wikifunctions.org/wiki/User:DVrandecic_(WMF) was presenting a proposal for representing abstract content in the future Abstract Wikipedia project. A recording of the meeting is available on Commons https://commons.wikimedia.org/wiki/File:Abstract%20Wikipedia%20NLG%20SIG%20Meeting%202025-09.webm. Thanks to everyone participating in the discussion! Fresh Functions weekly: 36 new Functions
This week we had 36 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!
- predicate of Wikidata property claim (Z28294) https://www.wikifunctions.org/wiki/Z28294 - value of Wikidata property claim (Z28297) https://www.wikifunctions.org/wiki/Z28297 - claim type of Wikidata property claim (Z28300) https://www.wikifunctions.org/wiki/Z28300 - claim has value? (Z28304) https://www.wikifunctions.org/wiki/Z28304 - claim predicate matches? (Z28308) https://www.wikifunctions.org/wiki/Z28308 - qualifiers of Wikidata statement with predicate (Z28312) https://www.wikifunctions.org/wiki/Z28312 - filter with second common element (Z28316) https://www.wikifunctions.org/wiki/Z28316 - qualifier values of statement with predicate (Z28321) https://www.wikifunctions.org/wiki/Z28321 - filter statements by claim type (Z28326) https://www.wikifunctions.org/wiki/Z28326 - statement has claim type (Z28327) https://www.wikifunctions.org/wiki/Z28327 - is a temperature unit? (Z28341) https://www.wikifunctions.org/wiki/Z28341 - are bounds equal to value? assume explicit bounds (Z28359) https://www.wikifunctions.org/wiki/Z28359 - Type from quoted Reference (Z28373) https://www.wikifunctions.org/wiki/Z28373 - intro for year in Bangla (Z28378) https://www.wikifunctions.org/wiki/Z28378 - read Rational number in Bangla (Z28381) https://www.wikifunctions.org/wiki/Z28381 - quoted references from first object (Z28387) https://www.wikifunctions.org/wiki/Z28387 - estimated hiking time in hours (Z28392) https://www.wikifunctions.org/wiki/Z28392 - estimated horizontal hiking time in hours (Z28395) https://www.wikifunctions.org/wiki/Z28395 - estimated ascent hiking time in hours (Z28399) https://www.wikifunctions.org/wiki/Z28399 - estimated descent hiking time in hours (Z28403) https://www.wikifunctions.org/wiki/Z28403 - estimated vertical hiking time in hours (Z28407) https://www.wikifunctions.org/wiki/Z28407 - rational number of hours to whole minutes (Z28416) https://www.wikifunctions.org/wiki/Z28416 - Natural numbers in Eastern Nagri script (Z28422) https://www.wikifunctions.org/wiki/Z28422 - float64 as string (Eastern Nagri) (Z28425) https://www.wikifunctions.org/wiki/Z28425 - Year-specific sentence from statement, in English (Z28432) https://www.wikifunctions.org/wiki/Z28432 - Year-specific sentence from statement (Z28436) https://www.wikifunctions.org/wiki/Z28436 - value of first key (Z28439) https://www.wikifunctions.org/wiki/Z28439 - value of second key (Z28442) https://www.wikifunctions.org/wiki/Z28442 - Most recent year-specific sentence about item (Z28445) https://www.wikifunctions.org/wiki/Z28445 - Most recent qualified statement from item (WIP) (Z28446) https://www.wikifunctions.org/wiki/Z28446 - Key references from object (Z28451) https://www.wikifunctions.org/wiki/Z28451
A complete list of all functions sorted by when they were created https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&orderby=latest is available.
abstract-wikipedia@lists.wikimedia.org