Skip to content
MichaelGoodman edited this page Sep 17, 2014 · 15 revisions

ACE Frequently Asked Questions

  • When I try to compile my grammar with ACE, I see a lot of errors.

You may inadvertently be using a very old copy of ACE. If you have installed an older version of the LOGON distribution (dating to before mid-June 2013), there used to be an ace binary on your PATH which dates to roughly 2005. Current versions of the LOGON tree include up-to-date ACE binaries (invoked through a wrapper script called ‘answer’; see the LogonAnswer page). Or, if you have a locally installed binary, you may try invoking a modern copy of ACE by its full path. Modern versions of ACE support the -V command-line option to report the version; if your ACE does not recognize the -V option, it is too old to be useful.

  • Why are the compiled grammar images so big?

The ACE precompiler prepares a complete image of the initial contents of memory that will be needed for runtime processing. For complex grammars, this can be a few hundred megabytes. The advantage of this is that ACE can start up and be ready to parse or generate in a matter of a few milliseconds, if the file is in cache.

  • Why isn't ACE stripping punctuation like the LKB or PET?

The LKB and PET used to have their own idiosyncratic methods for stripping punctuation, pre-dating the inclusion of Regular Expression-Based Pre-Processing (REPP) rules as part of each grammar. Older grammars may not have been upgraded yet for REPP usage. For example, in Jacy's pet/japanese.set file:

 punctuation-characters := "!\"!&'()*+,-−./;<=>?@[\]^_`{|}~。!?…. ○●◎*☆★◇◆" 

ACE uses the REPP tokenizer (see ReppTop) to accomplish this. The above can be made into a REPP rule as follows (where → is a tab character and ▁ is a space; note that special characters may need to be escaped):

 ![!"&'()*+,\-−./;<=>?@[\]^_`{|}~。!?…. ○●◎*☆★◇◆]→   →       ▁ 

  • Does ACE use the maxent model for both parsing and generation?

Yes. If you want separate models, you can make two grammar images.

  • I tried using the -l option for LUI display, and yzlui is on PATH, but the display window closed immediately after opening.

The LUI window closes when ACE exits, and ACE exits when it reaches the end of its input stream. If you piped sentences to ACE at the command line (e.g. echo "Abrams chased Brown" | ace -g erg.dat -l), ACE will close as soon as it finishes parsing those sentences, and thus the LUI window won't be open for long. Try using ACE without a pipe, such that it waits for input on STDIN:

$ ace -g erg.dat -l
Abrams chased Brown

# LUI window displayed here
# Ctrl-D exits ACE
Clone this wiki locally