LexBIG/EVS API Overview NCBO Seminar Series October 2008.

Slides:



Advertisements
Similar presentations
Introduction The cancerGrid metadata registry (cgMDR) has proved effective as a lightweight, desktop solution, interoperable with caDSR, targeted at the.
Advertisements

Dr. Leo Obrst MITRE Information Semantics Information Discovery & Understanding Command & Control Center February 6, 2014February 6, 2014February 6, 2014.
Overview of LexEVS 5.0 LexEVS Architecture November, 2009.
CTS2 DEVELOPMENT FRAMEWORK CTS2 Overview. Schedule What is it? Why a framework? What does this do for me? Plugins Implementations available now CTS2 Compliance.
Consistent and standardized common model to support large-scale vocabulary use and adoption Robust, scalable, and common API to reduce variation in clinical.
CTS2 Terminology Services
Common Terminology Services 2 (CTS2)
LexGrid for cBIO Division of Biomedical Informatics Mayo Clinic Rochester, MN.
© Copyright 2008, Mayo Clinic College of Medicine Mayo Clinic Open Health Tools Application for Membership OHT Board Meeting, Birmingham, UK July 1, 2008.
CaBIG™ Terminology Services Path to Grid Enablement Thomas Johnson 1, Scott Bauer 1, Kevin Peterson 1, Christopher Chute 1, Johnita Beasley 2, Frank Hartel.
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
CaGrid Service Metadata Scott Oster - Ohio State
Progress Report 11/1/01 Matt Bridges. Overview Data collection and analysis tool for web site traffic Lets website administrators know who is on their.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
Java Pet Store Application. Outline Introduction Introduction Information Layer Information Layer Application Layer Application Layer Infrastructure Layer.
Linux Operations and Administration
Value Domain and Pick List Support in LexEVS 5.1 Sridhar Dwarkanath Mayo Clinic CaBIG Architecture/VCD Joint Workspace F2F.
Apache Lucene in LexGrid. Lucene Overview High-performance, full-featured text search engine library. Written entirely in Java. An open source project.
OpenMDR: Generating Semantically Annotated Grid Services Rakesh Dhaval Shannon Hastings.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
1 Foundations V: Infrastructure and Architecture, Middleware Deborah McGuinness and Peter Fox CSCI Week 9, October 27, 2008.
OpenMDR: Alternative Methods for Generating Semantically Annotated Grid Services Rakesh Dhaval Shannon Hastings.
C Copyright © 2009, Oracle. All rights reserved. Appendix C: Service-Oriented Architectures.
LexEVS 6.0 Overview Scott Bauer Mayo Clinic Rochester, Minnesota February 2011.
LexEVS 101 Craig Stancl Rick Kiefer February, 2010.
1 LexEVS 5.0 Advanced Topics Configuration Options LexEVS Boot Camp November, 2009.
LexEVS Overview Mayo Clinic Rochester, Minnesota June 2009.
Web HTTP Hypertext Transfer Protocol. Web Terminology ◘Message: The basic unit of HTTP communication, consisting of structured sequence of octets matching.
Using the Open Metadata Registry (openMDR) to create Data Sharing Interfaces October 14 th, 2010 David Ervin & Rakesh Dhaval, Center for IT Innovations.
January 19, 2011 Sherri de Coronado, Semantic Services Center for Bioinformatics and Information Technology.
1 Foundations V: Infrastructure and Architecture, Middleware Deborah McGuinness TA Weijing Chen Semantic eScience Week 10, November 7, 2011.
LexEVS in a caGrid Environment Interacting with LexEVS 5.0 November 2009.
CaDSR Freestyle Search June 11, caDSR Freestyle Search Overview Architecture Implementation Dependencies Futures 2.
Oracle 10g Database Administrator: Implementation and Administration Chapter 2 Tools and Architecture.
LexBIG Release Overview Aug 21, LexBIG Context Project Goals for Sept –Incremental point release of LexBIG infrastructure to support EVS activities.
NERC DataGrid NERC DataGrid Vocabulary Server Use Cases Vocabulary Workshop, RAL, February 25, 2009.
Value Set Resolution: Build generalizable data normalization pipeline using LexEVS infrastructure resources Explore UIMA framework for implementing semantic.
Open Terminology Portal (TOP) Frank Hartel, Ph.D. Associate Director, Enterprise Vocabulary Services National Cancer Institute, Center for Biomedical Informatics.
LexBIG/LexGrid Services for LexBIG 2.3 Model and API for the Grid.
LexBIG, EVS and NCBO Browser Publish, Query, & Browse Vocabularies in caBIG January 2008.
LexEVS Semantic Tooling Advancements Kevin Peterson Mayo Clinic Mayo 2009.
LexEVS in a Local Environment Interacting with LexEVS 5.0 November 2009.
LexGrid Philosophy, Model and Interfaces Harold R Solbrig Division of Biomedical Statistics and Informatics Mayo Clinic.
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
Overview of LexEVS 5.0 LexGrid 2009 Model November, 2009.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
LexEVS Value Domains. LexGrid Definitions Value Domain Definition – the description of the contents Value Domain Resolution – the actual contents –The.
Representational State Transfer (REST). What is REST? Network Architectural style Overview: –Resources are defined and addressed –Transmits domain-specific.
EVS 4.0 Feature Overview EVS API and User Interface pBIO Meeting March 20, 2007 Frank Hartel Gilberto Fragoso
1 Ontolog OOR-BioPortal Comparative Analysis Todd Schneider 15 October 2009.
Patterns in caBIG Baris E. Suzek 12/21/2009. What is a Pattern? Design pattern “A general reusable solution to a commonly occurring problem in software.
Working with XML. Markup Languages Text-based languages based on SGML Text-based languages based on SGML SGML = Standard Generalized Markup Language SGML.
LexEVS 5.0 EVS to LexEVS: A Migration Guide November, 2009.
EVS Data Curation The processing and publication of data for web browsing and programmatic access.
Design for a High Performance, Configurable caGrid Data Services Platform Peter Hussey LabKey Software, Inc, Seattle, WA USA Contact:
Steven Perry Dave Vieglais. W a s a b i Web Applications for the Semantic Architecture of Biodiversity Informatics Overview WASABI is a framework for.
1 LexEVS 5.0 Advanced Topics Advanced Topics: Query Optimization LexEVS Boot Camp November, 2009.
CaBIG™ Terminology Services Path to Grid Enablement Thomas Johnson 1, Scott Bauer 1, Kevin Peterson 1, Christopher Chute 1, Johnita Beasley 2, Frank Hartel.
2) Database System Concepts and Architecture. Slide 2- 2 Outline Data Models and Their Categories Schemas, Instances, and States Three-Schema Architecture.
National Cancer Institute 1 1 LexBIG integration caCORE Software User Meeting Aug 7, 2006.
LexEVS 5.0: Migrating from EVS 3.x API to LexEVS API Craig R. Stancl, Kevin J. Peterson, H. Scott Bauer, Traci V. St.Martin, Christopher G. Chute, MD PhD.
Interacting with LexEVS 5.0 LexEVS in a Distributed Environment November 2009.
XML and Distributed Applications By Quddus Chong Presentation for CS551 – Fall 2001.
Databases (CS507) CHAPTER 2.
Open Source distributed document DB for an enterprise
Node.js Express Web Services
WEB API.
The Re3gistry software and the INSPIRE Registry
SDMX IT Tools SDMX Registry
Presentation transcript:

