The on-wiki version of this newsletter can be found here: https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2024-11-07 -- The Dream of a Universal Language https://www.wikifunctions.org/wiki/File:Katowice_-_Wikimania_2024_-_Abstract_Wikipedia_20240807-02.jpgSession "Abstract Wikipedia and the dream of a Universal Language" by Galder Gonzalez during Wikimania 2024
This year at Wikimania 2024 https://wikimania.wikimedia.org/wiki/2024:Wikimania, Galder Gonzales https://www.wikifunctions.org/wiki/User:Theklan gave a talk on “Abstract Wikipedia and the dream of a Universal Language” https://app.eventyay.com/talk/Wikimania/talk/NUXQAC/. The talk is now available to watch on YouTube https://www.youtube.com/watch?v=OyyYA4iWkyA&list=PLhV3K_DS5YfL7A2HXrpt8ZgnWlGjp0vIP&t=4328s .
Galder is working on his PhD thesis, and in this talk he is presenting his current results on discussing the relationship between Abstract Wikipedia and the long-held philosophical dream of a universal language. He discusses what a language is, and then organizes and presents previous approaches towards a universal language, such as Llull https://en.wikipedia.org/wiki/Ramon_Llull, Descartes https://en.wikipedia.org/wiki/Ren%C3%A9_Descartes, Leibniz https://en.wikipedia.org/wiki/Gottfried_Wilhelm_Leibniz, and many others.
The talk is a wonderful introduction to some of the historical roots that are leading us to Abstract Wikipedia. Enjoy the talk! Catalogue has been refactored
The catalogue of functions on Wikifunctions https://www.wikifunctions.org/wiki/Wikifunctions:Catalogue has been a great resource to list and find functions in Wikifunctions. So far, it has been a single page on the wiki. Now, with Wikifunctions having more than 1600 functions, the page has become increasingly wieldy, and User:Theklan https://www.wikifunctions.org/wiki/User:Theklan (yes, that’s the same who gave the talk above!) has reworked it and broken it into several smaller pages. Everyone is welcome to work on improving the catalogue https://www.wikifunctions.org/wiki/Wikifunctions:Catalogue and make the functions in Wikifunctions easy to find and list! Recent Changes in the software
Lately we've mostly been working on the bigger, Quarterly goals work, especially the Wikidata loading (T376662 https://phabricator.wikimedia.org/T376662), Wikipedia integration (T376521 https://phabricator.wikimedia.org/T376521), and re-building the back-end platform (T376668 https://phabricator.wikimedia.org/T376668), but there are a few improvements that we released last week and this:
We have changed the display of the "about" box to show long inputs' labels and types more clearly (T373978 https://phabricator.wikimedia.org/T373978). We've fixed the Lexeme selector to not use the fallback mechanism when you click, but as selected; in practice, this lets you select one of the different lexemes that have the same label (T377332 https://phabricator.wikimedia.org/T377332). When creating or editing a type converter, we now show a message that 'Z0' will get auto-replaced as needed (T368087 https://phabricator.wikimedia.org/T368087). We've changed the Wikidata searching widget to pass your view language along in the request, so the explanatory labels like "noun" or "verb" will now be shown in your language, if available (T378499 https://phabricator.wikimedia.org/T378499).
We've landed some front-end performance improvements, which have become more noticeable since we enabled Wikidata fetching and you end up seeing large objects like Lexemes (T378169 https://phabricator.wikimedia.org/T378169). Unfortunately this means that the custom dialog based on "error" parsing has been temporarily disabled; we hope to bring this back soon, in a performant fashion. We've fixed the display of the "toast" success/failure message on publication to not appear as a thin vertical strip (T377461 https://phabricator.wikimedia.org/T377461). We've corrected a bug that meant that you would sometimes be asked if you wanted to leave the site and abandon changes even after publishing (T377412 https://phabricator.wikimedia.org/T377412).
The developer tool to load pre-defined Objects into Wikifunctions.org production now also lets you interactively merge upstream changes without over-writing on-wiki community changes, like labels or aliases (T335418 https://phabricator.wikimedia.org/T335418). We now have a set of developer tools to create a copy of the live Wikifunctions.org content, and load it into a local developer machine, to be able to better debug issues you encounter in production. We've re-written the developer instructions in the README to be easier to follow and more specific around running and configuring local services. Finally, we've landed an improvement to our PHP code to support the forthcoming PHP 8.4 (T376276 https://phabricator.wikimedia.org/T376276); thanks to Andre Klapper for their first commit to WikiLambda.
Over the last three weeks, we have added support for eleven new languages to Wikifunctions, as part of them being added to MediaWiki: Z1940/laj https://www.wikifunctions.org/view/en/Z1940 (T376060 https://phabricator.wikimedia.org/T376060), Z1941/mns https://www.wikifunctions.org/view/en/Z1941 (T375944 https://phabricator.wikimedia.org/T375944), the set of Z1942/akb https://www.wikifunctions.org/view/en/Z1942, Z1943/btd https://www.wikifunctions.org/view/en/Z1943, Z1944/bts https://www.wikifunctions.org/view/en/Z1944, Z1945/btx https://www.wikifunctions.org/view/en/Z1945, & Z1946/btz https://www.wikifunctions.org/view/en/Z1946 (T376826 https://phabricator.wikimedia.org/T376826), Z1947/mdh https://www.wikifunctions.org/view/en/Z1947 (T377851 https://phabricator.wikimedia.org/T377851), Z1948/maw https://www.wikifunctions.org/view/en/Z1948 (T377797 https://phabricator.wikimedia.org/T377797), Z1948/knc https://www.wikifunctions.org/view/en/Z1949 (T356144 https://phabricator.wikimedia.org/T356144), and finally Z1950/cko https://www.wikifunctions.org/view/en/Z1950 (T377380 https://phabricator.wikimedia.org/T377380). Presentation series on lexicographic data and its usage
A series of presentations https://www.wikidata.org/wiki/Wikidata:WikiProject_LD4_Wikidata_Affinity_Group/Affinity_Group_Calls/Second_Project_Series started this Tuesday, presented by Mahir Morshed https://www.wikifunctions.org/wiki/User:Mahir256. The slides of this week https://elemwala.toolforge.org/static/ld4pres-5nov.html are available, and a recording is expected, too. Every two weeks until the end of the year you can join interactive working sessions on how to edit lexemes, modeling complex lexemes, and using lexemes to build sentences. An |overview of all sessions https://www.wikidata.org/wiki/Wikidata:WikiProject_LD4_Wikidata_Affinity_Group/Affinity_Group_Calls/Second_Project_Series is available on Wikidata. Recording of November Volunteers’ Corner
A recording of this month's Volunteers’ Corner https://commons.wikimedia.org/wiki/File:Abstract_Wikipedia_Volunteer_Corner_2024-11.webm is now available on Wikimedia Commons. We gave the month’s updates, worked on not one but two functions together (simple tense of verb https://www.wikifunctions.org/view/en/Z19514 and minimum of natural number list https://www.wikifunctions.org/view/en/Z19509), and had a number of questions at the end. Enjoy the video! Lighting talk at Wikiconvention francophone
Nicolas Vigneron https://www.wikifunctions.org/wiki/User:VIGNERON was presenting a lightning talk about Wikifunctions this week at Wikiconvention francophone in Québec The presentation was well received, and there was particular interest about the ability to create functions by composition and without coding. Upcoming types
We are renewing our focus on working towards adding more types, and are looking through the type proposals https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals. A lively discussion around some further numeric types has ensued on the Abstract Wikipedia / Wikifunctions chat. Work on the types and your thoughts in the chat are both welcome and would be timely now. Function of the Week: simple tense of verb
In many languages, a verb –the part of a sentence that refers to the action in the sentence– will have a different form depending on whether the action described in the sentence happens while the sentence is being spoken, before it, or will happen after. Often, languages can also speak about more complex relationships of the sentence with the timing of the described event, but these are the three basic times, or tenses.
In this week’s Volunteer’s Corner https://commons.wikimedia.org/wiki/File:Abstract_Wikipedia_Volunteer_Corner_2024-11.webm, we looked at the function simple tense of verb https://www.wikifunctions.org/view/en/Z19514 (Z19514) that takes two arguments, a lexeme https://www.wikifunctions.org/view/en/Z6005 and a natural number https://www.wikifunctions.org/view/en/Z13518 representing the tense: 0 for the past, 1 for the present, and 2 for the future. The function returns a monolingual text https://www.wikifunctions.org/view/en/Z11 with the representation of the first relevant form.
The function has two tests: the first test ensures that the future of the Malayalam verb പോകുക is the Malayalam text പോകും https://www.wikifunctions.org/view/en/Z19516, and the second test checks that the past tense of the English verb scrutinize is the English text scrutinized https://www.wikifunctions.org/view/en/Z19517.
The function has three implementations:
- The JavaScript implementation https://www.wikifunctions.org/view/en/Z19515 and [[Z19527|Python implementation\ are straightforward translations of each other - First, we have an array of QIDs representing the tenses (past https://www.wikidata.org/wiki/Q1392475, present https://www.wikidata.org/wiki/Q3910936 and future https://www.wikidata.org/wiki/Q1475560). In line 7, we are turning the second argument into the relevant QID, by accessing them by number - Then we iterate through all the forms of the given lexeme, checking if any of the features of the form we are looking at matches with the relevant QID as selected before - If yes, we stop iterating through the list, and return the first representation of that form - The composition https://www.wikifunctions.org/view/en/Z19524 works slightly differently, as we have higher-level functions available, most notably return monolingual text from grammatical features https://www.wikifunctions.org/view/en/Z19530. That function was created after the Volunteer’s corner with the explicit goal of helping with this function: it takes the lexeme and a QID, and gets the first monolingual text based on the grammatical feature. The call is wrapped in two layers of nested if https://www.wikifunctions.org/view/en/Z802 functions, which, depending on the second argument, uses the appropriate QID as a parameter in that inner call to return monolingual text from grammatical features https://www.wikifunctions.org/view/en/Z19530.
The coverage with tests and implementations are decent, but there are a number of issues with the function itself:
- We have a rather unnatural mapping of natural numbers to tenses. A different way to approach this could be to introduce a type for tenses, and allow to select from the instances of that type. This also avoids the issue of having to deal with numbers larger than 2, which currently just raises an unspecified error. - In many languages, there are no forms for all three tenses. The function handles that by simply failing if a certain tense cannot be found. - In some languages, the future (or the past) is not represented by a specific form, but by a verb phrase. In English, that could be, e.g. *“I am going to read”*. We could compose these for the given language, but that would be language specific. - In many languages, there are more forms than one for a given tense. The function handles that by simply grabbing the first one, no matter what that is. - Nothing ensures that the lexeme is indeed a verb.
It makes sense to start with a simpler implementation of the goal expressed in this function, and eventually have a function that is easier to use and more robust towards edge cases.