<!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>S. T. Gonzalez); stephane.graham-lengrand@csl.sri.com (S. Graham-Lengrand);
narboux@unistra.fr (J. Narboux); shankar@csl.sri.com (N. Shankar)
~ https://dpt-info.u-strasbg.fr/~narboux/ (J. Narboux); http://www.csl.sri.com/users/shankar/ (N. Shankar)</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Semantic parsing of geometry statements using supervised machine learning on synthetic data</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Salwa Tabet Gonzalez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stéphane Graham-Lengrand</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Julien Narboux</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Natarajan Shankar</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>SRI International</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>École Polytechnique</institution>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>ICube, UMR 7357 CNRS, University of Strasbourg</institution>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>In this paper we report progress on our approach to parse natural language mathematics into the syntax trees of a domain-specific language that is amenable to automated processing. For instance, theorem proving techniques could ultimately consume the syntax trees that we aim at producing. We focus here on parsing geometry statements into first-order terms and formulas, which we specify as a geometryspecific collection of algebraic datatypes. This specification is part of the instantiation of SRI's Arsenal framework to the particular domain of geometry. Arsenal's framework for semantic parsing provides an infrastructure for generating synthetic data, and train machine learning models to perform semantic parsing in domains where ground truth data for training is sparse.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;geometry</kwd>
        <kwd>formalization</kwd>
        <kwd>semantic parsing</kwd>
        <kwd>automatic formalization</kwd>
        <kwd>machine learning</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>natural language, is prohibitive. If the approach is successful, then it could be extended to the
formalization of proofs for applications in education for example.</p>
    </sec>
    <sec id="sec-2">
      <title>1. Overall description of the approach</title>
      <p>
        Our approach is based on Arsenal [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], a framework developed at SRI International for building
domain-specific translators from natural language to structured representations, namely syntax
trees. Each domain specific translator is obtained by supervised machine learning. This raises
the issue of the labeled dataset used for training, for applications where ground truth data
may be sparse. Arsenal’s approach to this issue is to generate synthetic datasets from the
very specification of what Arsenal’s output trees should look like and from a pretty-printer
of such trees into natural language. The former is given in the form of a domain-specific
grammar specifying which syntax trees are acceptable as output, and technically expressed as
a collection of OCaml algebraic datatypes (ADTs). The generation of synthetic datasets uses
a customized version2 of the OCaml meta-programming library ppx_random for producing
random inhabitants of ADTs. Arsenal also integrates type-checking at runtime, i.e. in the
production, by the trained model, of syntax trees, which are thus well-typed by construction.
      </p>
      <p>
        More information on Arsenal can be found in its documentation [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], two figures of which are
reproduced in Appendix A with the description of Arsenal’s core mechanisms. The grammar
and its pretty-printer are the cornerstone of every new Arsenal application, and so far, Arsenal
has been applied to several domains such as systems requirements (2018-2019) and 5G standards
(2020-present).
      </p>
      <p>
        For this new application to geometry:
• We designed a grammar for geometry statements in first-order logic, more specifically in
the form of coherent implications (see, e.g., [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]), taking as inspiration the concepts used
in French high-school math textbooks and those present in the GeoCoq library3. See
Section 3 for details.
• We equipped the grammar with probability biases that Arsenal’s random tree generator
uses to sample the tree space.
• We programmed a pretty-printer to translate trees from the grammar into natural language
(in this case, French). See Section 4 for details.
• We used Arsenal’s labeled dataset generator, leveraging the above, to produce a synthetic
training set of 106 statements. Examples of such generated statements, in both natural
language and syntax trees (S-expressions), are given in Appendix B.
• We implemented an entity processor for geometry, to reduce the dificulty of the learning
task (see Section 2).
      </p>
      <p>Arsenal provides a domain-generic infrastructure to train a seq2seq model on the training data
