- 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