SKR Web API Logo

 Home    NLM » LHNCBC » SKR » API

Contents:
       SKR Web API Download With Source Button
Whenever you see Information Mark Symbol in the text below, it means that additional information is available by selecting the symbol.

Introduction:
This Java-based API to the Semantic Knowledge Representation (SKR) Scheduler facility was created to provide users with the ability to programmatically submit jobs to the Scheduler Batch and Interactive facilities instead of using the web-based interface.

Background:
The SKR Project was initiated at NLM in order to develop programs to provide usable semantic representation of biomedical free text by building on resources currently available at the library.

The SKR project is concerned with reliable and effective management of the information encoded in natural language texts. The project develops programs that provide usable semantic representation of biomedical text by building on resources currently available at the Library, especially the UMLS knowledge sources and the natural language processing tools provided by the SPECIALIST system.

Three programs in particular, MetaMap, the NLM Medical Text Indexer (MTI), and SemRep, are being evaluated and enhanced and applied to a variety of problems in the management of biomedical information. These include automatic indexing of MEDLINE citations, concept-based query expansion, analysis of complex Metathesaurus strings, accurate identification of the terminology and relationships in anatomical documents, and the extraction of chemical binding relations from biomedical text.

Third Party and Associated Licenses Used:
For specifics on the licensing and copyright information on each of these packages, please visit their respective link. Notices/Attributions will also be found in the source code when and where required.

Prerequisites and Notices:
Please Note
This software is produced by an agency of the U.S. Government, and by statute is not subject to copyright in the United States. Recipients of this software assume all responsibilities associated with its operation, modification, and maintenance.
Users are responsible for compliance with the UMLS Metathesaurus License Agreement.

To use the SKR Web API, you must have accepted the terms of the UMLS Metathesaurus License Agreement, which requires you to respect the copyrights of the constituent vocabularies and to file a brief annual report on your use of the UMLS. You also must have activated a UMLS Terminology Services (UTS) account. For information on how we use UTS authentication please select the Info icon to the right: Information Mark Symbol: Help about UTS accounts

For details of the licenses see the UMLS Metathesaurus License Agreement and
How to License and Access the Unified Medical Language System® (UMLS®) Data.


Download:

Change History
Version 1.3 Initial Public Release September 6, 2007
Version 1.4 Minor Change Release (Updated defaults) July 2, 2008
Version 1.5 Minor Change Release (Updated defaults) July 30, 2009
Version 2.0 Updated for UTS Authentication and Simplified June 15, 2011
Version 2.1 Updated to allow looping calls without re-authentication June 1, 2012

  Version Notes Sizes
SKR Web API Download With Source Button 2.1 Libraries, Examples, Documentation, and all Source Code 1.3MB

Installation:

To install the SKR Web API, do the following:
  1. Make a top level directory to store the SKR Web API program.

  2. Go to the SKR Web API page from the SKR homepage.

  3. Download the latest version of the SKR Web API into the directory created in #1.

  4. Change directory to the directory created in #1

  5. Extract the jar files from the downloaded jar file - SKR_Web_API_V2_1.jar.
  6. This will create a directory called "SKR_Web_API_V2_1" in the directory you created in #1 and fill it with all of the program files needed.

  7. Now, change to this new directory: cd SKR_Web_API_V2_1

  8. You are now ready to run. Look at the example programs in the "examples" subdirectory for ideas on what to do.

Overview of What Happens:

The SKR Web API has been designed to allow you to interact with our web-based Scheduler using our Batch and Interactive facilities. Interactive access is currently only available for the MetaMap and SemRep programs.


Example Programs:

There are six example programs included in the "examples" directory to illustrate how to incorporate the SKR Web API into your application. Two of the examples (GenericBatch.java and GenericBatchNew.java) show how to access the Scheduler Batch facility. MMInteractive and SRInteractive.java examples show how to access Interactive MetaMap and Interactive SemRep respectively. The last two examples GenericBatchUser.java and MMInteractiveUser.java illustrate how to specify the username and password within the program to eliminate the need for prompting when running.

For a list of the available options, please select the appropriate program name: MetaMap and MTI.

GenericBatch.java Example program for submitting a new Generic Batch with Validation job ("GenericObject(true)" turns on validation) request to the Scheduler to run. You will be prompted for your username and password and if they are alright, the job is submitted to the Scheduler and the results are returned in the String "results" below.

This example shows how to setup a basic Generic Batch with Validation job with a small file (sample.txt) with ASCII MEDLINE formatted citations as input data. You must set the Email_Address variable and use the UpLoad_File to specify the data to be processed. This example also shows the user setting the SilentEmail option which tells the Scheduler to NOT send email upon completing the job.

This example is set to run the MTI (Medical Text Indexer) program using the -opt1L_DCMS and -E options. You can also setup any environment variables that will be needed by the program by setting the Batch_Env field.

NOTE: The "-E" option/argument is very important and should be included with whatever program (MetaMap, SemRep, MTI) you decided to run! The reason is that this version of the Generic Batch does validation and the -E option tells the various programs to include a marker denoting when a successful result has been found.
 