(see Appendix A), as well as providing a GUI and a bash script to experiment with the trained
model and the entity processor. Such experimentations in the case of geometry are on-going.
• In addition, we manually built a corpus of about 80 statements presented in several form
of natural language (with or without anaphoras) as well as in first-order logic. Examples
2https://github.com/disteph/ppx_deriving_random
3https://geocoq.github.io/GeoCoq/</p>
      <p>of corpus statements are given in Appendix C.</p>
    </sec>
    <sec id="sec-3">
      <title>2. Entities</title>
      <p>While the model’s objective is to understand how the complex arrangement of words in a
sentence describes predicates and functions in the grammar, some individual words or lexemes
can directly be understood, in pre-processing, as entities that correspond to terminals in the
grammar. For instance, in order for Arsenal to correctly translate the following two sentences
as syntax trees:
“Si O est le milieu de [AB] alors O appartient à [AB].”
“Si P est le milieu de [CD] alors P appartient à [CD].”
it sufices to have a model that can correctly translate</p>
      <p>“Si Point0 est le milieu de [Point1 Point2] alors Point3 est le milieu à [Point4Point5].”
where Point0, Point1, Point2, Point3, Point4, Point5 are placeholders abstracting the entities O,
A, B, O, A, B in the first sentence, and P, C, D, P, C, D in the second.</p>
      <p>Therefore, Arsenal reduces the size of the space of sentences and syntax trees that the model
operates on, by pre-processing its runtime input with an entity processor that detects entities
and replaces each of their occurrences by a typed and indexed placeholder. Indeed, while the
example above only shows entities of one type, namely Point, Arsenal’s entity placeholders are
typed and, within each type, they are indexed incrementally from left to right in the resulting
sentence. Beside variable names, another type of entities in geometry (and in mathematics in
general) characterizes constant numbers occurring in input sentences, as in “La distance est
supérieure à 10.”</p>
      <p>In the entity processor that we developed for geometry, the typing is done by recognizing
constant numbers and tagged names first, such as lines ( (1) or ()), rays ([)), segments
([]) and angles (∠). Then, single-entity names are replaced: for example, circle names
are recognized if the name is preceded by “the circle” (in French, “le cercle” ). If the entity
processor fails to type a specific name, it is by default considered as a point.</p>
      <p>Using entity placeholder in Arsenal’s runtime means that the labeled dataset used to train
the model only features placeholders rather than actual entities. This in turn means that the
generator of syntax trees has a much smaller space to sample from.</p>
    </sec>
    <sec id="sec-4">
      <title>3. An algebraic datatype for geometry statements</title>
      <p>An Arsenal grammar specifies the form of syntax trees modelling concepts, and relations
between concepts, that together describe an application domain. After the entity types are
declared, the grammar file describes a context-free grammar by declaring a number of algebraic
datatypes that constitute the grammar’s syntactic categories.</p>
      <p>In our case, a syntax tree is of type formula, encoding coherent implications of the form
⎛
⎛</p>
      <p>⎞⎞
∀⃗ ⎝⋀︁  ⇒ ∃⃗ ⎝⋁︁ ⋀︁ ,⎠⎠ .</p>
      <p>The formula constructor Fml correspondingly takes 4 arguments:
• A list of universally quantified objects ⃗;
• A list of atoms 1, . . . , ;
• A list of existentially quantified objects ⃗;
• A list of lists of atoms (1,1, . . . , 1,1 ), . . . , (,1, . . . , , ).</p>
      <p>Each of these components has a type: bindings are collections of objects, whereas hypotheses
and conclusions are conjunctions of atoms, applying predicates to objects. These predicates
describe relations between diferent typed objects, which can be points, lines, rays, segments,
planes, angles, triangles, quadrilaterals, polygons, circles or numbers (especially distances).</p>
      <p>Rather than designing a minimalistic grammar with only few basic constructions from which
others can be defined, we intentionally defined a rich grammar reflecting the variety of concepts
that we expect to find in natural language. Thus shortening the distance between the formal
and informal languages simplifies the development of the pretty-printer and the dificulty of
the learning task.</p>
      <p>The generation of a synthetic dataset by Arsenal starts with the production of random