LexBIG/EVS API Overview NCBO Seminar Series October 2008

What is LexBIG? A specific API to serve vocabularies based on the LexGrid model, developed for the Cancer Biomedical Informatics Grid (caBIG®) community. Open source implementation. Underpins current NCI Enterprise Vocabulary Services (EVS). Represents the next generation EVS API. Additional contributions and tuning to meet the needs of the NCBO community, based on development of NCBO BioPortal services.

Other OBO Content Export Import OWL XML OBO Text Protégé RRF XML Representation LexGrid Vocabulary Model Data Repository LexBIG Architecture Tools And Services Access Programming Interfaces APIs LexBIG/ EVS … CTS Apps Java Embed Web/Grid Services Distributed API Application Server Each LexGrid ‘Node’ provides the software, metadata, indexes, and backing data store to service one or more vocabularies. Each LexBIG Installation represents one LexGrid Node and Java API to administer and query data. File System: Metadata & Indexes

LexBIG/EVS caGrid Service LexBIG/EVS Distributed Service LexBIG/EVS Java API Conceptual Overview LexGrid Model & Storage Browsers and Applications

LexBIG/EVS Java API LexBIG/EVS API LexGrid Model & Storage

LexBIG/EVS API – Characteristics API coverage Administrative FunctionsAdministrative Functions Query Code Systems and Available MetadataQuery Code Systems and Available Metadata Query Concepts, Concept Properties, and QualificationsQuery Concepts, Concept Properties, and Qualifications Query Concept Relationships and QualificationsQuery Concept Relationships and Qualifications API characteristics Conscious separation of service and data classesConscious separation of service and data classes Deferred query resolutionDeferred query resolution Payload optimizationPayload optimization Support iterationSupport iteration Defined extension points (loaders, exporters, sort algorithms, filters, convenience methods)Defined extension points (loaders, exporters, sort algorithms, filters, convenience methods)

