Jump to content

Wikifunctions:Project chat

From Wikifunctions
Latest comment: 3 hours ago by GrounderUK in topic Search for functions, excluding test cases
Shortcut:
WF:CHAT

Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.

Other places to find help:

SpBot archives all sections tagged with {{Section resolved|1=~~~~}} after 1 day and sections whose most recent comment is older than 30 days.
Archive
Archives

Feedback on the "About" widget on Wikifunctions

Hi all! We are collecting feedback on our "About" widget for multilingual readers and editors, after some months from its implementation.

We would love to hear from you about the following topics:

  1. What do you think of our improvements of the user interface? Is it functional? Does it help you doing your work? Is there anything we should fix or improve?
  2. What do you think of the workflow to edit multiple language labels in one edit? Does it work? Is it simple? Is there anything we should fix or improve?
  3. Does the language fallback strategy we implemented work? Have you had need to try it? Is it functional? Is there anything we should fix or improve?

Feel free to reply here, if you used the widget. If you didn't use it, give it a try, and then let us know!

Thanks in advance! Sannita (WMF) (talk) 15:30, 7 October 2024 (UTC)Reply

Hi!
I really like the new design, it makes it much easier to create and improve translations.
  1. There are only a few tweaks I'd make, but they are all minor: Sometimes the tags show the "+1" button even though there is enough space to display one or a few more. When editing tags, the tags from the existing translation are comma-separated, but in the text field they have to be separated by pressing return.
  2. I haven't used that yet, but I think the resulting design choice of putting the submit button at the top feels a little unconventional at first.
  3. I haven't seen it in action, but the placeholder / available translation combination is a lot better than what was there previously.
Thanks for all of the work that was put in to this, the effort really shows in the result!
Jummit (talk) 16:36, 7 October 2024 (UTC)Reply
Replied at Wikifunctions talk:Design/About widget improvements. Amir E. Aharoni (talk) 18:13, 1 November 2024 (UTC)Reply

Migrating linguistic algorithms from Wiktionary to Wikifunctions

There is a vast codebase covering word inflection and other aspects of language in English Wiktionary. It's written in Lua. Wikifunctions doesn't support Lua so far. So I'm wondering:

  1. Is Lua support planned? Wikifunctions:FAQ says:

    We hope to add at least one further programming language in 2024 (but have not yet decided which one).

    @Theknightwho, who is a major contributor to English Wiktionary's Lua modules, said this:

    without some way of implementing our existing modules there, there's unlikely to be much interest in using it for anything

  2. If it becomes supported, would it be feasible and/or sensible to migrate algorithms for various linguistic purposes? I already see some natural language operations at Project:Catalogue#Natural language operations. Could they be reused in Wiktionary? If they are, that would be a huge weight off Wiktionary's shoulders.

JWBTH (talk) 16:30, 25 October 2024 (UTC)Reply

@JWBTH @Theknightwho Thank you for your questions, and sorry for taking this long to answer.
We are currently working on integration with Wikidata and Wikipedia, so for now we don’t have plans on researching support for another programming language. Having said that, Lua is one of the candidates for new languages to be supported, also considering how much it is used on our sister projects. One caveat: Mediawiki Lua is a different language than proper Lua, so we need to take that into consideration when researching support. Would a real Lua still be good for you?
As for the second question, we definitely welcome a collaboration with Wiktionary on linguistic functions, since this is one of our focus areas here on Wikifunctions. How do you figure the reuse of natural language operations on English Wiktionary? What would be the main pain point that Wikifunctions would help you relieve?
Also, you’re welcome to join today’s Volunteer’s Corner to discuss things live with the other members of the community! Sannita (WMF) (talk) 15:22, 4 November 2024 (UTC)Reply
@Sannita (WMF) Thanks for the response. To address your first point, I think @JWBTH and I are suggesting two different (albeit related) things here:
  1. Adding Lua to Wikifunctions would make it easier to port linguistics functions from English Wiktionary (or other projects) to Wikifunctions. For this to be feasible, some Scribunto functions would need to be reimplemented in some fashion; e.g. the ustring library, which reimplments the standard Lua string library but with Unicode support); a pure-Lua ustring library exists, but it has unacceptably poor performance as compared to Scribunto's callbacks to PHP, which use PHP's PCRE2 regex engine (written in C), which is at least 100 times faster. I'm sure there are several other similar examples.
  2. It would be great if project-based modules were able to call functions hosted on Wikifunctions, as this would obviate the need for the massive amount of duplicated code that currently exists between projects (many of which simply fork modules from large projects like English Wikipedia and Wiktionary). This wouldn't necessarily require Wikifunctions to "natively" support Lua, but there would need to be a way for Lua to interface with the languages that Wikifunctions does support. My main concern here is performance, since the English Wiktionary has (for a while now) been running into performance limitations with Scribunto, so any Wikifunctions-based solution would need to match (or ideally improve on) the current level of performance we achieve with Scribunto; otherwise, there would be a major disincentive to use Wikifunctions-based functions.