inhabitants, i.e. syntax trees, of type formula, by the OCaml library ppx_random. The Arsenal
component leveraging the library is domain-generic, i.e. it does not need to be changed for
diferent application domains, since it takes a domain-specific grammar as input and produces a
syntax tree generator as output (this is described in the upper part of Fig.2, in Appendix B).</p>
      <p>At every stage of the depth-first procedure, the generator builds a sub-tree by first selecting
its root, i.e. a constructor of the relevant type, according to a probability distribution annotating
the type declaration.</p>
      <p>Indeed, in order to make sure that the generated data does cover the typical geometry
statements that will be used in practice, it is convenient to bias the generation so that some
constructs are more likely to be generated than others. We provide these biases for high-school
geometry. For example, we specify that segments are more likely to be referenced by the names
of the endpoints rather than the name of the segment itself. Also, a normal user will more often
manipulate definite points than the circumcenter of a triangle.</p>
      <p>Another aspect guiding the design of probabilities is the sub-expresion’s depth: in natural
language we rarely build sentences with great depths and tend to flatten trees by splitting
them into several sentences. In our customized version of ppx_random, the probability of
constructors to be picked can vary with depth, and indeed with greater depth we increase the
probabilities of non-recursive constructors, typically constructors without arguments.</p>
    </sec>
    <sec id="sec-5">
      <title>4. The pretty printer</title>
      <p>The second task to do when applying Arsenal to a new domain is to pair each grammar construct
with several natural language phrasings for it. These illustrate “typical ways” in which the
grammar construct could be described in natural language (which often ofers numerous ways
of expressing the same content). Arsenal’s pretty-printer then non-deterministically compounds
the NL phrasings, so as to produce a randomly generated NL sentence for each of the randomly
generated trees. Those pairs constitute the labeled dataset with which the model can be trained.</p>
      <p>We wrote such a randomized pretty-printer for our geometry grammar. Arsenal provides
a library for minimizing the manual efort to write it. Once again, we determined biases for
choosing the most likely phrasings of each geometric construction, and thanks to Arsenal,
this indicates how the synthetic dataset is populated. Appendix B provides some examples of
synthetic pairs.</p>
      <sec id="sec-5-1">
        <title>4.1. Preprocessing the syntax tree</title>
        <p>As stated before, universally and existentially quantified variables are named objects in our
application. These named objects sometimes are further defined in the following predicates
(hypotheses or conclusions), which would be translated in natural language by adjectives if
unary. For example, the first-order logic formula</p>
        <p>∀,  () ∧ (, ) ⇒  =  = 
can be translated into the less natural sentence</p>
        <p>For all triangles , if  is equilateral, then  =  = 
or the more processed sentence</p>
        <p>For all equilateral triangles ABC, AB = AC = BC.</p>
        <p>This is done by checking the predicates involving the named objects, adding information about
their unary adjectivation and then removing the corresponding predicates. Also, another
preprocessing we added to better emulate natural language is factorization: again the first order
logic formula</p>
        <p>∀, ∀, ∀,  (, ) ⇒  = 
can be translated into the less natural sentence</p>
        <p>For all points , points , points , if B is the midpoint of [] then  = 
or the more processed sentence</p>
        <p>For all points , , , if B is the midpoint of [] then  = .</p>
        <p>This tranformation takes place after adding adjectives, in order to group together objects with
same characteristics which are defined contiguously.</p>
        <p>Other preprocessing tasks are handled here, but they are specific to the French language.
For instance, the keywords "for all" and "such that" are not invariant in French: they can be
declined in their feminine, plural and feminine-plural forms. To match the correct form, there
is a need to inspect the object that is qualified by these keywords.</p>
      </sec>
      <sec id="sec-5-2">
        <title>4.2. Printing the transformed tree</title>
        <p>After having prepared the syntax tree to be printed, the actual formatting takes place. The
purpose of the pretty-printing file is to provide a function that takes a syntax tree and turns it
into an NL sentence. That file is dependent on the grammar file because it makes references
to it: each type has a pretty-printing function that recursively calls other functions, and these
functions rely on pattern-matching of the constructor to build the sentence.</p>
        <p>One of the objectives of the syntax tree generator and pretty-printing is to produce an
