<!-- $Id: intro.xml,v 1.7 2009/05/26 16:42:08 alexk Exp $ -->

<Chapter Label="Intro">
<Heading>Introduction and installation</Heading>    

<Section Label="IntroIntro">
<Heading>Brief description of the package</Heading> 

The &GAP; package &OpenMath; provides an &OpenMath; phrasebook for &GAP;: 
it allows &GAP; users to import and export mathematical objects encoded in 
&OpenMath; for the purpose of exchanging them with other &OpenMath;-enabled
applications. 
<P/>

This manual describes:
<List>
<Item>how to view &OpenMath; representation of an object;</Item>
<Item>how to read &OpenMath; object from stream or write it to stream for the
purposes of exchange with another &OpenMath;-enabled application;</Item> 
<Item>how to find which objects can be converted to/from &OpenMath; using this package;</Item> 
<Item>how to extend the package to support private &OpenMath; content dictionaries.</Item>
</List>

For the detailed information about &OpenMath; standard and content dictionaries 
see the &OpenMath; homepage <URL>http://www.openmath.org</URL>.
<P/>

For practical purposes, the &OpenMath; package will be most efficient if used in 
conjunction with the &GAP; package &SCSCP; (<Cite Key="SCSCPpkg"/>) which implements 
the Symbolic Computation Software Composability protocol (<Cite Key="SCSCPspec"/>). 
This protocol specifies an &OpenMath;-based remote procedure call framework, in which
all messages (procedure calls and returns of results of successful computation
or error messages) are encoded in &OpenMath; using content dictionaries 
&scscp1; and &scscp2; (<Cite Key="scscp1cd"/>, <Cite Key="scscp2cd"/>).
Using the &SCSCP; package, &GAP; can communicate locally or remotely with any 
other &OpenMath;-enabled &SCSCP;-compliant application which may be not only 
another computer algebra system but also another instance of the &GAP; system
or even, for example, an external C/C++ or Java application. Such communication
will go into a seamless manner with the &GAP;/&OpenMath; conversion going in the
background.
</Section>


<Section Label="IntroInstall">
<Heading>Installation of the package</Heading> 

To use the &OpenMath; package it is required to install the &GAPDoc; package
<Cite Key="GAPDoc"/> to use the help system and parse &OpenMath; objects 
in the XML format.
<P/>

To install the &OpenMath; package, unpack the archive and place the <File>openmath</File>
directory in the <File>pkg</File> subdirectory of your &GAP;4.4 installation. 
When you don't have write access to the directory of your main &GAP; 
installation, you can also install the package 
<E>outside the &GAP; main directory</E>
by unpacking it inside a directory <File>MYGAPDIR/pkg</File>. 
Then to be able to load &OpenMath; you need to call GAP with the 
<C>-l ";MYGAPDIR"</C> option.
<P/>

The package comes together with the &OpenMath; C library developed at INRIA
and the program <File>gpipe</File> which should be compiled to parse the binary &OpenMath; 
format. The compilation should be performed in two stages: first the INRIA 
library, and then <File>gpipe</File>. To do this, change to the package 
directory <File>gap4r4/pkg/openmath</File> and enter the following commands:

<Example>
<![CDATA[
cd OMCv1.3c/src/
./configure
make
cd ../../
./configure ../../
make
]]>
</Example>

However, it is possible to ignore this step if the binary &OpenMath; 
format will not be used.

</Section>

</Chapter>