Dear Science, Technology, Engineering and Mathematics teachers,

Thank you for training the next generation of inventors and builders, for giving your students a problem solving toolkit they can apply wherever life takes them, and for your tireless creativity in finding new ways to teach your students during a pandemic.

## STEM mode is for you

As a little token of admiration and appreciation for STEM teachers, we’ve just launched a new feature for Mote that we call ‘STEM mode’.

With this new feature enabled, you can choose to have mathematical expressions and chemical compounds formatted and rendered beautifully within your document comments and on our website landing pages.

To learn more about using STEM mode, check out our support article.

## How it works

In order to detect STEM expressions within transcripts, we iterate through the text of a transcript and build a potential expression when we land on language that may be related to Math or Chemistry. Language that might qualify for a potential expression includes numbers, variables, functions, math operations, or letters in elements. We also consider homophones of STEM-related language, to ensure that errors in voice transcription do not lead to us missing STEM expressions. This means that an incorrect voice transcription like â€śwhy equals sign xâ€ť and â€śsee oh 2â€ť can still be formatted as â€ś* y = sin x* â€ť and â€ś*CO _{2}*â€ť.

For potential Math expressions, we ensure that we only format expressions which are logical, meaning we donâ€™t leave functions or math operations hanging. This helps avoid false positives, making sure that statements like â€śThis is good, plus I think itâ€™s a sign of improvementâ€ť arenâ€™t reformatted to â€śThis is good, + *i *think itâ€™s a *sin* of improvementâ€ť, even though the plus sign, â€śIâ€ť, â€śsignâ€ť, and â€śaâ€ť could be interpreted as potential Mathematical language by themselves. False positives proved to be one of the larger challenges in evaluating STEM, as many words for Mathematical processes can be used in other contexts.

Evaluating Chemistry expressions involves determining whether a sequence of letters and numbers could feasibly represent a chemical compound. Iterating through a potential Chemistry expression, we have to make sure that each letter either represents an element in the periodic table by itself or represents an element when joined with the letter directly preceding/following it. If this rule is broken, then the potential chemical compound will not be formatted, as it is not composed solely of element abbreviations and numbers. However, there are still unclear cases where a piece of text could be either a combination of element abbreviations or a single word. In order to decide ambiguous cases, we search to see if the rest of the Mote contains any chemistry-related language such as â€śatomsâ€ť, â€śionsâ€ť, or â€ścovalence. Depending on what we find (or donâ€™t find), we are then able to make a more reasonable conclusion as to whether youâ€™re referencing Colorado or carbon monoxide when you say â€śCOâ€ť.

With the evaluation of potential STEM statements finished, formatting accepted expressions presents its own set of challenges. For Math expressions, the symbols involved equations typically follow the same order as the words representing them, meaning an equation like â€ś*y=ax+b*â€ť is read aloud in the same order it is written. However, when inverting or applying derivatives to functions, this order is often mixed around. For example, one might say â€śy equals inverse sin x plus the derivative of f of xâ€ť for the equation â€ś *y=sin-1x + f'(x) *â€ť, where we can see that the â€śinverseâ€ť and â€śderivativeâ€ť might be spoken before the functions they apply to, but the symbols for each are written after the functions they apply to. This means that formatting Mathematical statements is not a simple manner of replacement, but rather requires consideration for the role of a Mathematical symbol within an expression. Chemistry expressions are easier to format, as we only need to ensure that letters are capitalized if they are the first (or only) letter in an elementâ€™s abbreviation and that any numbers occurring after letters are turned into subscripts.

With the STEM expression fully formatted, it is inserted back into our representation of the transcript, with identifiers that will allow it to be rendered properly by the Mote Chrome Extension. In terms of the user experience, we decided to have STEM mode be a setting that a user can toggle on or off for individual Motes. This allows users to choose between the classic Mote text representation of transcripts and the new STEM Mode version with STEM expressions rendered using AsciiMath in conjunction with our React.js frontend.

To enable STEM expressions to be rendered and edited in our ‘Editor’ view we replaced the existing HTML `textarea`

with a` contenteditable <div>`

that contains both MathJax strings and editable text. The STEM expressions are separately editable only when selected, in a separate editing pane, and using the AsciiMath syntax. We’re pleased with how cleanly this seems to have solved for the need to edit both plain text and STEM expressions in one UX.

And thatâ€™s it! We hope that STEM mode proves to be a clean and elegant solution for your feedback!

This post was co-authored with mote’s own Chris Skokowski, Alex Nunes and Emir MehiÄ‡.