%% $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}