Mailing List Archive

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


Thanks for responding to my email. This has been very helpful in
understanding the true point of wikifunctions, and I'm glad I have
helped in letting you know how to refine the documentations!


1)

I knew wikipedia could already be considered an encyclopedia of
algorithms, I just thought it would make sense to have a concentrated
wiki for them, but I guess that's just my opinion.

So from what I am reading, I guess the usage of a function in
wikifunctions' context is different to a function in a programming (or a
mathematical) context, meaning that for wikifunctions, it wants the
functions to be more used to create things for the wikimedia project
(such as, as you say: encyclopedias, text books, interactive content)
instead of being used to help within programming (which may inevitably
happen as a happy side effect).

You mention that "there will be many algorithms that we won’t be able to
represent given the intentional system design trade-offs", what is meant
by these "intentional system design trade-offs". Although it does still
make sense as to why you would rather wikifuntions to be a library of
functions over a library of algorithms.


2)

I would also have guessed that the reason many functions are fairly
trivial due to it being so new. So I would like to ask, is there some
sort of list of functions that wikifuntions wants to add that haven't
been implemented yet, because I'd love to be able to help with adding
more into it!


3)

If the functions being implemented like `Z10124(Z10124K1)` is merely a
UI think, I think that I will fix some of them (if that's OK!).


4 & 5)

So does this mean that the many natural language functions are functions
for translating between languages? Because from what I can tell this
"Abstract wikipedia" means that only one "true article" is written and
then translated for the user. And will the "abstract article" be in
English, or will it translate from, for example, French to German?

Also if it is for translating between languages, then why have
programming functions? Although, from reading the article you sent
(https://cacm.acm.org/magazines/2021/4/251343-building-a-multilingual-wikipedia/fulltext)
are they just helpers from getting data from Wikidata?


x)

Thanks for these links, I will joins these!

I think that number types are a good next step!


6)

Yes, if you could give some pointers as to how to join you, that would
be great!



Thank you a lot, this has definitely been of help (and don't apologise
for the lengthy answer, it's exactly what I wanted).

- Noah Poulton.


On 13/02/2024 17:07, Denny Vrande?i? wrote:
> 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
>
>
> _______________________________________________
> Wikimedia-l mailing list --wikimedia-l@lists.wikimedia.org, guidelines at:https://meta.wikimedia.org/wiki/Mailing_lists/Guidelines andhttps://meta.wikimedia.org/wiki/Wikimedia-l
> Public archives athttps://lists.wikimedia.org/hyperkitty/list/wikimedia-l@lists.wikimedia.org/message/LKCABXPQNUHUAT5DMGXXOCK7FHPYEEGI/
> To unsubscribe send an email towikimedia-l-leave@lists.wikimedia.org