In terms of your second question, the advantage of centrally-hosted functions is twofold:
Firstly, it would be beneficial for multiple projects to be able to take advantage of sophisticated linguistic functions without having to fork all the existing modules; this is similar to the benefit Wikidata provides for many projects now.
Secondly, and more specifically for English Wiktionary, most of our linguistic functions are geared towards two things: morphology (noun/adjective case forms, verb conjugation, and so on) and transliteration. Both of these are generally pretty straightforward to get right most of the time, but can become extremely complex in certain cases when they have to rely on contextual information. For instance, adjectives must decline with the same case as the noun in Russian, while in Japanese, transliteration can be affected by morphemic breaks (e.g. between a stem and its suffix), which requires textual analysis; in Mongolian, transliteration of
ю
depends on the vowel harmony of the segment, while the Tibetan script can be ambiguous, requiring semantic and/or phonological analysis to determine where the vowel lies in a syllable. There are many, many more examples. As a result, we've developed some analytical functions to aid with this already, which could be of benefit to Wikifunctions, and I think there is a lot of scope for mutually-beneficial collaboration. Theknightwho (talk) 16:57, 4 November 2024 (UTC)Reply
Theknightwho gave most of the technical and linguistic details, I'll just add:
> We are currently working on integration with Wikidata and Wikipedia
If you're working on integration with Wikipedia and we're talking non-linguistic functions or functions for English only, then probably you don't require any intricate algorithms English Wiktionary offers at this stage.
However, as the range of languages expands, you will require to adopt Wiktionary modules in some form. Well, unless you intend to reinvent the wheel or decide to use some third-party solution with unclear licensing situation and/or from people undedicated to the cause of Wikimedia. (You might have other considerations on this, of course, this is only how I see the situation.)
So, if you're interested in developing universal solutions that are wider than English alone, you might want to clarify Wiktionary/Lua support early rather than late. Otherwise you may find yourself in a situation where you need to substantially restructure the architecture to generalize it (and treat English as a special case). JWBTH (talk) 21:40, 4 November 2024 (UTC)Reply
As a matter of fact, linguistics is a whole universe, of course, and is not limited to the morphology/transliteration that operate on the word level (on which Wiktionary operates) as opposed to sentence etc. So if you go for the sentence level, you'll have to refer to third-party solutions anyway, I suppose. But why not reuse code that is there to be reused. JWBTH (talk) 22:00, 4 November 2024 (UTC)Reply

accepting selected string literals as input

hello againnn!! :33

i wonder if there's a way to assign some selected string literals as acceptable inputs, other than checking it in the implementation. tia!! :3 əkrəm. 13:12, 26 October 2024 (UTC)Reply

You can only specify which type is allowed as an input for your function. Everything else needs to be handled with the actual implementation of the function. --Ameisenigel (talk) 16:14, 27 October 2024 (UTC)Reply
alright, thanks ^^ əkrəm. 15:17, 28 October 2024 (UTC)Reply
by the way, is there a way to call another function inside an implementation? :3 əkrəm. 15:17, 28 October 2024 (UTC)Reply

SI Units appropriate?

Hello! I'd like to know if SI Units as a type would be appropriate for this project. The idea for them is to

  • Have a standard for outputting them and for what is a valid output
  • Have a display for them that is human-readable and standard.

But I'm not sure if that's what types on this project are supposed to be. On one hand, some of the types seem to be quite like this, with one being days of the week or RGBA colors, but, on the other hand, types in programming languages are usually not like this, and are usually more broad. I'd just like to know if this would be an appropriate type. I made a proposal here. Thanks. Feeglgeef (talk) 01:15, 28 October 2024 (UTC)Reply

