Connecting Computer Algebra Systems

In SCIEnce, we are connecting different Computer Algebra Systems in a standardized way. The protocol used is called SCSCP (Symbolic Computation Software Composability Protocol), and we have some prototypes running. The mathematical objects are marshalled in XML using OpenMath. This is a demo-session in MuPAD:

   *----*    MuPAD Pro 4.5.0 -- The Open Computer Algebra System
  /|   /|
 *----* |    Copyright (c)  1997 - 2008  by SciFace Software
 | *--|-*                   All rights reserved.
 |/   |/
 *----*      Licensed to:   Peter Horn

// load the package
>> package("OpenMath"):

// define some (simple) maths task. hold is required to prevent
// MuPAD from immediately computing the result.
>> A := hold(hold(_plus)(7, 8 ))
hold(_plus)(7, 8 )

// There are scscp-servers running on some remote machines.
// Note: in the setup of the connection, the type of the system is NOT
// specified. They all talk SCSCP.
>> gap := SCSCP("machine1.somewhere.org", 26133):
>> kant := SCSCP("machine2.somewhere-else.org", 26133):
>> mupad := SCSCP("machine3.differentplace.org", 26133):

// now, ask GAP, KANT and the remote MuPAD to compute the task:
>> gap::compute(A)
15

>> kant::compute(A)
15

>> mupad::compute(A)
15

// a slightly more advanced example (extended euclidean algorithm)
>> B := hold(hold(gcdex)(12, 14, 20))
hold(gcdex)(12,14,20)

>> kant::compute(B)
[2, -1, 1, 0]

More to come ;)