NIH | National Cancer Institute | NCI Wiki  

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Information regarding the software requirements LexEVS can be found in the WIP Format LexEVS 5.x Installation Guide.

Setting up your Environment

Information regarding the installation and configuration of the LexEVS environment can be found in the WIP Format LexEVS 5.x Installation Guide.

LexEVS API

Programming interfaces for the system fall into three primary categories:<u>

  • Core Services

...

  • - Includes the LexBIGService, LexBIGServiceManager, CodedNodeSet and CodedNodeGraph classes, which provide the initial entry points for programmatic access to all system features and data.

...

  • Service Extensions

...

  • - The extension mechanism provides for pluggable system features. Current extension points allow for the introduction of custom load and indexing mechanisms, unique query sort and filter mechanisms, and generic functional extensions which can be advertised for availability to client programs.

...

  • Utilities

...

  • - Utility classes, such as those implementing iterator support, are provided by the system to provide convenience and optimize the handling of resources accessed through the runtime.

Core Services

Provides central entry points for programmatic access to system features and data.

class diagram image of the LexBIG Service interface and associated componentsImage Modified

...

LexBIGService

Components of interest include:<u>

  • CodedNodeGraph

...

  • - A virtual graph where the edges represent associations and the nodes represent concept codes. A CodedNodeGraph describes a graph that can be combined with other graphs, queried or resolved into an actual graph rendering.

...

  • CodedNodeSet

...

  • - A coded node set represents a flat list of coded entries.

...

  • LexBIGService

...

  • - This interface represents the core interface to a LexEVS service.

...

  • LexBIGServiceManager

...

  • - The service manager provides a single write and update access point for all of a service's content.

...

  • The service manager allows new coding schemes to be validated and loaded, existing coding schemes to be retired and removed and the status of various coding schemes to be updated and changed.

...

  • LexBIGServiceMetadata

...

  • - Interface to perform system-wide query over optionally loaded metadata for loaded code systems and providers.

Service Extensions

Provides registration and lookup for pluggable system features.

...

class diagram image for ExtensionsImage Modified

Extensions

Components of interest include:<u>

  • ExtensionRegistry

...

  • - Allows registration and lookup of implementers for extensible pieces of the LexEVS architecture.

...

  • Extendable

...

  • - Marks a class as an extension to the LexEVS application programming interface. This allows for centralized registration, lookup, and access to defined functions.

Query Extensions

Query extensions provide the ability to further constrain or manage query results.

...

class diagram image of Query extensionImage Modified

Query

Components of interest include:<u>

  • Filter

...

  • - Allows for additional filtering of query results.

...

  • Sort

...

  • - Allows for unique sorting of query results. This interface provides a comparator to evaluate order of any two given items from the result set.

Load Extensions

Load extensions are responsible for the validation and import of content to the LexEVS repository. Vocabularies may be imported from a variety of formats including LexGrid canonical XML, NCI Thesaurus (OWL), and NCI MetaThesaurus (UMLS RRF).

class diagram image of Load extensionImage ModifiedLoad

Components of interest include:

...

<u>

  • Loader

...

  • - The loader interface validates and/or loads content for a service.

...

  • LexGrid_Loader

...

  • - Validates and/or loads content provided in the LexGrid canonical XML format.

...

  • NCI_MetaThesaurusLoader

...

  • - Validates and/or loads the complete NCI MetaThesaurus. Content is supplied in RRF format. Note: To load individual coding schemes, consider using the UMLS_Loader as an alternative.

...

  • OBO_Loader

...

  • - Validates and/or loads content provided in Open Biomedical Ontologies (OBO) text format.

...

  • OWL_Loader

...

  • - Validates and/or loads content provided in Web Ontology Language (OWL) XML format. Note that for LexEVS phase 1 this loader is designed to specifically handle the NCI Thesaurus as provided in OWL format.

...

  • Text_Loader

...

  • - A loader for delimited text type files. Text files come in one of two formats: indented code/designation pair or indented code/designation/description triples.

...

  • UMLS_Loader

...

  • - Load one or more coding schemes from UMLS RRF format stored in a SQL database.

...

  • MetaData_Loader

...

  • - Validates and/or loads content provided in metadata xml format. The only requirement of the xml file is that it be a valid xml file.

...

  • NCIHistoryLoader

...

  • - A loader that takes the delimited NCI history file and applies it to a coding scheme.

...

  • OBOHistoryLoader

...

  • - Load an OBO change history file.

Export Extensions

Export extensions are responsible for the export of content from the LexEVS repository to other representative vocabulary formats.

...


class diagram image of Export extensionImage ModifiedExport

Components of interest include:<u>

  • Exporter

...

  • - Defines a class of object used to export content from the underlying LexGrid repository to another repository or file format.

...

  • LexGrid_Exporter

...

  • - Exports content to LexGrid canonical XML format.

