% $OpenXM: OpenXM/doc/Papers/rims-2002-12-12-ja.tex,v 1.2 2002/12/03 07:00:04 takayama Exp $ % It was under misc-2002/12, %Id: rims-2003-12.tex,v 1.10 2002/12/02 02:14:55 taka Exp $ % Some .gif files are under misc-2002/12. %% OpenXM/doc/Papers へ移動. rims-2002-12-12.tex \documentclass{jarticle} \title{\bf OpenXM 1.2.2 の概要} \author{ OpenXM 開発グループ } \date{2002年12月12日} %% Private macros \newenvironment{FRAME}{\begin{trivlist}\item[] \hrule \hbox to \linewidth\bgroup \advance\linewidth by -30pt \hsize=\linewidth \vrule\hfill \vbox\bgroup \vskip15pt \def\thempfootnote{\arabic{mpfootnote}} \begin{minipage}{\linewidth}}{% \end{minipage}\vskip15pt \egroup\hfill\vrule \egroup\hrule \end{trivlist}} \begin{document} \maketitle OpenXM プロジェクトでは 数学での並列計算, 数学ソフトウエアの統合化 または Conglomerate 化\cite{solomon}, 数学的知識のマネージメント (Mathematical Knowledge Management) などの諸問題を考察するとともに, 実際に数学の研究や数学の応用に使えるパッケージの開発をおこなっている. パッケージは改訂を 4 回おこなった. \begin{enumerate} \item OpenXM 1.1.1 (January 24, 2000): 最初の実験版. \item OpenXM 1.1.2 (March 20, 2000): とりあえず使える版. \item OpenXM 1.1.3 (September 26, 2000): 1.1 系の最終版. OpenXM RFC 100 形式 のプロセス木. 1077 個の数学関数を提供. 提供しているサーバは {\tt ox\_asir}, {\tt ox\_sm1}, {\tt ox\_phc}, {\tt ox\_gnuplot}, {\tt ox\_m2}, {\tt ox\_tigers}, {\tt ox\_math}(ematica), {\tt OMproxy} \cite{rims-1199}. \item OpenXM 1.2.1 (March 2, 2002): Cygwin (Windows) への対応開始. マニュアル自動生成(gentexi)など. \end{enumerate} ここではちかじか予定している 1.2.2 系での新しい機能と設計における諸問題点を議論したい. \section{ oxd スーパーサーバ } OpenXM では 1.2 系列より Cygwin を用いて Windows にも部分的に対応してきた. また 1.1 系列から OpenXM 対応の Java クラスを提供してきた. これらの開発で経験したことは, \underline{ サーバの起動が煩雑 } ということである. とくに C と unix の枠組をはずれると OpenXM サーバをクライアントが起動 するのがとても面倒になる. さらにクライアントのコードは OS 毎に分岐させる必要が生じる. この煩雑さを避ける 解決策としては以下のような方法があるであろう. \begin{enumerate} \item Corba などの Agent の仕組みを用いる. \item ssh と oxc を用いる OpenXM RFC 101 (小原) を用いる. \end{enumerate} ``実際に使えるパッケージを配布する'' という立場では, Corba 等の実験的インフラストラクチャを用いるのはなるべく避けたい. また効率重視のパッケージを作成したいときの自由度がない. OpenXM RFC 101 を用いるのは良い方法であるが, 実際には メインのクライアントである asir が OpenXM RFC 100 にしか対応していない し, 100 対応のみのサーバも多い. したがって, RFC 100, 101 両方に対応しかつ, OpenXM サーバを容易に起動 できるようなスーパサーバの開発を試みた. これが oxd である (ソースは {\tt OpenXM/src/kxx/oxd.c }). %%Note: 2002, 10/20. \noindent 利用例: %%%%%%%%%% mini page template %%%%%%%%%%%% \begin{flushleft} \begin{minipage}[t]{5cm} \begin{FRAME} \noindent サーバ側のログ: {\tiny \begin{verbatim} bash-2.03$ cd OpenXM/src/kxx bash-2.03$ ./oxd Hello from open. serverName is localhost and portnumber is 8089 Done the initialization. port =8089 デフォルト ポート 8089 で待つ. Waiting a connection \end{verbatim} } \end{FRAME} \end{minipage} \quad % \begin{minipage}[t]{5cm} \begin{FRAME} \noindent クライアント側のログ: {\tiny \begin{verbatim} bash-2.03$ cd OpenXM/src/OpenMath bash-2.03$ java testclientr たとえば java で接続してみる. \end{verbatim} } \end{FRAME} \end{minipage} \\ \end{flushleft} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \noindent oxd との通信コマンドは以下のように XML 形式である. トップノードは \verb@ @ 〜 \verb@ @ である. %%%%%%%%%% mini page template %%%%%%%%%%%% \begin{flushleft} \begin{minipage}[t]{5cm} \begin{FRAME} \noindent サーバ側: {\tiny \begin{verbatim} ... Serial=0 Trying to accept from localhost... len= 16 Accepted. Connected. 8089 にクライアントがつながった. Waiting a connection... Serial=1 Trying to accept from localhost... Serial=1: command= クライントより送られて来たコマンドは Serial=1: command= こちらより送付した challenge を正しく処理 できたので, 認証が完了. Serial=1: command= ox -ox ox_asir -reverse -control 3167 -data 3168 -finish クライアントより ox サーバの起動コマンドを 受け取る. エンジン名はフルパスでは与えない. Serial=1 : Executing command =/home/taka/OpenXM/bin/openxm ox -ox ox_asir -reverse -control 3167 -data 3168 -finish The server ox_asir was not found. Trying to find it under OpenXM/bin Starting OX server : /home/taka/OpenXM/bin/ox_asir resultCode=0 Serial=1: command= oxd への login は終了. Waiting the termination of the child process (ox server). 1: The child process is terminated. \end{verbatim} } \end{FRAME} \end{minipage} \quad % \begin{minipage}[t]{5cm} \begin{FRAME} \noindent クライアント側: {\tiny \begin{verbatim} 認証方法は file を選択. oxd より ファイル /home/taka/.oxd10793 に touch できたら認証するよと連絡をうける. ? touch したので を送る. Listenning... ox -ox ox_asir -reverse -control 3167 -data 3168 -finish oxd へ OpenXM サーバの起動コマンドを送る. oxd より起動成功のメッセージ をもらう. ? \end{verbatim} } \end{FRAME} Java 側の接続プログラムは簡単で, localhost の oxd で起動するなら \begin{verbatim} asir = new OpenXM("ox_asir"); \end{verbatim} と OX サーバ名を引数として OpenXM コンストラクタ を呼べばよい. %%Note: sm1 のクライアントプログラムは oxd.sm1 の asirconnectr. \end{minipage} \\ \end{flushleft} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% mini page template %%%%%%%%%%%% \begin{flushleft} \begin{minipage}[t]{5cm} \begin{FRAME} エンジン側の出力: {\tiny \begin{verbatim} controlByteOrder=0 OpenXM/Risa/Asir-Contrib(20020922), Copyright 2000-2002, OpenXM.org Loading ~/.asirrc I'm an ox_asir, Version 20020802. #0 Got OX_COMMAND SM_mathcap 以下略. \end{verbatim} } \end{FRAME} \end{minipage} \quad % \begin{minipage}[t]{5cm} \begin{FRAME} \noindent クライアント側のエンジンとの通信状況: {\tiny \begin{verbatim} Accepted the control port. Accepted the data port. start CMO> (CMO_MATHCAP,(CMO_LIST,3,(CMO_LIST,2, (CMO_INT32,199901160), (CMO_STRING,7,ox_asir)), (CMO_LIST,18,(CMO_INT32,276), 以下略. \end{verbatim} } \end{FRAME} \end{minipage} \\ \end{flushleft} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% このように oxd をもちいることにより, OS や 言語による起動法の 違いを吸収可能である. さらに oxd の実装に agent の仕組みを組み込むことも 可能である. \rightline{開発: 高山} \section{いつでもどこでも ``因数分解$\heartsuit$'' } いつでもどこでも ``因数分解$\heartsuit$'' は, OpenXM のスローガンである. この章では, PDA や Web への対応を紹介する. \subsection{ ザウルス 対応 } シャープのザウルス SL-A300 で Risa/Asir が不完全ながら動作している. SL-A300 は Intel の Arm 系 CPU Xscale(PXA210 200MHz)を搭載し, Lineo の Embedix という Linux を OS に持つ. メモリは 64MB 搭載しているが, カーネルのコンフィグレーション によってプログラム側から利用可能なのは 36MB で, 残り 28MB はストレージ用に設定されている. GC と整数計算のためのマシン語プログラムの部分の移植が問題であったが, GC についてはすでに開発グループ (H-J. Boehm, A. J. Demers) が Xscale CPU に対応していた. 整数計算についてはポータブル整数計算 コード \\ {\tt OpenXM\_contrib2/asir2000/asm/asmalpha.c} を用いた. 実際のコンパイル作業は以下のように行った. \begin{enumerate} \item PC Linux 上で Arm 用のクロスコンパイル環境を構築 \item asir の configure がクロスコンパイル環境に対応していないので, PC 用の Makefile を作成後, 手動で Arm 用に修正 \item GC は configure もクロスコンパイル環境に対応しているのでそれを利用 \item 整数計算はアセンブラを使わずポータブルコードを利用するよう修正 \item char が default で unsigned char なので gcc は -fsigned-char オプションをつけて使用 \end{enumerate} 使用してみた感想は意外に速い(Pentium 200MHzくらい?). 入力フロントエンドの fep もコンパイルでき利用できている. メモリは少し大きな計算だと不足するが, これは SD カード上 にスワップファイルを作成することで対処可能. デフォルトでは cpp がインストールされていないため, ファイルの load ができないが, zgcc(ザウルスセルフコンパイル用 gcc)の配布に cpp が同梱 されているので, それを利用すればよい. 既知の問題としては, サスペンド・レジューム後にAsirが 起動不可になるという現象が起きている. しかし, これについては Embedix カーネルのバグ (zero page をサスペンドのワークエリアにしてしまう) であることがわかったので, 強制的にゼロクリアする 補助プログラムをこちらで準備する予定である. \rightline{開発: 藤本} \subsection{ OpenXM Online } OpenXM では HTTP プロトコルの部分集合 (GET および POST の一部) を実装し, Webブラウザを OpenXM エンジンのフロントエンドとして利用したり, OpenXM エンジンに対する Remote Procedure Call をおこなうために利用している. この応用として, 現在 Asir Online を \\ {\tt http://fe.math.kobe-u.ac.jp:8090} で実験的に運用している. HTTP を理解するサーバ (httpd) は, kan/sm1 のポストスクリプト言語 で実装されている ({\tt OpenXM/src/kan96xx/Doc/httpd*.sm1}). この実験運用で問題となったのは, \underline{中断の伝播とリソースの制限} の問題である. OpenXM RFC 100 ではエンジンの計算を中断するロバストな プロトコルを定めており, これが OpenXM RFC 100 の特徴の一つである \cite{ascm2001}, \cite{openxm-rfc100}. しかしながら, エンジン間で中断を伝播させる仕組みについては, 標準をなにも決めていない. Web で計算をサービスするにはこれらの仕組みは不可欠であり, 中断を伝播する仕組みとリソースの制限を実験的に実装した. 中断に関しては, 中断したときに実行される関数を登録する仕組みが OpenXM サーバやクランアントにある. 昔の Basic 風なら {\tt On stop goto ...}, 最近の Java 風なら {\tt try \{ ... \} catch \{ ... \} } みたいなものであるが, asir では {\tt register\_handler} 関数, sm1 では {\tt ctrlC-hook } 関数で登録する. この関数の中で次の上意下達の処理をおこない中断を伝播させる. \begin{FRAME} \noindent 上意下達の中断処理: \begin{enumerate} \item 自分の子供プロセスをすべてリストする (たとえば {\tt ox\_get\_serverinfo() }). \item 子供プロセスに順番に OpenXM-RFC 100 の中断メッセージを送る. \end{enumerate} \end{FRAME} 上意下達法で中断はきちんと動作するが, この方法の欠点は中断が逐次的におこなわれるため, 多数のサーバが含まれる 木構造の場合は動作が遅いことである. 今後必要に応じて中断メッセージを同報する方法を新しいプロトコルとして考察すべきであろう. リソース制限に関しても類似の上意下達方式でリソース量を保持している大域変数 の値を伝達することにより OpenXM-RFC 100 の枠内で コマンド毎のリソース制限が可能である. しかしながら shared memory の仕組みがあればより簡単であろう. \rightline{開発: 高山} \section{OpenXM のフロントエンド} Infty Editor は九州大学の鈴木らが中心となり開発している 手書きによる数式入力機能をもつ Windows 用エディターである. このエディターから OpenXM サーバを呼び出す機能が 藤本により設計実装された. エディター内で入力された数式の計算だけでなく, Asir 言語もサポートしている. 詳しい報告は本研究集会の藤本の講演及び\cite{fujimoto}を参照. \rightline{開発: 藤本} \section{ OpenXM/Risa/Asir/Contrib } OpenXM/Risa/Asir (OpenXM 版 Risa/Asir) は OpenXM パッケージの メインのクライアントである. OpenXM/Risa/Asir/Contrib プロジェクトでは, asir 言語でかかれた各種数学関数, ユーティリィティ関数および OpenXM サーバとのインタフェース関数を開発している. 中期目標として ``超幾何関数に関連する計算はなんでもできるように'' を 掲げている. 超幾何関数に関連する計算は, 計算代数, 多面体幾何, 数値解析, ビジュアリゼーションなどいろいろな分野に関係している. 現在の関数一覧は以下のとおり. {\small \begin{verbatim} base_cancel poly_factor base_choose poly_gcd base_flatten poly_grobner_basis base_intersection poly_hilbert_polynomial base_memberq poly_initial base_permutation poly_initial_coefficients base_position poly_initial_term base_prune poly_solve_linear base_replace print_dvi_form base_set_minus print_em base_set_union print_gif_form base_subsetq print_input_form base_subsets_of_size print_open_math_tfb_form dsolv_dual print_open_math_xml_form dsolv_starting_term print_output glib_line print_ox_rfc100_xml_form glib_open print_png_form glib_plot print_terminal_form glib_print print_tex_form glib_putpixel print_tfb_form glib_tops print_xdvi_form glib_window print_xv_form gnuplot sm1 gnuplot_heat sm1_ahg gnuplot_output sm1_appell1 gnuplot_plot_dots sm1_appell4 gnuplot_plot_function sm1_auto_reduce gnuplot_start sm1_bfunction hilbert_polynomial sm1_deRham m_rtostr sm1_distraction m_start sm1_gb m_tree_to_string sm1_generalized_bfunction matrix_clone sm1_genericAnn matrix_det sm1_gkz matrix_diagonal_matrix sm1_hilbert matrix_eigenavalues sm1_mul matrix_identity_matrix sm1_push_int0 matrix_inner_product sm1_rank matrix_inverse sm1_reduction matrix_kernel sm1_restriction matrix_list_to_matrix sm1_saturation matrix_matrix_to_list sm1_slope matrix_rank sm1_start matrix_solve_linear sm1_syz matrix_submatrix sm1_wTensor0 matrix_transpose sm1_xml_tree_to_prefix_string om_start tigers om_xml util_filter om_xml_to_cmo util_find_and_replace ox_check_errors2 util_find_substr ox_sm1_forAsir util_load_file_as_a_string phc util_part phc_start util_read_file_as_a_string plucker_relation util_remove_cr poly_degree util_write_string_to_a_file poly_elimination_ideal \end{verbatim} } 各関数のマニュアルは \\ {\small \tt http://www.math.kobe-u.ac.jp/OpenXM/1.2.2/doc/asir-contrib/html-en/cman-en\_toc.html} \rightline{開発: 野呂, 中山, 高山} \section{サーバの新しい数学関数} 1.2 系ではまだ新しいサーバの接続作業をおこなっていない. 近いうちに多面体の幾何 (polymake, cdd), 3D グラフィックス関連のサーバ (3D Java, JavaView) の接続を予定している. \noindent {\tt ox\_asir} には次の新しい数学的機能が加わった(野呂). \begin{enumerate} \item 有限体での因数分解 ({\tt OpenXM\_contrib2/asir2000/engine/Fgfs.c}). \end{enumerate} \noindent {\tt ox\_sm1} には次の新しい数学的機能が加わった(高山). \begin{enumerate} \item Granger-Oaku の Tangent Cone アルゴリズムの実装のため 解析的微分作用素環における同次化を実装 ({ring\_of\_differential\_operators, weightHomogenization}, {\tt OpenXM/src/kan96xx/Kan/poly3.c}). \item M.J.Ucha の新しい b-関数アルゴリズムの実装のため, ある微分差分作用素環を実装 ({\tt ring\_of\_differential\_difference\_operators}). \end{enumerate} \section{ fb --- 超幾何関数デジタル公式集と OpenMath } OpenXM ではコードネーム fb で 超幾何関数のデジタル公式集を研究している. fb は 1.2 系の目玉といえるモジュールである. 数学公式集の研究はたとえば日本では, 1980 年代後半の佐々木らの研究 が先駆的である \cite{sasaki}. この研究では数式の検索法, 数式の公式集による書き換え, およびそれに適したデータ構造が研究された. さらに岩波公式集をもとに実際のデジタル公式集を作成したが, 著作権の問題があり, 公開されていない. この流れをくみ, さらに OpenMath の XML で公式を表現する研究が 森永, 村上, 野田 \cite{noda-murakami} により最近進展している. OpenXM の fb プロジェクトでは, 次の視点からデジタル公式集の設計実装をおこなっている. \begin{enumerate} \item Web ベースの Interactive な機能の提供. \item 公式の数学的意味や参考文献などの情報を機械可読形式で 保持できる公式集. \item さまざまな数学概念に柔軟に対応できる公式集. \item XML の機能をフルに生かした公式集. \item 著作権の問題がない公式集. \item 入力ミスの発見を補助する機能. \end{enumerate} 以下にわれわれの設計の概要を記す. \begin{enumerate} \item A.Cohen らの Interactive Math Book のタグ(Eindhoven tag library) を用いて, Interactive な機能を記述する \cite{cohen}. Interactive 機能は公式集にとり重要で, たとえば公式を参照するときに変数の置き換えは便利である. \item DocBook \cite{docbook} および OpenMath \cite{openmath} の XML タグを拡張し, formula を トップノードとする独自のタグをいくつか定義した. これらをまとめて fb XML タグセットとよんでいる. 超幾何関数に関連する OpenMath Content Dictionary が存在しないため, 自分達で CD hypergeo0, hypergeo1, hypergeo2, hypergeon0, hypergeon1, hypergeon2, weylalgebra1 を開発した (OpenMath CD の contrib を参照 \cite{openmath}). これにより, 公式の数学的意味や参考文献などの情報を機械可読形式で 保持できるようになった. %A.Cohen らの Interactive Math Book のプロジェクトも %DocBook と OpenMath のタグを拡張する形で %研究している \cite{cohen}. \item OpenMath の XML と Content Dictionary は さまざまな数学概念に柔軟に対応できる仕組みである. たとえば前記の 超幾何関数に関連する Content Dictionary をもとに高山は 1 次元の積分路を表現する Content Dictionary intpath1 を定義し, この Content Dictionary は任意の 1 次元の積分路を 表現できることを twisted (co)homology の理論を用いて証明した. \item fb では DOM や XSL など XML の機能をフルに生かし 公式集を実装した. XML の機能が デジタル公式集にも 有効であることを確認した. 図 \ref{figure:fbcom} の 各コマンドは主に Java で実装されている. %%Comment: でも数式の括弧の省略の処理は面倒. \item fb では 19世紀, 20 世紀の超幾何関数のオリジナル論文をもとに tfb という言語を もちいて入力をおこなっており, 著作権の問題がない. tfb は OpenMath オブジェクトを表現するための言語である. OpenMath プロジェクトでは OpenMath オブジェクト を入力するための RIACA CD Editor(オランダ) や STAR/MathWriter (Stilo Technology) %%Pic: coq-starts.jpg などのGUI 型のプログラムが研究されている. この tfb は OpenMath オブジェクトの厳密な入力が容易であるのを特徴としている. \item 公式の入力にはミスがつきものである. fb では, 数値計算をもちいて明らかな誤りを検出する仕組みを提供している. この仕組みでは OpenXM 版の mathematica および asir サーバ および前述の OpenXM online を用いている. \end{enumerate} なお, (2) 〜 (6) はデジタル公式集として新しい試みである. \begin{figure}[tb] \begin{tabular}{|l|l|} \hline fb XML & DocBook タグ(Top), OpenMath タグ, MathBook タグ, formula タグ(独自) \\ \hline fb (tfb) XML & DocBook タグ(Top), tfb タグ(独自) , MathBook タグ, formula タグ(独自), \\ \hline fb (formula) XML & formula タグ(Top, 独自), OpenMath タグ, DocBook タグ (一部) \\ \hline fb (formula,tfb) XML & formula タグ(Top, 独自), tfb タグ(独自), DocBook タグ (一部) \\ \hline \end{tabular} \caption{ fb XML 文書のバリエーション} \end{figure} \begin{figure}[tb] \begin{tabular}{|l|l|} \hline {\tt tfb2fb.sh} & fb (tfb) XML 文書 を fb XML 文書へ変換 \\ \hline & fb (formula,tfb) XML 文書 を fb (formula) XML 文書へ変換 \\ \hline {\tt tfb2ocd.sh} & (互換性のため残してある) \\ \hline {\tt fb2tex.sh} & fb XML 文書より LaTeX への変換 \\ \hline {\tt ocd2tex.sh} & (互換性のため残してある) \\ \hline {\tt formula2tex.sh} & fb (formula) XML 文書より LaTeX への変換 \\ \hline {\tt asir2tfb.sh} & asir 形式から tfb 形式への変換 \\ \hline {\tt tfb2asir-check*.sh} & fb (formula,tfb) XML 文書 より asir checker へ.\\ \hline {\tt tfb2math-check.sh} & fb (formula,tfb) XML 文書 より Mathematica checker へ.\\ \hline \end{tabular} \caption{ fb の変換コマンド(一部)} \label{figure:fbcom} \end{figure} 次は fb (formula,tfb) XML文書の例 ({\tt fb/formula/h21-0060.tfb}). {\small \begin{verbatim} 2 ~arith1.times~ arith1.root(nums1.pi,2) ~arith1.times~ hypergeo0.gamma(a ~arith1.plus~ b ~arith1.plus~ (1 ~arith1.divide~ 2)) ~arith1.divide~ hypergeo0.gamma(a ~arith1.plus~ (1 ~arith1.divide~ 2)) ~arith1.divide~ hypergeo0.gamma(b ~arith1.plus~ (1 ~arith1.divide~ 2)) ~arith1.times~ hypergeo1.hypergeometric2F1(a,b,1 ~arith1.divide~ 2,x) ~relation1.eq~ (hypergeo1.hypergeometric2F1(2 ~arith1.times~ a, 2 ~arith1.times~ b, a ~arith1.plus~ b ~arith1.plus~ (1 ~arith1.divide~ 2), 1 ~arith1.plus~ arith1.root(x,2) ~arith1.divide~ 2) ~arith1.plus~ hypergeo1.hypergeometric2F1(2 ~arith1.times~ a, 2 ~arith1.times~ b, a ~arith1.plus~ b ~arith1.plus~ (1 ~arith1.divide~ 2), 1 ~arith1.minus~ arith1.root(x,2) ~arith1.divide~ 2)); Yasushi Tamura Quadratic transformation of independent variable @@ /. {a->1/2,b->3/5,c->-2/11,x->0.2} \end{verbatim} } %% Prog: tfb-addtex ../../formula/h21-0060.tfb %% tfb2fb.sh <../../formula/h21-0060.tfb-auto-tex.tfb | formula2tex.sh >t.tex %% platex t この公式を TeX への変換ツールでプレゼンテーション形式に変換したものは \begin{center}$ {\frac{2\,{\sqrt{\pi }}\,\Gamma ({\frac{1}{2}} + a + b)\,{} _2 F_1 (a,b,{\frac{1}{2}},x)}{\Gamma ({\frac{1}{2}} + a)\,\Gamma ({\frac{1}{2}} + b)}} = {}_2 F_1 (2\,a,2\,b,{\frac{1}{2}} + a + b,{\frac{1 - {\sqrt{x}}}{2}}) + {}_2 F_1 (2\,a,2\,b,{\frac{1}{2}} + a + b,{\frac{1 + {\sqrt{x}}}{2}}) $\end{center} この公式は 1881 年の E.Goursat の論文に記載されている 超幾何関数の独立変数の変換公式である. \rightline{開発チーフ: 田村} \rightline{開発: 田村, 高山} \rightline{公式編集メンバー:田村, 高山,中山,藤堂,長谷川} \section{ OpenXM 関連の出版物 } OpenXM 1.2 以降に出版された資料のリスト: \begin{enumerate} \item \cite{noro} では Risa/Asir の内部構造の概要や Risa/Asir の OpenXM への 対応状況が解説してある. \item \cite{asir-book} は日本語による Risa/Asir プログラミングの入門書である. OpenXM を用いた簡単な分散計算への入門の章がある. \item OpenXM の中断機能, 競争計算, などについての短いビデオ. \end{enumerate} \bigbreak 以上 OpenXM 1.2.2 の新機能を概説した. 詳しくは {\tt http://www.openxm.org} の CVS-web を用いてソースコード の変更履歴 およびコミット時のコメントを参照されたい. \begin{thebibliography}{99} \bibitem{cohen} A.Cohen, H.Cuypers, E.R.Barreiro, H. Sterk, Interactive Mathematical Documents on the Web, edited by M.Joswig and N.Takayama: {\it Algebra, Geometry and Software Systems}, Springer, 289--308, 2003 (to appear). % \bibitem{docbook} {\tt http://www.docbook.org} % \bibitem{fujimoto} M.Fujimoto, M.Suzuki, A Handwriting Interface to Various Computer Algebra Systems via OpenXM Framework, Abstracts of 8th International Conference on Applications of Computer Algebra, 2002, Volos, Greece. 103--104. % \bibitem{openmath} {\tt http://www.openmath.org} % \bibitem{openxm} {\tt http://www.openxm.org} % \bibitem{rims-1199} 小原, 高山, 田村, 野呂, 前川, OpenXM 1.1.3 の概要, 数理研講究録 1199 (2001 年 4 月), 179--191. % \bibitem{ascm2001} M.Maekawa, M.Noro, N.Takayama, Y.Tamura, K.Ohara, The Design and Implementation of OpenXM-RFC 100 and 101. Computer Mathematics, Proceedings of the Fifth Asian Symposium (ASCM 2001), edited by Shirayanagi and Yokoyama, World Scientific, 102--111, 2001. % \bibitem{noda-murakami} 森永, 村上, 野田, 数学公式データベースと G 関数, preprint. % \bibitem{noro} M.Noro Computer Algebra System: Risa/Asir, edited by M.Joswig and N.Takayama: {\it Algebra, Geometry and Software Systems}, Springer, 147--162, 2003 (to appear). % \bibitem{openxm-rfc100} M.Noro, N.Takayama, Design and Implementation of OpenXM Client-Server Model and Common Mathematical Object Format (OpenXM-RFC 100). 1997, 2000. \\ {\tt http://www.math.sci.kobe-u.ac.jp/OpenXM/OpenXM-RFC.html} or {\tt http://www.openxm.org} % \bibitem{asir-book} 野呂, 高山, Risa/Asir ドリル, {\tt http://www.math.kobe-u.ac.jp/Asir} %%(配布価格 1,000 円 (送料別) or 送料のみ--- アンケートに協力の場合) % \bibitem{sasaki} T.Sasaki, Y.Masunaga, Y.Saigusa, A.Abe, F.Motoyoshi, M.Sasaki, Formula Database in Computer Algebra System GAL, 数理研講究録 663, 群と微分方程式の数式処理システムの研究 (1988), 3--22. % \bibitem{solomon} A.Solomon, Distributed Computing for Conglomerate Mathematical Systems, edited by M.Joswig and N.Takayama: {\it Algebra, Geometry and Software Systems}, Springer, 309--326, 2003 (to appear). \end{thebibliography} \end{document}