Jump to content

ויקיפונקציות:שאלות ותשובות

From Wikifunctions
This page is a translated version of the page Wikifunctions:FAQ and the translation is 35% complete.
קיצור דרך:

דף זה מוקדש לשאלות נפוצות על ויקיפונקציות. אם אין בדף זה תשובות לשאלותיכם, אנא, הרגישו חופשיים לשאול אותן בדף השיחה!

בנוסף, ישנו דף שאלות ותשובות במטא, העוסק בשאלות יותר כלליות על ויקיפונקציות ו/או ויקיפדיה המופשטת.


במה המיזם עוסק?

ויקיפונקציות היא מיזם ויקימדיה חדשה שמספק קטלוג של כל מיני פונקציות שכל אחד יכול לקרוא להן, לכתוב, לתחזק, ולהשתמש. ויקיפונקציות מספקת את יסודות הטכנולוגיה שתאפשר בסופו של דבר את התרגום של ערכים בלתי־תלויים בשפה מוויקיפדיה המופשטת לשפה של כל ויקיפדיה אחרת. היא תאפשר לכולם לתרום ולקרוא ערכים בשפה המועדפת עליהם.

מהי פונקציה?

פונקציות הוא סוג של ידע שיכול לעשות על שאלות, כמו כמה ימים עברו בין שני תאריכים, או מהו המרחק בין שתי ערכים. פונקציות מורכבות יותר יכולות לענות על שאלות מורכבות יותר, כמו מה הנפח של צורה תלת ממדית, המרחק בין מאדים ונוגה בתאריך מסוים, או האם שני מינים חיו באותו הזמן.

אנו כבר משתמשים בפונקציות בסוגים רבים של פניות לקבלת ידע, כמו שאילה של שאלה במנוע חיפוש. התבניות, כמו תבנית:Convert ותבנית:Age בוויקיפדיה האנגלית, הן גם דוגמאות לפונקציות שכבר משמשות בוויקיפדיות רבות, כתובות בקוד־ויקי ובלואה (Lua) ומועתקות ידנית לכל ויקי לפי הצורך.

מהו מימוש?

מימוש הוא דרך מסוימת לבצע פונקציה. מימוש הוא מתכון שמפרט את הצעדים הדרושים להרצת הפונקציה. הוא יכול להיות פיסת קוד בשפת תכנות, או שילוב של קריאות לפונקציות אחרות. לפונקציה יכולים להיות מימושים רבים, שעל כולם להיות שקולים זה לזה.

מהי בדיקה?

בדיקה (וגם, "בודק" או "מקרה בדיקה"), היא דרך לקבוע האם פונקציה נתונה עושה את הדבר הנכון. לרוב, לפונקציה יהיו מספר בדיקות, שכל אחת מציינת קלט כלשהו לפונקציה והתנאים שהפלט התואם נדרש לקיים.

לדוגמה, בוחנים לתפקיד "תיק כותרת" עשויים לכלול: "abc"‏ צריך להיות "Abc"‏; "war and peace"‏ צריך להיות " War and Peace"‏; "война и мир"‏ צריך להיות " война и мир"‏; ו"123"‏ צריך להישאר "123"‏.

אילו מאפיינים זמינים כעת, אילו יהיו זמינים בקרוב, ואילו בהמשך?

  • בהשקה:
    • We have the ability to have functions that work with Strings and Booleans.
    • Wikifunctions will be fully internationalized from the beginning. It can be used in any language.
  • בפיתוח מתמשך:
    • generic types and generic functions are not fully supported.
    • Adding types will, for now, be something that is limited to the development team. In the future, the community will be able to add more types themselves. There is a lot of work in the future to make types behave much smoother.
      • One particularly interesting type will be binary data, and particularly files.
    • We currently support two programming languages for implementations, JavaScript and Python. In the future, we want to support many more.
    • It currently is not possible to call other functions from implementations written in a programming language. This is currently only possible through composition.
  • בעתיד:
    • It will be possible to call Wikifunctions functions from other Wikimedia projects, and integrate their results in the output of the page.
    • It will be possible to use data from Wikidata in functions.
    • It will be possible to call data sets from Commons Data namespace.

How is Wikifunctions multilingual?

Wikifunctions and Abstract Wikipedia are multilingual in a number of different ways which do not impact each other:

  • 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.

Which programming languages does Wikifunctions currently support? Which programming languages will be supported in the future?

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).

How will Wikifunctions be integrated into other projects?

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.


I'm new here. What is there for me to do and how can I help?

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.

How do I create a new function, implementation, or test?

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.

What should I edit first?

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.

Where can I go for help?

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.

How do we sort or categorize functions?

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.