抽象的なウィキペディア/更新情報/2021年06月30日

This page is a translated version of the page Abstract Wikipedia/Updates/2021-06-30 and the translation is 91% complete.
抽象的なウィキペディアの更新情報 Translate

メーリングリストによる抽象ウィキペディア IRCに関する抽象的なウィキペディア Telegramのウィキファンクションズ Wikifunctions on Mastodon Twitterのウィキファンクションズ Facebook上のウィキファンクションズ YouTubeのウィキファンクションズ ウィキファンクションズのウェブサイト Translate

フェーズ「ε」が完了しました。

ウィキ・ファンクションズのサイトに向けて開発作業を始めた際、ウィキファンクションズ立上げに至るまでの作業を、11のフェーズに分割し、ギリシャ語のアルファベットの最初の11文字にちなんで名付けました。

  • フェーズ「α」(アルファ)の完了で、ウィキでシステム提供の型(Types)のインスタンスを作成できるようになりました。
  • フェーズ「β」(ベータ)で、ウィキ上で新しい型を作成し、その型のインスタンスを作成が可能になりました。
  • フェーズ「γ」(ガンマ)で、プレジェネリック関数モデルの主要な型が全てが利用可能になりました。
  • フェーズ「δ」(デルタ)で、組込み実装を評価することが可能になりました。
  • 今週、フェーズ「ε」(エプシロン)を完了しました。

フェーズεの目標は、投稿者がプログラミング言語で書いた実装を評価する機能を提供することでした。

これは何を意味するのでしょうか? ウィキファンクションズの全ての関数は、複数の実装を持つことができます。 実装を表現するには3種類の方法があります。

  1. As a built-in function, written by the development team: this means that the implementation is handled by the evaluator as a black box.
  2. 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.
  3. As a composition of other functions: this means that contributors can use existing functions as building blocks in order to implement new capabilities.

フェーズ「ε」では、フェーズ「δ」の組込みに加えて、提供されたコードを実行できるように関数評価用インフラストラクチャを拡張しました。 今のところ、JavaScriptPythonの2つのプログラミング言語をサポートしています。 さらにプログラミング言語(ウィキメディア・コミュニティで最もなじみのあるLua)を追加することを計画しており、追加のプログラミング言語のサポートを要請するためのプロセスを文書化します。 私達は計画されたアーキテクチャを実装しました。

ウィキファンクションズのトップレベルのアーキテクチャモデル

現在、オーケストレータが評価対象の関数呼び出しを受けとり、ウィキファンクションズと他の潜在的リソースから必要なデータを収集し,与えられたプログラミング言語を実行できるエバリュエータを選択するシステムができました。 これは寄稿者が作成したコードなので、どこでどうコードを実行するか、コードを実行する仮想マシンにどのような機能を与えるかについてとても気を使っています。 例えば、セキュリティ問題の可能性を減らすために、ネットワークアクセスや永続性レイヤーは許可されていません。

現在、このアーキテクチャと実装に関するセキュリティ・レビューと個別のパフォーマンス・レビューが進行中です。 レビューで明らかになった差し迫った問題に対応後、デモシステムを提供する予定です。これはおそらく次のフェーズになります。

次のスクリーンショットは、“Concatenate(連結)“関数の実装例です。 concatenate関数は、引数として2つの文字列をとり、2つの入力文字列の端と端を連結した1つの文字列を返す関数です。 私達の実装は、JavaScriptのstringオブジェクトが提供するJavaScriptネイティブのconcatメソッドを使用しています。

JavaScriptでの実装のスクリーンショット

次のスクリーンショットは、引数"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つのフェーズを急いで開発して蓄積したものです。 また、現在の必要最小限のユーザーエクスペリエンスに代わり、ユーザー調査とデザイン開発に基づいて、早期の変更を始める予定です。

構造的に、フェーズ「ζ」はウィキファンクションズへの開発の転換点になることを目指しています。 フェーズ「η」(イータ)でジェネリック型と関数をサポートし、そして、モニタリング、UX、セキュリティ、ドキュメントを実装するために、独自のリファクタリングを可能にするほど強力なシステムを準備します。 それまでにコア技術機能が全て整っているはずで、その後、ウィキファンクションズを立上げるために必要なサポートシステムを追加する必要があります。


先週、Arctic Knotカンファレンスが開催されました。これは、先住民や過小評価された言語の将来と、ウィキメディアプロジェクトにおけるそれらの存在と使用についてのものでした。 抽象ウィキペディアとウィキファンクションズのコミュニティにとって特に興味深いと思われるいくつかの講演を提示したいと思います。:

イベントの参加者、講演者、運営者の皆さん、ありがとうございました!

2021年7月26日から8月6日まで開催されるGrammatical Frameworkサマースクール無料招待されていることを再度お知らせして終わりたいと思います。

言語委員会は、ダバニ語版ウィキペディアの作成を承認しました。それは、私達の重点言語の1つであり、5言語のうちインキュベーターにある唯一のものです。 ダグバニ語コミュニティの皆さん、おめでとう!

来週、ニュースレターはありません。