<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Hagenberg, Austria</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>VMEXT2: A Visual Wikidata aware Content MathML Editor</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Moritz Schubotz Dept. of Computer and Information Science, University of Konstanz</institution>
          ,
          <addr-line>Box 76, 78464 Konstanz</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <volume>1</volume>
      <fpage>3</fpage>
      <lpage>08</lpage>
      <abstract>
        <p>VMEXT is a Visualization of the content MathML EXpression Tree. In VMEXT2, we add the functionality to edit the content MathML expressions visually. In addition to the standard OpenMath based content dictionaries, Wikidata items can be used as content symbols. Moreover, we added a MathML source code editor to allow for seamless integration of a visual and nonvisual editing work ow. We regard VMEXT2 as a step forward to a semantic formula editor for Wikipedia.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>form. It is used for many other semantic enrichments in Wikipedia, and in particular in interlanguage links,
authority control for persons and other bibliographic data, as well as the management of social, economic and
geographic fact data.</p>
      <p>In the following, we will describe our approach in section 2, present the current state of our implementation
in section 3 and describe the next steps in section 4.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Our MathML Interface Approach</title>
      <p>As motivated in section 1, we need a math editing tool that ful lls the following requirements:
The tool must allow the user to augment the formulae with Wikidata items.</p>
      <p>The tool should allow editing semantics without changing the layout.</p>
      <p>The tool and its source code must be available under a MediaWiki compatible license.</p>
      <p>The tool must not disturb current editing work ows.</p>
      <p>To take advantage of the related works regarding math editing, we suggest that MathML should be used as the
communication standard to store and retrieve formula data from Wikidata. In addition to the existing Wikidata
endpoints, which allow accessing, storing and retrieving of data from Wikidata in XML, RDF, and JSON(p)
forms, we will establish a new interface for MathML. Therefore, we introduced an implicit content dictionary
(called Wikidata) that allows using any1 Wikidata item as content MathML symbol. Based on this interface,
we designed a content MathML editor that uses standard conform MathML extended by the special Wikidata
content dictionary.</p>
      <p>For the content MathML editor, we extend our content MathML visualization (VMEXT) [5] so that the tree
structure of the expression can not only be displayed but also modi ed. However, we do not intend to hide
the MathML format, and thus use four interlinked visualizations for a single formula. VMEXT2 has two visual
representations, the traditional presentation rendering and the expression tree representation of the content
MathML. Furthermore, we added interlinked source code editors for presentation and content MathML in this
new version VMEXT2. To make this representation more explicit, we made the apply-free form, which replaces
the explicit display of apply nodes by the rst child, optional. In particular, by clicking on the apply node,
the rst child is expanded. By doing so, the user experiences a one-to-one mapping between content MathML
elements. Any change in one representation automatically updates the other representations. As visualized
in Figure 2, hovering over elements, e.g., probability P in the screenshot, results in the highlighting of these
elements in all three remaining representations. Also, popups display additional semantics. For csymbol MathML
elements, this is the combination label and description from the Wikidata element. Especially for the Wikidata
items, whose unique identi ers do not carry humanly readable semantics, the popup, and the auto-completion
feature in the visual and source code view prevent the obfuscation of the semantics by the Wikidata item IDs.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Implementation</title>
      <p>For the implementation, we followed the approach to take advantage of well established open source technology
and use the APIs in order to extend the functionality according to our needs. In the following, we will describe
the individual modules of VMEXT2 and describe the connection to existing technology. VMEXT2 consists of
the following modules:
vmext The parent Node.js module that bundles the components and presents the demo. We strive to
implement everything in isomorphic JavaScript and use brunch to bring node modules to the browser.
mathml MathML is the core module that allows to load modify and render MathML input. It is based on
the XML processing node module xtraverse.
cytoscape-mathml Cytoscape MathML is a plugin to the graph visualization cytoscape with the
dagreplugin and provides the interactivity with the MathML tree.
codemirror-mathml a plugin for codemirror. It extends the CodeMirror XML autocompletion plugin and
provides auto completion for MathML
codemirror-wikidata a plugin for codemirror. It provides autocompletion for Wikidata entities and
tooltips for Wikidata elements.</p>
      <p>Please refer to vmext.formulasearchengine.com for detailed information on the used versions and up-to-date
install instructions.</p>
      <p>1In practice, only items describing mathematical symbols seem reasonable.</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion and Outlook</title>
      <p>With VMEXT2, we transformed a tree visualization for the content MathML expression tree, that was only
capable of visualizing the MathML expression tree, into a content MathML editor. Moreover, we linked presentation
and content more closely and created direct mappings between the visualization and the code representation.
By doing so, a step towards semantic formulae in the Wikimedia projects has been completed. However many
steps are still open:
1. We are currently developing a MathML API to Wikidata that allows one to read and write MathML
expressions to Wikidata.
2. We are looking for a real visual editing component for presentation MathML that can be integrated in</p>
      <p>Wikimedia's VisualEditor under the given OpenSource license and backward compatibility constraints.
3. After the completion of Step 1, we are performing user studies to investigate the acceptance of our editor
by the community.</p>
      <p>Besides the main use case in Wikipedia and other MediaWikis, such as the DRMF, the components described
in section 3 can be used for various purposes in the web. Moreover, VMEXT2 can also be used with another
knowledgebase or for editing MathML without a dedicated knowledgebase.</p>
      <p>Acknowledgments
We thank the developers Ludwig Goohsen, Stefan Kaufhold, Jonas Kress, Vincent Stange and many others for
their open source contributions. Furthermore, we thank the Wikimedia Foundation and in particular Thalia
Chan, Ed Sanders and James Forrester from the editing team for the development of the current VisualEditor
for Math.</p>
      <p>Figure 2: MathML source editor (left) and visual content tree editor (right)</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>