GenericBatchNew.java Same as GenericBatch.java above, except you can enter any of the options and the inputfile on the command line. The usage of the program and available options are listed below:
usage: GenericBatchNew [options] inputFilename
  allowed options: 
    --email <address> : set email address. (required option)
    --command <name> : batch command: metamap, semrep, etc. (default: MTI -opt1_DCMS -E)
    --note <notes> : batch notes 
    --silent : don't send email after job completes.
    --silent-errors : Silent on Errors
    --singleLineInput : Single Line Delimited Input
    --singleLinePMID : Single Line Delimited Input w/ID
    --priority : request a Run Priority Level: 0, 1, or 2
NOTE: The "-E" option/argument is very important and should be included with whatever program you decided to run! The reason is that this version of the Generic Batch does validation and the -E option tells the various programs to include a marker denoting when a successful result has been found.
 
MMInteractive.java This example shows how to setup a basic Interactive MetaMap request. This runs the latest version of MetaMap with 1011 (2010AB) version of the UMLS Metathesaurus ("KSOURCE", "1011"), with "ignore_word_order" (-i) and "all_derivational_variants" (D) set as arguments to MetaMap. The default "Human Readable" output will be produced.

NOTE: The "-E" option/argument is NOT required for Interactive use.
 
SRInteractive.java This example shows how to setup a basic Interactive SemRep request. This runs the latest version of SemRep with Full Fielded Output (-D).

NOTE: The "-E" option/argument is NOT required for Interactive use.
 
GenericBatchUser.java This example is the same as "GenericBatchNew.java" above, except that the username and password are set in the program so that the user is not prompted when the program runs. Please Note: Although we understand the operational need for being able to specify the username and password within a program, you must also be aware of the security risks when using this setup. Please take care to secure the software you create using this option.
 
MMInteractiveUser.java This example is the same as "MMInteractive.java" above, except that the username and password are set in the program so that the user is not prompted when the program runs. Please Note: Although we understand the operational need for being able to specify the username and password within a program, you must also be aware of the security risks when using this setup. Please take care to secure the software you create using this option.


Sample Batch Commands:
How to Compile and Run:
Programming Notes:

Required Fields
General Description Name Type
Email Address Email_Address String
File to Upload UpLoad_File String


Optional Fields
General Description Name Type
Silent on Errors Question Mark Symbol: Help about Silent on Errors ESilent Boolean
Single Line Delimited Input   Question Mark Symbol: Help about Single Line Delimited Input SingLine Boolean
Single Line Delimited Input w/ID Question Mark Symbol: Help about Single Line Delimited Input w/ ID SingLinePMID Boolean
Requested Run Priority Level Question Mark Symbol: Help about Requested Run Priority Levels RPriority String
No Completion Email Question Mark Symbol: Help about the No Completion Email option SilentEmail Boolean

Presentation from NLM APIs Webinar on SKR Web API:

The following presentation describing the MetaMap/MTI Web API (SKR Web API) was delivered as part of the April 10, 2012 NLM APIs webinar. For more information on other NLM APIs and/or to see the full recorded webinar, please visit the NLM API page.

Presentation from NLM APIs Webinar on SKR Web API - PowerPoint (1.2 mb) Presentation from NLM APIs Webinar on SKR Web API, April 2012
Presentation from NLM APIs Webinar on SKR Web API - PDF (12.8 mb) Presentation from NLM APIs Webinar on SKR Web API, April 2012 (PDF version, no slide animations)

Last Modified: June 01, 2012 ii-public2
     Contact Us    |   Contact Us (SemRep)    |   Copyright    |   Privacy    |   Accessibility    |   Freedom of Information Act    |   USA.gov    Get Acrobat Reader button
Links to Our Sites
MetaMap Public Release
NEW: Distributable version of the actual MetaMap program.
Indexing Initiative (II)
Investigating computer-assisted and fully automatic methodologies for indexing biomedical text. Includes the NLM Medical Text Indexer (MTI).
Semantic Knowledge Representation (SKR)
Develop programs to provide usable semantic representation of biomedical text. Includes the MetaMap and SemRep programs.
MetaMap Transfer (MMTx)
Java-Based distributable version of the MetaMap program.
Word Sense Disambiguation (WSD)
Test collection of manually curated MetaMap ambiguity resolution in support of word sense disambiguation research.
MEDLINE Baseline Repository (MBR)
Static MEDLINE® Baselines for use in research involving biomedical citations. Allows for query searches and test collection creation.
Structured Abstracts (SA)
Information about NLM's research on Structured Abstracts in the MEDLINE® Baselines.
 
Lister Hill Center Homepage Link - Image of Lister Hill Center Lister Hill National Center for Biomedical Communications   NLM Homepage Link - NLM Logo U.S. National Library of Medicine   NIH Homepage Link - NIH Logo National Institutes of Health
DHHS Homepage Link - DHHS Logo Department of Health and Human Services