version 1.116, 1999/12/29 09:21:34 |
version 1.120, 2000/01/07 06:04:13 |
|
|
\documentclass{jarticle} |
\documentclass{jarticle} |
|
|
%% $OpenXM: OpenXM/doc/genkou19991125.tex,v 1.115 1999/12/28 18:47:12 tam Exp $ |
%% $OpenXM: OpenXM/doc/genkou19991125.tex,v 1.119 2000/01/05 14:12:05 tam Exp $ |
|
|
\usepackage{jssac} |
\usepackage{jssac} |
|
|
Line 444 http://www.openmath.org/omsoc/ |
|
Line 444 http://www.openmath.org/omsoc/ |
|
定義された表現は, 異なる種類の数式処理システムの間で情報を交換するときに |
定義された表現は, 異なる種類の数式処理システムの間で情報を交換するときに |
利用することができる. しかしながら, 数学システム同士の通信, 例えばある |
利用することができる. しかしながら, 数学システム同士の通信, 例えばある |
数学システムから別の数学システムを呼び出して計算させる方法などは, このプ |
数学システムから別の数学システムを呼び出して計算させる方法などは, このプ |
ロジェクトの対象外である. |
ロジェクトの対象外である. OpenXM における共通データ形式と数学システム固 |
|
有のオブジェクトとの変換は OpenMath 規約の Phrasebook と同じアイデアを用 |
|
いている. |
|
|
OpenXM 規約の CMO 形式の定義は OpenMath 規約の content dictionary の概念 |
% ここは書かなくてもいいように思えてきたので削除しました。 |
に似ている(もちろん OpenMath の方がもっと大掛かりで厳密な規定である). |
%OpenXM 規約の CMO 形式の定義は OpenMath 規約の content dictionary の概念 |
また, 共通データ形式と数学システム固有のオブジェクトとの変換は OpenMath |
%に似ている(もちろん OpenMath の方がもっと大掛かりで厳密な規定である). |
規約の Phrasebook と同じアイデアを用いている. |
|
|
|
|
|
\item NetSolve |
\item NetSolve |
Line 471 http://symbolicnet.mcs.kent.edu/SN/areas/protocols/mp. |
|
Line 472 http://symbolicnet.mcs.kent.edu/SN/areas/protocols/mp. |
|
数学的なデータの共通表現を提供するプロジェクト. MP の主な関心は, この |
数学的なデータの共通表現を提供するプロジェクト. MP の主な関心は, この |
共通表現の最適化である. 数学システム間で, 命令を送信したりデータを受 |
共通表現の最適化である. 数学システム間で, 命令を送信したりデータを受 |
け渡す仕組み(control integration)は, このプロジェクトの対象外である. |
け渡す仕組み(control integration)は, このプロジェクトの対象外である. |
MP は既存の contorl integration に対して補完的役割を果たす. |
MP は既存の control integration に対して補完的役割を果たす. |
|
|
MP では数式を構文木の一種(annotated syntax tree)と捉える. annotated |
MP では数式を構文木の一種(annotated syntax tree)と捉える. annotated |
syntax tree には数学的な意味を保ったまま表現されているという特徴がある |
syntax tree には数学的な意味を保ったまま表現されているという特徴がある |
(この点は OpenMath と似ている). MP が提供する共通表現とは, この構文木 |
(この点は OpenMath と似ている). MP が提供する共通表現とは, この構文木の |
のバイナリエンコーディング, つまりバイト列での表現のことである. この |
バイナリエンコーディング, つまりバイト列での表現のことである. MP の定義 |
MP の定義する表現はバイト列の長さが最適化されている. また, バイトオー |
する表現ではバイト列の長さが最適化されている. また, バイトオーダーの選 |
ダーの選択も可能である(\ref{sec:messages} 節参照のこと). |
択も可能である(\ref{sec:messages} 節参照のこと). |
|
|
このプロジェクトでは C 言語および GNU Common Lisp で実装を行なっている. |
このプロジェクトでは C 言語および GNU Common Lisp で実装を行なっている. |
C 言語による実装(MP-C ライブラリ)は上記のウェブページから収得可能であ |
C 言語による実装(MP-C ライブラリ)は上記のウェブページから収得可能である. |
る. このライブラリを用いて通信を行なうには, なんらかの control |
このライブラリを用いて通信を行なうには, なんらかの control integration |
integration が必要である. control integration としては, ソケット, |
が必要である. control integration としては, ソケット, MPI, PVM などが利 |
MPI, PVM などが利用できる. |
用できる. |
|
|
|
|
\item MCP (Mathematical Computation Protocol) |
\item MCP (Mathematical Computation Protocol) |
|
|
http://horse.mcs.kent.edu/\~{}pwang/ |
http://horse.mcs.kent.edu/\~{}pwang/ |
|
|
数学的な計算を行なうための HTTP に似たプロトコル. クライアント・サー |
HTTP に似せた数学的な計算を行なうためのプロトコル. |
バモデルを採用している. 交換に用いられる数学データの表現方法について |
MCP は control integration を規定しており, |
の規定はない. したがって数学的なデータの表現には MP や OpenMath で定め |
クライアント・サーバ型の通信を行なう. |
られたものを利用することができる. 実際, 数学データの表現に OpenMath |
MCP のメッセージはヘッダとボディから構成されている. |
の XML 表現を用いた実装があり, GAP と Axiom の間で通信が行われている. |
ヘッダはテキストであり, 最初に現れる空行でヘッダとボディは |
この場合 MCP によって送信されるデータは, 本文に OpenMath 形式で数式を |
区切られている. |
記述したテキストである. |
ボディの形式は固定ではなく, |
|
ヘッダを見ればボディの形式が分かるようになっている. |
|
|
|
数式はボディに記述されて送られるが, |
|
このプロトコルでは数式の表現方法についての規定はなく, |
|
そのため, オブジェクトの表現には MP や OpenMath で定められたものを |
|
使用することが考えられている. |
|
実際, 数式の表現に OpenMath 規約の XML 表現を用いた実装があり, |
|
GAP と Axiom の間で通信が行なわれている. |
|
この場合, MCP によって送信されるメッセージは |
|
ボディに OpenMath 形式で数式を記述したテキストである. |
|
|
\end{itemize} |
\end{itemize} |
|
|