Contact Us Copyright Privacy Accessibility Freedom of Information Act

MetaMap Installation:

If you are installing MetaMap on Windows XP or Windows 7 use the MetaMap Windows Installation Instructions instead.

Move the downloaded file into a directory where you want to install MetaMap. This directory will then be referred to as <parent_directory> throughout the rest of the installation instructions.

To extract the MetaMap distribution, use the following bunzip2 and tar commands substituting the appropriate name of the file you downloaded (e.g., public_mm_linux_2010.tar.bz2, public_mm_macosx_2010.tar.bz2):

	% bunzip2 -c public_mm_<platform>_<year>.tar.bz2 | tar xvf - 
This set of commands will create the distribution directory public_mm in the current working directory (<parent_directory>). So you will have created <parent_directory>/public_mm.

To begin the initial install, go to the directory created when you extracted the distribution (public_mm).

% cd public_mm

You can speed up the process by telling the install program where your java installation is by setting the environment variable JAVA_HOME to the Java installation directory. If you don't set the variable the program will prompt you for the information.

To find out where your java installation is located, use the following command:

% which java

To set the environment variable JAVA_HOME, use the information from the which command. For example, if the command: which java returns /usr/local/jre1.8/bin/java, then JAVA_HOME should be set to /usr/local/jre1.8/.

in C Shell (csh or tcsh):

setenv JAVA_HOME /usr/local/jre1.8

in Bourne Again Shell (bash):

export JAVA_HOME=/usr/local/jre1.8

Bourne Shell (sh):

export JAVA_HOME

You also need to add the <parent dir>/public_mm/bin directory to your program path:

in C Shell (csh or tcsh):

setenv PATH <parent dir>/public_mm/bin:$PATH

in Bourne Again Shell (bash):

export PATH=<parent dir>/public_mm/bin:$PATH

Bourne Shell (sh):

PATH=<parent dir>/public_mm/bin:$PATH
export PATH

Now you are ready to run the installation script:

% ./bin/

A successful installation should look similar to the following:

% cd <parent dir>/public_mm
% ./bin/
Enter basedir of installation [<parent dir>/public_mm] <user hits return to get the default>
Basedir is set to <parent dir>/public_mm.

The WSD Server requires Java Runtime Environment (JRE)
Java Developer Kit (JDK) will work as well. if the
command: "which" java returns /usr/local/jre1.8/bin/java, then the
JRE resides in /usr/local/jre1.8/.

Where does your distribution of JRE reside?
Enter home path of JRE (JDK) [/usr]: /nfsvol/nls/tools/Linux-i686/java1.8
Using /nfsvol/nls/tools/Linux-i686/java1.8 for JAVA_HOME.

<parent dir>/public_mm/WSD_Server/config/disambServer.cfg generated
<parent dir>/public_mm/WSD_Server/config/ generated
<parent dir>/public_mm/bin/SKRrun generated.
<parent dir>/public_mm/bin/metamap generated.
<parent dir>/public_mm/bin/wsdserverctl generated.
<parent dir>/public_mm/bin/skrmedpostctl generated.
Install complete.


MetaMap requires the starting of one or two servers depending on how you plan to use MetaMap. The SKR/MedPost Part-of-Speech Tagger Server is required regardless of how you use MetaMap. The Word Sense Disambiguation (WSD) Server is optional and only needs to be started if you want/plan to use the WSD option (-y) with MetaMap. They can be started and stopped as follows. Both servers will automatically run in the background when started.

Starting the SKR/Medpost Part-of-Speech Tagger Server:
% ./bin/skrmedpostctl start
Starting the Word Sense Disambiguation (WSD) Server (optional):
% ./bin/wsdserverctl start

You can stop the each server by invoking the corresponding script with the stop parameter:

Stopping the SKR/Medpost Part-of-Speech Tagger Server:
% ./bin/skrmedpostctl stop
Stopping the Word Sense Disambiguation (WSD) Server:
% ./bin/wsdserverctl stop
You can determine if the server are running by the command:
% ps -ef | grep java
The output should look something like this:
11318 pts/4    S+     0:00 grep java
21254 ?        Sl     0:10 /usr/local/j2sdk1.8.0_24/bin/java -cp  ... /MedPost-SKR/Tagger_server/lib/mps.jar taggerServer
21267 ? Sl 0:10 /usr/local/j2sdk1.8.0_24/bin/java -Xmx2g ...
WSD_Server/lib/log4j-1.2.8.jar wsd.server.DisambiguatorServer
Once the servers have been started and verified, you can test your MetaMap installation by using the following command:
% echo "lung cancer" | ./bin/metamap -I
You should see a result similar to the following:
MetaMap (2010)

Control options:
Initializing db_access (10)...
Berkeley DB databases (normal strict model) are open.
Static variants will come from table varsan.
Accessing lexicon <parent directory>/public_mm/lexicon/data/lexiconStatic2010.
Variant generation mode: static.
Initializing tagger on localhost...

Processing 00000000.tx.1: lung cancer

Phrase: "lung cancer"
Meta Candidates (8):
  1000 C0242379:Lung Cancer (Malignant neoplasm of lung) [Neoplastic Process]
  1000 C0684249:Lung Cancer (Carcinoma of lung) [Neoplastic Process]
   861 C0006826:Cancer (Malignant Neoplasms) [Neoplastic Process]
   861 C0024109:Lung [Body Part, Organ, or Organ Component]
   861 C0998265:Cancer (Cancer Genus) [Invertebrate]
   861 C1278908:Lung (Entire lung) [Body Part, Organ, or Organ Component]
   861 C1306459:Cancer (Primary malignant neoplasm) [Neoplastic Process]
   768 C0032285:Pneumonia [Disease or Syndrome]
Meta Mapping (1000):
  1000 C0684249:Lung Cancer (Carcinoma of lung) [Neoplastic Process]
Meta Mapping (1000):
  1000 C0242379:Lung Cancer (Malignant neoplasm of lung) [Neoplastic Process] 
If there are no errors starting the WSD and Tagger servers, and you had a successful test, then MetaMap can be run as follows:
% ./bin/metamap

MetaMap has a plethora of options that are explained elsewhere (MetaMap 2009 Usage, MetaMap 2008 Usage, or MetaMap 2007 Usage).

Binary Update Installation:

After downloading the binary update archive file, first move to the directory containing the directory of the existing public_mm installation and then extract the archive using tar.

$ cd <directory containing existing public_mm installation>
$ tar xvfj public_mm_{os}_binary_{year}.tar.bz2

Notes for users migrating from MetaMap09 to MetaMap10

If you are upgrading from MetaMap 2009 to MetaMap 2010, make the following modification to your public_mm/DB directory:

$ cd public_mm/DB
$ ln -s BDB4/\* .
This will make any databases configured for MetaMap 09 visible to MetaMap 10.

Removing the MetaMap Installation:

Before un-installing MetaMap, make sure both of the MetaMap servers have been stopped (see Stopping the servers).

To un-install MetaMap move to the parent directory of your Metamap installation and run the uninstall program:

% cd <parent directory of installation>
% ./public_mm/bin/
Do you really want to uninstall MetaMap? [no/yes] yes
Removing Tagger Server
Removing WSD Server
Removing Lexicon
Removing MetaMap Databases
Removing Programs
Removing Base Directory
Removal of MetaMap installation successful.