Thanks for kicking off the discussion. I've made an alternative suggestion in your proposal which I think would significantly simplify this. If others agree, I'm happy to try to write this up as a formal proposal. 99of9 (talk) 01:34, 28 October 2024 (UTC)Reply
I definitely agree we should support SI units and measurements. Many thanks for the proposal. Please see my comments there. GrounderUK (talk) 13:25, 28 October 2024 (UTC)Reply

Android app for Wikifunctions

Hi, is there an Android app for Wikifunctions? How does it work? I have been advised that there is no infrastructure for push notifications for Android apps for sister wikis and I would be interested to know more. Related: phab:T378545. Thanks! Gryllida (talk) 23:16, 29 October 2024 (UTC)Reply

If I remember correctly, Kiwix has Wikifunctions. Otherwise, I don't think there is an Android app. Feeglgeef (talk) 23:29, 29 October 2024 (UTC)Reply
Nevermind, it does not. Feeglgeef (talk) 23:32, 29 October 2024 (UTC)Reply
@Gryllida There is still no app for Wikifunctions, and there are no current plans to develop one. The project itself is still building up its features, so we are focusing on giving new functions (literally) to the community for the time being. Sannita (WMF) (talk) 09:49, 30 October 2024 (UTC)Reply
imo an app to edit wikifunctions seems a bit unnecessary especially given the complexity of how functions work. Zippybonzo (talk) 11:09, 8 November 2024 (UTC)Reply
I would disagree here. Apps would allow for many improvements. I do agree that it is a low priority, but it should happen. Feeglgeef (talk) 14:30, 8 November 2024 (UTC)Reply
I didn't say we're not going to work on one. I'm saying that currently we have no plans on developing one, because we have other priorities at the moment. Also, creating a mobile app would also involve other departments at the Foundation, so it's no small feat. Sannita (WMF) (talk) 10:53, 9 November 2024 (UTC)Reply
Yeah, I agree. I was more replying to Zippybonzo's comment than yours. Feeglgeef (talk) 04:40, 10 November 2024 (UTC)Reply

Automatically subscribed

I added a topic above and was automatically subscribed to it. I didn't see this feature before -- at other wikis I need to subscribe manually to new topics I added. How is this configured?

And how do I automatically subscribe to article and article talk for each article I edited?

Thank you. Gryllida (talk) 23:18, 29 October 2024 (UTC)Reply

To answer your second question: Special:Preferences#mw-prefsection-watchlist "Add pages I create and files I upload to my watchlist". ―Justin (koavf)TCM 23:49, 29 October 2024 (UTC)Reply

New Implementation of is a palindrome (Z10096)

I created a new implementation Javascript-Implementierung von "ist Palindrom" (Z19595) and a new test "Hä, Bierbrei? Bäh!" (Z19593) for is a palindrome (Z10096). Is there a request page where I can apply for the connection?

There are two connected tests:

- "eěe" from UTF-8 hex is a palindrome (Z10551)

- is 👨‍👩‍👧‍👦 palindrome (Z10556)

which should IMHO have a result of "true" (see discussion) and are set to false. Can anyone confirm and change this? --Balû (talk) 10:23, 7 November 2024 (UTC)Reply

Hello! I've connected the implementation and test for you. Feel free to send me a message on my talk page and I can connect something for you. Feeglgeef (talk) 14:12, 7 November 2024 (UTC)Reply
You can make requests here:Wikifunctions:Community portal#Tasks listed by users (click the reply link). GrounderUK (talk) 00:09, 8 November 2024 (UTC)Reply

Wikifunctions & Abstract Wikipedia Newsletter #179 is out: The dream of a Universal Language

There is a new update for Abstract Wikipedia and Wikifunctions. Please, come and read it!

In this issue, we talk about several presentation in and around the topics of languages and our work, we discuss the current refactoring of our functions catalogue and we take a look at the latest software developments.

Want to catch up with the previous updates? Check our archive!

Enjoy the reading! -- User:Sannita (WMF) (talk) 22:50, 7 November 2024 (UTC)Reply

Deletion or recategorization of WF: Notability

