<!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 />
    <article-meta>
      <title-group>
        <article-title>The NL2KR system</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Computing</institution>
          ,
          <addr-line>Informatics</addr-line>
          ,
          <institution>and Decision Systems Engineering, Arizona State University</institution>
          ,
          <addr-line>Tempe, Arizona</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper we will describe the NL2KR system that translates natural language sentences to a targeted knowledge representation formalism. The system starts with an initial lexicon and learns meaning of new words from a given set of examples of sentences and their translations. We will describe the rst release of our system with several examples.</p>
      </abstract>
      <kwd-group>
        <kwd>Natural Language Understanding</kwd>
        <kwd>Lambda Calculus</kwd>
        <kwd>Knowledge Representation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Our approach to understanding natural language involves translating natural
language text to formal statements in an appropriate knowledge representation
language so that a reasoning engine can reason with the translated knowledge
and give a response, be it an answer, a clarifying question or an action. To
translate natural language text to a formal statement we propose to use the
compositional method of Montague [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] where the translation (or meaning) of
words are given as lambda calculus formulas and the meaning of phrases and
sentences are obtained by composing the meaning of the constituent words.
The challenge in doing this is in coming up with appropriate lambda calculus
expressions for each word. The challenging aspects in this are: (a) the number
of words may be huge, (b) the lambda calculus expression (or meaning) of some
words are too complicated for humans to come up with it, and (c) the lambda
calculus expressions for the words are target language speci c; so it is not a one
time a air like compiling traditional dictionaries. To address these challenges we
use an inverse lambda algorithm [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] that computes the meaning of a word/phrase
G when the meaning of the word/phrase H and the phrase GH (or HG) is known.
      </p>
      <p>The NL2KR system uses an initial lexicon containing some words and their
meanings and a set of training corpus containing sentences in natural language
and their translations to learn new meanings of words. The system then uses the
new learned lexicon to translate new sentences. In this paper, we would like to
give an overview of the NL2KR system and examples of using it.</p>
    </sec>
    <sec id="sec-2">
      <title>Overview</title>
      <p>Shown below in Fig. 1 is the architecture of the NL2KR system. It has two
subparts which depend on each other (1) NL2KR-L for learning and (2) NL2KR-T
for translating.</p>
      <p>The NL2KR-L sub-part takes an initial lexicon consisting of some words and
their meanings in terms of -calculus expressions &amp; a set of training sentences
and their target formal representations as input. It then uses a
Combinatorial Categorical Grammar (CCG) parser to construct the parse trees. Next, the
learning sub-part of the system uses Inverse- and Generalization algorithms to
learn meanings of newly encountered words, which are not present in the initial
lexicon, and adds them to the lexicon. A parameter learning method is then
used to estimate a weight for each lexicon entry (word, its syntactic category
and meaning) such that the joint probability of the sentences in the training
set getting translated to their given formal representation is maximized. The
result of NL2KR-L is the nal lexicon, which contains a larger set of words, their
meanings and their weights.</p>
      <p>Once the training component nishes its job, the translation sub-part
(NL2KRT) uses this updated lexicon and translates sentences using the CCG parser.
Since words can have multiple meanings and their associated -calculus
expressions, weights assigned to each lexical entry in the lexicon helps in deciding the
more likely meaning of a word in the context of a sentence.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Using NL2KR</title>
      <sec id="sec-3-1">
        <title>The latest version of NL2KR system can be downloaded from http://nl2kr.engineering.asu.edu. It can be run on Linux (64 bit) and OS-X.</title>
        <p>Third Party Software Used by NL2KR
