Mailing List Archive

[Wikimedia-l] Re: Wikifunctions needs more love!
Hi Noah,

Thank you for your interest in Wikifunctions! And I agree, I would love to
see much more love for WIkifunctions :) You’re asking exactly the right
questions, and thank you for raising them here, as it allows us to refine
the FAQs and the documentation for Wikifunctions, so that it becomes
hopefully clearer for people in the future who make the same journey of
discovery that you had.

Answering your questions requires me to make a few subtle differentiations,
and I apologize for the lengthy answer.

1) Why is Wikifunctions not an “encyclopedia of algorithms”?

The Wikimedia movement already has an encyclopedia of algorithms. It's
called Wikipedia.

Wikifunctions is a platform with which the Wikimedia community will, in
time, be able to use functions to build encyclopedias, text books,
interactive content, and much more. We're not interested in functions for
their own sake, or just as a way of documenting interesting code. We're
looking for functions that are valuable for the Wikimedia's community's
content. Some educational content could indeed be a comparative gallery of
different algorithmic approaches to the same broad problem, but that's a
limited area of interest compared to natural language generation, data
processing, and the general computational needs that our communities have
already shown the need for.

Indeed, Wikifunctions makes a distinction between a function – which
answers a question – and its implementation – the mechanics of creating an
answer for a question. Algorithms are directly relevant for an
implementation. The focus of Wikifunctions is on functions, not on
implementations and thus algorithms (although the latter are obviously
crucially needed for the former).

We are worried that by calling ourselves an “encyclopedia of algorithms” we
would create expectations that one should, or can easily, capture a diverse
set of algorithms in Wikifunctions. But there will be many algorithms that
we won’t be able to represent given the intentional system design
trade-offs (e.g. Shor’s algorithm -
https://en.wikipedia.org/wiki/Shor%27s_algorithm ), and a lot that are not
immediately useful in Wikifunctions. This is why we prefer to present
Wikifunctions as a library of functions instead. The difference is subtle,
but we hope it makes sense.

We are not against people being motivated by providing a set of standard
algorithms through Wikifunctions, but be warned that they might find
themselves being somewhat frustrated because the requirements for such a
goal will not be prioritized by the development team.

We are happy to discuss this point more, as it helps to sharpen our shared
understanding and wording around the goal of Wikifunctions.

2) Why are pretty much all the functions trivial?

I am sure it is because we just started. Public availability of
Wikifunctions only opened two months ago, and we have more than 600
functions available. It is to be expected that many of these early
functions will be also available in standard libraries, particularly of
languages such as Python which are known for having expansive standard
libraries - https://xkcd.com/353/

Having said that, you point to the “70% of natural language generation
functions”. These are in fact often not covered by standard libraries, and
not just wrappers around existing standard library functions.

You can provide more than one implementation in one language, i.e. there
being an implementation of SHA-256 using the standard Python hashlib does
not mean you cannot implement it in Python without using the function from
the library. That’s totally OK. Just no one did it yet.

3) Why are all the functions named something like `Z10124(Z10124K1)`?

They’re not. That’s something we need to improve in the UI. The name of the
function with the ZID Z10124 - https://www.wikifunctions.org/view/en/Z10124
- is, in English, SHA-256. Each function has names in different languages.
We still have a few spots where the IDs are directly visible. We want to
reduce the number of such spots. If you would like to help us with that,
you would be very welcome.

4) Why are there so many natural language functions?

Because one of the main goals of Wikifunctions is to provide the functions
necessary for Abstract Wikipedia.

5) What is meant by this?

Abstract Wikipedia, as well as why it is built on top of Wikifunctions, is
described further here:
https://cacm.acm.org/magazines/2021/4/251343-building-a-multilingual-wikipedia/fulltext

In short: we are aiming to use natural language generation functions in
order to create accurate Wikipedia articles in many different languages
from a single abstract representation about a topic. These articles can be
used to fill current gaps in many language editions of Wikipedia. At the
same time, the abstract representation would be maintained only once, but
automatically kept up to date in all participating languages.

x) Why do we only have functions for strings, booleans, and lists?