This is listed as a policy, but contains policy that is no longer enforced. I would recommend recategorizing it as an essay or deleting it entirely. Feeglgeef (talk) 21:27, 8 November 2024 (UTC)Reply

WF:NOT actually directly contradicts this. Feeglgeef (talk) 22:08, 9 November 2024 (UTC)Reply
It's a draft, although I think notability isn't really needed, and we can just do deletion discussions fwiw, notability for functions seems especially subjective. Zippybonzo (talk) 12:21, 11 November 2024 (UTC)Reply
It's not that we don't think it's needed, it's that it's contradictory to other policies. I think the Policy category needs to be removed from it at the minimum. Feeglgeef (talk) 14:22, 11 November 2024 (UTC)Reply
Yes, that category should be removed. It is not a policy. --Ameisenigel (talk) 16:10, 11 November 2024 (UTC)Reply
Removed the category, given the page is a very short draft it should never have been tagged as such without a discussion here beforehand. Zippybonzo (talk) 08:57, 12 November 2024 (UTC)Reply

Wikifunctions & Abstract Wikipedia Newsletter #180 is out: New type: Rational numbers

There is a new update for Abstract Wikipedia and Wikifunctions. Please, come and read it!

In this issue, we present you our newest Type, rational numbers, as well as the new renderer and parser for natural numbers, and we take a look at the latest software developments.

Want to catch up with the previous updates? Check our archive!

Enjoy the reading! -- User:Sannita (WMF) (talk) 09:40, 14 November 2024 (UTC)Reply

Messed up type of output

Hi, I'm so sorry to be a bother but could someone delete this function page I created? floor of rational number (Z20032): returns the floor of a rational number

I accidentally set the output to a natural number instead of an integer. I don't see anywhere I can correct it so I think it has to be deleted? I got too excited about rational numbers, really sorry about that.

(Also, while I'm here asking for help, how would I go about getting the numerator and denominator directly in Composition? I tried to do that first but got a bit stuck and switched to JS)

Moon motif (talk) 08:53, 16 November 2024 (UTC)Reply

You can change the return type by editing the function https://www.wikifunctions.org/wiki/Z20032?action=edit. I’ve already done that. The test cases fail because they still expect a natural number. You can change those too, if you like, but I think this function duplicates truncate a rational number (Z19682), in which case it’s likely to be deleted eventually. You can request this yourself at Wikifunctions:Requests for deletions
There are functions to extract the numerator and denominator (and the sign). You can see those in the second list of same Rational number object, list composition (Z19911). (In the first list, you can see corresponding examples of the general solution.) There are also functions for extracting the numerator and denominator of the simplified representation: numerator of simplified rational number (Z19722) and denominator of simplified rational number (Z19724).
I’m happy to hear that you’re excited about rational numbers! If you need any more help, please don’t hesitate to ask. It would be interesting to hear, some time, how you “got a bit stuck” in the first place, as feedback into our ongoing usability improvements. GrounderUK (talk) 11:25, 16 November 2024 (UTC)Reply
Floor always rounds down right? So for negative numbers it's not a duplicate of truncate, which rounds toward zero. 99of9 (talk) 12:19, 16 November 2024 (UTC)Reply
Yeah. Feeglgeef (talk) 19:38, 16 November 2024 (UTC)Reply
Makes sense. Thanks! GrounderUK (talk) 20:41, 16 November 2024 (UTC)Reply
Oh! I didn't realize i could just edit it, haha. I think I saw a discussion here earlier about needing to delete a function for a different type and must have thought it would also apply to me. As for getting a bit stuck, I was confused because I thought I would be able to use the "Argument reference" directly to access the numerator, denominator, and sign of the rational number like a kind of "dot notation" (i.e., fraction.numerator or fraction.sign). Though, with the benefit of a good sleep, I can see why a function to get the numerator and denominator makes sense. Thanks for your help! Moon motif (talk) 19:26, 16 November 2024 (UTC)Reply
The correct function if you wanted to do this was Value by key (Z803). The numerator/denominator functions serve as helpful abstractions to make it easier. IMO Value by key should have a greater suggestion/presence in the UI, given it's use. Thanks. Feeglgeef (talk) 19:37, 16 November 2024 (UTC)Reply
Either way is fine by me. That’s why I favour using both in an equality function implementation like same Rational number object, list composition (Z19911), so people can take their pick. Value by key (Z803) has the drawback that the Key reference field is generally disabled the first time you select it in an implementation or test case (the ticket for that is phab:T360580). GrounderUK (talk) 20:57, 16 November 2024 (UTC)Reply

Discord

Thoughts on a Wikifunctions discord server or a channel in the Wikimedia discord? Personally I'm leaning for a whole server because the project is quite abstract, but just wanted to gather some thoughts here. Zippybonzo (talk) 22:00, 16 November 2024 (UTC)Reply

The Telegram is really active, I don't see a need for a Discord. Feeglgeef (talk) 22:32, 16 November 2024 (UTC)Reply
There's a telegram??!! News to me lol. Zippybonzo (talk) 22:35, 16 November 2024 (UTC)Reply
You should join it :). It's at [1] Feeglgeef (talk) 22:43, 16 November 2024 (UTC)Reply
It is linked on Wikifunctions:Main Page… Always has been! GrounderUK (talk) 22:51, 16 November 2024 (UTC)Reply
I mean, there's a link to a link on the Main Page, but still. It's also in the section that's looked past without thinking. Feeglgeef (talk) 22:53, 16 November 2024 (UTC)Reply