arbitrarily large set of labelled data. If for each syntax tree there were only one way to write it
in natural language, the model would not be very robust. Since we want to capture the fact that
there is often more than one way to say something (in particular, several ways to express the
same syntax tree), we allow the randomisation of the pretty-printing functions. Hence, every
time such a function is called on a given input syntax tree, it produces at random one of the
many phrasings that describes it in natural language. This is done in a lazy manner: without it,
the pretty-printing function would, first, produce all possible NL sentences for the (whole) tree,
and then pick one of them according to the probabilities. That would be far too slow. Instead,
our lazy pretty-printing for a tree first selects a phrasing before pretty-printing the sub-trees (if
any). Only one sentence for the whole tree is produced by one pretty-printing call.</p>
        <p>Again, we put bias in the generation of NL sentences. There are several ways to express the
same syntax tree, but some of them are more common and sound less artificial, even if they all
are gramatically correct. Therefore, for nearly all grammar constructors, we put probabilities
on the various phrasings for it, trying to reflect the most natural usage. For example, when
pretty-printing the construct (, ), which is a line defined by two points, we would
naturally phrase it as "(AB)" rather than the very heavy "the line delimited by the points A and
B", even though both are correct. Both expressions exist in our pretty-printer, but the former
benefits from a greater bias than the latter.</p>
        <p>Other features of natural language are handled here. For example, to avoid printing
nonessential parentheses we deal with operation priority: even if the sentence (5 × ((4 + 7) − 3))
is technically correct, in a natural language one would write 5 × (4 + 7 − 3).</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Related work and conclusion</title>
      <p>
        Our approach shares some similarities with the one presented in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], which also leverages a
translation from formal expressions to natural language to build a training set. But there are
also diferences: the Arsenal toolkit randomly generates syntax trees to create arbitrarily large
training sets based on user-defined probabilities, and its pretty-printers translating to natural
language are also non-deterministic, being able to generate many natural language variants
of the same grammar constructs; in the present endeavor, we also focus on the domain of
high-school geometry.
      </p>
      <p>
        Automated solving of mathematical problems has been a challenge for natural language
