\documentclass{jarticle}

%% $OpenXM: OpenXM/doc/genkou19991125.tex,v 1.74 1999/12/24 16:59:48 tam Exp $

\usepackage{jssac}
\title{
1. ��̣��ʤ��������ʸ����ӽ����ޤ��礦��\\
3. ���ä��� fill ���Ƥ���Τ򤤤���ʤ��Ǥ��졣\\
4. ��¼��ͷ��ǤФ���Ǥ���Ф���Ż��򤷤Ƥ���ΤϤɤ��ͤ��Ƥ��Ը�ʿ����
�ʤ�ǻŻ��򤷤ʤ��Τ��������ø��Ż��򤷤�����¼��
%�����ߤޤ��󡢲ȤǸ��ӿ��٤Ƥޤ�����
}

\author{�� ë �� �� ��\affil{���������ر������ʳظ����}
		\mail{okutani@math.sci.kobe-u.ac.jp}
  \and	�� �� �� �� Ǥ\affil{�������������}
		\mail{ohara@kappa.s.kanazawa-u.ac.jp}
  \and	�� �� �� �� ��\affil{�������������}
		\mail{takayama@math.sci.kobe-u.ac.jp}
  \and	�� ¼ �� �� ��\affil{���������ر������ʳظ����}
		\mail{tamura@math.sci.kobe-u.ac.jp}
  \and	�� Ϥ �� �� ��\affil{�ٻ��̸����}
		\mail{noro@para.flab.fujitsu.co.jp}
  \and	�� �� �� �� ��\affil{�������������}
		\mail{maekawa@math.sci.kobe-u.ac.jp}
}
\art{}

\begin{document}
\maketitle

\section{OpenXM�Ȥ�}

OpenXM �Ͽ��إץ������֤ǥ�å�������򴹤��뤿��ε���Ǥ��롣
���إץ������֤ǥ�å���������Ȥꤹ�뤳�Ȥˤ�ꡢ
������إץ���������¾�ο��إץ�������ƤӽФ��Ʒ׻���Ԥʤä��ꡢ
¾�Υޥ���Ƿ׻���Ԥʤ碌���ꤹ�뤳�Ȥ���Ū�Ǥ��롣
�ʤ��� OpenXM �Ȥ� Open message eXchange protocol for Mathematics ��ά�Ǥ��롣
OpenXM �γ�ȯ��ȯü����Ϥ�ȹ⻳�ˤ�ꡢ
asir �� kan/sm1 ����ߤ˸ƤӽФ���ǽ������������ȤǤ��롣

����μ����Ǥϡ����¦�Υ�����������ʸˡ�˽��ä�ʸ��������äƤ�����
������ˡ�Ǥ����¦�Υ��եȤ� asir �ʤΤ� kan/sm1 �ʤΤ���Ƚ�̤���ʤɤ��ơ�
���¦�Υ�����������ʸˡ�˹�碌��ʸ�����������ʤ���Фʤ�ʤ���
���Υ�����������ʸˡ�˽��ä�ʸ�����������ˡ�ϡ�
��ΨŪ�Ǥ���ȤϤ����񤤤����Ȥ��䤹���Ȥ�����롣

���ߤ� OpenXM ����Ǥ϶���ɽ�������ˤ���å��������Ѥ��Ƥ��롣
�嵭��ʸ�����������ˡ�����������������ᡢ
OpenXM ����Ǥ϶���ɽ�����������ʸ����Ȥ��ơ�
������������ʸˡ�˽��ä�ʸ������Ѥ�����å������θ򴹤��ǽ�ȤʤäƤ��롣

OpenXM ����Ǥ��̿�����ˡ�˴��餫�μ�ͳ�٤����뤬��
���ߤΤȤ����� TCP/IP ���Ѥ����̿�������������Ƥ��ʤ���
�����ǡ�������ʸ�Ǥ϶���Ū�ʼ����� TCP/IP ���Ѥ��Ƥ���Ȳ��ꤹ�롣

\section{OpenXM �Υ�å������ι�¤}

�̿�����ˡ�ˤ�äƥ�å������ι�¤���Ѥ�롣
����ǲ��ꤷ���Ȥ��ꡢ������ʸ�Ǥ� TCP/IP �ξ��ˤĤ��ƤΤ�������Ԥʤ���

OpenXM ����ǵ��ꤵ��Ƥ����å������ϥХ��ȥ��ȥ꡼��ȤʤäƤ��ꡢ
���Τ褦�ʹ�¤�ˤʤäƤ��롣

\begin{tabular}{|c|c|}
\hline
�إå�	& \hspace{10mm} �ܥǥ� \hspace{10mm} \\ 
\hline
\end{tabular}

�إå���Ĺ���� 8 �Х��ȤǤ���������Ƥ��롣
�ܥǥ���Ĺ���ϥ�å��������Ȥ˰ۤʤäƤ��뤬��
Ĺ���� $0$ �Ǥ�褤��

