抽象的なウィキペディア/更新情報/2021年06月30日
◀ | ![]() ![]() |
▶ |
フェーズεが完了しました。
ウィキ・ファンクションズのサイトに向けて開発作業を始めた際、ウィキファンクションズ立上げに至るまでの作業を、11のフェーズに分割し、ギリシャ語のアルファベットの最初の11文字にちなんで名付けました。
- フェーズα(アルファ)の完了で、ウィキでシステム提供の型(Types)のインスタンスを作成できるようになりました。
- フェーズβ(ベータ)で、ウィキ上で新しい型を作成し、その型のインスタンスを作成が可能になりました。
- フェーズγ(ガンマ)で、プレジェネリック関数モデルの主要な型が全てが利用可能になりました。
- フェーズδ(デルタ)で、組込み実装を評価することが可能になりました。
- 今週、フェーズε(エプシロン)を完了しました。
フェーズεの目標は、投稿者がプログラミング言語で書いた実装を評価する機能を提供することでした。
これは何を意味するのでしょうか? ウィキファンクションズの全ての関数は、複数の実装を持つことができます。 実装を表現するには3種類の方法があります。
- As a built-in function, written by the development team: this means that the implementation is handled by the evaluator as a black box.
- As code in a programming language, created by the contributors of Wikifunctions: the implementation of a function can be given in any programming language that Wikifunctions supports. Eventually we aim to support a large number of programming languages, but we will start small.
- As a composition of other functions: this means that contributors can use existing functions as building blocks in order to implement new capabilities.
フェーズεでは、フェーズδの組込みに加えて、提供されたコードを実行できるように関数評価用インフラストラクチャを拡張しました。 今のところ、JavaScriptとPythonの2つのプログラミング言語をサポートしています。 さらにプログラミング言語(ウィキメディア・コミュニティで最もなじみのあるLua)を追加することを計画しており、追加のプログラミング言語のサポートを要請するためのプロセスを文書化します。 私達は計画されたアーキテクチャを実装しました。

We have now a system where the orchestrator receives the function call to be evaluated, gathers all necessary data from Wikifunctions and potential other resources, and then chooses the corresponding evaluators that can run the given programming language. Since this is contributor-created code, we are very careful about where and how to run the code, and which capabilities to give to the virtual machine that runs the code. For example, no network access and no persistence layer is allowed, in order to reduce the potential for security issues.
現在、このアーキテクチャと実装に関するセキュリティ・レビューと個別のパフォーマンス・レビューが進行中です。 レビューで明らかになった差し迫った問題に対応後、デモシステムを提供する予定です。これはおそらく次のフェーズになります。
次のスクリーンショットは、“Concatenate(連結)“関数の実装例です。 concatenate関数は、引数として2つの文字列をとり、2つの入力文字列の端と端を連結した1つの文字列を返す関数です。 私達の実装は、JavaScriptのstringオブジェクトが提供するJavaScriptネイティブのconcat
メソッドを使用しています。

次のスクリーンショットは、引数"Wiki"と "functions"を使って呼び出された関数が"Wikifunctions "という文字列の結果となっています。

Note: The
pair
is just the current response object. In the future we will probably have a custom type for it.
現在、フェーズζ(ゼータ)に移行しています。 このフェーズの目標は、3番目の型の実装、つまり新しい機能を構築するため関数の合成を可能にすることです。 これは、また英語でない言語での実装を投稿するためのシステムの利点を浮き彫りにする最初のフェーズになります。 合成された実装例をいくつか公開しています。 一般的なブール関数の実装例は特に(教育上)有益かもしれません。 フェーズζは、実装を作成するためのさまざまな方法を扱う3つのフェーズの最後のものです。
このフェーズとその後のフェーズでは、技術的負債を削減するために時間を費やします。これはセキュリティとパフォーマンスのレビューに備えるために、最後の2つのフェーズを急いで開発して蓄積したものです。 We also expect to begin early changes based on our user research and design development, replacing the current bare-bones user experience.
構造的に、フェーズζはウィキファンクションズへの開発の転換点になることを目指しています。 フェーズη(イータ)でジェネリック型と関数をサポートし、そして、モニタリング、UX、セキュリティ、ドキュメントを実装するために、独自のリファクタリングを可能にするほど強力なシステムを準備します。 それまでにコア技術機能が全て整っているはずで、その後、ウィキファンクションズを立上げるために必要なサポートシステムを追加する必要があります。
先週、Arctic Knotカンファレンスが開催されました。これは、先住民や過小評価された言語の将来と、ウィキメディアプロジェクトにおけるそれらの存在と使用についてのものでした。 抽象ウィキペディアとウィキファンクションズのコミュニティにとって特に興味深いと思われるいくつかの講演を提示したいと思います。:
- Mahir氏は、Wikidata語彙データを用いた自然言語生成用言語の準備について講演しました。
- Denny氏は、抽象ウィキペディアの紹介プレゼンテーションと、最初に取り組みたいタスクの提案を行いました。
- Sadik氏とMohammed氏は、Dagbani Wikipedia BachinimaでSpell4Wikiアプリを含めて成長するプロジェクトの課題と成功について語りました。
イベントの参加者、講演者、運営者の皆さん、ありがとうございました!
2021年7月26日から8月6日まで開催されるGrammatical Frameworkサマースクールに無料招待されていることを再度お知らせして終わりたいと思います。
言語委員会は、ダバニ語版ウィキペディアの作成を承認しました。それは、私達の重点言語の1つであり、5言語のうちインキュベーターにある唯一のものです。 ダグバニ語コミュニティの皆さん、おめでとう!
来週、ニュースレターはありません。