====== BriCA言語 ====== [[BriCAプロジェクト]]において開発されている、複数のモジュールからなる[[認知アーキテクチャ]]の枠組みとしての[[モジュール構成情報]]を統一的に記述するためのDSL(Domain Specific Language:ドメイン特化言語)で、[[https://ja.wikipedia.org/wiki/アーキテクチャ記述言語|アーキテクチャ記述言語]]の一種でもあります。 ==== BriCA言語の意義 ==== BriCA言語は、[[コミュニティによるWBA開発|コミュニティによる認知アーキテクチャ開発]]を促進することができます。 それはなぜでしょうか。 - 汎用人工知能を実現する、大規模な認知アーキテクチャを機械学習等のモジュールの組合せとして実現するには、その開発を加速するために開発者コミュニティによる分散共同開発が有効です。 - 分散共同開発が機能するためには、個別に開発された機械学習モジュールを円滑に共有・流通・組み換え・再利用・置換など実現するために、モジュール間の接続インタフェースの情報を共通化し共有する仕組みが必須です。 - その仕組みとして、下記のような条件を満たす仕様を備えたDSLが有効となります。 * 特定の計算機環境(計算機言語、OSなど)に依存しない。 * 機械学習をモジュールとみなしううる粒度において、モジュール間のインタフェースを記述できる。 - これを記述するDSLとして、BriCA言語は以下のような仕様をもちます。 * モジュール群とそれらが持つポート、およびそれらの間の接続の情報を含みます。 * モジュールの包含関係の階層性の情報を含みます。(モジュール階層性) - したがって、BriCA言語による記述は[[モジュール構成情報]]を持つことができます。 === WBAアプローチにおけるアーキテクチャ記述言語の有用性 === 一般的にみると、[[https://ja.wikipedia.org/wiki/アーキテクチャ記述言語|アーキテクチャ記述言語]](ADL)は必ずしも広まっておらず、次のような短所が挙げられています(Wikipedia 2015-10-13引用)。 - UMLのような汎用的なもの以外に国際的な標準規格がない。 - 現状のADLの構文解析は複雑であり、商用ツールで対応していない。 - 今のところ研究レベルに留まっており、商業的に広く使われるには至っていない。 - 特定の分析に特化して最適化しているものがほとんどである。 一方、全脳アーキテクチャ・アプローチ固有の事情に基づくアーキテクチャ記述言語の有用性については次のような事由を挙げることができます。 * 脳型制約が存在しなおかつその記述はモジュール内の開発者と異なるアーキテクトによって[[モジュール構成情報]]として記述される。\\ この分業化を促進するために言語が必要である。 * 一般のソフトウェア開発はモジュールを必要に応じて追加することがしばしば行われるが、WBAの開発においては脳器官として意味づけられたモジュールを「置換」するという操作が頻繁に行われる。\\ この操作を行うためには統一的に記述された[[モジュール構成情報]]の存在が必須であり、それを記述する言語が必要である。 ==== BriCA言語の仕様 ==== [[https://goo.gl/35ipbk|BriCA Language Specification]] に詳しく書かれています。 ==== BriCA言語インタプリタ ==== [[https://ggle.io/4wXB|JSON形式のBriCA言語]]を取り込み、BriCAプログラムを生成して実行するプログラムです。\\ コードは[[https://github.com/wbap/BriCAL|こちら]]にあります。