LexBIG/EVS API – Example Prerequisites ICD-9-CM loaded from UMLS distribution (RRF source files) LoadUMLSFiles [-s null] [-mf uri] [-v int] [-lp uri] [-nf] -in uri [-t id] [-mh int] [-a] Example: LoadUMLSFiles -in file:///path/to/directory/ -s “ICD9CM" -nf -afile:///path/to/directory/ -s,--sources Comma-delimited list of source vocabularies to load. -mh,--mrhier Process hierarchical relationships stored by the MRHIER file. 0=none, 1=HCD-tagged items (default) -a,--activate ActivateScheme on successful load. -in,--input URI or path specifying the directory containing the NLM files. -lp,--loadPrefs URI or path specifying location of the Loader Preferences file. -mf,--manifest URI or path specifying location of the manifest file. -nf,--noFail If specified, indicates that processing should not stop for recoverable errors. -t,--tag An optional tag ID (e.g. 'PRODUCTION' or 'TEST') to assign. -v,--validate Validation only; no load. If specified, 'nf', 'a' and 't‘ are ignored. 0 to verify files exist.

LexBIG/EVS API – Example Let’s query some concepts … Target a code system Define a new LexBIGService as starting point. Define a concept ‘space’ (a codedNodeSet) for ICD-9-CM, version 2007 Note: Initially unrestricted and unresolved LexBIGService lbs = new LexBIGServiceImpl(); CodedNodeSet cns = lbs.getCodingSchemeConcepts("ICD-9-CM", null);

