Абстрактна Вікіпедія/Оновлення/2021-04-08

From Meta, a Wikimedia project coordination wiki
This page is a translated version of the page Abstract Wikipedia/Updates/2021-04-08 and the translation is 23% complete.
Оновлення Абстрактної Вікіпедії Translate

Абстрактна Вікіпедія (список розсилки) Абстрактна Вікіпедія в ICR Абстрактна Вікіпедія в Телеграм Wikifunctions on Mastodon Абстрактна Вікіпедія у Твіттері Абстрактна Вікіпедія у Фейсбуці Абстрактна Вікіпедія на Ютубі Сторінка проекту Абстрактні Вікіпедії Translate

Програмна заява Вікіфункцій

Кілька днів тому нас попросили опис цілі Вікіфункцій, і ми зрозуміли, що у нас її ще немає.

Потім Джеймс Форрестер написав першу чернетку, яку команда трохи вдосконалила, навмисно натхненною мовою, яка використовується в баченні руху Вікімедіа:

"Проєкт Вікімедіа для всіх, щоб спільно створити та підтримувати бібліотеку функцій коду для підтримки проєктів Вікімедіа, а також, щоб усі могли викликати та повторно використовувати природні мови та мови програмування у світі".

Я не сподіваюся, що це буде остаточна версія, і вас усіх запрошують її покращити. Нам звернули увагу на те, що вона все ще трохи довга й багатослівна.

Тим не менш, давайте уважніше розглянемо текст, яким він є зараз:

“Проєкт Вікімедіа”:
Вікіфункції — це проєкт руху Вікімедіа в тому ж сенсі, що й Вікіпедія, Вікідані, Вікісловник, Вікісховище та інші сім проектів вільного та відкритого контенту. У цьому сенсі це і безкоштовний вікі-сайт, і відкрита спільнота.
“для всіх”:
When you think about the question of who will benefit from Wikifunctions, the answer is that we target everyone. There are practical limitations in reaching truly everyone: for example, a computer is a prerequisite for being able to benefit from Wikifunctions. That is different from e.g. Wikipedia or Wikivoyage, where the print-out of a page can be very useful without having to have a computer. But for a function to be useful, a computer will be needed in order to evaluate the function. Besides such limitations, we aim to be accessible, to be multilingual, and to run in many different contexts, both on- and offline.
“to collaboratively create and maintain”:
Collaborative creation and maintenance is the core tenet of the Wikimedia projects. We don’t want individuals to have “ownership” over a function or a set of functions, to control what is accepted to the project, or decide which changes would be welcome. This is a collaborative effort, and the default assumption is that everyone can contribute new function definitions, implementations for new functions, that everyone can improve the documentation and the test coverage of these.
“a library of code functions”:
This defines the new knowledge format that this project is addressing: code functions. We are not talking about mathematical functions, but about functions for which we can provide executable implementations. We want to build a shared library of such functions that are connected with each other, that use each other, and that are built on top of each other. A single, comprehensive, common library also helps us to truly build on each other’s work. For example, if one searches the Web today for a function that calculates how many days have passed between two given dates, one can easily find faulty implementations that do not take leap days into account.
By having one common library of functions to which anyone can contribute, we hope that we can increase the overall quality of code in the world.
“to support the Wikimedia projects”:
As with Commons and Wikidata, the founding, primary goal of Wikifunctions is to support the Wikimedia projects. We want to first focus on functions that are useful for the Wikimedia projects, that can help reduce the maintenance costs in the other projects, and unlock new capabilities for the projects that have not been possible before.
“and beyond”:
Alongside the primary goal, we don’t want to restrict the functions to only what is directly useful for the Wikimedia projects. On the contrary, we want to provide a comprehensive library of functions useful in many different areas: text processing, mathematics, natural sciences, health care, environmental studies, decision making, natural language generation, and many other areas.
“for everyone to call”:
Everyone will be able to go to Wikifunctions, find a function, enter the input arguments, and have the system evaluate the function and see the result. We plan that making these calls will be possible via direct evaluation on the Wikifunctions site, via inclusion on a Wikimedia project, and via API calls. We expect there to be substantial value to the world exposed through the API and its use on third party sites, tools, and apps, in the same way that Wikidata statements, Wikimedia Commons media files, and snippets of Wikipedia and other prose content projects are re-used around the Web. Using a function does not need to be a direct experience, but can also be embedded in another experience: for example, it should be easy for a spreadsheet user to use a function from Wikifunctions, or to allow third-party apps to use functions from Wikifunctions, to have Wikifunctions functions be exposed through voice interfaces or command lines, and many more ways.
”and re-use”:
For many people and use cases the above direct calls will be sufficient. But we cannot provide the computational resources for everyone and for all use cases. So we must make it easy for a user to take functions from Wikifunctions and re-use them, running them on computational resources they provide, or embed them in completely new contexts. As with all other Wikimedia projects, it should be very easy to download or export code from Wikifunctions for use elsewhere, as well as the simpler direct calls.
“in the world’s natural”:
Wikifunctions aims to support all the languages of our users — our editors, our functionaries, our translators, our readers, our re-users, and all the people we don't yet reach. It will be possible to run functions in Wikifunctions from an interface in the language of the user, but also the natural language generation libraries in Wikifunctions will target hundreds of languages.
“and programming languages.”:
Wikifunctions will allow people to write function implementations in a large number of programming languages. Unfortunately, adding a programming language to Wikifunctions will always be a bit of work, which will be somewhat of a bottleneck, and will require us to stage the deployment of programming languages. We will start with supporting Python and JavaScript by the time Wikifunctions launches, but we aim to support many other languages in a relatively short period of time.

Thanks to Moriel Schottlender and Diana Montalion for prompting the question, and everyone on the team and beyond for thinking through it and helping with getting to a first draft of the mission statement.