processing community [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. For geometry, they are diferent lines of works based on extraction
of geometric predicates either from the text or also from figures [
        <xref ref-type="bibr" rid="ref6 ref7 ref8">6, 7, 8</xref>
        ]. Our geometry grammar
could also be compared to GeometryNet [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Controlled natural language have also been proposed [
        <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
        ]. The drawbacks include a
decrease of legibility for humans, and requiring the same discipline from users as if they were
reading and writing code. Arsenal aims at retaining a more flexible use of natural language
to express formal content, so that this content can be manipulated by users who may not be
coders, while being amenable to automated processing for, e.g., formal modeling and analysis.
      </p>
      <p>In this preliminary work, we have contributed a collection of algebraic datatypes to capture
the usual statements of high-school geometry along with a natural language pretty printer for
this specific domain. For evaluation purposes, we have created a corpus of pairs of natural
language statements (currently in French) and their formalization. This is ongoing work and,
although model training and experimentation are still to be conducted, experience on prior
domains of application such as systems requirements and 5G standards give us confidence that
the approach is worth exploring.</p>
    </sec>
    <sec id="sec-7">
      <title>A. Arsenal’s core mechanisms</title>
      <p>Arsenal’s run-time component takes as input a sentence, which is stripped of its entities, as
described in Section 2. Then, the model builds a description of the corresponding syntax tree,
and the entities are again substituted in the tree to finally obtain a tree with entities, as shown
in Fig.1.</p>
      <p>Training the model from the labeled dataset is performed using the standard techniques of
supervised machine learning. Arsenal currently ofers a training and runtime infrastructure for
a variant of sequence-to-sequence (seq2seq) models equipped with an attention mechanism,
which have been used successfully for machine translation from natural language to natural
language.</p>
      <p>Such models are made of an encoder and a decoder. The encoder is a Recurrent Neural
Net (RNN) that keeps an internal state (a vector of reals); as the input sentence is recursively
traversed from one end to the other, the internal state is updated with every word that is read
(and encoded as a vector of reals). The history of the encoder’s internal state is recorded. The
decoder produces a stream of tokens: in our case, the tokens make up the Polish notation for
the output tree. It also has an internal state, and an attention mechanism that focuses on certain
parts of the encoder’s internal state history. The decoder produces one token at a time, choosing
it according to the last token it produced, its internal state and the attention, both of which are
updated before producing the next token. In Arsenal, the sequence-to-sequence approach has
been adapted to produce tree descriptions in Polish notations, dynamically forcing the output
tokens to describe a tree that is well-formed with respect to Arsenal’s output grammar, and
changing the halting condition of the output stream to make is stop as soon as the produced
stream describes a complete, well-formed tree.</p>
      <p>When using the training and runtime infrastructure for seq2seq, the user can fix the
parameters such as the number of layers, the number of nodes per layer, etc.</p>
      <p>Fig. 2 describes the Arsenal pipeline for producing a training dataset and training the model
with it.</p>
    </sec>
    <sec id="sec-8">
      <title>B. Example of Synthetic Data</title>
      <p>Below are 3 examples of synthetic statements that are generated by Arsenal from the geometry
grammar. Each example shows, first, the natural language sentence, and, second, the randomly
generated tree from which it comes, as an S-expression that starts with the constructor for
coherent implications Fml (see Section 3). In the three examples, the lists of quantifiers are
empty.</p>
      <p>Si (_Line_string_000) et (_Line_string_001) sont coplanaires, alors les points
_Point_string_000, _Point_string_001 et _Point_string_002 sont égaux.
(Fml Nil
(List
(Incid_line (Named_point Point_string_000)</p>
      <p>(Line (Named_point Point_string_001) (Named_point Point_string_002))))
Nil
(List
(List
(Is_intersecting_line_line
(Line (Named_point Point_string_003) (Named_point Point_string_004))
(Named_line Line_string_000)))))
Si _Point_string_000 = _Point_string_001, alors la médiatrice de
[_Point_string_002_Point_string_003] est (_Point_string_004_Point_string_005).
(Fml Nil
(List
(Same_point</p>
      <p>(List (Named_point Point_string_000) (Named_point Point_string_001))))
Nil
(List
(List
(Same_line
(List
(Perp_bisector</p>
      <p>(Segment (Named_point Point_string_002) (Named_point Point_string_003)))
(Line (Named_point Point_string_004) (Named_point Point_string_005)))))))</p>
    </sec>
    <sec id="sec-9">
      <title>C. Examples taken from our corpus</title>
      <p>Si O appartient à [AB] et OA = OB alors O est le milieu de [AB].</p>
      <p>Si A et A’ sont symétriques par rapport au point O alors le point O est le milieu de [AA’].
Si (d) est la médiatrice du segment [AB] alors (d) coupe le segment [AB] en son milieu.
Si ABC est un triangle rectangle d’hypoténuse [AB] alors le centre de son cercle circonscrit est le milieu
de [AB].</p>
      <p>Si ABCD est un losange alors (AC) ⊥ (BD).</p>
      <p>Si (d) est la médiatrice du segment [AB] alors (d) est perpendiculaire à [AB].</p>
      <p>Si C appartient au cercle de diamètre [AB] alors ABC est rectangle en C.</p>
      <p>Si ABCD est un parallélogramme et (AC) ⊥ (BD) alors ABCD est un losange.</p>
      <p>Si ABCD est un parallélogramme et AB = BC alors ABCD est un losange.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Arsenal-soft</surname>
          </string-name>
          ,
          <source>The Arsenal software</source>
          ,
          <year>2019</year>
          . URL: https://github.com/SRI-CSL/arsenal-base.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Elenius</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Graham-Lengrand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Shankar</surname>
          </string-name>
          , E. Yeh, Arsenal,
          <year>2020</year>
          . URL: https://github. com/SRI-CSL/arsenal-base/blob/master/doc/Arsenal-principles.
          <source>pdf.</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>R.</given-names>
            <surname>Dyckhof</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Negri</surname>
          </string-name>
          ,
          <article-title>Geometrisation of first-order logic</article-title>
          ,
          <source>Bulletin of Symbolic Logic</source>
          <volume>21</volume>
          (
          <year>2015</year>
          )
          <fpage>123</fpage>
          -
          <lpage>163</lpage>
          . doi:
          <volume>10</volume>
          .1017/bsl.
          <year>2015</year>
          .
          <volume>7</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Q.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Brown</surname>
          </string-name>
          , C. Kaliszyk,
          <string-name>
            <given-names>J.</given-names>
            <surname>Urban</surname>
          </string-name>
          ,
          <source>Exploration of neural machine translation in autoformalization of mathematics in Mizar, in: Proceedings of the 9th ACM SIGPLAN International Conference on Certified Programs and Proofs</source>
          , ACM, New Orleans LA USA,
          <year>2020</year>
          , pp.
          <fpage>85</fpage>
          -
          <lpage>98</lpage>
          . URL: https://dl.acm.org/doi/10.1145/3372885.3373827. doi:
          <volume>10</volume>
          .1145/3372885.3373827.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Mukherjee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Garain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Nasipuri</surname>
          </string-name>
          ,
          <article-title>On Construction of a GeometryNet</article-title>
          ,
          <source>in: Proceedings of the 25th Conference on Proceedings of the 25th IASTED International Multi-Conference: Artificial Intelligence and Applications</source>
          , AIAP'07, ACTA Press, USA,
          <year>2007</year>
          , pp.
          <fpage>530</fpage>
          -
          <lpage>536</lpage>
          . Event-place: Innsbruck, Austria.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>W.</given-names>
            <surname>Gan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>Automatic Understanding and Formalization of Plane Geometry Proving Problems in Natural Language: A Supervised Approach</article-title>
          ,
          <source>International Journal on Artificial Intelligence Tools</source>
          <volume>28</volume>
          (
          <year>2019</year>
          )
          <article-title>1940003</article-title>
          . URL: https://www.worldscientific.com/doi/ abs/10.1142/S0218213019400037. doi:
          <volume>10</volume>
          .1142/S0218213019400037.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Seo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Hajishirzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Farhadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Etzioni</surname>
          </string-name>
          , Diagram Understanding in Geometry Questions,
          <source>Proceedings of the AAAI Conference on Artificial Intelligence</source>
          <volume>28</volume>
          (
          <year>2014</year>
          ). URL: https://ojs.aaai.org/index.php/AAAI/article/view/9146, section:
          <source>AAAI Technical Track: Vision.</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Seo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Hajishirzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Farhadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Etzioni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Malcolm</surname>
          </string-name>
          , Solving Geometry Problems:
          <article-title>Combining Text and Diagram Interpretation</article-title>
          ,
          <source>in: Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing</source>
          , Association for Computational Linguistics, Lisbon, Portugal,
          <year>2015</year>
          , pp.
          <fpage>1466</fpage>
          -
          <lpage>1476</lpage>
          . URL: http://aclweb.org/anthology/ D15-1171. doi:
          <volume>10</volume>
          .18653/v1/
          <fpage>D15</fpage>
          -1171.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Cramer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Fisseni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Koepke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kühlwein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schröder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Veldman</surname>
          </string-name>
          ,
          <source>The Naproche Project Controlled Natural Language Proof Checking of Mathematical Texts</source>
          , in: N. E. Fuchs (Ed.),
          <source>Controlled Natural Language</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2010</year>
          , pp.
          <fpage>170</fpage>
          -
          <lpage>186</lpage>
          . Bibtex:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -14418-9_
          <fpage>11</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>N. C.</given-names>
            <surname>Carter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. G.</given-names>
            <surname>Monks</surname>
          </string-name>
          ,
          <article-title>Lurch: a word processor that can grade students' proofs</article-title>
          , in: Workshops and Work in Progress at CICM,
          <year>2013</year>
          . URL: http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1010</volume>
          / paper-04.pdf.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>