...

  • OBO_Exporter

...

  • - Exports content to OBO text format.

...

  • OWL_Exporter

...

  • - Exports content to OWL XML format.

Index Extensions

Index extensions are built to optimize the finding, sorting and matching of query results.

...

class diagram image of Index extensionImage ModifiedIndex

Components of interest include:<u>

  • Index

...

  • - Identifies expected behavior and an associated loader to build and maintain a named index. Note that a single loader may be used to maintain multiple named indexes.

...

  • IndexLoader

...

  • - Manages registered index extensions. A single loader may be used to create and maintain multiple indexes over one or more coding schemes.

...

  • It is the responsibility of the loader to properly interpret each index it services by name, version, and provider.

Generic Extensions

Generic extensions provides a mechanism to register application-specific extensions for reference and reuse.

...

class diagram image of Query extensionImage ModifiedGeneric

Components of interest include:<u>

  • GenericExtension

...

  • - The generic extension class. Classes that implement this class are accessible via the LexBIGService interface.

...

  • LexBIGServiceConvenienceMethods

...

  • - Convenience methods to be implemented as a generic extension of the LexEVS API.

Utilities

Defines helper classes externalized by the LexEVS API.

Iterators

Iterators are used to provide controlled resolution of query results.

class diagram image of IteratorsImage Modified

Iterators

Components of interest include:<u>

  • EntityListIterator

...

  • - Generic interface for flexible resolution of LexEVS objects.

...

  • ResolvedConceptReferencesIterator

...

  • - An iterator for retrieving resolved coding scheme references.

Search Algorithms

Supported LexEVS Search Algorithms

Search Algorithm

Panelcode

    Name: LuceneQuery


    Version: 1.0


    Description: Search with the Lucene query syntax.

See
  
    See http://lucene.apache.org/java/2_3_2/queryparsersyntax.html
Image Removed)

Search Algorithm

Panelcode

    Name: DoubleMetaphoneLuceneQuery


    Version: 1.0


    Description: Search with the Lucene query syntax, using a 'sounds like' algorithm.

A search for
  
    A search for 'atack' will get a hit on 'attack'

See
  
    See http://lucene.apache.org/java/2_3_2/queryparsersyntax.html
Image Removed)

Search Algorithm

Panelcode

    Name: StemmedLuceneQuery


    Version: 1.0


    Description: Search with the Lucene query syntax, using stemmed terms.

A search for
  
    A search for 'trees' will get a hit on 'tree'

See
  
    See http://lucene.apache.org/java/2_3_2/queryparsersyntax.html
Image Removed)

Search Algorithm

Panelcode

    Name: startsWith


    Version: 1.0


    Description: Equivalent to 'term*' (case insensitive)

Search Algorithm

Panelcode

    Name: exactMatch


    Version: 1.0


    Description: Exact match (case insensitive)

Search Algorithm

Panelcode

    Name: contains


    Version: 1.0


    Description: Equivalent to '* term* *' - in other words - a trailing wildcard on a
term
 term 
    (but no leading wild card) and the term can appear at any position.

Search Algorithm

Panelcode

    Name: RegExp


    Version: 1.0


    Description: A Regular Expression query.  Searches against the lowercased text, so
a
regular expression that specifies an uppercase character will never return a match.
Additionally, this searches against the entire string as a single token, rather than
the tokenized string - so write your regular expression accordingly.
Supported syntax is documented here:
 a 
    regular expression that specifies an uppercase character will never return a match.  
    Additionally, this searches against the entire string as a single token, rather than 
    the tokenized string - so write your regular expression accordingly.  
    Supported syntax is documented here: 
    http://jakarta.apache.org/regexp/apidocs/org/apache/regexp/RE.html
Image Removed

Additional Utility Classes

Note: It is highly recommended that all LexEVS programmers familiarize themselves with the classes contained in the <tt>orgorg.LexGrid.LexBIG.Utility</tt> Utility package. Many useful features are provided in an effort to increase approachability of the API and assist the programmer in common tasks. This package currently contains the following classes: <u>

  • Constructors

...

  • - Helper class to ease creating common objects.

...

  • ConvenienceMethods

...

  • - One-stop shopping for convenience methods that have been implemented against the LexEVS API.

...

  • LBConstants

...

  • - Provides constants for use in the LexEVS API.

...

  • ObjectToString

...

  • - Provides centralized formatting of LexEVS Objects to String representations.

Code Examples

Concept Resolution

Programmers access coded concepts by acquiring first a node set or graph. After specifying optional restrictions, the nodes in this set or graph can be resolved as a list of <tt>ConceptReference</tt> ConceptReference objects which in turn contain references to one or more Concept objects. The following example provides a simple query of concept codes:

...

The LexEVS Data Grid Service is a standard caGrid Data service based on the LexEVS 2009 Model

caGrid Data Service Documentation

...