[Om] getting started with openMath
ken
j609444 at gmail.com
Tue Oct 9 17:22:33 CEST 2012
Hello, Lars Hellström
I was thinking of using OpenMath as a command language to access the
CAS, not as a standard for encoding mathematical objects in the CAS.
Like a explained to Alberto I was think of using openMath to abstract
the CAS I use from the rest of my application so I could change the CAS.
It seems like it is turning out to be a lot of work and may not be worth
it. Are you saying that openMath is better suited for use inside a CAS
and not for a way to pass things between different applications or
components?
So I am confused about this arcsin thing. Does not arcsin always output
the same thing for a given input, so why would anyone ever want to
define it differently? If I enter arcsin(1) into a calculator I expect
to always get back pi/2 rad or 90 deg. The unites and whether it is
exact would need to be defined but they are all equivalent and I should
be able to get it in any form needed and change between any of them as I
like depending on the CAS, so that is out side the definition of arcsin.
That brings up another question. Is there any way to specify unites in
openMath. That becomes a big thing if physics? If I ever get that far (I
doubt I will) I would like my calculator to be smart enough that it
would change everything to si units before solving an equation where
units are specified.
Thanks and have a good day.
Ken
On 10/09/2012 07:02 AM, Lars Hellström wrote:
> Alberto González Palomo skrev 2012-10-09 10.50:
>> ken wrote: (09/10/12 05:16)
>>> Hello,
>>>
>>> I would like a simple introduction to openMath xml objects like <mo> (I
>>> assume that stands for “math object” but have not yet been able to
>>> verify that), and how they are used. I read the The OpenMath Standard
>>> 2.0 pdf document but find it confusing.
>>
>> Well, <mo> is MathML, not OpenMath.
>
> Meaning it's from a different Application of XML, but they're closely
> coordinated, so standard XML tranformation tools can be used to
> convert one to the other, if one needs to. I find OpenMath to be
> closer to the abstract syntax trees of mathematical expressions, so
> better suited for actually doing mathematics on.
>
>> Let's see if I can help you out.
>>
>>> [...]
>>> I was thinking about using openMath for the input format for a wrapper
>>> for a Computer Algebra System that would then be used by a C++
>>> application I am writing.
>>
>> That's an advantage only if you want to be able to swap the CAS
>> without modifying your application.
>
> Hmm... A question to both of you: Are you thinking about using
> OpenMath as a sort of command language to the CAS, or are you rather
> thinking about using it as a standard for encoding mathematical
> objects? The suitability of OM in a particular case may well depend on
> one's position in that spectrum.
>
> An example of the latter situation might be that the C++ application
> is outputting something like (i.e., is about as complicated as)
> matrices whose elements in general are polynomials. If you generate OM
> output, then your course is clear the day you discover that real
> coefficients in the polynomials are insufficient (since you actually
> need to support complex coefficients), conversely want to experiment
> with rational rather that floating-point coefficients, or simply need
> more variables than you originally thought. If instead you generate
> output in some homegrown format, then such changes in your data often
> requires a rewrite from scratch. CAS command languages are probably
> general enough already, but there is always the question of how
> tightly one prefers to tie one end of a toolchain to the other end.
>
>> I wanted to do that some time ago, but it does not work well in
>> practice: beyond trivial expressions, the differences among CASs are
>> so serious that you end up having to create new OpenMath symbols for
>> each CAS, at which point the only benefit left is that you need an XML
>> parser instead of one for each of the CASs languages. That's valuable,
>> but probably not worth the effort depending on what you want to do.
>
> The above sounds a lot like transcribing CAS commands into OM objects.
> At the other end of the spectrum, one doesn't really care about
> whether the Maple arcsin is equivalent to the Mathematica ArcSin or
> not -- what you care about is the sense of arcsin (or whatever) that
> is relevant for you! It is the responsibility of the next step of the
> toolchain (which may correspond to what the OM standard calls a
> "phrasebook") to make sure that this gets represented correctly also
> at the next stage of processing.
>
>
> The above does however also suggest an idea, which should be taken as
> a question to the list at large. Might the following, when one seeks
> to create a phrasebook for something large like a CAS, be considered
> something like a "reasonable practice" (since it obviously wouldn't be
> a Best Practice): set up a "dummy" CD into which one just dumps all
> symbols that the system defines but noone has put in a CD yet; that
> allows you to at least say anything you might need to say, even if the
> meaning of what you're saying strictly speaking is completely
> undefined. And by "dumps" I mean that when you need to refer to
> identifier barbaz in system foo, you do that by saying e.g.
>
> <OMS cd="foo-LastResort" name="barbaz"/>
>
> I do /not/ mean that there, to make this a reasonable practice,
> somewhere needs to be a content dictionary definition file which
> contains a CDDefinition of barbaz. Indeed, one could even consider
> making it so that explicit entries are added to such "last resort
> CD:s" only when the symbol has been given a proper definition
> elsewhere, and that the main point of the entry is thus to say
> something like "symbol permanently moved to:".
>
> But this last part is probably off-topic for the original poster; it's
> more in the realm of ideas for standard amendments.
>
> Lars Hellström
>
More information about the Om
mailing list