Wikifunctions & Abstract Wikipedia Newsletter #181 is out: New special page for missing labels, new type for Gregorian years, and much more

There is a new update for Abstract Wikipedia and Wikifunctions. Please, come and read it!

In this issue, we introduce a new special page for objects with a missing label, we present two new types (Gregorian year and Wikidata statement rank), we showcase several contributions made by you volunteers, and we take a look at the latest software developments.

Want to catch up with the previous updates? Check our archive!

Enjoy the reading! -- User:Sannita (WMF) (talk) 18:23, 22 November 2024 (UTC)Reply

Timing of the next Volunteers' Corner

As we discussed in our latest status update, we will be postponing by one week our next Volunteers' Corner from December 2 to December 9.

We are also considering to anticipate it to an earlier time slot, that would be 15:30 UTC instead of the usual 18:30 UTC. Is it ok for you? Do you prefer the new time or the old time? Let us know! Sannita (WMF) (talk) 18:28, 22 November 2024 (UTC)Reply

Search for functions, excluding test cases

I tried to search for functions involving ISBN but the result contains both actual functions such as is valid ISBN, Python (Z16842) and test cases such as 9992158107 is valid ISBN-10 (Z11708). Is there or will there be a way to differentiate both in search? JakobVoss (talk) 14:38, 25 November 2024 (UTC)Reply

Not currently, but it's planed in the future. Thanks! Feeglgeef (talk) 14:52, 25 November 2024 (UTC)Reply
You can also put "Z8" in "exactly this text" in the advanced search menu, but if an object mentions Z8 and is not a function for some reason, it will still be show, but it works as a solution for the time being. Feeglgeef (talk) 14:53, 25 November 2024 (UTC)Reply
Try
https://www.wikifunctions.org/w/index.php?fulltext=1&ns0=1&profile=advanced&search=ISBN+Z8K1&title=Special%3ASearch
Adding “Z8K1” will tend to exclude objects that are not of type Function (Z8). (Similarly, adding “Z14K1” will tend to return only objects of type Implementation (Z14) and adding “Z20K1” will tend to return only objects of type Test case (Z20).) GrounderUK (talk) 14:59, 25 November 2024 (UTC)Reply
You can get even more accurate if you have it match exactly '"Z2K2": { "Z1K1": "Z8"' Feeglgeef (talk) 15:07, 25 November 2024 (UTC)Reply
Thanks! If every ZObjects must have Type, filtering by type seems an important criteria for search. I managed to get a list of types via https://www.wikifunctions.org/w/index.php?search=%22Z1K1%3AZ4%22&title=Special:Search&ns0=1 JakobVoss (talk) 10:12, 26 November 2024 (UTC)Reply
Yes. We do have Special:ListObjectsByType and type-specific lists like Special:ListObjectsByType/Z4 but these cannot be filtered or searched yet. Your approach using a (case insensitive) z1k1:z… search term is probably as good as it gets currently, being both reliable and relatively simple. Thank you for sharing! GrounderUK (talk) 11:01, 26 November 2024 (UTC)Reply