<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>https://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/>
When the &OpenMath; package is installed, it may be loaded as shown below 
(possibly loading required packages at the same time):
<Log>
<![CDATA[
gap> LoadPackage("openmath");
-----------------------------------------------------------------------------
Loading  OpenMath 11.5.2 (OpenMath functionality in GAP)
by Marco Costantini,
   Olexandr Konovalov (https://alex-konovalov.github.io/),
   Max Nicosia (http://www-edc.eng.cam.ac.uk/~lmn27/), and
   Andrew Solomon.
maintained by:
   Olexandr Konovalov (https://alex-konovalov.github.io/) and
   Max Nicosia (http://www-edc.eng.cam.ac.uk/~lmn27/).
Homepage: https://gap-packages.github.io/openmath
Report issues at https://github.com/gap-packages/openmath/issues
-----------------------------------------------------------------------------
true
]]>
</Log>

</Section>

</Chapter>