=================================================================== RCS file: /home/cvs/OpenXM/doc/OpenXM-specs/introduction.tex,v retrieving revision 1.2 retrieving revision 1.5 diff -u -p -r1.2 -r1.5 --- OpenXM/doc/OpenXM-specs/introduction.tex 2000/01/24 07:36:35 1.2 +++ OpenXM/doc/OpenXM-specs/introduction.tex 2020/03/14 01:21:56 1.5 @@ -1,33 +1,33 @@ -%% $OpenXM: OpenXM/doc/OpenXM-specs/introduction.tex,v 1.1.1.1 2000/01/20 08:52:46 noro Exp $ -//&jp \section{Ϥ} +%% $OpenXM: OpenXM/doc/OpenXM-specs/introduction.tex,v 1.4 2002/01/20 09:26:22 takayama Exp $ +//&jp \section{はじめに} //&eg \section{Introduction} /*&jp -OpenXM , ʤפޤϰۤʤ륿פοإץ֤ -åΤȤεǤ. -ȯư, (ޤϸŪ)إեȤ߾μ¸ -ʬ׻μ -Ǥä, إեȴ֤Ǥʤ, ץեȤ, -󥿥饯ƥ֤ʿ, -ˤϿإǥʪѤΥեȤε˽, -إեȤƤӽФȤʤɤˤѤǤ. -̤ɸ OpenXM إեȥѥå뤳ȤǤ. -ϤޤޤʿإեȤĤΥѥåȤ -ñ˹ʸȤ褦ˤץȤǤ. - OpenXM.tar.gz ˤ, -asir, sm1, phc, gnuplot, tigers äƤ. -OpenXM إեȥѥåץȤ -äǤ褦 CMO -ĥƤεΤȤ. +OpenXM は, おなじタイプまたは異なるタイプの数学プロセス間の +メッセージのやりとりの規約である. +開発の動機は, 手作り(または研究的な)数学ソフトの相互乗り入れの実現 +および分散計算の実装が +第一であったが, もちろん数学ソフト間だけでなく, ワープロソフトや, +インタラクティブな数学本, +さらには数学デジタル博物館用のソフトがこの規約に従い, +数学ソフトを呼び出すことなどにも利用できる. +当面の目標は OpenXM 数学ソフトパッケージを作ることである. +これはさまざまな数学ソフトを一つのパッケージとして +簡単に好きな言語より使えるようにするプロジェクトである. +現在 OpenXM.tar.gz には, +asir, sm1, phc, gnuplot, tigers が入っている. +OpenXM 数学ソフトパッケージプロジェクトに +参加できるように CMO の +規約を拡張していくための規約も定めるものとする. */ /*&eg OpenXM is a free, or Open Source, infrastructure for mathematical -softwares. +software systems. 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 +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 @@ -35,38 +35,40 @@ It is currently a collection of softwares */ /*&jp -ŪʿإեȤ¿ȯ -Ƥ뤬, οإեȤ¾ΥեȤꥵ֥롼Ȥ -ƤӽФ뵡ǽĤ٤Ǥ. -Τ褦˶Ĵǽˤ줿ץ񤯤߷פ -ɥ饤, ץˡΤ褦ʤΤƤΤ, -ΥץȤŪǤ. -Τ褦ʥɥ饤ˤäƥץह뤳Ȥˤ, -إ르ꥺ༫Τ˽ǤĶ¸Ǥ뤳Ȥ -ԤƤ. +現在専門的な数学ソフトが多数開発 +されているが, 次世代の数学ソフトは他のソフトよりサブルーチンとして +呼び出せる機能をもつべきである. +このように協調機能にすぐれたプログラムを書くための設計の +ガイドライン, プログラム作法のようなものを提案するのも, +このプロジェクトの目的である. +このようなガイドラインにそってプログラムすることにより, +数学アルゴリズム自体に集中できる環境が実現できることを +期待している. -߷פˤȤ, (1) ñ (2) ĥ (3) δؤ (4) (5) -⿮(robustness),˽Ť򤪤Ƥ. +設計の方針として, (1) 単純 (2) 拡張性 (3) 実装の簡便さ (4) 実用性(5) +高信頼性(robustness),に重きをおいている. -OpenXM Ϥʤˤͤ˴ñ³Ǥ륷ƥ,Ȥޤ -ŪǤϤʤ. Ū object ϰǤϤʤ, 쵬ʤ -ĤȤΤϵ󤯤ʤŻǤ. Τ, ꤹ -äǡ򴹤ʬƥ๽ۤλŻڤˤȤΤ -1ɸǤ. ޤ, Mathematica Maple Ȥä祽 -Ȥ, Free Mathematical Softwares ȤƤ켫ȤμǤĤäƤ -δäǤ⤢. +OpenXM はなにも考えずに簡単に接続できるシステムを作ろう,というまで野心 +的ではない. 数学的な object は一筋縄ではいかないし, 完全な統一規格を +つくるというのは気が遠くなる仕事である. そのかわり, 今よりすこしだけこ +ういったデータ交換や分散システム構築の仕事を楽にしたいというのがささや +かな第1目標である. また, Mathematica や Maple といった巨大な統合ソフ +トを, Free Mathematical Software としてわれわれ自身の手でつくっていく +ための基礎でもある. */ /*&eg We have been profited from increasing number -of mathematical softwares. +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 -softwares or users who need these systems only occasionally. +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. @@ -76,19 +78,20 @@ Our design goals are (1) simpleness, (2) extensibility 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. +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 softwares. We want -to see how far we can go with this approach. +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 $ Ǥ魯. -εˡɤ¿פƤ뤫, פϤߤ. +数学的な Object をどのように表現するのか, どう伝えるのかを考えることは +決してつまらない問題ではない. +このような問題は, 新しい数学記号を創造する問題と似ているかもしれない. +我々は, 数字を $0$ を含んだ10進数で表記し, +微分を $dx$ と書き, 写像を $ \longrightarrow $ であらわす. +これらの記号法からどれだけ多くの利益を得ているか, 思いをはせて欲しい. */ /*&eg It is not an obvious problem to consider how mathematical objects @@ -99,19 +102,21 @@ to represent a differential, and $ \longrightarrow $ t a mapping. One should imagine how we are benefited from these notations. */ -%% ѿ̾ɤ뤫ǺΤˤƤ. +%% 変数名をどうするか悩むのにも似てる. /*&jp -OpenXM Ūˤ -OX , SM , CMO ؤˤ狼. -OX Object , ǡ, ޥɤ̤Ǥ. -ǡϤΥץȤΥꥸʥΥǡ -Ǥ CMO (Common Mathematical Object Format) -ФƤ褤, MP Open MATH ʤɤηѤƤ褤. -SM ؤ (åޥ)Ф椹뤿̿ -ĤޤǤ, ФƱŪư뤳ȤǽǤ. -⤤Τ, IMC ʤɤΥ⡼ȥץ㥳Ϥ -ץȥ⥨ߥ졼ȤǤ. +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. @@ -122,45 +127,55 @@ mathematical data. We use standards of mathematical d 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 +the {\it OX stack machine}. Existing mathematical software systems 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. +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. + +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 Ǥ. +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. +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 , ǡ򤭤Ƥʬ, -̥åƤʬˤ狼. -褤Ȥɤʤ, -OpenXM Ȥ, unicode Ȥ˻Ƥʬ⤢. -Ȥ, 쥢Ƕ̤˻ѤƤ뤬, ñ̤ -Ťİ㤦Τ. -unicode Ǥ, Ʊ code ˤ. -OpenXM Ǥ, ƥˤȤʤ뤬Ƥǡ -ƱȤƤĤ. -Ȥ, ``ʬ¿༰'' ΰ̣, asir kan/sm1 ǰۤʤ뤬, -OpenXM Ǥ, ƱȤƤĤ. -ǤԽʬʾ礬Τ,ƥͭΥǡⰷ -褦ʻȤߤѰդƤ. -(äΤȤǤ, , unicode Ǥʤ, ISO ʸϤб뤫.) -̥å, ζ̥ޥɤΤ -Ū˥ƥ˸ͭδؿˤ¹Ԥ. -ˤ, open xxx ΥФμӥޥ˥奢εҤ -뤷ñˤʤ. -ƥ˸ͭδؿ̤δؿ̾ˤץȤ -ͤƤ뤬, ̤δؿ̾ OpenMath ΤΤѤͽǤ. +OpenXM は, データ型をきめている部分と, +共通スタック言語を定めている部分にわかれる. +よいたとえかどうか自信がないが, +OpenXM を定義する作業は, unicode を定める作業に似ている部分もある. +たとえば, 漢字は東アジアで共通に使用されているが, 国や地方単位で +形がすこしづつ違うものがある. +unicode では, 似た漢字を同じ code におしこんだ. +OpenXM でも, システム毎にことなるが似ているデータ型を +同じ型としてあつかう. +たとえば, ``分散多項式'' の意味は, asir と kan/sm1 で異なるが, +OpenXM では, 同じ型としてあつかわれる. +ただしこれでは不十分な場合があるので,システム固有のデータ型も扱える +ような仕組みも用意している. +(さっきのたとえでは, こちらは, unicode でなく, ISO の文字符号系に対応するか.) +共通スタック言語は, ごく小数の共通コマンドをのぞき +基本的にシステム毎に固有の関数により実行される. +これにより, open xxx のサーバの実装およびマニュアルの記述は +いちじるしく簡単になる. +システム毎に固有の関数を共通の関数名にするプロジェクトも +考えているが, 共通の関数名は OpenMath のものを利用する予定である. */ /*&eg % not translated yet.