Skip to content

MtJaenAce

FrancisBond edited this page Jan 27, 2017 · 5 revisions

Download

1. Download the latest version of ACE [http://sweaglesw.org/linguistics/ace/download]. (As of today (2014-09-01), if you are using Mac, you want to download [ace-0.9.18-osx.tar.gz]. If you are using a lunux machine, you want to download [ace-0.9.19-x86-64.tar.gz].) Note that ACE does not work on Windows. Plus, you want to use a 64 bit machine for the running the precompiled ACE binary.

2. Download the lasted ERG data file from the above ACE repository. Note that you have to take notice of version. For example, if your ACE version is 0.9.19, you want to download [erg-1212-x86-64-0.9.19.dat.bz2]. Extract the data file of ERG into the same directory as the ACE binary.

3. Add your the ACE directory on the regular PATH variable (~/.bashrc)

Compilation

1. Compile the data file of Jacy. For example,

$ cd $LOGONROOT/dfki/jacy
$ ace -g ace/config.tdl -G jacy.dat

Or get the latest Jacy which has fewer errors but is subtly incompatible with the transfer grammar, ...

2. Compile the data file of Jaen. For instance,

$ cd $LOGONROOT/uio/tm/jaen
$ ace -g ace/config.tdl -G jaen.dat

Note that you have to compile one of these or both, when you make some changes.

jaen+ace

1. In your ~/.bashrc (or whatever), you can add the following lines. (The suffix [+m] means "with messages".)

alias jaen+ace="ace -g $LOGONROOT/dfki/jacy/jacy.dat 2>/dev/null | ace -g $LOGONROOT/uio/tm/jaen/jaen.dat 2>/dev/null | ace -g YOUR_ACE_FOLDER/erg-1212-x86-64-0.9.19.dat -e 2>/dev/null"
alias jaen+ace+m="ace -g $LOGONROOT/dfki/jacy/jacy.dat | ace -g $LOGONROOT/uio/tm/jaen/jaen.dat | ace -g YOUR_ACE_FOLDER/erg-1212-x86-64-0.9.19.dat -e"

2. After logout and login again, now you run jaen+ace.

$ echo " 犬 が 猫 を 食べる " | jaen+ace
The dog eats the cat.
The dog eats the cats.
The dog eats a cat.
A dog eats the cat.
A dog eats the cats.
A dog eats a cat.
The dogs eat the cat.
The dogs eat the cats.
The dogs eat a cat.
Dogs eat the cat.
The dog eats cats.
Dogs eat the cats.
Dogs eat a cat.
A dog eats cats.
The dogs eat cats.
Dogs eat cats.

Complete Transfer Dictionaries

If you are having trouble loading all the lexicons (some are commented out by default), increase the value of freezer-megabytes in jaen/ace/config.tdl and recompile the transfer grammar.

freezer-megabytes := 1024.

underspecified generation

The subsumption check of ACE has two different version: grammar-internal type hierarchy or using the SEMI hierarchy. Between them, the latter one is not used for one reason or another. If a variable has an underspecified value in the input MRS for generation, the default mode of ACE does not generate it. If you want to invoke the underspecified generation, you can use an option --disable-subsumption-test on the generation side.

For example, the following MRS may not be generated by ACE because of the underspecified value [PERS: person].

#test.mrs

[ LTOP: h7
INDEX: e8 [ e TENSE: past MOOD: indicative PERF: - PROG: - SF: prop ]
RELS: < [ "_bark_v_1_rel"<-1:-1> LBL: h0 ARG0: e8 ARG1: x5 [ x PERS: person NUM: sg ] ]
 [ proper_q_rel<-1:-1> LBL: h1 ARG0: x5 RSTR: h2 BODY: h3 ]
 [ named_rel<-1:-1> LBL: h4 ARG0: x5 CARG: "Taro" ] >
HCONS: < h2 qeq h4 > ] 

$ cat test.mrs | ace -g erg.dat -e
NOTE: 63 passive, 151 active edges in final generation chart; built 63 passives total. [0 results]
NOTE: generated 0 / 1 sentences, avg 548k, time 0.00493s
NOTE: transfer did 98 successful unifies and 133 failed ones

Using the --disable-subsumption-test option solves this.

$ cat test.mrs | ace -g erg.dat -e --disable-subsumption-test
Taro barked.
NOTE: 63 passive, 151 active edges in final generation chart; built 63 passives total. [1 results]
NOTE: generated 1 / 1 sentences, avg 548k, time 0.00510s
NOTE: transfer did 98 successful unifies and 133 failed ones
Clone this wiki locally