Because we are still working on supporting more types. You can follow our
progress through our weekly updates:
https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates
https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates

We are working right now on the features necessary to support our next
type, numbers. That should allow for many more algorithms and functions
that will need to be created and maintained.

6) What can I do to help it reach its full potential?

Join us! Join us in working on the functions we have, suggesting and
creating new functions, creating more tests and implementations. Join our
community in our discussions. Join us as a volunteer contributor to the
codebase of Wikifunctions itself.

If you need pointers on how to join us, let us know.

I hope this clarifies a few things!
Cheers,
Denny

On Sat, Feb 10, 2024 at 12:31?AM noah poulton <noahpoulton2@gmail.com>
wrote:

> Hello everyone!
>
>
> I have been a somewhat active user of wikipedia and other wikimedia
> websites, and a while ago, I found out about wikifunctions. (As well as the
> Mailing lists!!)
>
>
> At first, I thought it would be a useful programming tool, a repository of
> useful functions; however a lot of the functions there are seemingly
> trivial.
>
> Examples of such "trivial" functions are:
> substring exists
> To Uppercase <https://www.wikifunctions.org/view/en/Z10018> (as well as
> "To lowercase")
>
> and most of the other functions "advertised" (for lack of a better term)
> in the "Functions to try out" section.
>
>
> Then I go to more functions...
> <https://www.wikifunctions.org/wiki/Wikifunctions:Catalogue> and there
> are a lot of just string and boolean functions (*).
>
>
> And then there are a lot of "functions" to do with natural languages.
> Which take up a good (70% at a guess) chunk of all of the functions.
>
>
> Finally at the bottom of this there are some list based functions, which
> all seem trivial as well.
>
>
> So now I want to ask a few questions.
>
> 1. In the "What Wikifunctions is not
> <https://www.wikifunctions.org/wiki/Wikifunctions:What_Wikifunctions_is_not>"
> page it says: "Wikifunctions is not an encyclopædia of algorithms". Why
> not? Would it not be better to have a concentrated, standardised place for
> useful algorithms (like Dijkstra's or sorting algorithms)?
> 2. Why are pretty much all of the functions trivial or just use
> built-in functions/modules?
> I get why the languages used (Python and Javascript) are the ones that
> are used (easy to read, high-level, popular languages) however I feel it
> would be better to use less built-in functions/modules, for example
> there is this <https://www.wikifunctions.org/view/en/Z10127> function
> for SHA-256 encryption which literally imports a module, which feels like a
> bad thing to do.
> 3. Why are all the functions named something like `Z10124(Z10124K1)`?
> 4. Why so many natural language functions? It seems to me to be many
> more than all of the actual programming language functions? And, why?
> 5. In the FAQ, it says: "Wikifunctions is the first step towards
> building Abstract Wikipedia." what is meant by this? And, once again,
> why?
> 6. What can I do to help it reach it's full potential? This feels like
> it could be used in future to help (newer) programmers, which would require
> a lot more (complex) functions.
>
>
> I want to finish this by saying that I do not think this is bad; just
> extremely unfinished! I think it has lots and lots of potential, it just
> needs more love from the community, which I hope it gets.
>
>
> Thanks,
>
> Noah Poulton.
>
>
> (*) I am aware that in the FAQ
> <https://www.wikifunctions.org/wiki/Wikifunctions:FAQ> it says "
>
> - At launch:
>
>
> - We have the ability to have functions that work with Strings and
> Booleans.
>
> "
>
> With no explanation other than it being a new project.
>
> _______________________________________________
> Wikimedia-l mailing list -- wikimedia-l@lists.wikimedia.org, guidelines
> at: https://meta.wikimedia.org/wiki/Mailing_lists/Guidelines and
> https://meta.wikimedia.org/wiki/Wikimedia-l
> Public archives at
> https://lists.wikimedia.org/hyperkitty/list/wikimedia-l@lists.wikimedia.org/message/F4BDVOTH65ITMNJG3TBVC34UL45LY4BR/
> To unsubscribe send an email to wikimedia-l-leave@lists.wikimedia.org