拡張機能:WikiLambda
リリースの状態: 実験的 |
|
|---|---|
| 実装 | パーサー関数, ContentHandler |
| 説明 | Providing Wikimedia wikis with a wikitext parser function to call evaluation of functions written, managed, and evaluated on a central wiki. |
| 作者 | Wikimedia Foundation |
| 互換性の方針 | MediaWiki とともにリリースされるスナップショット。 master には後方互換性がありません。 |
| データベースの変更 | はい |
| ライセンス | MIT ライセンス |
| ダウンロード | |
|
|
|
|
| translatewiki.net で翻訳を利用できる場合は、WikiLambda 拡張機能の翻訳にご協力ください | |
| 問題点 | 未解決のタスク · バグを報告 |
The WikiLambda extension provides for a wiki to host functions written, managed, and evaluated by users, which is used to power wikifunctions.org. It forms the core of the "Wikifunctions" software stack, as part of the work towards Abstract Wikipedia. The system is currently in active development, with the front-end written in Vue.js and using the new Codex interface library. Wikifunctions via WikiLambda will later provide Wikimedia wikis with a wikitext parser function to make evaluations from Wikifunctions on their local wiki.
はじめに

Wikifunctions is a MediaWiki installation on which function content, but not output, is stored. This content takes the form of programmatic descriptions of each available function ("Functions"), actual user-written code for these functions ("Implementations"), test suites for these functions ("Testers"), and human-facing documentation about these functions, alongside the usual wiki community management content like village pumps, discussion areas, and policy pages.
Requests for function calls can come in directly via a Web request, or via MediaWiki (probably through a parser function like {{#wikifunction:…}}, but this is not yet decided). The function orchestrator determines the specifics of the request, checks the cache to see if the output value has been recently provided, and either returns that or proceeds to trigger an evaluation. To do that, it fetches all relevant content from the cluster, be that published function content (or mid-edit as-yet-unpublished function content being "previewed") from Wikifunctions, or structured content on which functions can operate from Wikidata and Wikimedia Commons. The complete bundle of code to execute and inputs on which to execute are then passed to the appropriate function executor, which then securely tries to execute the input and returns the output (or a failure error). The orchestrator then writes the successful result to the cache and transmits it to the consumer.
The WikiLambda extension is responsible for content management of the content on the Wikifunctions wiki (like the Wikibase Repository extension), providing editing interfaces, restricting users from or warning about certain actions, and providing a reading and test execution interface, and the integration of content requests on all Wikimedia wikis (like the Wikibase Client extension). User-written code is never executed in the context of the production environment, and thus never has access to sensitive content, but is only run in isolated, disposable instances.
始めてみよう
インストール
- ダウンロードして、ファイルを
extensions/フォルダー内のWikiLambdaという名前のディレクトリ内に配置します。
開発者とコード寄稿者は、上記の代わりに以下を使用してGitからインストールします:cd extensions/ git clone --recurse-submodules https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLambda
- Gitでのインストールの場合のみ、PHPの依存関係をインストールするためComposerを実行します。 (合併症の可能性についてはT173141を参照。)
- 以下のコードを LocalSettings.php ファイルの末尾に追加します:
wfLoadExtension( 'WikiLambda' );
- 更新スクリプトを実行します。このスクリプトは、この拡張機能が必要とするデータベーステーブルを自動的に作成します。
完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。
バックエンドサービスのインストール
If you wish you install the back-end services to use the WikiLambda software, you must do so and configure them. Instructions are subject to change, and so only provided within the repo.
局所的テスト
(TODO)
コードのスチュワード権限
- Abstract Wikipedia team が保守しています。
- ライブ チャット (IRC): #wikipedia-abstract-tech 接続
- 問題点追跡: Phabricator wikilambda (問題点を報告)
関連項目
- MediaWiki-Docker/Extension/WikiLambda
- コードの説明文書:
- PHP向け
- JS向け
- コードカバレッジ (PHP)
- 関数評価器サービス
- 関数オーケストレータサービス
- 関数スキーマタ共有ライブラリ
- 抽象ウィキペディア・アーキテクチャ
- 抽象ウィキペディアの開発者チートシート
下位ページ
- API
- Approving Implementations and Testers
- Approving Implementations and Testers/de
- Approving Implementations and Testers/en
- Approving Implementations and Testers/ru
- Approving Implementations and Testers/uk
- CLI
- Coding Conventions
- Core objects
- Creating Objects
- Development environment
- Discovery needs
- Frontend Architecture
- Granular Edit Authorization
- Jupyter kernel proposal
- Metrics
- Metrics Implementation
- User stories
- de
- en
- examples/multiply.json
- ja
- pl
- pt
- uk
- wikilambda zlanguages table
- wikilambda zobject function join table
- wikilambda zobject join table
- wikilambda zobject label conflicts table
- wikilambda zobject labels table
- wikilambda ztester results table
| この拡張機能は 1 つ以上のウィキメディアのプロジェクトで使用されています。 これはおそらく、この拡張機能が安定していて高いトラフィックのウェブサイトでも十分に動作することを意味します。 この拡張機能がインストールされている場所を確認するには、ウィキメディアの設定ファイル CommonSettings.php および InitialiseSettings.php 内で、この拡張機能の名前を探してください。 特定のウィキにインストールされている拡張機能の完全な一覧は、そのウィキの Special:Version ページにあります。 |
- Experimental extensions/ja
- Parser function extensions/ja
- ContentHandler extensions/ja
- MIT licensed extensions/ja
- Extensions in Wikimedia version control/ja
- GetUserPermissionsErrors extensions/ja
- MultiContentSave extensions/ja
- NamespaceIsMovable extensions/ja
- ParserFirstCallInit extensions/ja
- HtmlPageLinkRendererEnd extensions/ja
- All extensions/ja
- Extensions requiring Composer with git/ja
- Extensions used on Wikimedia/ja
