Share

Regulus

File Release Notes and Changelog

Release Name: 2.9.0

Notes:

MAIN CHANGES TO REGULUS BETWEEN 2.8.0 AND 2.9.0

A large number of new features have been added to Regulus since version 2.8.0. Most importantly, Regulus now runs under Sicstus 4; it is possible to use speech input directly from the top-level; N-best processing is supported in both dialogue and translation mode; and a new semantics for translation applications has been added.

The new features are listed below in more detail. Not all of them are fully documented yet, but we are giving priority to adding the necessary documentation.

- Support for Sicstus 4
  - Regulus runs under Sicstus 4. 
    - It has been thoroughly tested under 4.0.2.
    - Some testing has been done under 4.0.3, but this has not yet been carefully
      verified. NOTE: under 4.0.3, it is necessary to load the patch files in Prolog/SicstusPatches/4.0.3
  - Regulus still runs under Sicstus 3, and has been thoroughly tested under 3.12.5.

- Top-level
  - Errors are now written to stderr
  - There is a version of regulus_batch with an extra argument, which returns the list of error outputs created when running the commands.
  - It is possible to compile Nuance grammars from the Regulus top-level using the NUANCE_COMPILE command.
  - It is possible to perform speech recognition directly from the top-level
    - The LOAD_RECOGNITION command starts defined speech resources, including a license manager, recserver and Regserver
    - After loading resources using LOAD_RECOGNITION, the RECOGNISE command takes live speech input and passes it to the current application.
    - Wavfiles are automatically logged by RECOGNISE. The WAVFILES <N> command lists the <N> most recent recorded wavfiles.
    - When speech resources are loaded, text input of the form 

      WAVFILE: <Wavfile> 

      performs recognition on <Wavfile>, and passes the result to the current application

- Java GUI
  - The Java GUI has been greatly improved, and many bugs have been fixed.
  - The GUI supports direct speech input, similar to the Prolog top-level described above
  - It is possible to run multiple copies of the GUI at the same time.

- Stepper
  - The commands LOAD, LOAD_GENERATION, EBL_LOAD and EBL_LOAD_GENERATION can be invoked from within the stepper.

- Support for spoken dialogue applications
  - When speech resources have been loaded from the command line, dialogue corpora can contain items of the form wavfile(<Wavfile>).
    This makes it possible to test corpora containing a mixture of speech and non-speech inputs.
  - Batch processing of speech input in dialogue mode produces figures for semantic error rate. An utterance is deemed semantically correct if it produces the same dialogue move as the transcription would have done.
  - A timeout has been added in batch dialogue processing, so that processing gives up after 10 seconds.
  - If N-best preferences are defined, preference info is printed in dialogue mode.
  - Allow dialogue server to take XML-formatted requests

- Generation
  - When the declaration 

    regulus_config(prolog_semantics, yes).

    is included, generation grammars can contain arbitrary Prolog structures.

- Translation
  - There is extensive support for translation using both the original "linear" semantics, and also the new "Almost Flat Functional" (AFF) semantics. AFF is described in our COLING 2008 paper, which will soon posted on the Regulus website. Some initial documentation will be added to RegulusDoc.htm.
  - It is possible in a translation config file to define an interlingua as either a source or a target language. There are many examples in the MedSLT project directory.
  - Batch translation produces output files for judging both in Prolog and in CSV form. There are new commands for updating judgements from the CSV files.
  - When speech resources have been loaded from the command line, translation corpora can contain items of the form wavfile(<Wavfile>).
  - A simple version of N-best processing has been added for applications that use interlingual translation with an interlingua grammar. In N-best mode, the first utterance producing well-formed interlingua is selected.
  - Interlingua expressions ambiguous according to the interlingua grammar are flagged in translation mode.
  - If performing batch translation from Source to Target through Interlingua, combine available Source -> Interlingua and Interlingua -> Target judgements into Source -> Target judgements if possible.
  - Show average number of generated target language surface forms when doing batch translation.
  - Translation conditions can include elements of the form 

    context_below(<Item>)

    This matches an <Item> in a clause.

- Grammar specialisation
  - Fix bug in processing of include_lex declarations.

- Help
  - When defining intelligent help for translation applications, help resources can be built from an interlingua corpus.

- Extension to Regulus grammar formalism
  - Allow =@ as synonym for = @
  - Add runtime support for GSL functions strcat/2, add/2, sub/2, neg/1, mul/2, div/2

- English grammar
  - Rules for dates including years have been added.

- Other
  - Tool added to perform random generation from PCFG-trained GSL grammars


Changes: