ウィキファンクションズ:よくある質問
ここはウィキファンクションズに関するよくある質問の専用ページです。ここに記載されていない質問があれば、トークページで質問してください!
Also, please consider our FAQ on Meta regarding more general questions about Wikifunctions and Abstract Wikipedia.
はじめに
ここはどんなプロジェクトですか?
ウィキファンクションズはウィキメディアの新しいプロジェクトで、誰もが呼び出し、作成、維持、利用できるあらゆる種類の関数のカタログを提供しています。また、言語に依存しない記事を抽象ウィキペディアから任意のウィキペディアの言語に翻訳することを最終的に可能にする基盤技術も提供しています。これによって、誰もが自分の好きな言語で記事を投稿したり読んだりすることができます。
関数とは何ですか?
関数とは、2つの日付の間に何日が経過したか、2つの都市の間の距離といった質問に答えることができる知識の一形態です。より複雑な関数は、3次元形状の体積、特定の日付における火星と金星の間の距離、2つの種が同時に生きていたかどうかなど、より複雑な質問に答えることができます。
私たちはすでに、検索エンジンに質問をするなど、多くの種類の知識照会で関数を使用しています。英語版ウィキペディアのTemplate:ConvertやTemplate:Ageなどのテンプレートも、多くのウィキペディアですでに使用されている関数の例であり、ウィキテキストとLuaで記述され、必要な各ウィキに手動でコピーされています。
実装とは何ですか?
実装とは、関数を実行するための決まったやり方です。実装とは、関数の実行に必要な手順をリストしたレシピです。これは、プログラミング言語のコードの一部である場合もあれば、他の関数への呼び出しの組合せである場合もあります。関数には多数の実装があるかもしれませんが、すべて同等である必要があります。
テストとは何ですか?
テストとは、特定の関数が正しいことを行っているかどうかを判断するやり方です。関数には通常、複数のテスターがあり、それぞれが関数への入力と、指定された入力に対する出力が満たさなければならない条件を指定します。
たとえば、「title case」関数のテスターには、「abc」は「Abc」になる、「war and peace」は「War and Peace」になる、「война и мир」は「Война и мир」になる、「123」は「123」のまま、といった内容が含まれるでしょう。
機能のうち現在利用可能なもの、間もなく利用可能になるもの、および随分先になるものはどういったものですか?
- ローンチ時点:
- StringとBooleanを扱う関数を持つことができます。
- ウィキファンクションズは当初から完全に国際化されます。どんな言語でも使うことができます。
- 進行中の開発:
- ジェネリック型とジェネリック関数は完全にはサポートされていません。
- 型の追加は、今のところ開発チームに限定されています。将来的には、コミュニティ自身が型を追加できるようになります。型の動作をよりスムーズにするために、今後多くの作業が行われます。
- 特に興味深い型のひとつは、バイナリデータ、特にファイルです。
- 現在は、JavaScriptとPythonの2つの実装用プログラミング言語をサポートしています。将来的には、さらに多くの言語をサポートしたいと考えています。
- 現在は、他のプログラミング言語で書かれた実装から他の関数を呼び出すことはできません。
- 将来構想:
- 他のWikimediaプロジェクトからウィキファンクションズ関数を呼び出し、その結果をページの出力に統合することが可能となるでしょう。
- 関数内でウィキデータのデータを利用できるようになるでしょう。
- コモンズのデータ名前空間からデータセットを呼び出せるようになるでしょう。
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).
ウィキファンクションズは他のプロジェクトにどのように統合されるでしょうか?
ウィキファンクションズは、抽象ウィキペディアの構築に向けた第一歩です。短期的には、コミュニティをサポートし、フィードバックに基づいて改善を行うことにフォーカスします。同時に、ウィキペディアとウィキデータを統合するプロセスを開始します。これにより、より広範な実生活アプリケーションが可能になり、抽象ウィキペディアのビジョンに近づくことができます。
投稿者は、自分のWiki内からウィキファンクションズを通じて関数を呼び出すことができます。Wikiの読者には、関数呼び出しの結果が表示されます。これは、たとえば、ウィキデータの人口と面積のデータに基づいて年齢、人口密度を計算したり、グラフを描いて特定の記事に統合したりするために使用できます。
ウィキファンクションズを統合するもう1つの選択肢は、対話的な関数呼び出しインターフェースをWiki内に統合することです。これは、例えば、ウィキペディアの記事で、読者が与えたパラメータに基づいて物理方程式の結果を動的に計算したり、数学関数を描画して相互作用したりするのに使えます。
ウィキファンクションズは何でないか
詳細については、Wikifunctions:What Wikifunctions is notを参照してください。
関数と派生コンテンツにはどのようなライセンスが適用されますか?
on Meta between November and December 2021で行われた議論によると、ウィキファンクションズとより広範な抽象ウィキペディアプロジェクトへのすべての貢献は、無料ライセンスの下で公開されます。特に:
- ウィキファンクションズのテキストコンテンツは、CC BY-SA 4.0で公開されます。
- ウィキファンクションズにおける関数シグネチャおよびにそれ以外の構造化コンテンツは、CC 0の下で公開されます。
- ウィキファンクションズのコード実装は、Apache 2ライセンスの下で公開されます。
- 抽象ウィキペディアのAbstract Contentは、CC BY-SA 4.0の下で公開されます。
抽象コンテンツから生成されたコンテンツのライセンスなど、今後対処する必要がある点がまだいくつかあります。ライセンスを遵守しながら、ウィキファンクションズのコードを可能な限り問題なく再利用する方法について、法務部門とより包括的な文書を作成する予定です。
貢献
ここに来るのは初めてです。何かお手伝いできることはありますか?
ようこそ!あなたがここにいてくれてとてもうれしいです!新しい関数の作成から文書の改善や翻訳に至るまで、ウィキファンクションズに貢献する機会はたくさんあります。参加する方法を探しているのであれば、好みのレベルに応じて、興味のあるトピックに新しい関数を提案することをお勧めします。あるいは、そのような関数を作成することもお勧めします。いくつかのテストを提供してください。実装を試してみてください。翻訳を手伝ってください。文書を読んで改善してください。コミュニティの組織化を手伝ってください。
新しい関数、実装、テストを作成するにはどうすればよいですか?
新しい関数、実装、またはテストの作成方法については、Wikifunctions:Introductionを参照してください。
実装の作成方法の詳細については、Wikifunctions:How to create implementationsを参照してください。
最初は何を編集したら良いですか?
もしあなたが複数の言語を話すのであれば、あなたの言語のラベルや説明をまだ持っていない関数を見つけて、それらを追加する手助けをしてください。
もしあなたが、ウィキファンクションズで関数を提供する可能性のあるドメインに興味を持っているがまだ存在していないなかったり、関数についてもっとアイデアがある場合は、suggesting new functionsのページにアクセスして、アイデアを発表してください。
もしあなたがJavaScriptやPythonをコーディングできるのであれば、JavaScriptやPythonでまだ実装されていない関数をチェックして、それらを作成したいと思うかもしれません。
助けがほしいときは、どこに行けばいいですか?
最初に立ち寄るべきはHelp portalで、ウィキデータの使い方や編集の仕方についての説明文書がすべてみつかると思います。それでもまだ行き詰まっているなら、Project chatにメッセージを投稿してみてください。誰かがあなたの質問に答えてくれるでしょう。
関数のソートやカテゴライズはどうしますか?
今のところ、関数をソートしたり分類したりする最善の方法は、Wikifunctions名前空間のページを使って手動で行うことです。もう1つの選択肢は、指定された関数のトークページを使うことです。私たちはこれらの取り組みを監視し、システムのどの変更がこのタスクに役立つかをコミュニティと議論する予定です。