Вікіфункції:ЧаПи

From Wikifunctions
This page is a translated version of the page Wikifunctions:FAQ and the translation is 63% complete.
Скорочення:
WF:FAQ

Це спеціальна сторінка для частих запитань про Вікіфункції. Будь ласка, не соромтеся задати своє питання на сторінці обговорення, якщо ваше питання не вказано тут!

Also, please consider our FAQ on Meta regarding more general questions about Wikifunctions and/or Abstract Wikipedia.

Вступ

Про що цей проєкт?

Вікіфункції — це новий проєкт Вікімедіа, що надає каталог всіх видів функцій, які може будь-хто викликати, писати, обслуговувати та використовувати. Він також надає базову технологію, що в майбутньому дозволить переклад мовно-незалежних статей із Абстрактної Вікіпедії на мову будь-якої Вікіпедії. Це дозволить кожному робити свої внески та читати статті мовами, яким вони надають перевагу.

Що таке функція?

Функції — це форма знань, яка може відповісти на запитання, наприклад, скільки днів минуло між двома датами або яка відстань між двома містами. Складніші функції можуть відповісти на складніші запитання, наприклад, який об'єм тривимірної форми, яка відстань між Марсом і Венерою на певну дату або чи жили два види одночасно.

Ми вже використовуємо функції в багатьох типах запитів на знання, наприклад, ставлячи запитання пошуковій системі. Шаблони, такі як Template:Convert і Template:Age в англійській Вікіпедії, також є прикладами функцій, які вже використовуються в багатьох Вікіпедіях, написані у вікітексті та Lua та вручну скопійовані до кожної вікі, де вони потрібні.

Що таке реалізація?

Реалізація — це конкретний спосіб виконання функції. Реалізація — це рецепт, який перераховує кроки, необхідні для запуску функції. Це може бути шматок коду на мові програмування, або комбінація викликів інших функцій. Функція може мати багато реалізацій, які всі повинні бути еквівалентними.

Що таке тест?

Тест — це спосіб визначити, чи правильно виконується ця функція. Функція, як правило, має кілька тестерів, кожен із яких визначає певний вхід функції та умови, яким повинен відповідати вихід для цього входу.

Наприклад, тестувальники для функції «регістр назви» можуть включати: «abc» повинно стати «Abc»; «war and peace» повинно стати «War and Peace»; «война и мир» повинно стати «Война и мир» та «123» повинно залишитися «123».

Які функції доступні зараз, які будуть доступні незабаром, і які пізніше?

  • На старті:
    • Ми маємо можливість мати функції, що працюють з рядками (Strings) та булевими змінними (Booleans).
    • Вікіфункції будуть повністю інтернаціоналізовані із самого початку. Вони можуть бути використанні в будь-якій мові.
  • Поточна розробка:
    • загальні типи і загальні функції не повністю підтримуються.
    • Зараз додавання типів є чимось, що обмежено командою розробників. У майбутньому спільнота матиме змогу додавати більше типів самостійно. Є дуже багато роботи на майбутнє, щоб зробити поведінку типів більш плавною.
      • Одним особливо зацікавленим типом буде бінарний тип, а особливо, файли.
    • Зараз ми підтримуємо дві мови програмування для реалізації, JavaSript і Python. В майбутньому, ми хочемо підтримувати багато інших мов.
    • Наразі не можливо викликати інші функції з реалізацій, написаних мовою програмування. Тепер це можливо лише через композицію.
  • У майбутньому:
    • Буде можливість викликати функції Вікіфункції з інших проєктів Вікімедіа та інтегрувати їхні результати у виводі сторінки.
    • Буде можливість використовувати дані із Вікіданих у функціях.
    • Буде можливість викликати набори даних із простору Commons Data.

Як Вікіфункції є багатомовними?

