Mailing List Archive

[Wikimedia-l] Re: Wikifunctions needs more love!
>
> 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?


Not quite. Quoting a snippet from one of the links that Denny provided
<https://cacm.acm.org/magazines/2021/4/251343-building-a-multilingual-wikipedia/fulltext>
:

The multilingual Wikipedia has two main components: *Abstract Wikipedia
where the content is created and maintained in a language-independent
notation, and Wikifunctions, a project to create, catalog, and maintain
functions. For the multilingual Wikipedia, the most important function is
one that takes content from Abstract Wikipedia and renders it in natural
language, which in turn gets integrated into Wikipedia proper. *

The key point is that articles in Abstract Wikipedia are in a
language-independent notation. Content for readers is then generated from
that notation into various natural languages. So this is not translation of
articles from one natural language to natural language translation, it is
creation of articles from the underlying abstract data independent of any
natural language (hence the name "Abstract Wikipedia".

There's an example on that page
<https://dl.acm.org/cms/attachment/6160b355-5f45-4d3c-a441-51ef2adfd66b/f1.jpg>
of what an article in this abstract notation might look like. Hopefully
that helps to make more sense of the whole idea.

(Disclaimer: I don't work on Abstract Wikipedia or Wikifunctions. I just
enjoy following along. So I might not have stated all that in exactly the
way Denny would have. If Denny says something different, listen to him and
not me.)


Bill Pirkle
Staff Software Engineer
www.wikimediafoundation.org


On Wed, Feb 14, 2024 at 2:24?AM Noah Poulton <noahpoulton2@gmail.com> wrote:

> 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 and https://meta.wikimedia.org/wiki/Wikimedia-l
> Public archives at https://lists.wikimedia.org/hyperkitty/list/wikimedia-l@lists.wikimedia.org/message/LKCABXPQNUHUAT5DMGXXOCK7FHPYEEGI/
> 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 and
> https://meta.wikimedia.org/wiki/Wikimedia-l
> Public archives at
> https://lists.wikimedia.org/hyperkitty/list/wikimedia-l@lists.wikimedia.org/message/EJ6NQ5LY5GPQS7ZIAZEZX7WQUABTM6ZO/
> To unsubscribe send an email to wikimedia-l-leave@lists.wikimedia.org