Yukinobu Hamuro
hamur****@adm*****
2005年 1月 6日 (木) 20:41:06 JST
鷲尾先生、羽室です。 >>根本的な解決案は、MUSASHI-develパッケージ(ヘッダー群)を明示的に公開しAPIの仕 >>様も細かに解説し >>多くの人がより自由に開発できる環境を整備することだと思います。 >>そしてソースのオープンは各作者が行い、MUSASHIのポータルサイト上でそれらのツー >>ルへのリンクを張ればよいかと思います。 >>問題はAPIをより洗練させること、およびその仕様の解説ですね。 >>イコール私の時間の問題でしょうか。。。 > >結局、2点が必要と思います。 > >1.おっしゃるように第3者が比較的簡単に組み込めるように > MUSASHI-develパッケージとそのマニュアルを公開する >2.Coreに含まないソフトの位置づけの明確化と配信方法 > 特に配信方法はsourceforgeのMUSASHIのサイトに > 載せてもらえるのかなどで大きくモティベーションも > 変わると思います。 > >現状、特に1がないと統計数理研究所にどうぞと薦められそうに >ないのが痛いところです。 はい、おっしゃる通りだと思います。 一朝一夕には解決できない問題も多く、もう少し長い目で見ていただければと思います。 次のバージョン2.0をリリースする頃には、かなりクリアになっていると思いますが、時間が。。。 >>>># ただし、そのラッパー関数は誰が作るのか? >>>># Rのパッケージの様に利用者自身が実装できると良いのですが... >>> >>>確かにラッパー関数に関して、何かMUSASHIとして規格がないと >>>いけないでしょうね。現状のMUSASHIのAPIはCで書かれた >>>ライブラリで、私どもところではこれをCソースからヘッダで参照して >>>呼んだ経験しかありません。 >>> >>>おっしゃるようにRのように何か標準の呼び出しを作らないといけない >>>でしょうね。 >>Rの仕組みをまだ勉強していないのでよくわからないのですが、ここで言うラッパー関数とはどのようなものでしょうか? >>MUSASHIのコマンドレベルを関数呼び出しできるAPIは、前回の開発会議でも出ましたが今後開発を進めていくつもりです。 > >ここでいうラッパー関数はRのこと自体ではなく、 >C言語でかかれたAPIヘッダライブラリを用いるC言語の関数で、 >その関数の中からさらに組み込みたいFORTRANそのほか >で書かれたアプリケーションを呼ぶための関数のことだと思います。 >これを具体的にどのように設計するのかは検討が必要です。 > >RやS−PLUS,類似のMATLABなどは、FORTRANや >C各々について、書かれたアプリケーションを包んでそれぞれの >APIに合わせるためのライブラリとそれを呼ぶテンプレート関数 >(一種のラッパー)があらかじめ提供されています。アプリケーション >の開発者は、これに自分のソースを含めてコンパイルすると、 >そのまま各システムのコマンドとして登録できます。 なるほど。 Rには他言語とのインターフェースを備えているということですね。 詳しくはわかりませんが、実装というかAPI仕様の策定が大変そうですね。 >他にも方法は考えられるでしょう。FORTRAN用のラッパーではなく、 >アプリケーションは実行形式にあらかじめコンパイルしておいて、 >それをCで書かれたラッパー関数からリンクして呼び出して使うと >いう形でもいいでしょう。こうするとMUSASHIのユーザからは >あたかも通常のMUSASHIコマンドとして使用しますが、実際には >コマンド内部で更に別のアプリケーションが使われるわけです。 >こうするとFORTRANなど、言語ごとにわざわざAPIライブラリ >を容易する必要がなくなるでしょう。ただ、このようなラッパーを >準備するにしても、実行形式のアプリケーションの入出力に関して >規格を定めておかないといけませんね。 はい、他言語(Rなど)との統合についてはおっしゃる様な方法が現実的ですね。 入出力については、表形式なので項目名付きのCSVもしくはplainTextとしておけば簡単そうですね。 ただ、そうなってくると、そのアプリをMUSASHIに組み込むメリットが薄くなるような気がします。 他のコマンドがCSVでの入出力を前提とするならば、現状でも、xt2csvというコマンドはありますので、例えば、 xt2csv -F | 他のコマンド | csv2xt -F とすれば問題なくMUSASHIと協働できることになります。 MUSASHIはUNIXの思想とほぼイコールですので、コマンドの組み合わせによるメリットを最大限に生かすのも一つだと思います。 となるとMUSASHI-MODULE(スクリプトによるコマンド)としても提供可能になってきます。 MUSASHIのメリットを生かすなら入出力のAPIをコールしてもらうことでしょうか。 となると鷲尾先生の上述の2つの条件が必要ですね。 いずれにせよ、時間ができたときにじっくり考えてみたいと思います。 ---- Yukinobu Hamuro hamur****@adm*****