version 1.1, 2000/01/20 08:52:46 |
version 1.2, 2000/01/24 07:36:35 |
|
|
%% $OpenXM$ |
%% $OpenXM: OpenXM/doc/OpenXM-specs/introduction.tex,v 1.1.1.1 2000/01/20 08:52:46 noro Exp $ |
//&jp \section{はじめに} |
//&jp \section{はじめに} |
//&eg \section{Introduction} (This part has not been translated) |
//&eg \section{Introduction} |
|
|
/*&jp |
/*&jp |
Open XM は, おなじタイプまたは異なるタイプの数学プロセス間の |
OpenXM は, おなじタイプまたは異なるタイプの数学プロセス間の |
メッセージのやりとりの規約である. |
メッセージのやりとりの規約である. |
開発の動機は, 手作り(または研究的な)数学ソフトの相互乗り入れの実現 |
開発の動機は, 手作り(または研究的な)数学ソフトの相互乗り入れの実現 |
および分散計算の実装が |
および分散計算の実装が |
Line 11 Open XM は, おなじタイプまたは異なるタイプの数学プロセ |
|
Line 11 Open XM は, おなじタイプまたは異なるタイプの数学プロセ |
|
インタラクティブな数学本, |
インタラクティブな数学本, |
さらには数学デジタル博物館用のソフトがこの規約に従い, |
さらには数学デジタル博物館用のソフトがこの規約に従い, |
数学ソフトを呼び出すことなどにも利用できる. |
数学ソフトを呼び出すことなどにも利用できる. |
当面の目標は openXM 数学ソフトパッケージを作ることである. |
当面の目標は OpenXM 数学ソフトパッケージを作ることである. |
これはさまざまな数学ソフトを一つのパッケージとして |
これはさまざまな数学ソフトを一つのパッケージとして |
簡単に好きな言語より使えるようにするプロジェクトである. |
簡単に好きな言語より使えるようにするプロジェクトである. |
現在 openXM.tar.gz には, |
現在 OpenXM.tar.gz には, |
asir, sm1, phc, gnuplot, tigers が入っている. |
asir, sm1, phc, gnuplot, tigers が入っている. |
OpenXM 数学ソフトパッケージプロジェクトに |
OpenXM 数学ソフトパッケージプロジェクトに |
参加できるように CMO の |
参加できるように CMO の |
規約を拡張していくための規約も定めるものとする. |
規約を拡張していくための規約も定めるものとする. |
|
*/ |
|
/*&eg |
|
OpenXM is a free, or Open Source, infrastructure for mathematical |
|
softwares. |
|
It provides methods and protocols |
|
for interactive distributed computation and |
|
for integrating mathematical softwares. |
|
OpenXM package is a set of softwares that supports OpenXM protocols. |
|
It is currently a collection of softwares |
|
{\tt Risa/Asir} \cite{asir}, {\tt Kan/sm1} \cite{kan}, {\tt PHC} pack \cite{phc} |
|
, {\tt GNUPLOT}, |
|
{\tt Mathematica} interface, and |
|
{\tt OpenMath}/XML \cite{openmath} translator. |
|
*/ |
|
|
|
/*&jp |
現在専門的な数学ソフトが多数開発 |
現在専門的な数学ソフトが多数開発 |
されているが, 次世代の数学ソフトは他のソフトよりサブルーチンとして |
されているが, 次世代の数学ソフトは他のソフトよりサブルーチンとして |
呼び出せる機能をもつべきである. |
呼び出せる機能をもつべきである. |
Line 30 OpenXM 数学ソフトパッケージプロジェクトに |
|
Line 45 OpenXM 数学ソフトパッケージプロジェクトに |
|
数学アルゴリズム自体に集中できる環境が実現できることを |
数学アルゴリズム自体に集中できる環境が実現できることを |
期待している. |
期待している. |
|
|
設計の方針として, (1) 単純 (2) 拡張性 (3) 実装の簡便さ (4) 実用性 |
設計の方針として, (1) 単純 (2) 拡張性 (3) 実装の簡便さ (4) 実用性(5) |
(5) 高信頼性(robustness), |
高信頼性(robustness),に重きをおいている. |
に重きをおいている. |
|
Open XM はなにも考えずに簡単に接続できるシステムを作ろう, |
|
というまで野心的ではない. |
|
数学的な object は一筋縄ではいかないし, 完全な統一規格をつくるというのは |
|
気が遠くなる仕事である. |
|
そのかわり, 今よりすこしだけこういったデータ交換や分散システム構築の仕事を楽に |
|
したいというのがささやかな第1目標である. |
|
|
|
|
OpenXM はなにも考えずに簡単に接続できるシステムを作ろう,というまで野心 |
|
的ではない. 数学的な object は一筋縄ではいかないし, 完全な統一規格を |
|
つくるというのは気が遠くなる仕事である. そのかわり, 今よりすこしだけこ |
|
ういったデータ交換や分散システム構築の仕事を楽にしたいというのがささや |
|
かな第1目標である. また, Mathematica や Maple といった巨大な統合ソフ |
|
トを, Free Mathematical Softwares としてわれわれ自身の手でつくっていく |
|
ための基礎でもある. |
|
*/ |
|
|
|
/*&eg |
|
We have been profited from increasing number |
|
of mathematical softwares. |
|
These are usually ``expert'' systems in one area of mathematics |
|
such as ideals, groups, numbers, polytopes, and so on. |
|
They have their own interfaces and data formats, |
|
which are fine for intensive users of these systems. |
|
However, a unified system will be more convenient |
|
for users who want to explore a new area of mathematics with these |
|
softwares or users who need these systems only occasionally. |
|
|
|
OpenXM provides not only data representation and communication protocols |
|
but also programming guidelines to develop cooperative applications. |
|
One will be able to concentrate on |
|
developing mathematical algorithms with such guidelines. |
|
Our design goals are (1) simpleness, (2) extensibility, (3) |
|
easiness of implementation, (4) practicality, and (5) robustness. |
|
|
|
We believe that an open integrated system is a future of mathematical |
|
softwares. However, it might be just a dream without realizability. |
|
We want to build a prototype of such an open system by using existing |
|
standards, technologies and several mathematical softwares. We want |
|
to see how far we can go with this approach. |
|
*/ |
|
|
|
/*&jp |
数学的な Object をどのように表現するのか, どう伝えるのかを考えることは |
数学的な Object をどのように表現するのか, どう伝えるのかを考えることは |
決してつまらない問題ではない. |
決してつまらない問題ではない. |
このような問題は, 新しい数学記号を創造する問題と似ているかもしれない. |
このような問題は, 新しい数学記号を創造する問題と似ているかもしれない. |
我々は, 数字を $0$ を含んだ10進数で表記し, |
我々は, 数字を $0$ を含んだ10進数で表記し, |
微分を $dx$ と書き, 写像を $ \longrightarrow $ であらわす. |
微分を $dx$ と書き, 写像を $ \longrightarrow $ であらわす. |
これらの記号法からどれだけ多くの利益を得ているか, 思いをはせて欲しい. |
これらの記号法からどれだけ多くの利益を得ているか, 思いをはせて欲しい. |
また, Mathematica や Maple といった巨大な統合ソフトを, |
*/ |
Free Mathematical Softwares としてわれわれ自身の |
/*&eg |
手でつくっていくための基礎でもある. |
It is not an obvious problem to consider how mathematical objects |
|
are represented and communicated. |
|
It may be similar to trying to create new mathematical symbols. |
|
We have the decimal notation to represent numbers, the symbol $dx$ |
|
to represent a differential, and $ \longrightarrow $ to represent |
|
a mapping. One should imagine how we are benefited from these notations. |
|
*/ |
|
|
%% 変数名をどうするか悩むのにも似てる. |
%% 変数名をどうするか悩むのにも似てる. |
|
|
Open XM に準拠したシステム xxx を, open xxx とよぶ. |
/*&jp |
たとえば, open XM 対応の asir は open asir であり, |
OpenXM は論理的には |
open XM 対応の kan/sm1 は open sm1 である. |
OX 層, SM 層, CMO 層にわかれる. |
|
OX Object は, データ, コマンドに大別できる. |
|
データはこのプロジェクトのオリジナルのデータ形式 |
|
である CMO (Common Mathematical Object Format) で |
|
送出してもよいし, MP や Open MATH などの形式を用いてもよい. |
|
SM 層は (スタックマシン)サーバを制御するための命令の |
|
あつまりであり, サーバは非同期的に動作させることが可能である. |
|
柔軟性が高いので, IMC などのリモートプロシージャコール系の |
|
プロトコルもエミュレートできる. |
|
*/ |
|
/*&eg |
|
In OpenXM, communication is an exchange of messages. |
|
The messages are classified |
|
into three types: DATA, COMMAND, and SPECIAL. They are called OX |
|
(OpenXM) messages. Among the three types, {\it OX data messages} wrap |
|
mathematical data. We use standards of mathematical data formats such |
|
as OpenMath and MP as well as our own data format {\it CMO} ({\it |
|
Common Mathematical Object format}). Servers, which provide services |
|
to other processes, are stack machines. The stack machine is called |
|
the {\it OX stack machine}. Existing mathematical softwares are |
|
wrapped with this stack machine. OX stack machines work in the |
|
asynchronous mode which is similar to X servers. That is, OpenXM |
|
server won't send messages to the client unless it is requested |
|
to send them. It is also possible to emulate RPC and a web server for MCP |
|
\cite{iamc} on our asynchronous OX stack machines. |
|
*/ |
|
/*&jp |
|
OpenXM に準拠したシステム xxx を, open xxx とよぶ. |
|
たとえば, OpenXM 対応の asir は open asir であり, |
|
OpenXM 対応の kan/sm1 は open sm1 である. |
|
*/ |
|
/*&eg |
|
A system xxx conforming to OpenXM is called open xxx. |
|
For example Asir conforming to OpenXM is called open Asir, and |
|
kan/sm1 conforming to OpenXM is called open sm1. |
|
*/ |
|
|
Open XM は, データ型をきめている部分と, |
/*&jp |
|
OpenXM は, データ型をきめている部分と, |
共通スタック言語を定めている部分にわかれる. |
共通スタック言語を定めている部分にわかれる. |
よいたとえかどうか自信がないが, |
よいたとえかどうか自信がないが, |
Open XM を定義する作業は, unicode を定める作業に似ている部分もある. |
OpenXM を定義する作業は, unicode を定める作業に似ている部分もある. |
たとえば, 漢字は東アジアで共通に使用されているが, 国や地方単位で |
たとえば, 漢字は東アジアで共通に使用されているが, 国や地方単位で |
形がすこしづつ違うものがある. |
形がすこしづつ違うものがある. |
unicode では, 似た漢字を同じ code におしこんだ. |
unicode では, 似た漢字を同じ code におしこんだ. |
Open XM でも, システム毎にことなるが似ているデータ型を |
OpenXM でも, システム毎にことなるが似ているデータ型を |
同じ型としてあつかう. |
同じ型としてあつかう. |
たとえば, ``分散多項式'' の意味は, asir と kan/sm1 で異なるが, |
たとえば, ``分散多項式'' の意味は, asir と kan/sm1 で異なるが, |
Open XM では, 同じ型としてあつかわれる. |
OpenXM では, 同じ型としてあつかわれる. |
ただしこれでは不十分な場合があるので,システム固有のデータ型も扱える |
ただしこれでは不十分な場合があるので,システム固有のデータ型も扱える |
ような仕組みも用意している. |
ような仕組みも用意している. |
(さっきのたとえでは, こちらは, unicode でなく, ISO の文字符号系に対応するか.) |
(さっきのたとえでは, こちらは, unicode でなく, ISO の文字符号系に対応するか.) |
Line 76 Open XM では, 同じ型としてあつかわれる. |
|
Line 161 Open XM では, 同じ型としてあつかわれる. |
|
いちじるしく簡単になる. |
いちじるしく簡単になる. |
システム毎に固有の関数を共通の関数名にするプロジェクトも |
システム毎に固有の関数を共通の関数名にするプロジェクトも |
考えているが, 共通の関数名は OpenMath のものを利用する予定である. |
考えているが, 共通の関数名は OpenMath のものを利用する予定である. |
|
*/ |
Open XM は論理的には |
/*&eg |
OX 層, SM 層, CMO 層にわかれる. |
% not translated yet. |
OX Object は, データ, コマンドに大別できる. |
|
データはこのプロジェクトのオリジナルのデータ形式 |
|
である CMO (Common Mathematical Object Format) で |
|
送出してもよいし, MP や Open MATH などの形式を用いてもよい. |
|
SM 層は (スタックマシン)サーバを制御するための命令の |
|
あつまりであり, サーバは非同期的に動作させることが可能である. |
|
柔軟性が高いので, IMC などのリモートプロシージャコール系の |
|
プロトコルもエミュレートできる. |
|
*/ |
*/ |
|
|
|
|