LM-SERVER: An XML-RPC SRILM Server
Version: 0.1
January 15, 2007
Copyright (c) 2007 Nitin Madnani, nmadnani@umiacs.umd.edu

Description:
- This package contains files that allow you to run an XML-RPC server on top of an already existing SRILM [1] language
model. This will be useful for situations where one needs to query the LM in separate processes/scripts but without 
the overhead of having to load the LM in each process separately.

How does it work:
- The bulk of thw work is done by a python module that allows a python script to query an LM directly.

Requirements:
 - GNU make
 - Simplified Wrapper & Interface Generator (SWIG)
 - Python >= 2.4
 - The SRI language modeling toolkit

Installation:
 (1) Modify the following environment variables at the top of the included Makefile:
    - SRILM_LIBS : The directory containing the SRILM libraries
    - SRILM_INC  : The directory containing the SRILM header files
    - PYTHON_INC : The directory containing the python header files

 (2) Run 'make'.

Usage:
- Run 'make python' in this directory. Copy the following files to the directory where you wish to use the module:
    _srilm.so 
     srilm.py
     lmserver.py 
  
- Create a server.conf file (a sample file is included with this package)
- Start the server using this configuration file. Be sure to put this command in the background
    lmserver.py server.conf &
- You can now create multiple clients that can talk to the server. A sample client (lmclient.py) is included with this package.
- The server can be stopped remotely by any script - either the last client in a queue or by a separate clean-up script
that runs after all clients are completed. 
 
Contact:
 - If you have any questions or have a feature request, please contact Nitin Madnani at nmadnani@umiacs.umd.edu

References:
[1] http://www.speech.sri.com/projects/srilm/
[2] http://www.swig.org/

