| Literature DB >> 16398930 |
Joshua Phillips1, Ram Chilukuri, Gilberto Fragoso, Denise Warzel, Peter A Covitz.
Abstract
BACKGROUND: Robust, programmatically accessible biomedical information services that syntactically and semantically interoperate with other resources are challenging to construct. Such systems require the adoption of common information models, data representations and terminology standards as well as documented application programming interfaces (APIs). The National Cancer Institute (NCI) developed the cancer common ontologic representation environment (caCORE) to provide the infrastructure necessary to achieve interoperability across the systems it develops or sponsors. The caCORE Software Development Kit (SDK) was designed to provide developers both within and outside the NCI with the tools needed to construct such interoperable software systems.Entities:
Mesh:
Year: 2006 PMID: 16398930 PMCID: PMC1379637 DOI: 10.1186/1472-6947-6-2
Source DB: PubMed Journal: BMC Med Inform Decis Mak ISSN: 1472-6947 Impact factor: 2.796
Figure 1Example UML domain model, shown as a class diagram. The model shown here, a subset of the larger caBIO model used in the production caCORE system, includes several classes related to the class Gene. This model was used for initial testing and validation of kit components. After the kit was validated, the caCORE SDK was used with all the full-sized caCORE domain models (not shown).
Components of the caCORE SDK.
| Java 2 Standard Edition (J2SE) | j2sdk1.4.2_06 or higher | The J2SE Software Development Kit (SDK) supports creating J2SE applications | No | |
| UML 1.3 Modeling Tool that produces XMI 1.1 output | EA 4.50.744 | We recommend using Enterprise Architect (EA) | No | |
| Ant.jar | 1.6.2 | Apache Ant is a Java-based build tool | Yes | |
| activation.jar | The classes that make up the JavaBeans Activation Framework (JAF) standard extension are contained in the included Java Archive (JAR) file, "activation.jar" | Yes | ||
| alteredHibernate2.jar | Modified Hibernate code decoupling SearchCriteria object from the Session Object packaged within Hibernate 2.1 classes. | Yes | ||
| aspectjrt.jar | Aspectj is a seamless aspect-oriented extension to the Java™ programming language | Yes | ||
| aspectjtools.jar | Aspectj contains a compiler, ajc, that can be run from Ant. Included in the aspectjtools.jar are Ant binaries to support three ways of running the compiler | Yes | ||
| axis-ant.jar | Ant tasks for building axis. | Yes | ||
| axis.jar | Apache Axis is an implementation of the Simple Object Access Protocol (SOAP) | Yes | ||
| cglib-full-2.0.1.jar | 2.0.1 | Dynamic JAVA byte code generator | Yes | |
| codegen.jar | Classes required for JET template compilation. | Yes | ||
| commons-collections-2.1.jar | 2.1 | Apache Jakarta Commons utilities | Yes | |
| commons-dbcp-1.1.jar | 1.1 | The Jakarta Commons DBCP Component provides database connection pooling. | Yes | |
| commons-discovery.jar | Apache Jakarta Commons discovery utilities | Yes | ||
| commons-lang-1.0.1.jar | Provides a helper utilities for the java.lang API. | Yes | ||
| commons-logging-1.0.3.jar | Provides a helper utilities logging. | Yes | ||
| commons-logging.jar | Apache Jakarta Commons logging utilities | Yes | ||
| commons-pool-1.1.jar | 1.1 | The Jakarta Commons Pool Component provides a generic object pooling API. | Yes | |
| datafile.jar | Java data file read/write utility that provides a convenient set of interfaces for reading and writing data to and from files in widely accepted format such as comma separated values (CSV), fixed width, tab separated, as well as others | Yes | ||
| db2java.jar | Contains classes to support connections to DB2 databases. | Yes | ||
| dom4j-1.4.jar | 1.4 | Contains classes that allow you to read, write, navigate, create and modify XML documents. | Yes | |
| ehcache-0.7.jar | 0.7 | EHCache is a pure Java, in-process cache. | Yes | |
| freemarker.jar | FreeMarker is a "template engine"; a generic tool to generate text output (anything from HTML or RTF to auto generated source code) based on templates. | Yes | ||
| hibernate3.jar | 3.0 | Hibernate 3.0 is used for the server-side ORM | Yes | |
| Jakarta-oro-2.0.8.jar | 2.0.8 | The Jakarta-ORO Java classes are a set of text-processing Java classes that provide Perl5 compatible regular expressions, AWK-like regular expressions, glob expressions, and utility classes for performing substitutions, splits, filtering filenames, etc. | Yes | |
| jalopy-1.0b11.jar | 1.0b11 | Source code formatter. | Yes | |
| jalopy-ant-0.6.2.jar | 0.6.2 | Ant task for building jalopy. | Yes | |
| jaxen-core.jar | The jaxen project is a Java XPath Engine. jaxen is a universal object model walker, capable of evaluating XPath expressions across multiple models. | Yes | ||
| jaxen-jdom.jar | The jaxen project is a Java XPath Engine. jaxen is a universal object model walker, capable of evaluating XPath expressions across multiple models. | Yes | ||
| jaxrpc.jar | Java API for XML-based RPC | Yes | ||
| jdom.jar | 1.0 | Java-based solution for accessing, manipulating, and outputting XML data from Java code. | Yes | |
| Jdtcore.jar | Eclipse Tomcat Plugin | Yes | ||
| jetc-task.jar | An ANT task for translating JET templates outside of Eclipse | Yes | ||
| jmi.jar | JMI is a standards-based, platform independent, vendor-neutral specification for modeling, creating, storing, accessing, querying, and interchanging metadata using UML, XML, and Java. | Yes | ||
| jmiutils.jar | Part of the NetBeans MDR codebase. It contains general utility classes for doing things such as generating class files and querying MOF models. Most importantly, it contains the implementations of XMI readers and writers. | Yes | ||
| jta.jar | JTA specifies standard Java interfaces between a transaction manager and the parties involved in a distributed transaction system | Yes | ||
| junit-3.8.1.jar | 3.8.1 | JUnit is a regression testing framework that is used by the developer who implements unit tests in Java | Yes | |
| junit.jar | JUnit is a regression testing framework that is used by the developer who implements unit tests in Java | Yes | ||
| log4j-1.2.8.jar | 1.2.8 | Log4j is an open source tool developed for putting log statements into your application. With log4j you can enable logging at runtime without modifying the application binary. | Yes | |
| log4j.properties | Configuration file used by Log4J | Yes | ||
| mail.jar | JavaMail API | Yes | ||
| Mdrant.jar | Ant tasks for building MDR. | Yes | ||
| Mdrapi.jar | MDR implements the OMG's MOF (Meta Object Facility) standard based metadata repository and integrates it into the NetBeans Tools Platform. It contains implementation of MOF repository including persistent storage mechanism for storing the metadata. The interface of the MOF repository is based on (and fully compliant with) JMI (Java Metadata Interface – JSR-40). | Yes | ||
| mof.jar | Archive containing the classes pertaining to Meta-Object Facility (MOF) specification from Object Management Group (OMG). | Yes | ||
| mysql-connector-30.jar | Archive containing MySQL 3.0 JDBC driver classes. | Yes | ||
| nbmdr.jar | Extended implementation of the Meta-Object Facility, XML Metadata Interchange, and Java Metadata Interface standards. | Yes | ||
| Openide-util.jar | 4.0 | Contains low level basic support classes that MDR depends on. | Yes | |
| osgi.jar | 3.0 | The OSGi™ specifications define a standardized, component oriented, computing environment for networked services. | Yes | |
| resources.jar | Contains code central to the Eclipse platform. The caCORE SDK uses an the "jetc" Ant task to translate JET templates to Java source code. That Ant task uses code from the Eclipse Modeling Framework (EMF) plug-in to do the translation. The EMF plug-in depends on code in resources.jar | Yes | ||
| Runtime.jar | Archive containing the classes necessary to run applications developed on Eclipse Rich Client Platform (RCP). | Yes | ||
| saaj.jar | Archive containing the classes pertaining to SOAP with Attachments API for Java (SAAJ) specification. SAAJ is included in Java Web Services Developer Pack (JWSDP). | Yes | ||
| Saxpath.jar | 1.0-FCS | SAXPath is an event-based API for XPath parsers, that is, for parsers that parse XPath expressions. | Yes | |
| servlet.jar | J2EE 1.3 | Archive containing the classes pertaining to J2EE servlet API specification. | Yes | |
| uml-1.3.jar | 1.3 | Object Management Group (OMG) UML metamodel specification. | Yes | |
| wsdl4j.jar | Web Services Description Language support for Java | Yes | ||
| xerces.jar | XML Parser | Yes | ||
| xercesImpl.jar | 2.4.0 | Xerces Java Parser | Yes | |
| xml-apis.jar | 2.0.2 | XSLT processor for transforming XML documents into HTML, text, or other XML document types. | Yes | |
| xmlrpc.jar | Apache XML-RPC is a Java implementation of | Yes |
Semantic Connector report for the Target class and its attributes.
| Target | Candidate_Disease_Gene | Candidate Disease Gene | ObjectClass | C19389 | A gene proposed to have a primary role in a disease, based upon its known function in other organisms or model systems or based upon its physical proximity to markers linked to a genetic disease. | NCI | y |
| id | Identifier | Identifier | Property | C25364 | One or more characters used to identify, name, or characterize the nature, properties, or contents of a thing. | NCI | y |
| type | Type | Type | Property | C25284 | A subdivision of a particular kind of thing. | NCI | y |
| name | Name_Generic_Concept | Name | Property | C42614 | The words or language units by which a thing is known. | NCI | y |
‡A class or an attribute of a class
Figure 2caCORE SDK Workflow. A UML object model and a description-logic terminology source (NCI Thesaurus in the present work) are the inputs into the workflow. The model is exported from the format native to the tool it was developed in to the standard XMI representation. The XMI file is then annotated with terminology concepts using Semantic Connector. The annotated model is used as input into Codegen, which generates the software for a caBIG-compatible data system with object-oriented APIs. The annotated model is loaded as metadata into the caDSR using UML Loader. Model metadata is reviewed and completed by a curator using caDSR utilities, and then becomes available from the caDSR APIs and web applications.
Figure 3Architecture of caCORE SDK-generated system. Systems developed using caCORE SDK are deployed as a Web Application Archive (WAR) to a J2EE application server such as JBoss or a web application server such as Tomcat. Contents of the WAR file can be logically grouped into three categories. Libraries and Utilities are typically packaged as JAR files, and include AspectJ for auditing, Log4J for logging, and Hibernate for object-relational mapping. Framework, Domain Objects and Deployment Descriptors include caCORE SDK classes needed at runtime, domain objects with corresponding hibernate mapping files generated by caCORE SDK, and property files containing configuration parameters. API Services function as a façade or an entry point to the system. Client requests are processed by the interface proxy in the application server and mapped to the appropriate data source by the delegation service. In version 1.0.2 of caCORE SDK, described in this article, only Java APIs are generated; in subsequent versions Web Services APIs can also be generated, with Apache Axis providing SOAP message support.