The current version of NL2KR uses the following libraries and tools developed
by others:
{ Scripting language Python (version 2.6)
{ AspCcgTk version 0.3 1
{ Stanford Log-linear Part-Of-Speech Tagger 2 (version 3.1.5)
{ Oracle Java (version 1.6)
{ ASP grounder and solver: gringo (version 3.x), clasp (version 2.x) and clingo
(version 3.x) 3
3.2</p>
        <sec id="sec-3-1-1">
          <title>Installation guide</title>
          <p>The NL2KR package contains a readme le and a zipped le which contains
{ AspCcgTk
{ Jar le and models of Stanford Log-linear Part-Of-Speech Tagger
{ Jar le and con gurations for NL2KR
{ Gringo, clasp and clingo
After unzipping the package, the instruction in the readme le directs how to
install NL2KR.
3.3</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Files/Folders in the package</title>
          <p>Following is a brief list of important les/folders in the package:
{ README: Installation instruction and examples of how to use NL2KR.
{ NL2KR.jar: NL2KR's classes packed in a jar le.
{ con g.properties: Default con guration of the NL2KR system.
{ install.sh: Script to install NL2KR.
{ ccgParser.sh: Script to get a CCG parse tree of a given sentence.
{ Generalization.sh: Script that gives generalized meanings of a word.
{ Inverse.sh: Script to compute the inverse using the inverse lambda
algorithms.
{ Lambda.sh: Script to do application operation, given a function and an
argument in -calculus.
{ NL2KR-L.sh: Script to run the NL2KR-L sub-part.
{ NL2KR-T.sh: Script to run the NL2KR-T sub-part.
{ RunCon guration: Example inputs of the preceding scripts.
{ resources: Folder containing AspCcgTk package, gringo, clasp and clingo.
{ examples: Folder containing examples in various domains for NL2KR-L and</p>
          <p>NL2KR-T.
1 http://www.kr.tuwien.ac.at/sta /former sta /ps/aspccgtk
2 http://nlp.stanford.edu/software/tagger.shtml
3 http://potassco.sourceforge.net/</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>Executing the scripts</title>
          <p>To execute any of the scripts one needs to go to the NL2KR's root directory and
run</p>
          <p>./ &lt; script name &gt; &lt; RunConfiguration file &gt; [ Optional params ]
where script name is the name of one of the six scripts (e.g. ./Lambda.sh),
RunCon guration le contains corresponding parameters for the script, and
optional parameters are for the Java Virtual Machine (JVM) to execute the
module that corresponds to the script. For learning and testing large dataset
with NL2KR-L or NL2KR-T, it is recommended to provide more memory for
the JVM and enable garbage collection if needed (i.e. Use -Xmx and
-XX:</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>UseGCOverheadLimit).</title>
        <p>3.5</p>
        <sec id="sec-3-2-1">
          <title>Lambda application</title>
          <p>To use the lambda application script, the function and the argument of the
lambda application need to be provided. For example, the following snippet in
the RunCon guration le speci es that we need to apply the argument #x:x@mia
to the function #y:#x:loves(x; y) (note: # is for ).</p>
          <p>However, in the following con guration, the argument cannot be applied to
the function since there is no free variable in the function.</p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>The output thus would be</title>
        <p>3.6</p>
        <sec id="sec-3-3-1">
          <title>Inverse application</title>
          <p>
            Given two lambda expressions g and h, the lambda application gives us f = g@h
or f = h@g. But sometime, we have only f and g and we need to nd h. The
inverse application allow us to calculate the lambda expression h so that f = g@h
or f = h@g. More details about the inverse application can be found in [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ]. For
inverse application, we need to provide the parent (lambda expression f ), the
right child (r) or the left child (l). Given one child, the module will calculate the
other child so that f = l@r.
          </p>
          <p>In the rst example below, since there does not exist a lambda expression
h (right child) so that mia@h = #x:loves(x; mia), the inverse algorithm
returns right child expression = null. However, when mia is the right child, inverse
lambda returns Lef tchild = #x1:#x:loves(x; x1) because #x1:#x:loves(x; x1)@mia
= #x:loves(x; mia). In case the CCG parse tree speci es that the meaning of
\Mia" must be in the left child, using left child as #x:x@mia instead of mia
will do the trick and let us have the same right child: #x1:#x:loves(x; x1).
Example 1. Input:
parent =# x. loves (x , mia )
left_child = mia</p>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>Output:</title>
        <p>Parent = #x. loves (x , mia )
Left child = mia
Right child = null
Example 2. Input:
parent =# x. loves (x , mia )
right_child = mia</p>
      </sec>
      <sec id="sec-3-5">
        <title>Output:</title>
        <p>Parent = #x. loves (x , mia )
Right child = mia
Left child = # x1 .# x. loves (x , x1 )
Example 3. Input:</p>
      </sec>
      <sec id="sec-3-6">
        <title>Output:</title>
        <p>Parent = #x. loves (x , mia )
Left child =# x.x @ mia
Right child = # x1 .# x. loves (x , x1 )
3.7</p>
        <sec id="sec-3-6-1">
          <title>Generalization</title>
          <p>
            The inverse lambda module is not always adequate to learn new meanings of
words when we lack meaning of words that will allow us to use the inverse
lambda module. To address that we have developed a generalization module in
NL2KR system, where the generalization technique described in [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] is
implemented. For example, if we want to nd the meaning of the word plays with the
category (SnN P )=N P using generalization, we can use the lexical entry (eats,
(SnN P )=N P , y: x:eats(x; y)) in the lexicon, where the category of the word
eats is same as that of the word plays. The generalization module will add a new
lexical entry (plays, (SnN P )=N P , y: x:plays(x; y)) to the lexicon. The input
of the generalization module is the le path for lexicon (existing dictionary) and
a new word, which we want to generalize. Following is an illustration of the use
of generalization with the RunCon guration le having the following:
5
5
5
lexicon =./ examples / sample / dictionary . txt
word = Mia
ccg =N
where dictionary.txt contains
Vincent N vincent
Vincent N #x. vincent (x)
takes (S\ NP )/ NP #w. #z. ( w@ #x. takes (z ,x) )
plane N #x. plane (x)
boxer N #x. boxer (x)
fights S\ NP #x. fight (x)
          </p>
          <p>In this case, the word Mia can be obtained by generalization from the words
Vincent, plane and boxers, each of category N (meaning noun); and the output
is</p>
          <p>New lexical items learned through Generalization :
Mia [N] #x. mia (x)
Mia [N] mia</p>
          <p>We can restrict generalization by modifying the con g.properties le. For
example, adding the following snippet to con g.properties will skip the
generalization process for NP and N categories, and generalization for the words: on,
of, by and in.
3.8</p>
        </sec>
        <sec id="sec-3-6-2">
          <title>CCG parser</title>
          <p>GENERALIZATION_D_EXCLIST =[ NP ] ,[N]</p>
          <p>
            GENERALIZATION_D_PREPOSITIONLIST =on ,of ,by , in
The input of the CCG parser module is the sentence we want to parse and an
optional path of the le containing the words and their additional categories
we want to use. The parser will parse the input sentence and output its CCG
parse tree. Our CCG parser is based on ASP ccgT k [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ] with some modi cations
such as our use of the Stanford Part-Of-Speech tagger [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ] instead of the C&amp;C
Part-Of-Speech tagger [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ] to improve accuracy. Following is an example snippet
of the RunCon guration le.
          </p>
          <p>sentence =' Every boxer walks '
syntaxFile =./ examples / sample / syntax . txt
where syntax.txt contains
takes (S\ NP )/ NP
Every (S /( S\ NP ))/ NP
Some (S /( S\ NP ))/ NP
walks S\ NP
fights S\ NP
loves (S\ NP )/ NP
walks" in ASP format as follows
nl2kr_token (t1 , " Every ", "( S /( S\ NP ))/ NP ", 1) .
nl2kr_token (t2 , " boxer ", " NP ", 2) .
nl2kr_token (t3 , " walks ", "S\ NP ", 3) .
nl2kr_token (t4 , " Every boxer ", "S /( S\ NP ) " ,1) .
nl2kr_token (t5 , " Every boxer walks ", "S", 1) .
nl2kr_child_left (t4 , t1 ).
nl2kr_child_right (t4 , t2 ).
nl2kr_child_left (t5 , t4 ).
nl2kr_child_right (t5 , t3 ).
nl2kr_valid_rootNode ( t5 ).</p>
          <p>The output of the CCG parser is a parse tree of the sentence \Every boxer
The predicate nl2kr valid rootN ode is used to specify the root node of the parse
tree (corresponds to the whole sentence). nl2kr token is used to specify nodes
in the tree and nl2kr child lef t, nl2kr child right are for the left child and the
right child of a node. The four atoms of nl2kr token are respectively the node
ID, the corresponding phrase, its CCG category and its starting position in the
sentence.
3.9</p>
          <p>NL2KR-L: the learning module of NL2KR
To run the learning module NL2KR-L we need to set the initial lexicon le
path, the override le for syntax categories (optional), the training data le and
the output dictionary le path (optional) in the RunCon guration le of the</p>
        </sec>
      </sec>
      <sec id="sec-3-7">
        <title>NL2KR-L. Following is an example snippet of the RunCon guration le.</title>
        <p>Ldata =./ examples / sample / train . txt
Ldictionary =./ examples / sample / dictionary . txt
Lsyntax =./ examples / sample / syntax . txt
Loutput =./ examples / sample / dictionary_train . out
For example, the preceding snippet speci es that: the training data is in
./examples/train.txt, the initial lexicon is in ./examples/sample/dictionary.txt,
and the override syntax categories are in ./examples/sample/syntax.txt.
The override syntax categories will be used in CCG parsing step as showed in
the previous subsection. If it is not speci ed, the output dictionary is saved as
dictionary train.out in ./output folder.</p>
        <p>The training data le contains the training sentences and their formal
representation such as:
Some boxer walks EX . ( boxer (X) ^ walk (X))
John takes a plane EX . ( plane (X) ^ takes ( john , X))
John walks walk ( john )
In the above, EX denotes 9X.</p>
        <p>The initial lexicon contains words and the their meanings that we already
know:
5</p>
        <p>John N john
takes (S\ NP )/ NP #w. #z. ( w@ #x. takes (z ,x) )
plane N #x. plane (x)
boxer N #x. boxer (x)
fights S\ NP #x. fight (x)</p>
        <p>The NL2KR-L sub-part learns the new meanings of words in multiple
iterations. It stops when it cannot learn any new word. Below we give the output of
the script with example inputs.</p>
        <p>We start with some snippets of the running output in the following. From
line 5 to 9, NL2KR-L was checking if it has the meaning of Some boxer and
walks. It then learned the meaning of walks by generalization.</p>
        <p>From line 15 to 19, NL2KR-L was trying to learn the meaning of Some
boxer given the meaning of walks and the meaning of the whole sentence Some
boxer walks from the training data. Using inverse lambda, it gured out that the
meaning of Some boxer is #x1:EX:boxer(X) ^ x1@X.</p>
        <p>NL2KR-L did not go further to the meaning of \some" because the meaning
\boxer" of boxer was not helpful.
5
10
15
20
25
30
35
40
45
5</p>
        <p>However, using the second parse tree where the meaning #x:boxer(X) of
boxer is used, NL2KR-L can get the meaning of some (line 42-49) : #x2:#x1:EX:x2@X^
x1@X.
****** Learning lexicon ...
...</p>
        <p>Processing sentence number 1
Processing Parse Tree 1
Word : Some boxer walks sem :: null
Both children do not have current lambda expression : Some boxer , walks
Generalizing for leafs with no expected lambda : walks
New lexical item Learned by Expansion : walks ////[ S\ NP ]////# x. walk (x)
...</p>
        <p>Processing sentence number 1
Processing Parse Tree 1
Word : Some boxer walks sem :: null
Applying inverse : EX . boxer (X) ^ walk (X) #x. walk (x)
INVERSE_L Tried :
Some boxer walks (H) = EX . boxer (X) ^ walk (X)
walks (G) = #x. walk (x)
Some boxer (F) = # x1 . EX . boxer (X) ^ x1 @ X
Word : walks sem ::# x. walk (x)
Word : Some boxer sem :: null
Applying inverse : # x1 . EX . boxer (X) ^ x1 @ X boxer
INVERSE_L Tried :
Some boxer (H) = # x1 . EX . boxer (X) ^ x1 @ X
boxer (G) = boxer
Some (F) = null
Generalizing for leafs with no expected lambda : Some
Generalizing for leafs with no expected lambda : boxer
Word : boxer sem :: boxer
Word : Some sem :: null
Processing Parse Tree 2</p>
        <p>At the end of the learning phase, parameter estimation is run to assign the
weights for each meaning of words. NL2KR-L then uses those meanings to check
if they are enough to translate the training sentences correctly.
****** Evaluation on training set ...</p>
        <p>Processing training sentence : Some boxer walks
Predicted Result : EX . boxer (X) ^ walk (X)
Correct Prediction
Processing training sentence : John takes a plane
Predicted Result : EX . plane (X) ^ takes ( john ,X)</p>
        <p>Correct Prediction
10
5
10
15
5
5</p>
        <p>Following is the output lexicon learned with the example inputs mentioned
earlier. Each row contains a word, its CCG category, its meaning and the
associated weight. Compared to the initial dictionary, we can see that NL2KR-L
learned 14 more word meanings. Note that some words such as likes and eats
are in the \syntax.txt".
In this subsection, we present an example of using NL2KR-L for the
GEOQUERY4 domain. GEOQUERY uses a Prolog based language to query a database
with geographical information about the U.S. The input of NL2KR-L is speci ed
in the RunCon guration le as:
Ldata =./ examples / geoquery / train . txt
Ldictionary =./ examples / geoquery / dictionary . txt
Lsyntax =./ examples / geoquery / syntax . txt
Loutput =
where ./examples/geoquery/train.txt contains
How large is texas answer (X) ^ size (B ,X) ^ const (B ,sid , texas )
How high is mountmckinley answer (X) ^ elevation (B , X) ^ const (B ,</p>
        <p>pid , mountmckinley )
How big is massachusetts answer (X)^ size (B , X) ^ const (B ,</p>
        <p>sid , massachusetts )
How long is riogrande answer (X)^ len (B , X) ^ const (B , rid , riogrande )
How tall is mountmckinley answer (X)^ elevation (B , X)^ const (B ,</p>
        <p>pid , mountmckinley )
./examples/geoquery/dictionary.txt contains
How S/S #x. answer (X) ^ x@X
texas NP #x. const (x ,sid , texas )
mountmckinley NP #x. const (x ,pid , mountmckinley )
massachusetts NP #x. const (x ,sid , massachusetts )
riogrande NP #x. const (x ,rid , riogrande )
is (S\ NP )/ NP #y. #x.x @ y</p>
        <p>and ./examples/geoquery/syntax.txt contains
4 http://www.cs.utexas.edu/users/ml/geo.html
5
10
15
5
10
15
20
How S/S
texas NP
mountmckinley
massachusetts
riogrande NP
is (S\ NP )/ NP
rivers NP
large NP
is (S\ NP )/ NP
high NP
big NP
long NP
the NP / NP
How S /( S\ NP )
long S\ NP
tall NP
colorado NP
arizona NP</p>
        <p>NP</p>
        <p>NP</p>
        <p>After the learning module is executed, 15 more word meanings were learned
by NL2KR-L and the result is:
is [( S\ NP )/ NP ] #y .# x.x @ y -0.0015125279
texas [ NP ] #x. const (x ,sid , texas ) 0.07666666
texas [ NP ] #x. const (x ,rid , texas ) -0.023256822
texas [ NP ] #x. const (x ,pid , texas ) -0.023256822
riogrande [ NP ] #x. const (x ,pid , riogrande ) -0.02315781
riogrande [ NP ] #x. const (x ,rid , riogrande ) 0.07646726
riogrande [ NP ] #x. const (x ,sid , riogrande ) -0.02315781
mountmckinley [ NP ] #x. const (x ,sid , mountmckinley ) -0.055226557
mountmckinley [ NP ] #x. const (x ,pid , mountmckinley ) 0.14075616
mountmckinley [ NP ] #x. const (x ,rid , mountmckinley ) -0.055226557
massachusetts [ NP ] #x. const (x ,rid , massachusetts ) -0.023190754
massachusetts [ NP ] #x. const (x ,sid , massachusetts ) 0.0765336
massachusetts [ NP ] #x. const (x ,pid , massachusetts ) -0.023190754
long [ NP ] # x3 .# x1 . len (B , x1 ) ^ x3 @ B 0.010111484
How [S/S] #x. answer (X) ^ x @ X 0.009999999
high [ NP ] # x3 .# x1 . elevation (B , x1 ) ^ x3 @ B 0.010112147
big [ NP ] # x3 .# x1 . size (B , x1 ) ^ x3 @ B 0.010111821
tall [ NP ] #x. const (x ,rid , tall ) -0.014923776
tall [ NP ] #x. const (x ,pid , tall ) -0.014923776
tall [ NP ] # x3 .# x1 . elevation (B , x1 ) ^ x3 @ B 0.084677815
tall [ NP ] #x. const (x ,sid , tall ) -0.014923776
large [ NP ] # x3 .# x1 . size (B , x1 ) ^ x3 @ B 0.010112498
3.11</p>
        <p>NL2KR-T: the translation sub-part of NL2KR
Similar to NL2KR-L, in the RunCon guration le of NL2KR-T, we need to set
the lexicon le path, the override le for syntax categories(optional), and the
testing data le as given below:
Tdata =./ examples / sample / test . txt
Tdictionary =./ output / dictionary_train . out
Tsyntax =./ examples / sample / syntax . txt
For example, the preceding snippet speci es that: the testing data is in
./examples/sample/test.txt, the lexicon is in ./output/dictionary train.out,
and the override syntax categories are in ./examples/sample/syntax.txt.</p>
      </sec>
      <sec id="sec-3-8">
        <title>The lexicon should be the lexicon learned by NL2KR-L.</title>
        <p>The content of ./examples/sample/test.txt is
Mia sleeps sleep ( mia )
John catches a bus</p>
        <p>EX . ( bus (X) ^ catches ( john , X))
****** Parsing Sentences ...
...</p>
        <p>Parsing test sentence : John catches a bus
Expected Representation : EX . ( bus (X) ^ catches ( john , X))
Generalizing bus = [ bus : [N] : #x. bus (x) , bus : [N] : bus ]
Generalizing catches = [ catches : [( S\ NP )/ NP ] : #w .# z.w @ #x. catches (z ,x)]
Predicted Result : EX . bus (X) ^ catches ( john ,X)
Correct Prediction
...</p>
        <p>Note that the expected translation in \test.txt" is optional. Without it, the
evaluation is not correct but NL2KR-T still gives its results.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion and Future Work</title>
      <p>In this work, we presented the NL2KR system, which is used for translating
natural language to a formal representation. The input of the NL2KR system
are training sentences and their formal representation; and an initial lexicon of
some known meanings of words. NL2KR system will try to learn the meaning of
others words from the training data. We presented six scripts to execute several
modules of NL2KR and show how to use them through examples.</p>
      <p>In the future, we plan to make NL2KR more scalable and add more features
to the NL2KR system such as (1) automatically constructing the initial lexicon
and (2) using more knowledge such as word sense to select the correct meaning
of words.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Montague</surname>
          </string-name>
          , R.:
          <article-title>English as a Formal Language</article-title>
          . In Thomason, R.H., ed.: Formal Philosophy: Selected Papers of Richard Montague. Yale University Press, New Haven, London (
          <year>1974</year>
          )
          <volume>188</volume>
          {
          <fpage>222</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Baral</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dzifcak</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gonzalez</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
          </string-name>
          , J.:
          <article-title>Using Inverse lambda and Generalization to Translate English to Formal Languages</article-title>
          .
          <source>CoRR abs/1108</source>
          .3843 (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Lierler</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          , Schuller, P.:
          <article-title>Parsing Combinatory Categorial Grammar via Planning in Answer Set Programming</article-title>
          . In
          <string-name>
            <surname>Erdem</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lierler</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pearce</surname>
          </string-name>
          , D., eds.:
          <source>Correct Reasoning</source>
          . Volume
          <volume>7265</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2012</year>
          )
          <volume>436</volume>
          {
          <fpage>453</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Toutanova</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manning</surname>
            ,
            <given-names>C.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Singer</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Feature-rich part-of-speech tagging with a cyclic dependency network</article-title>
          .
          <source>In: NAACL '03: Proceedings of the 2003 Conference of the North American Chapter of the Association for Computational Linguistics on Human Language Technology</source>
          , Morristown, NJ, USA, Association for Computational Linguistics (
          <year>2003</year>
          )
          <volume>173</volume>
          {
          <fpage>180</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Clark</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Curran</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          :
          <article-title>Parsing the WSJ using CCG and log-linear models</article-title>
          .
          <source>In: ACL '04: Proceedings of the 42nd Annual Meeting on Association for Computational Linguistics</source>
          , Morristown, NJ, USA, Association for Computational Linguistics (
          <year>2004</year>
          )
          <fpage>103</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>