Abstract Wikipedia/概要

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
This page is a translated version of the page Abstract Wikipedia/Overview and the translation is 71% complete.
Wikifunctionsの最初の目標はウィキメディアのプロジェクト群のサポートですが、ウィキデータと同様にその先の目標もサポートします。これはウィキペディアの先にあるWikifunctionsの説明です。
ミッションステートメント
誰もが共同でコード関数のライブラリを作成および維持して、ウィキメディアプロジェクト以降をサポートし、誰もが世界の自然言語およびプログラミング言語で呼び出して再利用できるようにするためのウィキメディアプロジェクト

Wikifunctionsは誰でも使用したり貢献したりできるオープンなコードのリポジトリです。

Wikifunctionsの各ページは、関数を表しています。関数は、説明、パラメータのリスト、テストケース、異なるプログラミング言語での実装のリスト、およびさらなるメタデータを持ちます。実装は、他のソフトウェアプロジェクト(プライベートアプリやスクリプト)で再利用したり、オンラインで呼び出したり実行したり(ブラウザだけ、クラウド環境、Jupyter[1]やPAWS[2]ノートブック)、より複雑な機能を実現するために構成したり、署名、分析、検証したりと、さまざまなことが可能です。

WikifunctionsはWikipedia、Wikidata、Wiktionaryなどの精神を受け継いだプロジェクトで、世界中の貢献者が関数のライブラリを作成・管理し、誰でもどんな目的にも利用できるようにするものです。すべての関数は、異なるプログラミング言語による複数の実装、テストケース、事前条件と事後条件、ドキュメント、異なる実装に対する実行時間の見積もりと複雑さの保証の形のメタデータなどでサポートすることができる。ユーザーは、ウェブサイト上で直接関数を呼び出すことも、独自のコードやアプリケーション、コマンドラインインターフェース、またはローカルアプリケーションから呼び出すこともできます。関数は、ブラウザでローカルに実行されるか、クラウドで実行されるか、またはローカルでユーザーのアプリケーション内に組み込まれます。

Wikifunctionsは、広く再利用できる定義された関数の共通カタログと、その場で素早く関数を組み合わせて実行できる環境の両方を作ることを目的としています。Wikifunctionsは、開発者にとっては外部ライブラリのようにこのリポジトリに依存することができ、エンドユーザにとっては必要に応じて関数を呼び出すことができるようにすることを目指しています。

サンドボックスでの安全な実行を可能にするため、全ての関数は純粋である。また、すべての実装はメタデータで注釈され、暗号化された状態で署名することができる。エンドユーザーは、利用可能なハードウェアリソースやWeb of Trustの設定に応じて、各機能の実装を選択し、監査することができる。

Wikifunctions will allow easy access to large knowledge bases such as Wikidata, but also to binary input and output files. It is entirely possible to upload an image as an input file and return analysis results such as what is depicted on the image, or how many different colors the image has – or a different binary, e.g. in a different format. This will be made available to workflows on Wikimedia Commons.

Wikifunctions continues the tradition of moving more computation, which has usually happened on the command line or with apps by more computer savvy computer users, to the Web and democratize access to functionality that was not available before. At the same time, it will increase the productivity of developers everywhere as they can just use a large library of code instead of relying on properly copy and pasting answers from StackOverflow.

Unlike in Wikipedia, contributors will mostly create new implementations for a function instead of updating existing functions. The implementations can be automatically tested against the given tests, against each other, and further analyzed.

Implementations can be written in a number of different programming languages, and yet to be able to call functions implemented in other programming languages. The execution engine can smoothly (although not necessarily with the highest possible performance) operate in different languages. Although in most cases there is a large performance boost by composing functions within a single programming language, there is no requirement to do so. In many cases, the speed of development and the developer's time will be more valuable than the additional computer cycles spent in the execution engine.

関連項目