�إå��ϼ�����Ĥξ������äƤ��롣
\begin{enumerate}
\item	��Ⱦ�� 4 �Х��ȡ���å������μ����ɽ�魯���̻ҤǤ��ꡢ
	�����ȸƤФ�롣
\item	��Ⱦ�� 4 �Х��ȡ���å������ˤĤ���줿�̤��ֹ�Ǥ��롣
\end{enumerate}
���줾��� 4 �Х��Ȥ� 32 �ӥå������Ȥߤʤ���ư����롣
���ξ����Ѥ�����������ɽ����ˡ�ˤĤ��Ƥϸ�Ҥ��뤬��
����Ū��ɽ����ˡ�Ϥ����Ĥ�������褫�����֤��Ȥ���ǽ�ȤʤäƤ��ꡢ
�ޤ�����������̿�ϩ�γ�Ω���˰��٤����ʤ���뤳�Ȥ����դ��ʤ���Фʤ�ʤ���
���ߤ�OpenXM ����Ǥϡ�����(������)�Ȥ���
�ʲ��Τ�Τ��������Ƥ��롣

\begin{verbatim}
#define	OX_COMMAND              513
#define	OX_DATA	                514
#define OX_SYNC_BALL            515
#define OX_DATA_WITH_LENGTH     521
#define OX_DATA_OPENMATH_XML    523
#define OX_DATA_OPENMATH_BINARY 524
#define OX_DATA_MP              525
\end{verbatim}

�ܥǥ��ι�¤�ϥ�å������μ���ˤ�äưۤʤ롣
������ OX\_COMMAND �ȤʤäƤ����å������ϥ����å��ޥ���ؤ�̿��Ǥ��ꡢ
����ʳ��Υ�å������ϲ��餫�Υ��֥������Ȥ�ɽ���Ƥ��롣
������ʸ�Ǥ� OX\_DATA �� OX\_COMMAND �Ǽ��̤����
��å������ˤĤ��ƤΤߡ��������롣

��¸�Υ�å������Ǥ��б��Ǥ��ʤ����ϡ����������̻Ҥ�������뤳�Ȥǿ���
������Υ�å�������������뤳�Ȥ��Ǥ��롣������ˡ�ϳƿ��إ��եȥ�������
��ͭ��ɽ����ޤ��å�������������������ʤɤ�ͭ���Ǥ��롣���������̻�
�������ˡ�ˤĤ��Ƥϡ�\cite{OpenXM-1999} �򻲾Ȥ��뤳�ȡ�

\section{OpenXM �η׻���ǥ�}

OpenXM ����Ǥη׻��Ȥϥ�å�������򴹤��뤳�ȤǤ��롣�ޤ��� OpenXM ��
��Ǥϥ��饤����ȡ������Х�ǥ����Ѥ��Ƥ���Τǡ���å������θ򴹤ϥ���
�Фȥ��饤����Ȥδ֤ǹԤʤ��롣���饤����Ȥ��饵���Фإ�å���������
�ꡢ���饤����Ȥ������Ф����å������������뤳�Ȥˤ�äƷ׻��η�̤�
�����롣���Υ�å������Τ��Ȥ�ϥ��饤����Ȥμ�Ƴ�ǹԤ��롣�Ĥޤꡢ
���饤����Ȥϼ�ͳ�˥�å������򥵡��Ф����դ��Ƥ�褤���������Ф���ϼ�
ȯŪ�˥�å����������դ���뤳�ȤϤʤ������θ����ϥ����Фϥ����å��ޥ���
�Ǥ��뤳�ȤǼ¸�����롣�����å��ޥ���ι�¤�ˤĤ��Ƥ� \ref{sec:oxsm} ��
�ǽҤ٤롣

�����Ф����饤����Ȥ��������ä����֥�������(�Ĥޤ� OX\_COMMAND �Ǥʤ�
��å������Υܥǥ�)�Ϥ��٤ƥ����å����Ѥޤ�롣�����å��ޥ���ؤ�̿��
(OX\_COMMAND �Ǽ��̤�����å������Υܥǥ�)�������ä������Ф�̿�����
������ư���Ԥʤ������ΤȤ���̿��ˤ�äƤϥ����å����饪�֥������Ȥ��
��Ф����Ȥ����ꡢ�ޤ�(�ƿ��إ����ƥ�Ǥ�)�׻���̤򥹥��å����Ѥळ�Ȥ�
���롣�⤷��Ϳ����줿�ǡ������������ʤ��ʤɤ���ͳ�ǥ��顼������������
�ϥ����Фϥ��顼���֥������Ȥ򥹥��å����Ѥࡣ�׻���̤򥯥饤����Ȥ���
����ˤϥ����å��ޥ����̿�� SM\_popCMO �ޤ��� SM\_popString �򥵡���
������ʤ���Фʤ�ʤ���������̿��������äƤϤ���ơ������Ф��饯��
������Ȥإ�å������������롣

