FYI
---------- Forwarded message ---------- From: Peter Horn <[EMAIL PROTECTED]> Date: Feb 17, 2008 2:37 PM Subject: [Om] OpenMath @ SCIEnce To: [EMAIL PROTECTED] Hello to the OpenMath Community! The SCIEnce project (Symbolic Computation Infrastructure for Europe, http://www.symbolic-computation.org/) brings together the developers of four powerful symbolic computation software packages (GAP, KANT, Maple and MuPAD) and a major symbolic computation research institute (RISC-Linz), and research groups expert in essential underpinning technologies, to unite the European community of researchers in, and users of, symbolic computation. One of the current activitities focuses on connecting different Computer Algebra Systems in a standardized way. The systems involved in this activity are: * GAP (system for computational discrete algebra, with particular emphasis on Computational Group Theory), CIRCA, St. Andrews, Scotland. http://www.gap-system.org/ * KANT (software package for sophisticated computations in number fields and in global function fields), TU Berlin. http://www.math.tu-berlin.de/~kant/kash.html * MuPAD (general purpose CAS, Paderborn) http://www.sciface.com * Maple (general purpose CAS, Waterloo, CA) http://www.maplesoft.com * Supported by the OpenMath experts at the TU Eindhoven http://www.win.tue.nl/dw/dam/ The protocol used to communicate between the systems is called SCSCP (Symbolic Computation Software Composability Protocol). The mathematical objects are marshalled in XML using OpenMath (http://www.openmath.org). Working prototypes exist for GAP, KANT, and MuPAD. Also, a Java framework was created in order to make it easy for third party developers to expose their code to other systems using SCSCP. Furthermore, there is a web-proxy that offers the capabilities of one or more of the above systems to SOAP-clients. 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. |/ |/ *----* // 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] --------------------- END SESSION --------------------- OpenMath Package for MuPAD -------------------------- In the last couple of months I've developed an OpenMath Package for MuPAD for the purpose of his project A rather early preview of the package can be found here: * http://symcomp.mathematik.uni-kassel.de/~hornp/OpenMath.zip * http://symcomp.mathematik.uni-kassel.de/~hornp/OpenMath.tbz It's organized as a MuPAD package. So if it can be found on the PACKAGEPATH, you can use it like this: --------------------- BEGIN SESSION --------------------- // load the package >> package("OpenMath") // generate::OpenMath creates an adt::XML representing the mathematical // expression >> generate::OpenMath(1+a) <OMOBJ xmlns='http://www.openmath.org/OpenMath'> <OMA> <OMS cd='arith1' name='plus'/> <OMV name='a'/> <OMI>1</OMI> </OMA> </OMOBJ> // in OpenMath there are definitions how to represent different // numbers as Complex... >> generate::OpenMath(3+4*I) <OMOBJ xmlns='http://www.openmath.org/OpenMath'> <OMA> <OMS cd='complex1' name='complex_cartesian'/> <OMI>3</OMI> <OMI>4</OMI> </OMA> </OMOBJ> // ...or Rationals. >> generate::OpenMath(3/4) <OMOBJ xmlns='http://www.openmath.org/OpenMath'> <OMA> <OMS cd='nums1' name='rational'/> <OMI>3</OMI> <OMI>4</OMI> </OMA> </OMOBJ> // xml2text is a function to get a compact and fast // string-representation of an adt::XML >> xml2text(generate::OpenMath(sin(a+1)^2)) "<OMOBJ xmlns='http://www.openmath.org/OpenMath'><OMA><OMS cd='arith1\ ' name='power'/><OMA><OMS cd='transc1' name='sin'/><OMA><OMS cd='arit\ h1' name='plus'/><OMV name='a'/><OMI>1</OMI></OMA></OMA><OMI>2</OMI><\ /OMA></OMOBJ>" // OM::Parser::pase parses either the given file or the passed String // if the Option 'String' is given >> OM::Parser::parse(%, String) OM::XML::OMOBJ([OM::XML::OMA([OM::XML::OMS(table("name" = "power", "c\ d" = "arith1")), OM::XML::OMA([OM::XML::OMS(table("name" = "sin", "cd\ " = "transc1")), OM::XML::OMA([OM::XML::OMS(table("name" = "plus", "c\ d" = "arith1")), OM::XML::OMV(table("name" = "a")), OM::XML::OMI([OM:\ :XML::Data("1")])])]), OM::XML::OMI([OM::XML::Data("2")])])], table("\ xmlns" = "http://www.openmath.org/OpenMath")) // the result needs to be evaluated to get the proper MuPAD expression // (This is done to simplify debugging during development.) >> eval(%) sin(a + 1)^2 --------------------- END SESSION --------------------- Currently, only a couple of domains (mainly expressions, numbers, polynomials and matrices) are supported. This is not a stable version to any extend and it you use it in a production environment, you're insane. Any feedback is highly appreciated. Licensing is not completely clear, yet. I claim that this version is under some BSD-style license. Best Regards, Peter -- Peter Horn, University of Kassel * Computational Mathematics Group * * Heinrich Plett Str. 40, 34132 Kassel * [S] [C] [I] [E] [n] [c] [e] Phone: + 4 9 - 5 6 1 - 8 0 4 - 4 1 9 2 * http://www.symcomp.org Fax: + 4 9 - 5 6 1 - 8 0 4 - 4 6 4 6 * E-Mail: [EMAIL PROTECTED] * * http://kassel.symcomp.org/ * _______________________________________________ Om mailing list [EMAIL PROTECTED] http://openmath.org/mailman/listinfo/om --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---