version 1.5, 2000/01/13 10:58:16 |
version 1.6, 2000/01/15 03:18:27 |
|
|
% $OpenXM: OpenXM/doc/issac2000/data-format.tex,v 1.4 2000/01/11 05:35:48 noro Exp $ |
% $OpenXM: OpenXM/doc/issac2000/data-format.tex,v 1.5 2000/01/13 10:58:16 ohara Exp $ |
|
|
\section{Data Format} (Ohara) |
\section{Data Format} (Ohara) |
|
|
Line 8 OpenXM itself does not exhibit a bias towards a partic |
|
Line 8 OpenXM itself does not exhibit a bias towards a partic |
|
as a main mathematical data carrier and an OpenXM compliant system do not need to |
as a main mathematical data carrier and an OpenXM compliant system do not need to |
implement all possible data formats. |
implement all possible data formats. |
A server or a client does not necessarily implement full specifications |
A server or a client does not necessarily implement full specifications |
of OpenXM. |
of OpenXM. However they should at least implement seven primitive |
However, if a program sends an OX data or an OX command unknown to its peer, |
data types of the CMO, which are necessary to |
|
carry several control informations such as a {\it mathcap}. |
|
Mathcap is a list of supported CMO's, OpenXM stack machine codes, |
|
and necessary extra informations. |
|
If a program sends an OX messages to its peer, |
an unrecoverable error may occur. |
an unrecoverable error may occur. |
To avoid such a case OpenXM provides a scheme not |
By exchanging mathcaps a program knows its peer's capability |
to send an OX message unknown to peers. |
and such an error can be avoided. |
It is realized by exchanging a list of |
|
supported CMO's, OpenXM stack machine codes, and necessary extra informations. |
|
The list is called {\it mathcap}. |
|
% Mathcap is also defined as a CMO and its elements are 32bit integers |
|
% or strings. |
|
Mathcap is also defined as a CMO and the CMO has a structure of a nest |
Mathcap is also defined as a CMO and the CMO has a structure of a nest |
of lists. its leafs of the end are also a CMO which tags with |
of lists. its leafs of the end are also a CMO which tags with |
CMO\_INT32 or CMO\_STRING. |
CMO\_INT32 or CMO\_STRING. |
Line 31 An OX message with the tag |
|
Line 30 An OX message with the tag |
|
OX\_DATA\_OPENMATH\_XML is followed by |
OX\_DATA\_OPENMATH\_XML is followed by |
an OpenMath XML string and its length. |
an OpenMath XML string and its length. |
|
|
All OpenXM compliant systems should implement seven primitive data types |
|
of the CMO. |
|
These are used not only to express mathematical objects, but also |
|
indispensable to carry control informations such as mathcap. |
|
CMO is an original mathematical data encoding system of the OpenXM project. |
|
Let us explain the data format of CMO. |
Let us explain the data format of CMO. |
Any CMO packet consists of a header and a body. |
Any CMO packet consists of a header and a body. |
The size of the header is 4 bytes that tags the data type of the body. |
The size of the header is 4 bytes that tags the data type of the body. |