- From: Neil Soiffer <soiffer@alum.mit.edu>
- Date: Tue, 30 Jun 2020 23:50:18 -0700
- To: Deyan Ginev <deyan.ginev@gmail.com>
- Cc: "Miller, Bruce R. (Fed)" <miller@nist.gov>, public-mathml4@w3.org
- Message-ID: <CAESRWkCbYnxXUwZZfgVQ2KWdH-SmvcM1aEgJqotxuNAv_6xBSw@mail.gmail.com>
I agree that the operators should be part of the semantics. In fact I
realized that was essential last week and wrote up some email that I've
been sitting on since Friday. I'm going to send that in a separate thread.
I think we are getting really close to a solution with only some syntactic
differences.
Neil
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Virus-free.
www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Tue, Jun 30, 2020 at 6:50 AM Deyan Ginev <deyan.ginev@gmail.com> wrote:
> Indeed, it is as Bruce suggests -- I was focusing on the argument
> scaffold when you have implicit mrows, to illustrate the point, which
> I see mostly took :> Thanks for adding the missing bits! To belabor
> the point some more, this approach lets you have a number of choices
> when you have "too many" mrows, but it makes sure you have at least
> one choice when the mrows are omitted/implied (choice being to float
> the annotation up).
>
> Maybe a good metaphor here is that Presentation MathML is like cooked
> meat - it has several levels of doneness and every culture has its
> favourite.
>
> Some of the variations that come to mind:
>
> 1. Implied mrows (as in Bruce's email, but I will use "semantic" as
> the attribute name for now, since we haven't formally set it in stone
> yet)
>
> <mrow semantic="times(@f1(@b1),@f2(@b2))">
> <mi arg="b1">m</mi>
> <mo arg="f1" semantic="factorial">!</mo>
> <mi arg="b2">n</mi>
> <mo arg="f2" semantic="factorial">!</mo>
> </mrow>
>
> 2. Content-tree aligned mrows, coarse-grained annotations
>
> <mrow semantic="times(@f1(@b1),@f2(@b2))">
> <mrow>
> <mi arg="b1">m</mi>
> <mo arg="f1" semantic="factorial">!</mo>
> </mrow>
> <mrow>
> <mi arg="b2">n</mi>
> <mo arg="f2" semantic="factorial">!</mo>
> </mrow>
> </mrow>
>
> 3. Overdone mrows, coarse-grained annotations
>
> <mrow notation="times(@f1(@b1),@f2(@b2))">
> <mrow>
> <mrow>
> <mi arg="b1">m</mi>
> </mrow>
> <mrow>
> <mo arg="f1" semantic="factorial">!</mo>
> </mrow>
> </mrow>
> <mrow>
> <mrow>
> <mi arg="b2">n</mi>
> </mrow>
> <mrow>
> <mo arg="f2" semantic="factorial">!</mo>
> </mrow>
> </mrow>
> </mrow>
>
>
> 4. Content-aligned mrows, fine-grained annotations
>
> <mrow notation="times(@lfactor,@rfactor)">
> <mrow arg="lfactor" semantic="@op(@m)">
> <mi arg="m">m</mi>
> <mo arg="op" semantic="factorial">!</mo>
> </mrow>
> <mrow arg="rfactor" semantic="@op(@n)">
> <mi arg="n">n</mi>
> <mo arg="op" semantic="factorial">!</mo>
> </mrow>
> </mrow>
>
> 5. Overdone mrows, fine-grained annotations
>
> <mrow notation="times(@lfactor,@rfactor)">
> <mrow arg="lfactor" semantic="@op(@m)">
> <mrow>
> <mi arg="m">m</mi>
> </mrow>
> <mrow>
> <mo arg="op" semantic="factorial">!</mo>
> </mrow>
> </mrow>
> <mrow arg="rfactor" semantic="@op(@n)">
> <mrow>
> <mi arg="n">n</mi>
> </mrow>
> <mrow>
> <mo arg="op" semantic="factorial">!</mo>
> </mrow>
> </mrow>
> </mrow>
>
> And one could indeed replace the literal "times" with a pointer to an
> <mo> containing invisible times, if it was available and preferred, or
> still keep this style of annotating even when such invisible times
> <mo> is available.
>
> FWIW, if we took a group vote, I have a feeling we will have at least
> 2 of these 5 choices get a vote for "best practice", depending on
> perspective. So we might as well leave the choice open with some
> illuminating examples how to make it?
>
> Deyan
>
> On Tue, Jun 30, 2020 at 9:11 AM Miller, Bruce R. (Fed) <miller@nist.gov>
> wrote:
> >
> > On 6/29/20 9:11 PM, Neil Soiffer wrote:
> > > Apologies for the delayed reply -- I put some blinders on for a few
> days
> > > to grind out some code to linebreak/indent MathML.
> > >
> > > I think David's second reply is the correct one as to my way of
> > > thinking. Using my current (but now old) proposal:
> > > <mrow notation="times(factorial(@1), factorial(#3))">
> > > <mi>m</mi>
> > > <mo>!</mo>
> > > <mi>n</mi>
> > > <mo>!</mo>
> > > </mrow>
> > >
> > > I think Deyan was aiming at something like that using his proposal's
> > > notation, but I don't think it is right. Nowhere is "factorial"
> present.
> >
> > Right, I think what he was *trying* to say was
> > <mrow notation="times(@f1(@b1),@f2(@b2))">
> > <mi arg="b1">m</mi>
> > <mo arg="f1" notation="factorial">!</mo>
> > <mi arg="b2">n</mi>
> > <mo arg="f2" notation="factorial">!</mo>
> > </mrow>
> >
> > Which is semantically equivalent to what you wrote, but has the
> > advantage that an agent can more easily track that each "!"
> > corresponds to factorial (for highlighting, navigation, ...
> > or even linking ? :>
> >
> >
> > > Neil
> > >
> > > On Fri, Jun 26, 2020 at 7:57 AM Deyan Ginev <deyan.ginev@gmail.com
> > > <mailto:deyan.ginev@gmail.com>> wrote:
> > >
> > > Hi all,
> > >
> > > The mini proposal also allows to annotate any presentation tree,
> but
> > > you sacrifice the granularity of the annotation - it floats
> higher. So
> > > Neil's tree can be annotated as (using the syntax that seemed to be
> > > the consensus form after yesterday's meeting):
> > >
> > > <mrow semantic="times(@factorial1(@base1),@factorial2(@base2))">
> > > <mi arg="base1">m</mi>
> > > <mo arg="factorial1">!</mo>
> > > <mi arg="base2">n</mi>
> > > <mo arg="factorial2">!</mo>
> > > </mrow>
> > >
> > > Greetings,
> > > Deyan
> > >
> > > On Fri, Jun 26, 2020 at 10:48 AM David Carlisle <davidc@nag.co.uk
> > > <mailto:davidc@nag.co.uk>> wrote:
> > > >
> > > > On 26/06/2020 15:39, Neil Soiffer wrote:
> > > >
> > > > We have talked a little about needing proper mrow structure in
> > > order to mark up prefix/posfix/infix operators. For example, the
> > > following can not be semantically marked up:
> > > > <mrow>
> > > > <mi>m</mi>
> > > > <mo>!</mo>
> > > > <mi>n</mi>
> > > > <mo>!</mo>
> > > > </mrow>
> > > >
> > > > It needs an extra layer of mrows around the postfix factorials
> in
> > > the mrow.
> > > > <mrow>
> > > > <mrow>
> > > > <mi>m</mi>
> > > > <mo>!</mo>
> > > > </mrow>
> > > > <mrow>
> > > > <mi>n</mi>
> > > > <mo>!</mo>
> > > > </mrow>
> > > > </mrow>
> > > >
> > > >
> > > >
> > > > It seems the main problem (with both forms) is the missing
> > > invisible times. Using the notation of one of the current
> proposals
> > > (semantics-mini) you could do
> > > >
> > > >
> > > > <mrow
> > > >
> > > > semantic="@3(@2(@1),@5(@4))
> > > > >
> > > >
> > > > <mi>m</mi>
> > > > <mo semantic=factorial>!</mo>
> > > > <mo>&invisibletimes;</mo>
> > > > <mi>n</mi>
> > > > <mo semantic=factorial>!</mo>
> > > >
> > > > </mrow>
> > > >
> > > >
> > > > Here's a case we haven't talked about: implicit mrows.
> > > > <msqrt>
> > > > <mi>n</mi>
> > > > <mo>!</mo>
> > > > </msqrt>
> > > >
> > > >
> > > > again can't you do
> > > >
> > > >
> > > > <msqrt semantic="sqrt(@2(@1))">
> > > > <mi>n</mi>
> > > > <mo semantic=factorial>!</mo>
> > > > </msqrt>
> > > >
> > > >
> > > >
> > > > David
> > > >
> > > >
> > > >
> > > >
> > > > Disclaimer
> > > >
> > > > The Numerical Algorithms Group Ltd is a company registered in
> > > England and Wales with company number 1249803. The registered
> office
> > > is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United
> > > Kingdom. Please see our Privacy Notice for information on how we
> > > process personal data and for details of how to stop or limit
> > > communications from us.
> > > >
> > > > This e-mail has been scanned for all viruses and malware, and
> may
> > > have been automatically archived by Mimecast Ltd, an innovator in
> > > Software as a Service (SaaS) for business.
> > >
> > >
> >
> >
> > --
> > bruce.miller@nist.gov
> > http://math.nist.gov/~BMiller/
> >
> >
>
>
Received on Wednesday, 1 July 2020 06:50:39 UTC