0.3
MONET Examples
Introduction
With a MONET query it is possible to call a Computer Algebra System (CAS)
from the Mathdoxplayer. At the moment the
supported CAS systems are GAP,
Mathematica, Maxima
and WIRIS. If the CAS is not set up or
configured properly an error is given.
It is possible to indicate whether to use the native
language of the CAS or to use OpenMath. This can be selected for both
input and output. Below are some examples. Note that
WIRIS does only support OpenMath mode.
An example of a MONET query in Mathematica
with native
input and output. The monet namespace is
xmlns:monet="http://monet.nag.co.uk/monet/ns"
.
Random[Integer,{1,2}]
]]>
This MONET query returns an integer as a string.
An example of a MONET query with OpenMath output that is parsed.
Expand[(x+1)*(x+2)]
]]>
Mathematica expands the expression and puts
the resulting OpenMath output is stored in the variable
expr.
An example of a combined MONET query with OpenMath output that is
parsed.
Random[Integer,{1,2}]
Random[Integer,{-1,-2}]
Expand[(x-($${zero1}))*(x-($${zero2}))]
]]>
This combined monet query first calculates the two zeros of an
expression and then lets Mathematica
calculate the expanded expression. The result is in OpenMath form so
that it can be easily included at a position in the text.
Note that the variables zero1 and
zero2 have an attribute trim with value
true
. This is because space is important in several CAS
systems. Especially newlines might give errors. Furthermore brackets
are used around the variables to prevent problems that might arise,
for example --
is not the same as - -
.
In the next example it is shown how to generate an image.
The Jelly prefices c and x have namespaces
xmlns:c="jelly:core"
and xmlns:x="jelly:xml"
.
See also the some examples with Jelly in
MathDox.
An example with an image.
Plot[(x-($${zero1}))*(x-($${zero2})),{x,-3,3},{PlotStyle->Hue[.9],ImageSize->{320,320},GridLines->Automatic}]
]]>
This example uses the expression with the zeroes from in the
previous example. It returns a link for a plot using the
Mathematica plot service. A problem with
this service is that it is not possible to firewall this and that it
uses native input (this has security risks).
It is also possible to view the complete example. Note that if
Mathematica and/or the Mathematica service are not installed and
running then this example will give a Connection Refused
error in Orbeon.
An example of an old macro for a MONET query (as used in Mathadore).
eval
Native
Native
Random[Integer,{0,1}]
]]>
The old macro for query has namespace
xmlns:q="http://www.mathdox.org/MathBook/Query"
. Note that
this namespace is not supported in the new player.