|
To realize our project, we need to integrate general purpose Computer
Algebra Systems, like
Mathematica
or
Macsyma,
with our own software,
as well as the special purpose systems
Singular
or
SYNCRO.
This offers the possibility that these systems can
independently run as different processes, even
across the network, on different machines and on
different platforms and that the data exchange is
done efficiently.
The main problem in accomplishing such connections
is that of data integration, i.e. a universally
understandable and yet efficient format for
representing mathematical data. The
Multi-Protocol
(MP), developed at Kent State University in Kent,
Ohio (USA), is an ongoing effort set out to solve
the problem of data integration for mathematical
data.
MP encodes data in the form of linearized annotated
syntax trees. Syntax trees provide a simple,
flexible and application-independent way to
represent data, and annotations provide a powerful
facility for encoding additional information. Binary
encodings are used for efficiency and means are
provided to encode blocks of homogeneous data (such
as matrices or polynomials) in a very compact
format. At a level above the syntactic data
encoding, dictionaries are used for defining the
semantic (i.e. meaning) of operators, symbolic
constants, and annotations.
The MP library (libMP) provides an Application
Programmer Interface (API) for the MP
specification. MP's API and specification is
independent of the underlying communication paradigm
and transport mechanisms and can be used, for
example, with files, sockets,
PVM (Parallel Virtual Machine),
or
Toolbus
(a software bus packet).
Using MP in our projects requires on the one hand
the implementation of MP interfaces for our systems,
and on the other hand a constant evaluation and
improvement of the concepts of MP and of its
implementation. So far, we have designed
specifications for efficient MP encodings for
polynomial data, an MP dictionary defining the
meaning of polynomial operations, and MP interfaces
to Mathematica,
MuPAD,
Singular and SYNCRO.
Mathematical Data Exchange Protocols and SYNCRO
SYNCRO
applications, such as a symbolic circuit
analysis kernel, are supposed to run as separate
backend processes in combination with a
general-purpose CAS in front. This requires
efficient mechanisms for exchanging mathematical
data between different processes, possibly across
the network, on different machines and on different
platforms. For applications like these, the
Multi-Protocol
(MP) is being designed and implemented at the Kent
State University, Ohio (USA). MP is a general
transport-independent protocol for the exchange of
mathematical expression trees. It uses a binary
encoding and has special features for reducing
overhead during the transmission of homogeneous data
such as numerical vectors and matrices.
|