%% $OpenXM: OpenXM/doc/Papers/rims-2002-12-12-ja-ohp.tex,v 1.1 2002/12/07 11:44:10 takayama Exp $ %% Moved from misc-2002/12/rims-ohp/ohp.tex %% $Id: ohp.tex,v 1.3 2002/12/07 11:40:02 taka Exp$ %% xdvi -paper a4r ohp %% dvips -f -t landscape ohp | psnup -4 -r | lpr -Pxerox6 \documentclass{slides} \usepackage{color} \usepackage{rgb} \usepackage{epsfig} %\def\color#1{ } %\def\epsffile#1{ Picture File: #1 } %\def\epsfxsize{ } %% Sample: %% \epsfxsize=17cm %% \epsffile{cz.ps} \textwidth 9.2in \textheight 7.2in \columnsep 0.33in \topmargin -1in \def\nnn{ {\color{red} $\bullet$}\ } %% 事実 \def\eee{ {\color{magenta} Example}:\ } %% 例 \def\ttt{ {\color{red} $\bullet$}\ } %% 定理 \begin{document} \noindent \begin{center} {\color{magenta} OpenXM 1.2.2 の概要} \end{center} %% 2002, 12/12 (Thu), 10:40--11:10? \begin{center} OpenXM 開発グループ: http://www.openxm.org \end{center} \begin{enumerate} \item oxd スーパーサーバ \item いつでもどこでも ``因数分解$\heartsuit$'' \item OpenXM のフロントエンド \item OpenXM/Risa/Asir/Contrib \item サーバの新しい数学関数 \item fb --- 超幾何関数デジタル公式集と OpenMath \item OpenXM 関連の出版物 \end{enumerate} \newpage \noindent \quad \\ \nnn 数学での並列計算, \\ \nnn 数学ソフトウエアの統合化 または Conglomerate 化 (A.Solomon) \\ \nnn 数学的知識のマネージメント (Mathematical Knowledge Management) \\ \nnn 実際に数学の研究や数学の応用に使えるパッケージの開発 \noindent \quad \\ \nnn OpenXM 1.1.1 (January 24, 2000): 最初の実験版. \\ \nnn OpenXM 1.1.2 (March 20, 2000): とりあえず使える版. \\ \nnn 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}. \\ \nnn OpenXM 1.2.1 (March 2, 2002): Cygwin (Windows) への対応開始. マニュアル自動生成(gentexi)など. \\ \newpage \noindent 1. {\color{blue} oxd スーパーサーバ} unix $+$ Windows, Java $\Rightarrow$ {\color{magenta} OpenXM サーバの起動が煩雑 } \noindent 解決策 \\ \nnn Corba などの Agent の仕組みを用いる. \\ \nnn ssh と oxc を用いる OpenXM RFC 101 (小原) を用いる. \\ \noindent {\color{red} oxd } : RFC 100, 101 両方に対応しかつ, OpenXM サーバを容易に起動 できるようなスーパサーバ. \\ oxd 通信コマンドは XML 形式: トップノードは \verb@ @ 〜 \verb@ @ \newpage \noindent クライアント側: \\ {\color{magenta} {\begin{verbatim} \end{verbatim}}} {{\begin{verbatim} ? \end{verbatim}}} {\color{magenta} {\begin{verbatim} ox -ox ox_asir -reverse -control 3167 -data 3168 -finish \end{verbatim}}} {{\begin{verbatim} \end{verbatim}}} {\color{blue} \begin{verbatim} asir = new OpenXM("ox_asir"); \end{verbatim} } \rightline{開発: 高山} \newpage \noindent 2.1. {\color{blue} いつでもどこでも ``因数分解$\heartsuit$'': ザウルス 対応 } シャープのザウルス {\color{red} SL-A300 } \\ Intel の Arm 系 CPU Xscale(PXA210 200MHz), Lineo の Embedix. GC, {\tt OpenXM\_contrib2/asir2000/asm/asmalpha.c} 使用してみた感想は意外に速い(Pentium 200MHzくらい?). \rightline{開発: 藤本} \newpage \noindent 2.2. {\color{blue} いつでもどこでも ``因数分解$\heartsuit$'': OpenXM Online } Asir Online : \\ {\color{red} {\tt http://fe.math.kobe-u.ac.jp:8090}} (実験運用). \\ HTTP を理解するサーバ (httpd) : kan/sm1 のポストスクリプト言語 で実装されている ({\tt OpenXM/src/kan96xx/Doc/httpd*.sm1}). \\ OpenXM エンジンに対する Remote Procedure Call. %%Pic: asir-online.gif {\color{blue} \underline{中断の伝播とリソースの制限}} \\ OpenXM RFC 100 (エンジンの計算を中断するロバストなプロトコル) \\ しかしながら, エンジン間で中断を伝播させる仕組みについては, 標準をなにも決めていない. \noindent 上意下達の中断処理: \\ \ttt 自分の子供プロセスをすべてリストする ({\tt ox\_get\_serverinfo() }). \\ \ttt 子供プロセスに順番に OpenXM-RFC 100 の中断メッセージを送る. \\ \rightline{開発: 高山} \newpage \noindent 3. {\color{blue} OpenXM のフロントエンド } {\color{red} Infty Editor} (九州, 鈴木ら) $\Rightarrow$ OpenXM エンジン \\ {\color{red} Infty Editor} で asir 言語のサポート. \rightline{開発: 藤本} \newpage \noindent 4. {\color{blue} OpenXM/Risa/Asir/Contrib } OpenXM/Risa/Asir (OpenXM 版 Risa/Asir) : OpenXM パッケージの メインのクライアント. \\ asir 言語でかかれた各種数学関数, ユーティリィティ関数および OpenXM サーバとのインタフェース関数を開発. {\tt \color{magenta} base\_cancel base\_choose base\_flatten base\_intersection base\_memberq base\_permutation base\_position base\_prune base\_replace base\_set\_minus base\_set\_union base\_subsetq base\_subsets\_of\_size} {\tt \color{blue} dsolv\_dual dsolv\_starting\_term } {\tt \color{red} glib\_line glib\_open glib\_plot glib\_print glib\_putpixel glib\_tops glib\_window} {\tt \color{magenta} gnuplot gnuplot\_heat gnuplot\_output gnuplot\_plot\_dots gnuplot\_plot\_function gnuplot\_start hilbert\_polynomial} {\tt \color{blue} m\_rtostr m\_start m\_tree\_to\_string } {\tt \color{red} matrix\_clone matrix\_det matrix\_diagonal\_matrix matrix\_eigenavalues matrix\_identity\_matrix matrix\_inner\_product matrix\_inverse matrix\_kernel matrix\_list\_to\_matrix matrix\_matrix\_to\_list matrix\_rank matrix\_solve\_linear matrix\_submatrix matrix\_transpose} {\tt \color{magenta} om\_start om\_xml om\_xml\_to\_cmo } {\tt \color{blue} ox\_check\_errors2 ox\_sm1\_forAsir} {\tt \color{red} phc phc\_start} {\tt \color{magenta} plucker\_relation } {\tt \color{blue} poly\_degree poly\_elimination\_ideal poly\_factor poly\_gcd poly\_grobner\_basis poly\_hilbert\_polynomial poly\_initial poly\_initial\_coefficients poly\_initial\_term poly\_solve\_linear } {\tt \color{red} print\_dvi\_form print\_em print\_gif\_form print\_input\_form print\_open\_math\_tfb\_form print\_open\_math\_xml\_form print\_output print\_ox\_rfc100\_xml\_form print\_png\_form print\_terminal\_form print\_tex\_form print\_tfb\_form print\_xdvi\_form print\_xv\_form } {\tt \color{magenta} sm1 sm1\_ahg sm1\_appell1 sm1\_appell4 sm1\_auto\_reduce sm1\_bfunction sm1\_deRham sm1\_distraction sm1\_gb sm1\_generalized\_bfunction sm1\_genericAnn sm1\_gkz sm1\_hilbert sm1\_mul sm1\_push\_int0 sm1\_rank sm1\_reduction sm1\_restriction sm1\_saturation sm1\_slope sm1\_start sm1\_syz sm1\_wTensor0 sm1\_xml\_tree\_to\_prefix\_string } {\tt \color{blue} tigers } {\tt \color{magenta} util\_filter util\_find\_and\_replace util\_find\_substr util\_load\_file\_as\_a\_string util\_part util\_read\_file\_as\_a\_string util\_remove\_cr util\_write\_string\_to\_a\_file } \rightline{開発: 野呂, 中山, 高山} \newpage \noindent 5. {\color{blue} サーバの新しい数学関数} \noindent {\tt \color{red} ox\_asir} (野呂). \\ 位数の小さい有限体上での多変数多項式の因数分解 \\ ({\tt \color{magenta} sffctr}, {\tt OpenXM\_contrib2/asir2000/engine/Fgfs.c}). 有限体上での準素イデアル分解用 \noindent {\tt \color{red} ox\_sm1} (高山). \\ 解析的微分作用素環における同次化 \\ ({\tt \color{magenta} ring\_of\_differential\_operators, weightHomogenization}, \\ {\tt OpenXM/src/kan96xx/Kan/poly3.c}). Granger-Oaku の Tangent Cone アルゴリズム用 \newpage \noindent 6. {\color{blue} OpenXM/fb --- 超幾何関数デジタル公式集と OpenMath } \nnn 1980 年代後半の佐々木らの研究. (数式の検索法, 数式の公式集による書き換え, データ構造, 岩波公式集をもとにしたデジタル公式集) \\ \nnn 続き: 森永, 村上, 野田. \\ \nnn {\tt http://functions.wolfram.com} \\ %%Pic: functions-wolfram.gif \nnn {\tt http://dlmf.nist.gov/} \\ %%Pic: as-digital-fb.gif \nnn OMDoc \\ \noindent \quad \\ \nnn 公式の数学的意味や参考文献などの情報を機械可読形式で 保持できる公式集 $\Rightarrow$ {\color{blue} fb タグ}, {\color{magenta} OpenMath}, {\color{blue} hypergeo*.ocd} \\ \nnn さまざまな数学概念に柔軟に対応できる公式集 $\Rightarrow$ {\color{magenta} OpenMath}, {\color{blue} hypergeo*.ocd}, {\color{blue} intpath*.ocd} \\ \nnn XML の機能をフルに生かした公式集 \\ \nnn 数学 object の入力を厳密にかつ容易に $\Rightarrow$ {\color{blue} tfb}言語 \\ \nnn 著作権の問題がない公式集. \\ \nnn 入力ミスの発見を補助する機能 $\Rightarrow$ {\color{blue} fb-checker}\\ \nnn Web ベースの Interactive な機能の提供 $\Rightarrow$ {\color{magenta} MathBook タグ} \\ \newpage \noindent \quad \\ \ttt DocBook (http://www.docbook.org), OpenMath (http://www.openmath.org) の XML タグを拡張 (cf. A.Cohen et al): formula を トップノードとする独自のタグ $\Rightarrow$ {\color{blue} fb XML タグ} \\ {\color{red} new CD}: hypergeo0, hypergeo1, hypergeo2, hypergeon0, hypergeon1, hypergeon2, weylalgebra1 \\ %%Pic: ocd-contrib.gif, hypergeo1.gif \ttt OpenMath の XML と Content Dictionary は さまざまな数学概念に柔軟に対応できる仕組み: \\ 積分路の機械可読形式の入力の問題 $\Rightarrow$ 1 次元の積分路を表現する Content Dictionary {\tt intpath1} (高山) を定義. \\ \ttt DOM や XSL など XML の機能. XML の機能が デジタル公式集にも 有効であることを確認した. \\ \ttt {\color{blue} tfb} は OpenMath オブジェクトを表現するための言語である. \\ cf. RIACA CD Editor(オランダ) や STAR/MathWriter (Stilo Technology) %%Pic: coq-starts.jpg (GUI 型) \\ tfb の特徴: OpenMath オブジェクトの厳密な入力が容易であるのを特徴 \\ \newpage \noindent \quad \\ \ttt fb では 19世紀, 20 世紀の超幾何関数のオリジナル論文, 本をもとに 自分達で公式集の編集. 著作権は OpenXM/fb (Open な組織) が保持する. \\ \ttt 公式の入力にはミスがつきものである. fb では, 数値計算をもちいて明らかな誤りを検出する仕組みを提供 ({\color{blue} fb checker}). \\ OpenXM 版の mathematica および asir サーバ および前述の OpenXM online を利用. 実際に公式の入力を始めてみてわかったこと: \\ {\color{red} \underline{checker のおかげで, 公式入力作業は楽しくかつ正確}} \\ \ttt A.Cohen らの Interactive MathBook のタグ(Eindhoven tag library). Interactive 機能は公式集にとり重要で, たとえば公式を参照するときに変数の置き換えは便利. \\ %%Pic: fb-h21-0040-replace.gif \newpage 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} \quad \\ %%Pic: fb-h21-0060.gif \rightline{開発チーフ: 田村} \rightline{開発: 田村, 高山} \rightline{公式編集メンバー:田村, 高山,中山,藤堂,長谷川} \newpage \noindent 7. {\color{blue} OpenXM 関連の出版物} \quad \\ \nnn Edited by M.Joswig and N.Takayama: {\it Algebra, Geometry and Software Systems}, Springer, 2003 (to appear). \nnn 野呂, 高山, Risa/Asir ドリル (CD 付き), \\ {\tt http://www.math.kobe-u.ac.jp/Asir} \\ (takayama@openxm.org: 配布手数料 1,500 円 (梱包, 送料込, 本体のみは 1,000 円)) \nnn 短いビデオ \nnn {\color{magenta} http://www.openxm.org} \newpage \end{document}