{\Huge �ʲ�����ľ��}

�ޤȤ��ȡ����饤����Ȥ������Фإ�å����������ꡢ
�׻��η�̤�����Ȥ������ϰʲ��Τ褦�ˤʤ롣

\begin{enumerate}
\item
�ޤ������饤����Ȥ������Фإ��֥������Ȥ����롣�����Ф������Ƥ�������
�������Ȥ򥹥��å����Ѥࡣ
\item
���饤����Ȥ������Ф�̿�������ȡ������Ф�ɬ�פʤ��������å�����ǡ���
����Ф����¹Ԥ�����̤򥹥��å����Ѥࡣ
%�äƽ񤤤Ƥ뤱�ɡ�̿�᤬SM\_popCMO �Ȥ� SM\_shutdown �ξ���?
\item
�Ǹ�� SM\_popCMO �⤷���� SM\_popString �򥵡��Ф�����ȡ�
�����Фϥ����å�����׻���̤����äƤ���ǡ�������Ф���
���饤����Ȥ����Ф��롣
\end{enumerate}

\section{OpenXM �����å��ޥ���}\label{sec:oxsm}

OpenXM ����Ǥϥ����Фϥ����å��ޥ���Ǥ����������Ƥ��롣�ʲ���OpenXM 
�����å��ޥ���ȸƤ֡�������Ǥ�OpenXM �����å��ޥ���ι�¤�ˤĤ�������
���褦��

�ޤ���OpenXM ������̿����ˤ��Ȥꤵ��붦�̤Υǡ��������ˤĤ��Ƥϵ���
���뤬��OpenXM �����å��ޥ��󤬥����å����Ѥࡢ���֥������Ȥι�¤�ޤǤ�
���ꤷ�ʤ����Ĥޤꡢ���֥������Ȥι�¤�ϳƿ��إ����ƥऴ�Ȥ˰ۤʤäƤ���
�Ȥ������ȤǤ��롣���Τ��Ȥ��̿�ϩ����ǡ����������ä��ݤˡ��ƿ��إ���
�ƥब��ͭ�Υǡ�����¤���Ѵ����Ƥ��饹���å����Ѥळ�Ȥ��̣���롣������
����1��1�б��Ǥ���ɬ�פϤʤ���

���� OpenXM �����å��ޥ����̿�ᥳ���ɤˤĤ����������롣OpenXM �����å�
�ޥ���ˤ����뤹�٤Ƥ�̿���4�Х��Ȥ�Ĺ������ġ�OpenXM �����¾�ε����
Ʊ�ͤˡ�4�Х��ȤΥǡ�����32�ӥå������ȸ��ʤ����Τǡ�������ʸ�Ǥ⤽��
ɽ���ˤ���������OpenXM �����å��ޥ�����Ф���̿��ϥ����å����Ѥޤ�뤳
�ȤϤʤ������ߤΤȤ�����OpenXM ����Ǥϰʲ���̿�᤬�������Ƥ��롣

\begin{verbatim}
#define SM_popSerializedLocalObject               258
#define SM_popCMO                                 262
#define SM_popString                              263

#define SM_mathcap                                264
#define SM_pops                                   265
#define SM_setName                                266
#define SM_evalName                               267
#define SM_executeStringByLocalParser             268 
#define SM_executeFunction                        269
#define SM_beginBlock                             270
#define SM_endBlock                               271
#define SM_shutdown                               272
#define SM_setMathCap                             273
#define SM_executeStringByLocalParserInBatchMode  274
#define SM_getsp                                  275
#define SM_dupErrors                              276

#define SM_DUMMY_sendcmo                          280
#define SM_sync_ball                              281

#define SM_control_kill                          1024
#define SM_control_to_debug_mode                 1025
#define SM_control_exit_debug_mode               1026
#define SM_control_ping                          1027
#define SM_control_start_watch_thread            1028
#define SM_control_stop_watch_thread             1029
#define SM_control_reset_connection              1030
\end{verbatim}

�����å��ޥ����̿��μ¹Ԥη�̤������硢

��̤򥹥��å����Ѥࡣ
����ϡ����Ȥ����顼�������ä��Ȥ��Ƥ�Ʊ���Ǥ��ꡢ
���ξ��ϥ��顼���֥������Ȥ򥹥��å����Ѥࡣ

%�ʲ����ɤ������Ȥ��˷�̤򥹥��å����Ѥफ���顼�ξ��ɤ����뤫��������
%ɬ�פǤ�������


\section{CMO �Υǡ�����¤}\label{sec:cmo}

