=================================================================== RCS file: /home/cvs/OpenXM/doc/OpenXM-specs/introduction.tex,v retrieving revision 1.1.1.1 retrieving revision 1.4 diff -u -p -r1.1.1.1 -r1.4 --- OpenXM/doc/OpenXM-specs/introduction.tex 2000/01/20 08:52:46 1.1.1.1 +++ OpenXM/doc/OpenXM-specs/introduction.tex 2002/01/20 09:26:22 1.4 @@ -1,9 +1,9 @@ -%% $OpenXM$ +%% $OpenXM: OpenXM/doc/OpenXM-specs/introduction.tex,v 1.3 2000/09/09 21:59:13 takayama Exp $ //&jp \section{はじめに} -//&eg \section{Introduction} (This part has not been translated) +//&eg \section{Introduction} /*&jp -Open XM は, おなじタイプまたは異なるタイプの数学プロセス間の +OpenXM は, おなじタイプまたは異なるタイプの数学プロセス間の メッセージのやりとりの規約である. 開発の動機は, 手作り(または研究的な)数学ソフトの相互乗り入れの実現 および分散計算の実装が @@ -11,15 +11,30 @@ Open XM は, おなじタイプまたは異なるタイプの数学プロセ インタラクティブな数学本, さらには数学デジタル博物館用のソフトがこの規約に従い, 数学ソフトを呼び出すことなどにも利用できる. -当面の目標は openXM 数学ソフトパッケージを作ることである. +当面の目標は OpenXM 数学ソフトパッケージを作ることである. これはさまざまな数学ソフトを一つのパッケージとして 簡単に好きな言語より使えるようにするプロジェクトである. -現在 openXM.tar.gz には, +現在 OpenXM.tar.gz には, asir, sm1, phc, gnuplot, tigers が入っている. OpenXM 数学ソフトパッケージプロジェクトに 参加できるように CMO の 規約を拡張していくための規約も定めるものとする. +*/ +/*&eg +OpenXM is a free, or Open Source, infrastructure for mathematical +software systems. +It provides methods and protocols +for interactive distributed computation and +for integrating mathematical software systems. +OpenXM package is a set of software systems that support OpenXM protocols. +It is currently a collection of software systems +{\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 現在専門的な数学ソフトが多数開発 されているが, 次世代の数学ソフトは他のソフトよりサブルーチンとして 呼び出せる機能をもつべきである. @@ -30,43 +45,128 @@ OpenXM 数学ソフトパッケージプロジェクトに 数学アルゴリズム自体に集中できる環境が実現できることを 期待している. -設計の方針として, (1) 単純 (2) 拡張性 (3) 実装の簡便さ (4) 実用性 -(5) 高信頼性(robustness), -に重きをおいている. -Open XM はなにも考えずに簡単に接続できるシステムを作ろう, -というまで野心的ではない. -数学的な object は一筋縄ではいかないし, 完全な統一規格をつくるというのは -気が遠くなる仕事である. -そのかわり, 今よりすこしだけこういったデータ交換や分散システム構築の仕事を楽に -したいというのがささやかな第1目標である. +設計の方針として, (1) 単純 (2) 拡張性 (3) 実装の簡便さ (4) 実用性(5) +高信頼性(robustness),に重きをおいている. +OpenXM はなにも考えずに簡単に接続できるシステムを作ろう,というまで野心 +的ではない. 数学的な object は一筋縄ではいかないし, 完全な統一規格を +つくるというのは気が遠くなる仕事である. そのかわり, 今よりすこしだけこ +ういったデータ交換や分散システム構築の仕事を楽にしたいというのがささや +かな第1目標である. また, Mathematica や Maple といった巨大な統合ソフ +トを, Free Mathematical Software としてわれわれ自身の手でつくっていく +ための基礎でもある. +*/ + +/*&eg +We have been profited from increasing number +of mathematical software systems. +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 +software systems or users who need these systems only occasionally. +It is also wonderful for developpers to have various software components +that can be used from the target system. + +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 +software systems. +However, it might be a dream without realizability. +We want to build a prototype of such an open system by using existing +standards, technologies and several mathematical software systems. +We want to see how far we can go with this approach. +*/ + +/*&jp 数学的な Object をどのように表現するのか, どう伝えるのかを考えることは 決してつまらない問題ではない. このような問題は, 新しい数学記号を創造する問題と似ているかもしれない. 我々は, 数字を $0$ を含んだ10進数で表記し, 微分を $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 とよぶ. -たとえば, open XM 対応の asir は open asir であり, -open XM 対応の kan/sm1 は open sm1 である. +/*&jp +OpenXM は論理的には +OX 層, SM 層, CMO 層にわかれる. +OX Object は, データ, コマンドに大別できる. +データはこのプロジェクトのオリジナルのデータ形式 +である CMO (Common Mathematical Object Format) で +送出してもよいし, MP や Open MATH などの形式を用いてもよい. +SM 層は (スタックマシン)サーバを制御するための命令の +あつまりであり, サーバは非同期的に動作させることが可能である. +柔軟性が高いので, IMC などのリモートプロシージャコール系の +プロトコルもエミュレートできる. +OX メッセージは DTD を用いて定義可能であり, XML を用いて +記述できる. +*/ +/*&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 software systems are +wrapped with this stack machine. OX stack machines work in the +asynchronous mode like X servers. +OpenXM servers try to be as quiet as possible. +OpenXM server does not send messages to the client unless it is requested +to send them. -Open XM は, データ型をきめている部分と, +Our stackmachine architecutre can be used as the lowest level layer +to implement other protocols. +Emulating RPC or constructing a web server like MCP +\cite{iamc} on our asynchronous OX stack machines +are possible. + +Our datatype definition is compliant to XML architecture. +OX messages can be defined by DTD and can be expressed by XML. +We call it OpenXM/XML. +*/ +/*&jp +OpenXM に準拠したシステム xxx を, open xxx とよぶ. +たとえば, OpenXM 対応の asir は open asir であり, +OpenXM 対応の kan/sm1 は open sm1 である. +*/ +/*&eg +A system xxx complient to the OpenXM protocol is called open xxx. +For example Asir complient to the OpenXM protocol is called open Asir, and +kan/sm1 complient to the OpenXM protocol is called open sm1. +*/ + +/*&jp +OpenXM は, データ型をきめている部分と, 共通スタック言語を定めている部分にわかれる. よいたとえかどうか自信がないが, -Open XM を定義する作業は, unicode を定める作業に似ている部分もある. +OpenXM を定義する作業は, unicode を定める作業に似ている部分もある. たとえば, 漢字は東アジアで共通に使用されているが, 国や地方単位で 形がすこしづつ違うものがある. unicode では, 似た漢字を同じ code におしこんだ. -Open XM でも, システム毎にことなるが似ているデータ型を +OpenXM でも, システム毎にことなるが似ているデータ型を 同じ型としてあつかう. たとえば, ``分散多項式'' の意味は, asir と kan/sm1 で異なるが, -Open XM では, 同じ型としてあつかわれる. +OpenXM では, 同じ型としてあつかわれる. ただしこれでは不十分な場合があるので,システム固有のデータ型も扱える ような仕組みも用意している. (さっきのたとえでは, こちらは, unicode でなく, ISO の文字符号系に対応するか.) @@ -76,17 +176,9 @@ Open XM では, 同じ型としてあつかわれる. いちじるしく簡単になる. システム毎に固有の関数を共通の関数名にするプロジェクトも 考えているが, 共通の関数名は OpenMath のものを利用する予定である. - -Open XM は論理的には -OX 層, SM 層, CMO 層にわかれる. -OX Object は, データ, コマンドに大別できる. -データはこのプロジェクトのオリジナルのデータ形式 -である CMO (Common Mathematical Object Format) で -送出してもよいし, MP や Open MATH などの形式を用いてもよい. -SM 層は (スタックマシン)サーバを制御するための命令の -あつまりであり, サーバは非同期的に動作させることが可能である. -柔軟性が高いので, IMC などのリモートプロシージャコール系の -プロトコルもエミュレートできる. +*/ +/*&eg +% not translated yet. */