[Om3] [Fwd: Re: OpenMath Symbols for Symbolic Computation]

Sebastian Freundt hroptatyr at gna.org
Thu Sep 18 12:32:12 CEST 2008


jhd-sBK8fsN9CKk2EctHIo1CcQ at public.gmane.org writes:

> Whoops: forgot the list.
>
> ---------------------------- Original Message ----------------------------
> Subject: Re: [Om3] OpenMath Symbols for Symbolic Computation
> From:    jhd-sBK8fsN9CKk2EctHIo1CcQ at public.gmane.org
> Date:    Wed, September 17, 2008 11:45 pm
> To:      "Peter Horn" <hornp-H0bhvm5RIPJKC+uPiMyuu4L3RkvZuhko at public.gmane.org>
> Cc:      "Professor James Davenport" <jhd-sBK8fsN9CKk2EctHIo1CcQ at public.gmane.org>
> --------------------------------------------------------------------------
>
>
> On Wed, September 17, 2008 12:29 pm, Peter Horn wrote:
>> Hi!
>>
>>> I would disgaree here. A Matrix is precisely that, and needs no
>>> additional
>>> information. IF you wnat that matrix to represent a linear
>>> transformation
>>> on a space, THEN you need additional information.
>>
>> Well, if you want to do computations with a matrix (and that's our
>> intention), you need all the information we define in matrix1.
> I think I deny that. If (as I believe I can) I can multiply
> <OMI>2</OMI> by <OMI>3</OMI>, then surely I can multiply
> <OMA>
>   <OMS name="matrix" cd="linalg2"/>
>   <OMA> <OMS name="matrixrow" cd="linalg2"/> <OMI>2</OMI> </OMA>
> </OMA>
> by
> <OMA>
>   <OMS name="matrix" cd="linalg2"/>
>   <OMA> <OMS name="matrixrow" cd="linalg2"/> <OMI>3</OMI> </OMA>
> </OMA>.
> And if I can do that, then why not 2x2 matrices, or other sizes?
>>>> Sure. We want to work with matrices (and other objects) in computer
>>>> algebra systems, and as you can imagine it's hard to guess (from
>>>> the CAS'
>>>> POV) what the user is trying to tell us when even the most basic
>>>> information is missing.
>>> Right - rather like the polyd family. of CDs. Having such a set of CDs
>>> certainly makes sense
>>
>> We simply adopted the polyd ideas to matrices.
>>
>>> I'd be happy to look at what you have: I have Peter Horn's matrix1,
>>> but don't quite see, for instance, what the point of entry_domain is?
>>
>> That's the ground ring.
> But I don't see what it does. What does
> <OMA>
>   <OMS name="entry_domain" cd="matrix1"/>
>   <OMS name="Z" cd="setname1"/>
> </OMA>
> have that just
> <OMS name="Z" cd="setname1"/> (or ringname1 if you want) not have?
[snip]

Ah, now I get you.  Sure, you're right, there's no additional mathemtical
information, but I (in particular) fought for that `feature' because it
allows for easy xpath access whilst being flexible about the order of
`arguments' within the matrix constructor.

/OMA[OMS[@cd='matrix1' and @name='matrix_domain']]/OMA[OMS[@cd='matrix1' \
and @name='entry_domain']]/

is the full path to the entry domain from a matrix1.matrix parent, which
is (in my opinion) clearly better than something like

/OMA[OMS[@cd='matrix1' and @name='matrix_domain]][2]/

It's basically a major flaw IMHO in the rest of the OM CDs too.  Modern
XML parsers for instance allow you to lodge callback functions in certain
nodes, which obviously wouldn't work if a particular node is just the
second sibling of another node.

I'm not particularly tied to that approach (another symbol application),
it's just the only one possible at the moment.  I imagine something a la:

<OMS name="Z" cd="ringname1" role="entry_domain"/>

or, to preserve the context that it's meant to be a ground ring of a
matrix:

<OMS name="Z" cd="ringname1" role="entry_domain" ctx="matrix1.matrix"/>

Well, not meant as a proposal, just a note.

Cheers
Sebastian


More information about the Om3 mailing list