OpenXM ����Ǥϡ�����Ū���֥������Ȥ�ɽ��������ˡ�Ȥ��� CMO ����(Common
Mathematical Object format)��������Ƥ��롣���� CMO �����ˤ������ä��ǡ�
���ϡ����̻Ҥ� OX\_DATA �Ǥ���褦�ʥ�å������Υܥǥ��ˤʤ뤳�Ȥ����ꤷ
�Ƥ��롣

CMO �����ˤ�����ǡ�����¤�ϼ��Τ褦�ʹ�¤���ġ�

\begin{tabular}{|c|c|} \hline
�إå�        & \hspace{10mm} �ܥǥ� \hspace{10mm} \\ \hline
\end{tabular}

�إå���4�Х��ȤǤ��롣�ܥǥ���Ĺ���Ϥ��줾��Υǡ����ˤ�äưۤʤ뤬��
0�Ǥ�褤��

��å�������Ʊ�ͤ˥إå���4�Х���ñ�̤˴�������롣���ʤ����CMO �Ǥϥإ�
���ϰ�Ĥ����ξ����ޤࡣ����4�Х��ȤΥإå��Τ��Ȥ򥿥��Ȥ⤤�������ơ�
CMO �Ǥϡ������ˤ�äƥܥǥ�������Ū��¤�����ꤹ�롣���ʤ���������Ϥ���
����Υǡ�����¤��1��1���б����뼱�̻ҤǤ��롣���줾�������Ū��¤�� 
\cite{OpenXM-1999} �˾ܽҤ���Ƥ��롣���ߤ� OpenXM ����Ǥϰʲ��� CMO ��
�������Ƥ��롣

\begin{verbatim}
#define CMO_ERROR2  0x7f000002
#define CMO_NULL    1
#define CMO_INT32   2
#define CMO_DATUM   3
#define CMO_STRING  4
#define CMO_MATHCAP 5

#define CMO_START_SIGNATURE      0x7fabcd03     
#define CMO_ARRAY                16
#define CMO_LIST                 17
#define CMO_ATOM                 18
#define CMO_MONOMIAL32           19
#define CMO_ZZ                   20
#define CMO_QQ                   21
#define CMO_ZERO                 22
#define CMO_DMS_GENERIC          24
#define CMO_DMS_OF_N_VARIABLES   25
#define CMO_RING_BY_NAME         26
#define CMO_RECURSIVE_POLYNOMIAL 27
#define CMO_LIST_R               28

#define CMO_INT32COEFF                 30
#define CMO_DISTRIBUTED_POLYNOMIAL     31
#define CMO_POLYNOMIAL_IN_ONE_VARIABLE 33
#define CMO_RATIONAL                   34

#define CMO_64BIT_MACHINE_DOUBLE           40
#define CMO_ARRAY_OF_64BIT_MACHINE_DOUBLE  41
#define CMO_128BIT_MACHINE_DOUBLE          42
#define CMO_ARRAY_OF_128BIT_MACHINE_DOUBLE 43

#define CMO_BIGFLOAT          50
#define CMO_IEEE_DOUBLE_FLOAT 51

#define CMO_INDETERMINATE 60
#define CMO_TREE          61
#define CMO_LAMBDA        62
\end{verbatim}

������� CMO\_INT32, ... �Ǽ��̤���륪�֥������ȤϺǤ����Ū�ʥ��֥���
���ȤǤ��äơ����٤Ƥ� OpenXM �б������ƥ�˼�������Ƥ��ʤ���Фʤ�ʤ���

�����ˤĤ��Ƥβ����Ԥ����˵�ˡ�ˤĤ��ơ������������Ƥ�����
������ʸ�Ǥϡ���ʸ���� CMO\_INT32 �Ƚ񤤤����ˤϡ��嵭������������̻�
��ɽ�魯���ޤ� CMO\_INT32 �Ǽ��̤���륪�֥������ȤΥ��饹(���뤤�ϥǡ�
����¤)�� cmo\_int32 �Ⱦ�ʸ����ɽ�魯���Ȥˤ��롣

���� cmo ��ɽ�����뤿��ΰ�Ĥε�ˡ��Ƴ�����롣���ε�ˡ�� CMO expression
�ȸƤФ�Ƥ��롣�������Τʷ���Ū����� \cite{OpenXM-1999} �򻲾Ȥ��뤳�ȡ�

�ޤ� CMO expssion �� Lisp ��ɽ���ΰ��ǡ� cmo ���̤ǰϤ���ꥹ�ȤȤ�
��ɽ�����롣���줾������Ǥϥ���ޤǶ��ڤ롣
�㤨�С�
\begin{quote}
(17, {\sl int32}, (CMO\_NULL), (2, {\sl int32} $n$))
\end{quote}
�� CMO expression �Ǥ��롣�����ǡ���ʸ���μ��Τ�ɽ���줿``{\sl int32}'' 
�� 4�Х��Ȥ�Ǥ�դΥǡ�����ɽ������Ǥ��ꡢ``{\sl int32} $n$'' ��Ʊ���� 4
�Х��ȤΥǡ����Ǥ��뤬�ʲ��������� $n$ ��ɽ�����Ȥ򼨤����ޤ����� 17, 2 
�ʤɤ� 4�Х��ȤΥǡ����������ͤȤ��Ƥߤ��Ȥ����ͤ��̣���롣CMO\_NULL ��
���̻�(���ʤ������ 1 ������)�Ǥ��롣���ε�ˡ����嵭�Υǡ����� 20 �Х�
�Ȥ��礭���Υǡ����Ǥ��뤳�Ȥ�ʬ���롣

