System Migration

From Olympus
Jump to: navigation, search

This article describes how to migrate an Olympus system from one version of Olympus to another.


Olympus 2.2 to Olympus 2.5

Olympus 2.2 to Olympus 2.5 Migration requires the installation of CMake, changing file references, and changes to use the new startlists, hub programs, and perl backend in Olympus.

New Dependency

  • Olympus 2.5 now depends on CMake for generating the Visual Studio Solution and Projects. This is a first step toward Olympus Linux support.
  • You are encouraged to continue to use pre-made Visual Studio projects for Olympus 2.5.
  • Olympus 3.0 will require CMake for building systems and will offer a CMake module to assist with system porting.

Upgraded Dependency

  • Olympus 2.5 now requires Apache ANT 1.7.1 or Higher or Netbeans 6.5 or higher.

Installing CMake

  1. Download the Win32 Installer for CMake from the CMake download page.
  2. Execute the downloaded installer.
    • CMake can be found at the location you selected by OlympusBuild once the setup wizard is completed.
    • CMake does not need to be in the system or user PATH.

New File Locations and Names

  • The visual studio solution and projects generated by CMake via OlympusBuild are stored in $OLYMPUS_ROOT/Build/cmake.
  • All release built executables and libraries now goes to $OLYMPUS_ROOT\bin\release.
  • All debug built executables and libraries are now placed in $OLYMPUS_ROOT\bin\debug.
  • RavenClaw and Galaxy libraries are now in either $OLYMPUS_ROOT\bin\release or $OLYMPUS_ROOT\bin\debug as appropriate.
  • PhoenixInput.h has been removed and merged into CInteractionEvent.

Updating Visual Studio Projects

These changes are a result of CMake automatically creating Debug and Release folders.

Debug Configuration Changes

  1. Change the reference to "$(OLYMPUS_ROOT)\Libraries\RavenClaw\Lib\DebugGalaxy\RavenClaw_debug.lib" in Project Properties > Linker > Input > Additional Dependencies' to "$(OLYMPUS_ROOT)\bin\debug\RavenClaw_debug.lib"
  2. Change the reference to "$(OLYMPUS_ROOT)\Libraries\Galaxy\lib\x86-nt\libGalaxy_debug.lib" in Project Properties > Linker > Input > Additional Dependencies to "$(OLYMPUS_ROOT)\bin\debug\libGalaxy_debug.lib"

Release Configuration Changes

  1. Change the reference to "$(OLYMPUS_ROOT)\Libraries\RavenClaw\Lib\ReleaseGalaxy\RavenClaw.lib" in Project Properties > Linker > Input > Additional Dependencies to "$(OLYMPUS_ROOT)\bin\release\RavenClaw.lib"
  2. Change the reference to "$(OLYMPUS_ROOT)\Libraries\Galaxy\lib\x86-nt\libGalaxy.lib" in Project Properties > Linker > Input > Additional Dependencies to "$(OLYMPUS_ROOT)\bin\release\libGalaxy.lib"
  3. Set Project Properties > Linker > Debugging to No if it is not set to that already.

Updating Your Binding Filter and/or other Non-RCTSL DM Code

  1. Remove any references to PhoenixInput.h.
  2. Change CPhoenixInput to CInteractionEvent.

Updating Your Perl Backend (aka Domain Reasoner)

  • The BE_server.perl found at $OLYMPUS_ROOT\BackendServer\PerlBackend has been updated to the parse the new backend frame format.
  • BE_server.perl in Olympus will continue to be updated to deal with future backend changes.
  • Edit your startlist to use the backend in Olympus as discussed in the Updating Your Start List section below.

Updating Your Native Backend (aka Domain Reasoner)

  1. See revision 3008 and revision 3369 for an example of the necessary changes made to and do the same changes to your frame parsing code.
    • Native back-end utility functions will be created as part of a future Olympus release.

Updating Your Start List

Remove direct references to the core (generic) Olympus executables and replace them by including the appropriate startlists in Olympus.

See MeetingLine with Flite's Startlist for an example.

  1. Remove references to all agents that were in $OLYMPUS_ROOT\Bin\x86-nt.
  2. Replace references to your local Perl backend server using with PROCESS: $PERL "$OLYMPUS_AGENTS\BackendServer\PerlBackend\BE_server.perl"
  3. Add EXPAND: $OLYMPUS_ROOT %OLYMPUS_ROOT if it was not there already.
  4. Add EXPAND: $OLYMPUS_CORE_STARTLIST $OLYMPUS_ROOT\Configurations\startlist_core.config to the under
  6. Add additional EXPAND and INCLUDES to add other desired startlists.
    • We recommend adding the appropriate startlist for the Kalliope that uses your desired text-to-speech engine (ex: $OLYMPUS_ROOT\Configurations\startlist_kalliope_filte.config).

Updating Your Hub Program

If you are already including the hub configurations in Olympus then no changes are necessary.

Including Default Hub Configurations

  1. Add the following lines to your configuration and remove references to AMSwitcher, SessionManager, AudioServer, gal_be, [ConsoleTTY], [Phoenix], [Helios], [Rosetta], [Kalliope], [Ravenclaw], and [Apollo].
#include $OLYMPUS_ROOT/Configurations/hub-init-rules.pgm
#include $OLYMPUS_ROOT/Configurations/hub-input-rules.pgm
#include $OLYMPUS_ROOT/Configurations/hub-nlu-rules.pgm
#include $OLYMPUS_ROOT/Configurations/hub-core-rules.pgm
#include $OLYMPUS_ROOT/Configurations/hub-nlg-rules.pgm
#include $OLYMPUS_ROOT/Configurations/hub-output-rules.pgm
#include $OLYMPUS_ROOT/Configurations/hub-close-rules.pgm
#include $OLYMPUS_ROOT/Configurations/hub-config-rules.pgm

Updating Configuration Files

Apollo's new multimodal support requires specifying desired input and output modes in Apollo.cfg.

To Continue With Speech Only Input

  1. Add input_modes = speech to your system's Apollo.cfg.
  2. Add output_modes = speech to your system's Apollo.cfg.

To Enable GUI Input and Display Output Along with Speech Input/Output

See RoomLine for an example of this in use. More documentation is forthcoming.

  1. Add input_modes = speech+gui to your system's Apollo.cfg.
  2. Add output_modes = speech+display to your system's Apollo.cfg.

Updating Your Grammar/NLG

Few if any changes should be necessary.

  • Logios may be more strict than MakeLM.
  • The errors should be fixable with an additional semi-colon or similar small changes.

Add vad_error to Rosetta Inform

If Apollo cancels (endpoints without parsing) an unusually long user utterance (normally due to a VAD error) in Olympus 2.5 or above, it will speak the vad_error statement in Rosetta::Inform. Therefore, you should add a statement that asks the user to repeat what he/she just said under the name vad_error to or the similar file in your system's NLG. See changeset 3404 for an example.

Olympus 2.1 to Olympus 2.2

No system changes are required for migration from Olympus 2.1 to Olympus 2.2

Questions and Problems

For additional information, as well as specific questions, email the developers mailing list (

Personal tools