Wikifunctions:Status updates/2025-08-01 - Wikifunctions
Jump to content
From Wikifunctions
Wikifunctions:Status updates
Translate this page
Other languages:
Bahasa Indonesia
Wikifunctions Status updates
Wikimania 2025 is coming soon!
During 6–9 August 2025, the annual Wikimedia conference Wikimania will be held in Nairobi, Kenya. Wikifunctions will also be represented at the event:
Wikifunctions is coming soon to a wiki near you!
On Friday,
8 August, at 14:00–15:25
local time
James Forrester
will present in the room Mombasa.
We will highlight the current state of the project, showing what the community has achieved so far, and also discuss the results of our first live deployment to Wikimedia projects, what this means for editors and readers of those wikis, and our plans for further integration with other Wikimedia projects.
The presentation will be followed by a tutorial that will provide an introduction to Wikifunctions and how you can use it. We will first give a high-level overview of Wikifunctions. We will then do a set of introductory activities, each of which can be done through the wikifunctions.org site. These activities will include finding and calling existing functions; creating new and editing existing functions, tests, and implementations; and showing how community members are using these function calls on projects where Wikifunctions has been enabled.
If you are an experienced Wikifunctions contributor and are at Wikimania, we would love your help! You can reach out to
Luca
and let him know.
Three other talks are directly related to making Abstract Wikipedia work better:
Contributing to Lexemes with Lexica: A Hands-On Walkthrough
by Raisha Abdillah on Wednesday 6 August, where Raisha will talk about a new tool for making it easier to contribute to lexicographic data in Wikidata, which is a necessary component for Abstract Wikipedia
Wikidata: We want our data to be reused. But do we really?
by Lydia Pintscher on the same day, where Lydia will be talking about how hard it can be to reuse data from Wikidata, and what we could do to make it easier – a topic that is directly relevant to reusing data through Wikifunctions
The L2 Conundrum
by User:James and Deryck Chan, where they talk about the current issue that users face who are fluent in several languages and want to contribute to Wikipedia — a topic that will be relevant to understand the motivation of contributors working on Abstract Wikipedia.
If you plan or know about any other Wikifunctions-related activities at Wikimania, let us know, and we are happy to shout it out loud at opportune moments.
We plan to have James from our team at Wikimania. If you have any questions or want to discuss Wikifunctions or Abstract Wikipedia, feel free to reach out to him.
To everyone traveling to beautiful Kenya: enjoy the trip, and enjoy Wikimania!
News in Types I: Wikidata quantity
Recently Wikifunctions started importing Wikidata statements containing values of the new Wikifunctions types
Wikidata quantity
Wikidata geo-coordinate
, and
Wikidata time
.  As mentioned in
the July 10 update
, such statements show up inside imported Wikidata entities (items, properties, lexemes, lexemes forms, and lexemes senses).  In this update we'd like to take a closer look at
Wikidata quantity
Each instance of Wikidata quantity (which corresponds directly to the
quantity datatype on Wikidata
) contains 4 components:
amount
lower bound
upper bound
(all of type
Rational number
), and
unit
(of type
Wikidata item reference
).
Lower bound
and
upper bound
, when present, are used to indicate an inexact number, with a range of possible values around the given
amount
We'd especially like to highlight the excellent
display
and
read
functions provided by community member
99of9
.  These functions make it possible for users to easily recognize and enter quantities using familiar formats.  For example, the Wikidata quantity for the
speed of light
, in
metre per second
, displays as 299,792,458 m/s, as shown by this
test case
.  Conversely, the read function makes it possible to enter that same string in the UI, and have it automatically instantiated as a Wikidata quantity.
To determine the abbreviation of the specified unit, the display function consults Wikidata, using functions
fetch Wikidata item
and
unit symbol of item
to retrieve the given Wikidata item and extract its value for the property
unit symbol
. Going in the other direction, the read function relies on a giant dictionary of Wikidata unit symbols, which is embodied in the JavaScript implementation of
QID from unit symbol
In the case of an inexact quantity (one including lower and upper bound values), the display function presents the bounds using
when the amount is midway between the 2 bounds, and a bracketed notation for other cases.  For example, a quantity with
amount
6,
lower bound
4, and
upper boun
d 8, displays as 6±2.  An example involving greater precision is provided by the Wikidata item
permittivity of vacuum
, the value of which displays in Wikifunctions as 0.0000000000088541878128±0.0000000000000000000013 F/m (
farad per metre
).  A quantity with amount 2.5, lower bound 1.9, and upper bound 4.6 displays as [≥1.9; 2.5; ≤4.6] (which can appear with or without a unit).  The read function accepts these formats as well.  Both functions accommodate (one or two) missing bounds and a missing unit.
Both the read and display functions are configured for language customizations, allowing language-specific functions to be used when a language is associated with a particular format.  For example, when called with Italian as the display language, the bracketed example above appears with commas, as [≥1,9; 2,5; ≤4,6].  There is work to be done to provide language-specific handling, and contributions are encouraged!
Given this Type, as a community we should probably now come to a decision what to do with related Type proposals, such as
SI units
unit of measurement
, and
value with error
News in Types II: Grammatical number (singular / plural) and animacy
We have implemented the Type proposals for
grammatical number (singular / plural)
. We invite you to add more proposals for other grammatical number systems.
We also implemented the type proposal for
grammatical gender (animate / inanimate)
. Note that I chose to call it grammatical animacy per discussion — but also that that’s just a label, and the community should feel free to change that.
Recent Changes in the software
Last week we made a bit of progress on our major, planned pieces of work, as well as a number of fixes. This week is our "Fix-It" week, the week every two months where we focus on fixing bugs and technical debt, so expect yet more fixes next week.
One of the current pieces of Quarterly work is to add support for using Wikidata references in embedded Function calls (
T397403
). For this, we added an interface in the VisualEditor dialog to lookup Wikidata items or lexemes (
T399565
). We also added the back-end code to support this access (
T398731
).
We changed the close button in the VisualEditor dialog for embedded Function calls to be a button to go back to the search page (
T395478
), based on usability findings (
T397411
).
We fixed the enum selector component to work correctly when the selected Object is not in the first page (
T388660
). We fixed the mis-aligned visual display of the empty language "chip" for monolingual strings, as part of diagnosing why a number of them had been created in a malformed state (
T400271
). We also fixed the 'error' icon shown in the VisualEditor context display so that it is fully visible, and not squished.
We went through some of the front-end Vue code and fixed a few TODOs and made some small other fixes. We upgraded our Vue testing library to the latest version, which let us add simpler timeouts to our tests. This also allowed us to better test the Function explorer component in circumstances like after the form has been reset.
Timo Tijhof from the MediaWiki group found that one of our common API end-points was not caching due to a typo of `s-max-age` instead of `s-maxage` in the HTTP header (
T400434
). We slightly sped up the execution of embedded Function calls by re-using the new caching system when loading referenced Functions and Types in the handler (
T385619
). With thanks to our colleague Volker E., we've switched our use of `color-visited` CSS to re-use Codex's mixin instead of specifying directly, for on-going consistency (
T400300
). We also tweaked a production log that was alerting on bad user input, rather than the error state of no languages being available at all.
We, along with all Wikimedia-deployed code, are now using the latest version of the Codex UX library, v2.2.1, as of this week. We believe that there should be no user-visible changes on Wikifunctions, so please comment on the Project chat or file a Phabricator task if you spot an issue.
No Volunteers’ Corner in August and no newsletter next week, due to Wikimania
As our team will be actively engaged at the event, interacting with volunteers and conducting a Wikifunctions tutorial session, we have decided to cancel our monthly virtual meeting for August and also skip the newsletter for next week. You will get to read all about it in our post-Wikimania newsletter in about two weeks!
Fresh Functions weekly: 75 new Functions
This week we had 75 new functions. Here is a list of functions with implementations and passing tests to get a taste of what functions have been created. Thanks everybody for contributing!
AR CPI per year (
Z26487
AT CPI (
Z26491
AU CPI per year (
Z26495
AU-road CPI per year (
Z26499
month from date (
Z26504
switch with grammatical gender (m/f) (
Z26522
conversions to SI units of an item (
Z26527
replace unit in Wikidata quantity (
Z26533
multiply quantity by rational and apply new unit (
Z26536
conversions to SI units of an item reference (
Z26539
conversion to SI units of an item reference (
Z26544
Italian instantiating sentence requires an article (
Z26548
French article-less instantiating sentence (
Z26562
Bangla article-less instantiating sentence (
Z26572
languages with the same Wikidata label text (
Z26575
abbreviate "kaj" in Esperanto (
Z26595
is wikidata item instance of human? (
Z26602
is wikidata item generic (
Z26611
Croatian instantiating fragment (
Z26617
read Time of day, Bangla (
Z26629
read Gregorian year, Bangla (
Z26638
read Day of roman year, Bangla (
Z26643
date (bnwiki) (
Z26648
display Day of Roman year, Bangla (
Z26652
Arabic to Eastern Nagri numerals (string) (
Z26656
is not void (
Z26665
Swedish article-less instantiating sentence (
Z26671
grammatical gender of lexeme is exactly (
Z26676
display Gregorian year, Bangla (
Z26692
is Wikidata item currently alive? (
Z26696
Indonesian article-less instantiating sentence (
Z26704
State location using entity and class, Bangla (
Z26707
German instantiating sentence without article (
Z26712
Low German instantiating sentence without article (
Z26717
Latin article-less instantiating sentence (
Z26723
lexeme doesn't have singular forms (
Z26729
apply if not empty, else return empty (
Z26733
first part of Italian instantiating sentence (
Z26737
grammatical gender (m/f) of lexeme (
Z26745
first element if list not empty, else void (
Z26750
BD CPI per year (
Z26756
BE CPI per year (
Z26760
Hijri calendar month to month number (
Z26766
Classifying sentence in Swedish (
Z26771
month number to Hijri month (
Z26774
Wikidata reference in enumeration instance (
Z26779
remove and clean up all instances of a substring (
Z26785
Swedish indefinite noun phrase, lex (
Z26791
complete list of all functions sorted by when they were created
is available.
Retrieved from "
Category
Status updates
Wikifunctions
Status updates/2025-08-01
Add topic