Вікіфункції й абстрактна Вікіпедія є багатомовними різними способами, які не впливають один на одного:

  • Wikifunctions is multilingual in terms of its content and user interface. Users can read and call functions on Wikifunctions in any natural language. Here is the “join string” function in English, Polish, and Hebrew, and it is available in many more languages.
  • Contributors can edit and improve Wikifunctions using their language. Even implementations can be edited in the natural language of the contributor. For example, the composition of the “and” function can be edited in German, English, or any other of about 300 languages.
  • Wikifunctions functions can be used to create results for any natural language. The community is creating a growing number of functions to support the generation of text in many natural languages. We have functions for Breton, Rohingya, English, and many other languages.
  • Functions in Wikifunctions can be implemented in various different programming languages. For example, the join function is implemented in both JavaScript and in Python.

Які мови програмування зараз підтримуються Вікіфункціями? Які мови програмування підтримуватимуться в майбутньому?

Currently, Wikifunctions supports implementations written in JavaScript and Python. We plan to add support for more programming languages in the future. We hope to add at least one further programming language in 2024 (but have not yet decided which one).

Як Вікіфункції будуть інтегровані в інші проєкти?

Wikifunctions is the first step towards building Abstract Wikipedia. Our near-term focus will be on supporting the community and making improvements based on feedback. Concurrently we will begin the process of integrating it with Wikipedia and Wikidata, which will enable broader real-life applications and get us closer to the vision of Abstract Wikipedia.

Contributors will be able to call functions from Wikifunctions from within their wikis. For readers of the wiki, the result of the function call will be displayed. This can be used, for example, to calculate the age of a person, the population density based on population and area data from Wikidata, or to draw a graph and integrate it into a given article.

Another option to integrate Wikifunctions will be to integrate an interactive function call interface within their wiki. This could be used, for example, in a Wikipedia article to dynamically calculate the result of a physical equation based on reader-provided parameters, draw and interact with mathematical functions, etc.

Чим не є Вікіфункції?

Будь ласка, ознайомтесь із Вікіфункції:Чим не є Вікіфункції для детальнішої інформації про це.

Під якою ліцензією перебуватимуть функції та похідний контент?

Per the discussion happened on Meta between November and December 2021, all contributions to Wikifunctions and the wider Abstract Wikipedia projects will be published under free licenses. In particular:

There are still some points that will need to be addressed in the future, such as the license of the generated content from the abstract content. We plan on drafting a more comprehensive document with the Legal department about how people can re-use code from Wikifunctions as painlessly as possible, while adhering to the license.

Участь

Я тут новачок. Що мені робити і чим я можу допомогти?

Welcome! We're very happy to have you here! There are many opportunities for contributing to Wikifunctions, from creating new functions to improving and translating documentation. If you are looking for ways to get involved, we recommend that maybe, depending on your level of comfort, you suggest a new function on a topic you are interested in. Or even create such a function. Provide some tests. Try your hand at an implementation. Help with translations. Read and improve our documentation. Help with organizing the community.

Як створити нову функцію, реалізацію або тест?

To see how to create a new function, implementation, or test, see Wikifunctions:Introduction.

To see in more detail how to create an implementation, see Wikifunctions:How to create implementations.

Що мені редагувати спочатку?

If you speak several languages, find functions that don't have labels and descriptions in your languages yet, and help adding these.

If you have some interest in a domain that could feature functions in Wikifunctions, but yet doesn't, or if you have more ideas for functions, go to the page for suggesting new functions, and present your ideas.

If you are a coder in JavaScript or Python, maybe you want to check for functions that don't yet have implementations in JavaScript or Python, and try to write them.

Куди я можу звернутися за допомогою?

Your first stop should be the Help portal where you'll find all the documentation related to using and editing Wikifunctions. If you're still stuck, post a message on Project chat, someone will answer your question.

Як ми сортуємо або класифікуємо функції?

Tracked in Phabricator:
Task T285424

For now, the best way to sort or categorize functions is doing it by hand through pages in the Wikifunctions namespace. Another option would be through the talk page of the given function. We will monitor these efforts, and discuss with the community which changes to the system would be helpful for this task.