���ơ����ε�ˡ�Τ�Ȥ� cmo\_int32 �򼡤Υǡ�����¤����Ĥ�������롣
\begin{quote}
cmo\_int32 := (CMO\_INT32,  {\sl int32})
\end{quote}

{\Huge Ʊ�ͤ� cmo\_string, cmo\_list �ʤɤ����}

cmo\_string := (CMO\_STRING, {\sl int32}, string)

cmo\_list := (CMO\_LIST, {\sl int32},...

% ������ 32 bit ��������ɽ����ˡ�ˤĤ��ƿ���Ƥ�����
% OpenXM ����ǤϥХ��ȥ��ȥ꡼��� 32 bit ������ 20 ��
% {\tt 00 00 00 14} ��ɽ����ˡ�� {\tt 14 00 00 00} ��ɽ����ˡ�����롣
% ����ɽ����ˡ�ΰ㤤�ϥ��饤����Ȥȥ����Фκǽ����³����
% �����ι�դǷ��ꤹ�뤳�ȤˤʤäƤ��롣
% �ʤ�����դ��ʤ����ˤ����Ԥ�ɽ����ˡ
% (�ʸ塢����ɽ����ˡ��ͥåȥ���Х��ȥ��������ȸƤ�)��
% �Ȥ����ȤˤʤäƤ��롣
% �ޤ�����ο���ɽ������ɬ�פ�����Ȥ��ˤϡ�
% 2 �����ɽ����Ȥ����ȤˤʤäƤ��롣

% ��ۤɤΡ� (CMO\_INT32, 123456789) ��ͥåȥ���Х��ȥ���������
% �Х������ľ���ȡ�
% \begin{center}
% 	{\tt 00 00 00 02 07 5b cd 15}
% \end{center}
% �Ȥʤꡢ
% (CMO\_STRING, 6, ``OpenXM'') ��
% \begin{center}
% 	{\tt 00 00 00 04 00 00 00 06 4f 70 65 6e 58 4d}
% \end{center}
% �Ȥʤ롣

% CMO ������¿��Ĺ�����ϡ� Gnu MP�饤�֥�����򻲹ͤˤ��Ƥ��ꡢ
% ����դ�������ɽ�����Ѥ��Ƥ��롣
% �����ʹߤη����ϼ��Τ褦�ˤʤ롣

% \begin{tabular}{|c|c|c|c|c|} \hline
% $f$ & $b_0$ & $b_1$ & $\cdots$ & $b_{n-1}$ \\ \hline
% \end{tabular}

% �����ǡ� 1 �Ĥ��Ȥ� 4 �Х��Ȥ�ɽ����
% $f$ ������դ� 32 �ӥå�������
% $b_0$, $b_1$, $\cdots$, $b_{n-1}$ �����ʤ� 32 �ӥå�������ɽ���Ƥ��롣
% ����ˡ� $|f| = n$ ������Ω���ʤ���Фʤ�ʤ���
% ���Υ��֥������Ȥ�
% \[ \mbox{sgn}(f) \times \{ b_0 (2^{32})^0 + b_1 (2^{32})^1 + \cdots
% 	+ b_{n-1} (2^{32})^{n-1} \}	\]
% �Ȥ��������Ǥ�����������Ƥ��롣
% ��������
% \[ \mbox{sgn}(f) = \left\{ \begin{array}{ll}
%         1       & f>0 \\
%         0       & f=0 \\
%         -1      & f<0 \\ \end{array} \right.	\]
% �Ǥ��롣

% �����Ƕ�������������
% $4294967298 = 1 \times 2^{32} + 2$ �� CMO ������
% �ͥåȥ���Х��ȥ���������¿��Ĺ������ɽ������ȡ�
% \begin{center}
% 	{\tt 00 00 00 14 00 00 00 02 00 00 00 02 00 00 00 01}
% \end{center}
% �Ȥʤ롣�ޤ���Ʊ��ɽ����ˡ�� $-1$ ��ɽ������ȡ�
% \begin{center}
% 	{\tt 00 00 00 14 ff ff ff ff 00 00 00 01}
% \end{center}
% �Ȥʤ롣


\section{mathcap �ˤĤ���}

OpenXM ����Ǥϡ��̿������Ѥ������å������μ����ƥ��եȥ���������
�¤�����ˡ���Ѱդ��Ƥ��롣����ϳƥ��եȥ������μ����ˤ�äƤϤ��٤ƤΥ��
�������򥵥ݡ��Ȥ���Τ�����ʾ�礬���뤫��Ǥ��롣�ޤ����ƥ��եȥ�����
�ǥ�å������μ�����ĥ���������ˤ�ͭ���Ǥ��롣��������(���뤤�ϳ�ĥ) 
�� mathcap �ȸƤФ��ǡ�����¤�ˤ�äƹԤ��롣������Ǥ� mathcap �Υǡ�
����¤�ȡ�����Ū�ʥ�å����������¤μ�³���ˤĤ����������롣

�Ǥϡ���³���ˤĤ����������褦��

���˥����Фε�ǽ�����¤���ˤϼ��Τ褦�ˤ��롣���饤����Ȥ� mathcap 
���֥������Ȥ򥵡��Ф�����ȡ������Фϼ�����ä�mathcap �򥹥��å����Ѥࡣ
���˥��饤����Ȥ�̿�� SM\_setMathCap ������ȡ������Фϥ����å��κǾ��
���Ѥޤ�Ƥ��� mathcap ���֥������Ȥ���Ф���mathcap �����ꤵ��Ƥ���
����å������򥯥饤����Ȥ�����ʤ��褦�����¤�Ԥ���

����˥��饤����Ȥ����¤���ˤϼ��Τ褦�ˤ��롣���饤����Ȥ������Ф�̿
�� SM\_mathcap ������ȡ������Ф� mathcap ���֥������Ȥ򥹥��å����Ѥࡣ
�����̿�� SM\_popCMO ������ȡ������Фϥ����å��κǾ�̤Υ��֥�������
(���ʤ�� mathcap ���֥�������)��ܥǥ��Ȥ����å������򥯥饤����Ȥ�
���դ��롣���饤����ȤϤ��Υ��֥������Ȥ���Ϥ��ơ����¤򤫤��롣

���� mathcap �Υǡ�����¤�ˤĤ����������롣
mathcap �� CMO �ΰ��Ǥ���Τǡ����Ǥ����������褦��
\begin{verbatim}
�إå�     �ܥǥ�
\end{verbatim}
�ι�¤������إå����ͤ� 5 �Ǥ���(\ref{sec:cmo} ��򻲾ȤΤ���)��
�ܥǥ��� cmo\_list ���֥������ȤǤʤ���Фʤ�ʤ���

���ơ�mathcap ���֥������ȤΥܥǥ��� cmo\_list ���֥������Ȥϰʲ��ξ���
���������Ȥ��׵ᤵ��롣

�ޤ������� cmo\_list ���֥������ȤϾ��ʤ��Ȥ�ꥹ��Ĺ�� 3 �ʾ�Ǥʤ����
�ʤ�ʤ���

\[	\begin{tabular}{|c|c|c|} \hline
	$A$ & $B$ & $C$	\\ \hline
	\end{tabular}	\]

������� $A$ �Ϥޤ� cmo\_list �Ǥ��ꡢ�ꥹ��Ĺ�� 4 �ʾ塢
$a_1$ �� 32 �ӥå������ǥС������ʥ�С���
$a_2$ ��ʸ����ǥ����ƥ��̾����ɽ�����ȤˤʤäƤ��롣

\[	\begin{tabular}{|c|c|} \hline
	$a_1$ & $a_2$	\\ \hline
	\end{tabular}	\]

2 ���ܤ����� $B$ ����ʬ�ϼ��Τ褦�ʥꥹ�ȹ�¤�򤷤Ƥ��롣
���� $b_1$, $b_2$, $\cdots$, $b_n$ �Ϥ��٤� 32 �ӥåȤ������Ǥ��롣
�����å��ޥ���ؤ�̿��Ϥ��٤� 32 �ӥåȤ�������ɽ���Ƥ��ꡢ
�� $b_i$ �����Ѳ�ǽ��̿����б����� 32 �ӥåȤ������ȤʤäƤ��롣

\[	\begin{tabular}{|c|c|c|c|} \hline
	$b_1$ & $b_2$ & $\cdots$ & $b_n$	\\ \hline
	\end{tabular}	\]

3 ���ܤ����� $C$ �ϰʲ��Τ褦�ʥꥹ�ȹ�¤�򤷤Ƥ��롣
\[  \overbrace{
	\begin{tabular}{|c|c|c|c|} \hline
	$c_1$ & $c_2$ & $\cdots$ & $c_n$	\\ \hline
	\end{tabular}
   }^{C}	\]
%$n$ �� OX\_COMMAND �ʳ��μ��������å������Υ����μ���ο�����������
%���ǿ��� 1 �Ǥ������󹽤�ʤ���
�� $c_i$ ��ޤ��ʲ��Τ褦�ʥꥹ�ȹ�¤�ȤʤäƤ��ꡢ
�ɤ� $c_i$ ��ǽ�����Ǥ� 32 �ӥåȤ������ȤʤäƤ��롣
\[  \overbrace{
	\begin{tabular}{|c|c|c|c|c|} \hline
	$c_{i1}$ (32 �ӥåȤ�����) & $c_{i2}$ & $c_{i3}$ &
		$\cdots$ & $c_{im}$	\\ \hline
	\end{tabular}
   }^{c_i}	\]
���Υꥹ�Ȥκǽ�������ͤϼ��������å������Υ��������äƤ��롣
$c_{i2}$ �ʹߤˤĤ��ƤϺǽ�� $c_{i1}$ ���ͤˤ�äƤ��줾��ۤʤ롣
�����Ǥϡ��ǽ�����Ǥ� OX\_DATA �ξ��ˤĤ��ƤΤ��������롣
���� $c_{i1}$ �� OX\_DATA �ξ�硢
�ꥹ�� $c_i$ �� CMO �����ˤĤ��Ƥξ����ɽ���Ƥ��ꡢ
$m=2$ �ȷ����Ƥ��롣
$c_{i1}$ �ˤϤ������Τ��� OX\_DATA �����äƤ��ꡢ
$c_{i2}$ �ϰʲ��οޤΤ褦�ʥꥹ�ȹ�¤�ˤʤäƤ��롣
�����Ǥ� 32 �ӥåȤ������Ǥ��ꡢ
������뤳�Ȥ���ǽ�� CMO �����Υ��������롣
\[  \overbrace{
	\begin{tabular}{|c|c|c|c|c|} \hline
	$c_{i21}$ & $c_{i22}$ & $\cdots$ & $c_{i2l}$	\\ \hline
	\end{tabular}
   }^{c_{i2}}	\]

%�ʤ��� mathcap �ǡ�������Ǥ� CMO �������������Ƥ���
%32 bit ������ʸ���󡢥ꥹ�ȹ�¤���Ȥ��Ƥ��ꡢ
%mathcap �ǡ����˴ޤޤ�Ƥ������Ƥ�����Ǥ��뤿��ˤ�
%ɬ��Ū�ˤ���������Ǥ���ɬ�פ�����
%(�äƤ��Ȥ� CMO �����ΤȤ����Ǥ�����
%�������ʤ���Фʤ�ʤ��äƤ��ȤǤ�)��

����Ū�� mathcap ����򤢤��褦��
%�ʤ��� $a_1$, $a_2$, $\cdots$, $a_n$ �����Ǥ�
%���ĥꥹ�ȹ�¤�� {\tt [$a_1$, $a_2$, $\cdots$, $a_n$]} ��
%ʸ���� ``string'' �� {\tt "string"} �� 32 bit ������
%������б����� 10 �ʿ��������Ǽ�����
̾���� ``ox\_test''���С������ʥ�С��� 199911250 �Υ����ФǤ���С�
$A$ ����ʬ��
\begin{tabular}{|c|c|} \hline
199911250 & "ox\_test" \\ \hline
\end{tabular}
�Ȥʤ롣
����ˡ����Υ����ФΥ����å��ޥ���
̿�ᥳ���� 2, 3, 5, 7, 11 �֤����Ѳ�ǽ
(�ºݤˤϤ��Τ褦��̿�ᥳ���ɤ�¸�ߤ��ʤ�)�Ǥ���С� $B$ ����ʬ��
\begin{tabular}{|c|c|c|c|c|} \hline
2 & 3 & 5 & 7 & 11 \\ \hline
\end{tabular}
�Ȥʤꡢ
CMO ������ 32 �ӥå�������ʸ���� mathcap ���ꥹ�ȹ�¤�Τߤ�
��������Ȥ��ˤϡ� $C$ ����ʬ��
\begin{tabular}{|c|} \hline
	\\[-5mm]
	\begin{tabular}{|c|c|} \hline
		& \\[-5mm]
		OX\_DATA &
		\begin{tabular}{|c|c|c|c|} \hline
		CMO\_INT32 & CMO\_STRING & CMO\_MATHCAP & CMO\_LIST \\ \hline
		\end{tabular} \\[0.8mm] \hline
	\end{tabular} \\[1.4mm] \hline
\end{tabular} \\
�Ȥʤ롣
CMO\_ZZ ���ʤ��Τǡ����Υ����Ф�¿��Ĺ�����������Ƥ��ʤ����Ȥ���Ԥ���
���롣

�ʤ����ǡ������������뤳�Ȥȡ��ǡ�����������¤������Ǥ��뤳�ȤȤϤޤ�
������ʪ�Ǥ���Τ����դ���ɬ�פ����롣

{\Huge �äƤʤ�ǤǤ��礦��? �ǡ�����������¤���Τ�ʤ��ȼ������ʤ���
�פ���Ǥ���$\ldots$}


\section{�������ƥ��к�}

OpenXM ����� TCP/IP ���Ѥ����̿���Ԥ����Ȥ��θ���Ƥ��롣�ͥåȥ��
�ˤ�ä���³����븽���¿���Υ��եȥ�������Ʊ�͡�OpenXM �����ޤ��̿�
���Υ������ƥ��ˤĤ������դ��Ƥ��롣�ʲ������Τ��ȤˤĤ����������褦��

{\large\bf ��̣�����ʤ��Ȥ�񤤤Ƥ��뤬��}

�����Ԥ˹���ε����Ǥ������Ϳ���ʤ��褦���뤿
��ˡ���³��ɬ�פˤʤä����Τ���³���ԤĤ褦�ˤ���
�����³�˴�Ϳ����Ȥ��ä����Ȥ��򤱤Ƥ���(��äѤ��̣�����Ǥ���)��

�ޤ��������Ԥ���³��Ԥʤ���֤Τ��������äƤ����ǽ���⤢��Τǡ�
��³��Ԥʤ�������³���Ԥĥݡ����ֹ�������˷��Ƥ���(ï�����Ƥ�
��Τ��Ϥ�äѤ������Ǥ��뤬)��
����ˤ⤦���ʰ���������뤿��ˡ�
��³���� 1 ��������Ѳ�ǽ�ʥѥ���ɤ��������
���Υѥ���ɤ�Ȥä�ǧ�ڤ�Ԥʤ�(ï���ѥ���ɤ����ï��ǧ�ڤ�Ԥ�
�Ƥ���Τ�������������)��
���Υѥ���ɤϰ�ö���Ѥ�����̵���ˤ���Τǡ�
�⤷���ˤʤ�餫�μ��ʤǥѥ���ɤ��̤줿�Ȥ��Ƥ�������ȹͤ��Ƥ��롣

�ʤ�����³����Ω������Υ�å��������������˴ؤ��Ƥϡ�
�ä˰Ź沽�ʤɤν��֤�ԤäƤ���櫓�ǤϤʤ���
�⤷ɬ�פ�����С��̿�ϩ�ΰŹ沽��Ԥʤ���ǽ������
���եȥ����� ssh ��Ȥ����Ȥ�ͤ��Ƥ��롣

\section{¾�Υץ���������}

¾�Υץ��������ȤˤĤ��Ƥ⿨��Ƥ�������

\begin{itemize}
\item OpenMath\\
OpenMath �ץ��������ȤϿ���Ū�ʥ��֥������Ȥ򥳥�ԥ塼�����ɽ��������
ˡ���ꤷ�Ƥ��롣�ƥ��եȥ������֤ǥ��֥������Ȥ�򴹤���ݤΥ��֥�����
�Ȥ��Ѵ����ˤĤƤ������Ƥ��롣ɽ����ˡ�ϴ��Ĥ����ʳ���������
���ơ�XML ɽ����Х��ʥ�ɽ���ʤɤ��Ѱդ���Ƥ��롣�ܺ٤�

http://www.openmath.org/omsoc/   A.M.Cohen

\item NetSolve

http://www.cs.utk.edu/netsolve/

\item MP

http://symbolicNet.mcs.kent.edu/SN/areas/protocols/mp.html

\item MCP

http://horse.mcs.kent.edu/~pwang/
\end{itemize}


\section{�����󶡤���Ƥ��륽�եȥ�����}

���� OpenXM ������б����Ƥ��륯�饤����Ȥˤ�asir, sm1, Mathematica ��
���롣�����Υ��饤����Ȥ��� OpenXM ������б����������Ф�ƤӽФ�����
���Ǥ��롣���� OpenXM ������б����Ƥ��륵���Х��եȥ������ˤϡ�asir,
sm1, gnuplot, Mathematica �ʤɤ����ꡢ���줾�� ox\_asir, ox\_sm1,
ox\_sm1\_gnuplot, ox\_math �Ȥ���̾�����󶡤���Ƥ��롣�ޤ��� OpenMath 
����� XML ɽ����ɽ�����줿���֥������Ȥ� CMO �����Υ��֥������Ȥ��Ѵ���
�륽�եȥ������� JAVA �ˤ�äƼ�������Ƥ��ꡢOMproxy �Ȥ���̾�����󶡤�
��Ƥ��롣

\begin{thebibliography}{99}
\bibitem{Ohara-Takayama-Noro-1999}
������Ǥ, �⻳����, ��Ϥ����:
{Open asir ����}, 1999, ��������, Vol 7, No 2, 2--17. (ISBN4-87243-086-7, SEG ����, Tokyo).
\bibitem{OpenXM-1999}
��Ϥ����, �⻳����:
{Open XM ���߷פȼ��� --- Open message eXchange protocol for Mathematics},
1999/11/22
\end{thebibliography}

\end{document}