LexBIG/EVS API – Example Prerequisites ICD-9-CM loaded from UMLS distribution (RRF source files) Target a code system Define a concept ‘space’ (a codedNodeSet) for ICD-9-CM, version 2007 Initially unrestricted and unresolved Restrict the space based by adding constraints Property ‘Semantic Type’ -> exact match -> “Disease or Syndrome” LexBIGService lbs = new LexBIGServiceImpl(); CodedNodeSet cns = lbs.getCodingSchemeConcepts("ICD-9-CM", null); cns.restrictToMatchingProperties( Constructors.createLocalNameList( "Semantic_Type"), null, "Disease or Syndrome", “exactMatch", null);

LexBIG/EVS API – Example Prerequisites ICD-9-CM loaded from UMLS distribution (RRF source files) Target a code system Define a concept ‘space’ (a codedNodeSet) for ICD-9-CM, version 2007 Initially unrestricted and unresolved Restrict the space based by adding constraints Property ‘Semantic Type’ -> exact match -> “Disease or Syndrome” Primary text match -> sounds like -> ‘infeksion’ LexBIGService lbs = new LexBIGServiceImpl(); CodedNodeSet cns = lbs.getCodingSchemeConcepts("ICD-9-CM", null); cns.restrictToMatchingProperties( Constructors.createLocalNameList( "Semantic_Type"), null, "Disease or Syndrome", “exactMatch", null); cns.restrictToMatchingDesignations("infeksion", SearchDesignationOption. PREFERRED_ONLY, “DoubleMetaphoneLuceneQuery”, null);

LexBIG/EVS API – Example Prerequisites ICD-9-CM loaded from UMLS distribution (RRF source files) Target a code system Define a concept ‘space’ (a codedNodeSet) for ICD-9-CM, version 2007 Initially unrestricted and unresolved Restrict the space based by adding constraints Property ‘Semantic Type’ -> exact match -> “Disease or Syndrome” Primary text match -> sounds like -> ‘infeksion’ Any text stemmed match -> ‘classify’ (to match ‘classified’, ‘classifying’, etc) LexBIGService lbs = new LexBIGServiceImpl(); CodedNodeSet cns = lbs.getCodingSchemeConcepts("ICD-9-CM", null); cns.restrictToMatchingProperties( Constructors.createLocalNameList( "Semantic_Type"), null, "Disease or Syndrome", “exactMatch", null); cns.restrictToMatchingDesignations("infeksion", SearchDesignationOption. PREFERRED_ONLY, “DoubleMetaphoneLuceneQuery”, null); cns.restrictToMatchingDesignations("classify", SearchDesignationOption.ALL, "StemmedLuceneQuery“, null);

LexBIG/EVS API – Example Prerequisites ICD-9-CM loaded from UMLS distribution (RRF source files) Target a code system Define a concept ‘space’ (a codedNodeSet) for ICD-9-CM, version 2007 Initially unrestricted and unresolved Restrict the space based by adding constraints Property ‘Semantic Type’ -> exact match -> “Disease or Syndrome” Primary text match -> sounds like -> ‘infeksion’ Any text stemmed match -> ‘classify’ (to match ‘classified’, ‘classifying’, etc) Concept must be active LexBIGService lbs = new LexBIGServiceImpl(); CodedNodeSet cns = lbs.getCodingSchemeConcepts("ICD-9-CM", null); cns.restrictToMatchingProperties( Constructors.createLocalNameList( "Semantic_Type"), null, "Disease or Syndrome", “exactMatch", null); cns.restrictToMatchingDesignations("infeksion", SearchDesignationOption. PREFERRED_ONLY, “DoubleMetaphoneLuceneQuery”, null); cns.restrictToMatchingDesignations("classify", SearchDesignationOption.ALL, "StemmedLuceneQuery“, null); cns.restrictToStatus(ActiveOption.ACTIVE_ONLY, null);

LexBIG/EVS API – Example Prerequisites ICD-9-CM loaded from UMLS distribution (RRF source files) Target a code system Define a concept ‘space’ (a codedNodeSet) for ICD-9-CM, version 2007 Initially unrestricted and unresolved Restrict the space based by adding constraints Property ‘Semantic Type’ -> exact match -> “Disease or Syndrome” Primary text match -> sounds like -> ‘infeksion’ Any text stemmed match -> ‘classify’ (to match ‘classified’, ‘classifying’, etc) Must contain a property with name -> ‘UMLS_CUI’ Concept must be active Indicate sort preferences and limit number returned Sort by code, ascending Limit to top 5 … cns.restrictToStatus(ActiveOption.ACTIVE_ONLY, null); ResolvedConceptReferenceList list = cns.resolveToList( Constructors.createSortOptionList(new String[] { "matchToQuery", "code" }), null, null, 5);

LexBIG/EVS API – Example Prerequisites ICD-9-CM loaded from UMLS distribution (RRF source files) Target a code system Define a concept ‘space’ (a codedNodeSet) for ICD-9-CM, version 2007 Initially unrestricted and unresolved Restrict the space based by adding constraints Property ‘Semantic Type’ -> exact match -> “Disease or Syndrome” Primary text match -> sounds like -> ‘infeksion’ Any text stemmed match -> ‘classify’ (to match ‘classified’, ‘classifying’, etc) Must contain a property with name -> ‘UMLS_CUI’ Concept must be active Indicate sort preferences and limit number returned Sort by code, ascending Limit to top 5 Resolve!

LexBIG/EVS API – Example 2 OK, now find some relationships… Target a code system Define an unrestricted graph for a target ontology (e.g. ICD-9-CM) CodedNodeGraph cng = lbs.getNodeGraph("ICD-9-CM", null, null);

LexBIG/EVS API – Example 2 OK, now find some relationships… Target a code system Define an unrestricted graph for a target ontology (e.g. ICD-9-CM) Restrict by adding constraints Restrict to hierarchical relationships (UMLS-defined ‘CHD’ = has child) CodedNodeGraph cng = lbs.getNodeGraph("ICD-9-CM", null, null); cng.restrictToAssociations(Constructors.createNameAndValueList(“CHD"), null);

LexBIG/EVS API – Example 2 OK, now find some relationships… Target a code system Define an unrestricted graph for a target ontology (e.g. ICD-9-CM) Restrict by adding constraints Restrict to hierarchical relationships (UMLS-defined ‘CHD’ = has child) Indicate extent of navigation Set focal point (008 = ‘Intestinal infections due to other organisms’) Maximum 2 levels, full reporting at all levels Moving only in forward direction No application of filter extensions, etc Maximum 50 nodes resolved overall CodedNodeGraph cng = lbs.getNodeGraph("ICD-9-CM", null, null); cng.restrictToAssociations(Constructors.createNameAndValueList(“CHD"), null); cng.resolveAsList( Constructors.createConceptReference("008", "ICD-9-CM"), true, false, 2, 2, null, null, null, null, 50);

LexBIG/EVS API – Example 2 OK, now find some relationships… Target a code system Define an unrestricted graph for a target ontology (e.g. ICD-9-CM) Restrict by adding constraints Restrict to parent/child relationships (UMLS-defined ‘PAR’ = has parent) Restrict to the codedNodeSet defined in the previous example Indicate extent of navigation Set focal point (008 = ‘Intestinal infections due to other organisms’) Maximum 2 levels, moving in forward direction Maximum 50 nodes resolved overall Resolve!

LexBIG/EVS Distributed Service LexBIG/EVS Java API LexBIG API - Distributed LexGrid Model & Storage

Database Server LexBIG/EVS API – Distributed Distributed LexBIG Server RMI LexBIG on Local System LexBIG Install Database Server LexBIG Install JDBC Direct Distributed LexBIG API Proxy Client System LexBIG Client Proxy

LexBIG/EVS API – Distributed // Set the URL (for distributed access) and establish a remote service … String evsUrl = “ LexBIGService lbSvc = EVSApplicationService.getRemoteInstance(evsUrl); // Additional code is unchanged … CodedNodeSet cns = lbs.getCodingSchemeConcepts("ICD-9-CM", null); cns.restrictToMatchingProperties( Constructors.createLocalNameList( "Semantic_Type"), null, "Disease or Syndrome", “exactMatch", null); cns.restrictToMatchingDesignations("infeksion", SearchDesignationOption. PREFERRED_ONLY, “DoubleMetaphoneLuceneQuery”, null); cns.restrictToMatchingDesignations("classify", SearchDesignationOption.ALL, "StemmedLuceneQuery“, null); … Same API functions; requires change to service declaration only Does not expose administration options

LexBIG/EVS caGrid Service LexBIG/EVS Distributed Service LexBIG/EVS Java API LexBIG/EVS API - caGrid LexGrid Model & Storage

Database Server LexBIG/EVS API - caGrid Distributed LexBIG Server RMI LexBIG on Local System LexBIG Install Database Server LexBIG Install JDBC Direct Distributed Database Server LexBIG API Proxy Client System caGrid Host Server Client System Distributed LexBIG Server RMI LexBIG Install Grid JDBC TCP LexBIG Proxy LexBIG Client Proxy

Same API Functionality ClientcaGrid ServiceDistributed LexBIG Calls caGrid ‘getSupportedCodingSchemes()’ Calls Distributed LexBIG ‘getSupportedCodingSchemes() Returns result of call to caGrid Service Results are returned to client with all appropriate caGrid security mechanisms LexBIG/EVS API - caGrid

caCORE SDK APIs LexGrid Model & Storage

Query-by-example (QBE) system Based on LexGrid model Java Language Binding Web Services (SOAP) Web Services (REST HTTP / XML) caCORE EVS Server Web Services XML / HTML Java QBE LexBIG Install DAO Cache Service Layer Database Server JDBC caCORE SDK APIs Hibernate

caCORE SDK APIs - Example SDK-Generated Query by Example User Interface:

caCORE SDK APIs - Example Example Restful Request (HTML)… Example Restful Output (HTML shown, XML also available)…

LexBIG/EVS caGrid Service LexBIG/EVS Distributed Service LexBIG/EVS Java API Browsers and Applications LexGrid Model & Storage Browsers and Applications

User Interfaces - LexBIG GUI

User Interfaces - BioPortal

Project Links LexEVS Project caBIG® Vocabulary Knowledge Center