version 1.3, 2000/01/03 04:27:52 |
version 1.4, 2000/01/07 07:52:26 |
|
|
% $OpenXM: OpenXM/doc/issac2000/design-outline.tex,v 1.2 2000/01/02 07:32:11 takayama Exp $ |
% $OpenXM: OpenXM/doc/issac2000/design-outline.tex,v 1.3 2000/01/03 04:27:52 takayama Exp $ |
|
|
\section{Design Outline} |
\section{Design Outline} |
|
|
Line 28 by Wang \cite{iamc} is such a protocol specialized to |
|
Line 28 by Wang \cite{iamc} is such a protocol specialized to |
|
|
|
Although, data and control are orthogonal to each other, |
Although, data and control are orthogonal to each other, |
real world requires both. |
real world requires both. |
NetSolv \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc}, |
NetSolve \cite{netsolve}, OpenMath$+$MCP, MP$+$MCP \cite{iamc}, |
and MathLink of Mathematica provide both data and control integration. |
and MathLink of Mathematica provide both data and control integration. |
These are currently studied ways of data and control integration. |
These are currently studied ways of data and control integration. |
Each integration method has their own special features due to their |
Each integration method has their own special features due to their |
|
|
\begin{enumerate} |
\begin{enumerate} |
\item Noro, who is one of the authors of OpenXM, has developed a general |
\item Noro, who is one of the authors of OpenXM, has developed a general |
purpose computer algebra system Risa/Asir \cite{asir}. |
purpose computer algebra system Risa/Asir \cite{asir}. |
A set of functions for interative distributed computations were introduced |
A set of functions for interactive distributed computations were introduced |
in Risa/Asir version 950831 released in 1995. |
in Risa/Asir version 950831 released in 1995. |
The model of computation was RPC (remote procedure call) |
The model of computation was RPC (remote procedure call) |
and it had its own serialization method for objects. |
and it had its own serialization method for objects. |
A robust interruption method was provided by having two communication channels |
A robust interruption method was provided by having two communication channels |
like ftp, which implements the simple network management protocol. |
like ftp, which implements the simple network management protocol. |
As an application of this robust and interractive distributed computation |
As an application of this robust and interactive distributed computation |
system, |
system, |
a huge Gr\"obner basis was computed |
a huge Gr\"obner basis was computed |
to determine all replicable functions by Noro and McKay \cite{noro-mckay}. |
to determine all replicable functions by Noro and McKay \cite{noro-mckay}. |
Line 72 decade of the 20th century. |
|
Line 72 decade of the 20th century. |
|
These are usually ``expert'' systems for one area of mathematics |
These are usually ``expert'' systems for one area of mathematics |
such as ideals, groups, numbers, polytopes, and so on. |
such as ideals, groups, numbers, polytopes, and so on. |
They have their own interfaces and data formats. |
They have their own interfaces and data formats. |
Interfaces are usually specialied to a specific field of mathematics |
Interfaces are usually specialized to a specific field of mathematics |
or poor because developers do not have time for designing user interface |
or poor because developers do not have time for designing user interface |
languages. |
languages. |
It is fine for intensive and serious users of these systems. |
It is fine for intensive and serious users of these systems. |
%% x2 stands for x^2, specialized for polynomial ring. |
%% x2 stands for x^2, specialized for polynomial ring. |
However, for users who want to explore a new area of mathematics with these |
However, for users who want to explore a new area of mathematics with these |
softwares or users who need these systems only occasionally, |
softwares or users who need these systems only occasionally, |
a unified system will be more convinient. |
a unified system will be more convenient. |
For example, if we can call and use mathematical softwares |
For example, if we can call and use mathematical softwares |
like CoCoa, GAP, Macaulay2, Porta, Singular, Snapea, $\ldots$ |
like CoCoa, GAP, Macaulay2, Porta, Singular, Snapea, $\ldots$ |
from Asir, Axion, Maple, muPAD, Mathematica, and so on, |
from Asir, Axion, Maple, muPAD, Mathematica, and so on, |
Line 97 We want to see how far we can go with this approach. |
|
Line 97 We want to see how far we can go with this approach. |
|
Motivated with these, we started the OpenXM project with the following |
Motivated with these, we started the OpenXM project with the following |
fundamental architecture. |
fundamental architecture. |
\begin{enumerate} |
\begin{enumerate} |
\item Communication is an exchange of messages. The messages are classifed into |
\item Communication is an exchange of messages. The messages are classified into |
three types: |
three types: |
DATA, COMMAND, and others. |
DATA, COMMAND, and others. |
The messages are called OX (OpenXM) messages. |
The messages are called OX (OpenXM) messages. |
Line 105 Mathematical data are wrapped with {\it OX messages}. |
|
Line 105 Mathematical data are wrapped with {\it OX messages}. |
|
We use standards of mathematical data formats such as OpenMath and MP |
We use standards of mathematical data formats such as OpenMath and MP |
and our own data format ({\it CMO --- Common Mathematical Object format}) |
and our own data format ({\it CMO --- Common Mathematical Object format}) |
as data expressions. |
as data expressions. |
\item Servers, which provide services to other processes, are stackmachines. |
\item Servers, which provide services to other processes, are stack machines. |
The stackmachine is called the |
The stack machine is called the |
{\it OX stackmachine}. |
{\it OX stack machine}. |
Existing mathematical softwares are wrapped with this stackmachine. |
Existing mathematical softwares are wrapped with this stack machine. |
Minimal requirements for a target software wrapped with the OX stackmachine |
Minimal requirements for a target software wrapped with the OX stack machine |
are as follows: |
are as follows: |
\begin{enumerate} |
\begin{enumerate} |
\item The target must have a seriealized interface such as a character based |
\item The target must have a serialized interface such as a character based |
interface. |
interface. |
\item An output of the target must be understandable for computer programs; |
\item An output of the target must be understandable for computer programs; |
it should follow a grammer that can be parsed with other softwares. |
it should follow a grammar that can be parsed with other softwares. |
\end{enumerate} |
\end{enumerate} |
\end{enumerate} |
\end{enumerate} |
We are implementing a package, OpenXM package, |
We are implementing a package, OpenXM package, |