- From: Deyan Ginev <deyan.ginev@gmail.com>
- Date: Mon, 20 Jul 2020 11:26:29 -0400
- To: Patrick Ion <pion@umich.edu>
- Cc: Murray Sargent <murrays@exchange.microsoft.com>, Neil Soiffer <soiffer@alum.mit.edu>, Frédéric Wang <fwang@igalia.com>, "public-mathml4@w3.org" <public-mathml4@w3.org>
- Message-ID: <CANjPgh-stRm+exCb5mgO01fhW4-_uZ1=inVcD6CsNkQn5Yg_QQ@mail.gmail.com>
Reading along the <mrow> reminiscing here with 2020 web-development eyes (which is only one of the many ways MathML can be used in practice, but likely a very major use case going forward), It strikes me that for most purposes in which <mrow> is used it is an identical generic element to the HTML5 <span> element. One finds themselves wishing that MathML elements which have full overlap with HTML would one day become homonyms, i.e. they look exactly the same as regular HTML but have slightly different behavior depending on being inside or outside a <math> root. There are also some objective flaws in the naming choice, since we have an element claiming to be a "row", but crucially not a table row, which is <mtr>, making it a red herring in the tabular context. Not something I expect to have any practical relevance to the current Refresh effort, but a sentiment I think deserves at least to get written down at the present date. I'm aware this must have been recurrently discussed in the past, so not looking to start a long discussion either, just jotting down the observation. It follows that phrases such as "mrow-like" will be confusing in a vacuum. Greetings, Deyan On Mon, Jul 20, 2020 at 10:58 AM Patrick Ion <pion@umich.edu> wrote: > > It's clear that '<mrow>-like' has provided confusion. That > being so there's a good argument for reformulation to > avoid this adjective. > > Having been around the MathML development more or less as > long as Murray (and also similarly around as long in > general) I note, for information, how I think <mrow> > developed. > > I'd say, and this is I suppose an expression of my > personal mental model, that <mrow> was introduced as a > general container element, or grouping, for sequences of > signs in mathematical formulas that were not otherwise > special enough to deserve special names. If you are > thinking of analyzing math formulas into trees, then > '<mrow>...</mrow>' acts like a pair of grouping > 'brackets', like say '{...}' in TeX. Most are used to > seeing and reading formulas in horizontal text lines, so > these are signs set out in a row, contrast to a column, > which is also a commonplace notion to those used to > dealing with mathematical formulas; the 'm' is prefixed as > usual because we were trying to have a math namespace > before there were namespaces explicitly in use. I suppose > '<mgroup>' might have done to but in math there is a lot > special vocabulary associated to groups as algebraic > structures; rows and columns are relatively neutral in > mathematical semantics. The fact that a printed version > of a symbol sequence might have to be broken over the end > of a line doesn't change the grouping as a formula term, > and it might be printed RtoL instead of the LtoR most > involved were used to. So '<mrow>-like' meant that the > content list of characters had no particular properties > beyond those conventional for any old 'row-like' formula. > There were no distinguished places in the list, no special > rules for setting certain character types other than > alphabetics being in 'math italic as usual', etc. > > At the inception of MathML there were at least four > different groups who had clear ideas of how to proceed. > They already had more-or-less universal systems to do the > job of expressing math in a machinable markup. There were > (at least) IBM's Scratchpad (now Axiom), Wolfram's > Mathematica, Maple, and, of course, TeX. The publishers > were going toward SGML and stopping essentially with > the clearer and more constrained XML. > > HTML was in active evolution but CSS was only just being > invented. For that matter, XML was being actively > developed as a standard. Ragget's book on HTML 3.1 with > its treatment on math appeared early on. But the Math WG > started its work with members from each of the above > communities, and from Elsevier, Microsoft and elsewhere. > All had obvious mathematical educations as well, though > clearly different ones individually. The WG's task was to > developed markup for math formulas (with an eye to > somewhat similar types of formulas in science) but trying > to allow their embedding in HTML (or more reliably XHTML) > pages and their standalone processing for print or > computer algebra systems. The standards environment > shifted a lot in early days, and clearly continues to > change now. Simple notions continue to become more > complex as they are made to be supposedly more flexible > and simultaneously more constrained. The notion of an > 'anchor' as a marker mentioning some associated URL on > the web has become an element <a> with a great number of > specific expectations on how this mark is to be processed > into actionable activity by a browser. The addition of the > 'ping' attribute as a requirement, to allow the > reporting of any interest shown in this mark to an > arbitrary list of targeted recipient URLs, is, I suppose, > a hack to overcome the design of web links as directional. > However, together with all the Ecmascript programming > allowed, it facilitates covert surveillance as never > before. No wonder handling the new attributes of <a> > is a major programming overhead. > > All the best, > > Patrick > > > On Fri, Jul 17, 2020 at 7:14 PM Murray Sargent < > murrays@exchange.microsoft.com> wrote: > >> I think I might know what’s confusing here since I was confused a bit >> about it when I first studied MathML back in the 1990s. >> >> >> >> <mrow> is a generic container that in most XML formats would be a set of >> individually named containers. To find out the nature of an <mrow> >> container, you parse it. An example is the integral >> >> >> >> <mrow> >> >> <msubsup> >> >> <mo>∫</mo> >> >> <mn>0</mn> >> >> <mi>a</mi> >> >> </msubsup> >> >> <mrow> >> >> <mi>x</mi> >> >> <mi>ⅆ</mi> >> >> <mi>x</mi> >> >> </mrow> >> >> </mrow> >> >> >> >> And the trigonometric function >> >> >> >> <mrow> >> >> <mi>sin</mi> >> >> <mo>&x2061;</mo> >> >> <mi>x</mo> >> >> </mrow> >> >> >> >> Ironically <mfenced> has been deprecated for web use, so <mrow> infix >> should be used for that too. >> >> >> >> In OMML, which probably overdoes explicit elements, all three of these >> <mrow> containers have explicit names, namely, <nary>, <func>, and <d>, >> respectively. In addition, all OMML object arguments have explicit names, >> such as <num>, <den>, <sub> and <sup>. >> >> >> >> Some containers like <math> and <msqrt> are “mrow-like” in that they can >> have an arbitrary number of children, but you know the meanings of these >> containers up front without parsing. >> >> >> >> <mrow> and mrow-like containers have some common properties from a >> display point of view, such as stretching vertically stretchy symbols. Also >> an <mrow> acts as a single argument for elements like <mfrac>.that have >> positional arguments, >> >> >> >> Presentation MathML is unique AFAIK in these respects. Other XMLs that >> I’ve worked with over the years have explicit elements that are all prefix >> in nature, rather than a mixture of infix and prefix. I’m used to infix >> since UnicodeMath and math itself have much infix notation. But I can >> sympathize with folks who might be confused at least at first by MathML’s >> <mrow> and positional arguments. >> >> >> >> Murray >> >> >> >> *From: *Neil Soiffer <soiffer@alum.mit.edu> >> *Sent: *Friday, July 17, 2020 3:05 PM >> *To: *Frédéric Wang <fwang@igalia.com> >> *Cc: *public-mathml4@w3.org >> *Subject: *[EXTERNAL] Re: Minutes: MathML Core Meeting, July 13, 2020 >> >> >> >> I don't feel an explanation is needed, but Brian said he and others who >> don't live and breathe MathML were confused by "mrow-like". With the >> change to "grouping", I don't know if an explanation is needed; he would be >> better positioned to answer this. The other ones (scripted, radical) don't >> have explanations. Seems to me if you give an explanation for one of the >> three, you should do it for all three. >> >> >> >> Neil >> >> >> >> >> >> >> <https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.avg.com%2Femail-signature%3Futm_medium%3Demail%26utm_source%3Dlink%26utm_campaign%3Dsig-email%26utm_content%3Dwebmail&data=02%7C01%7Cmurrays%40exchange.microsoft.com%7C7455e0a6aca84bcbe37f08d82a9d76d9%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637306203078365392&sdata=ERngjIq%2Baxbe405ocIg4j57jy%2F7n7cVhAP3aoam54wI%3D&reserved=0> >> >> Virus-free. www.avg.com >> <https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.avg.com%2Femail-signature%3Futm_medium%3Demail%26utm_source%3Dlink%26utm_campaign%3Dsig-email%26utm_content%3Dwebmail&data=02%7C01%7Cmurrays%40exchange.microsoft.com%7C7455e0a6aca84bcbe37f08d82a9d76d9%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637306203078365392&sdata=ERngjIq%2Baxbe405ocIg4j57jy%2F7n7cVhAP3aoam54wI%3D&reserved=0> >> >> >> >> On Thu, Jul 16, 2020 at 9:01 AM Frédéric Wang <fwang@igalia.com> wrote: >> >> On 13/07/2020 23:32, Neil Soiffer wrote: >> >> >> like: #221 >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmathml-refresh%2Fmathml%2Fissues%2F221&data=02%7C01%7Cmurrays%40exchange.microsoft.com%7C7455e0a6aca84bcbe37f08d82a9d76d9%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637306203078375392&sdata=Bmm7yJtInkED%2F8veVwMJeZG7AIjl%2FT6xfQAMrUfhG3I%3D&reserved=0> >> >> BK: said he and others were confused by the definition of “mrow-like” in >> the spec. What properties of mrows are shared between them? >> >> NS and DC: it is just a list of elements-- it says nothing about the >> properties. >> >> BK: people read things into the name and ask how they are “like” each >> other. >> >> BK: FW suggested in a comment on the issue it could be renamed as >> “grouping elements” and potentially similar names for “scripted elements”. >> I think that is less confusing. >> >> NS: There is no definition for “script-like”, so this is really just >> about changing the one name unless FW is planning on a bigger rewrite which >> doesn’t seem necessary. >> >> >> https://mathml-refresh.github.io/mathml-core/#mathml-elements-and-attributes >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmathml-refresh.github.io%2Fmathml-core%2F%23mathml-elements-and-attributes&data=02%7C01%7Cmurrays%40exchange.microsoft.com%7C7455e0a6aca84bcbe37f08d82a9d76d9%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637306203078375392&sdata=HnXbLq7doWwe5UNpDtPGyjpj8mKyZqQJx3BU8qAqbOg%3D&reserved=0> >> >> has 3 definitions: "mrow-like elements", "scripted elements" and "radical >> elements". >> >> I think Brian suggested 2 things: rename "mrow-like" and add brief >> explanation ( >> https://github.com/mathml-refresh/mathml/issues/221#issuecomment-641743332 >> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmathml-refresh%2Fmathml%2Fissues%2F221%23issuecomment-641743332&data=02%7C01%7Cmurrays%40exchange.microsoft.com%7C7455e0a6aca84bcbe37f08d82a9d76d9%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637306203078385382&sdata=qGmatInOcPHH0hUYKn0V9G%2FbHR7sPHDkWpD0mUPOn5I%3D&reserved=0> >> ). These are pure renaming and explanatory comment, the definitions itself >> remain unchanged. >> >> I understand there was consensus on the renaming. Do I also need to add a >> brief explanation in this section too? >> >> -- >> >> Frédéric Wang >> >> >> >
Received on Monday, 20 July 2020 15:27:10 UTC