NIH | National Cancer Institute | NCI Wiki  

Versions Compared

Key

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

Page info
title
title

Table of Contents
minLevel3

Assessment Report

This section will provide the Assessment Report generated during the prototyping phase.

Existing Tools

The collection of tools and libraries below are not exclusive to support SI functionality, but they have been identified as being able to possibly aid certain aspects of this project and the developed architecture.  In general there are supported CBIIT application structures such as the Java platform, Tomcat, JBOSS, Ant, and Maven.  This information is available at <<Insert Reference to CBIIT supported standards here >>.  The tools listed below have not been formally described as supported by CBIIT at this time, however, they suggest the type of components and architecture that is expected to best satisfy the project requirements.

Triple Store Access

Access tools represent methods for interacting with information represented using RDF and OWL representations of metadata.  In addition, these tools may provide additional support for inference engines.

...

Note :  These systems can be used in a combinatorial fashion.  For example, OWL files created with OwlAPI can be read by Jena.  However, Jena TDB is specific to Jena, and you must use Jena to access it.  See below for persistence methods.

Semantic Knowledge Store

Stores represent the ability store RDF and OWL representations.  These tool provide support for larger data sets, and datasets which can be used in a way which will allow for some amount of use within service environments.  Although the tools listed below are open source, there are also non-open source tools which provide similar functionality including AlegroGraph and Oracle 11G.  These system may also use Jena or Sesame for access.

...

Note :  These systems can also interact.  Specifically Jena can access Sesame through a model factory component and Sesame can access Jena through a SAIL.  This does not indicate compatibility, but rather an abstraction.  This means that the database tables created by Jena SDF do not match the RDBMS tables generated by Sesame.  However, as an example, code written using Jena as an interface, if written correctly, can be independent of the persistence method.

Data Conversion and Artifact Access

These are tools which aid in the programatic access to artifact sources to aid in transformations and processing.

...

In addition the standard access tools  for accessing RDF and OWL representations see above.

Integration Support

Spring :  http://www.springsource.org/ - Spring provides a number of components which are designed to either ease the adoption of new technologies, or to provide greater control over certain integrations.  The number of Spring components is large, however, some significant components include Spring Framework, Spring Flow, Spring Web Services, and Spring Security.  These components are all based on certain core patterns that make components more flexible.

Inference, Rules and Expert Systems

These are defined as a way to provide methods of representing and executing decision support, orchestration, analysis and many other aspects of application functionality.  They share in common a way to represent certain behaviors for which a more concise language has been created then traditional programming languages.  Some of them support standards such as OWL DL, or RuleML but may support extensions or additional functionality which make them suitable.

RDF/OWL Tools

Pellet : http://clarkparsia.com/pellet - Pellet is an OWL 2 (partial) reasoner providing the core classification functionality.  Pellet is broadly used and integrated into various platforms including Protege 4 and TopBraid Composer.  It is written directly in Java and so can easily be integrated into other java applications directly without external configurations or implementations.

Fact++ : http://owl.man.ac.uk/factplusplus/ - Fact++ is an implementation of an OWL 2 (partial) reasoner written in C++.  Fact ++ requires the implementation of a component which is accessed by applications.  Because it is written in C++ it has the potential to be faster then Java implementations.  

...

TopBraid SPINhttp://www.topquadrant.com/topbraid/spin/api/ - is an implementation of the SPARQL Inferencing Notation.  It is an open source implementation, and can be integrate in a number of ways.  It has many uses including an RDF Constraint language, a Rules language, a SPARQL Function language (used as a way to extend SPARQL), and a method of storing reusable queries.  Envisioned and implemented by TopBraid, it expands functional behaviors in ways that are impossible to declare in DL, or where it would be inappropriate.  Use of TopBraid SPIN requires the use of the Jena API.

General Purpose

Jess : http://www.jessrules.com/ - Stands for Java Expert System Shell.  Jess is an implementation of the RETE algorithm and supports a number of rule definition languages.  It is the reference implementation of JSR 94 standard for java rule engines. It supports CLIPS and RuleML languages, as well as it's own XML representation of CLIPS.  It provides many ways to extend the functionality into Java Applications in both direction (able to call java functions from the rules, as well as call rule functionality from java).  It is available for without cost for academic  uses as well as various commercial licenses.  It does not have a cost for development, as there is a trial download that times out after a number of days, and can be re-downloaded.

Drools Expert : http://jboss.org/drools/ - Drools is a component of the JBoss community. It is described as a business logic integration platform.  It has a number of components which may be optional integrated to provide different support including a managed rule repository.  It is an implementation of the RETE algorithm. Drools supports a proprietary language as well as an XML representation of it's own language.  Transformations of RuleML to Drools may be available.

Flow Management for services, processes and web applications

Open ODE : http://ode.apache.org/ - Open ODE is an apache project which utilizes the WS-BPEL standard for organization of work flow.  It is supported by Apache Service MIX and can be used to manage web service choreography where that is appropriate.

...

Spring Flow :  http://www.springsource.org/go-webflow2 - Using an integration with the Spring MVC, Spring flow allows for the definition of flows which control activity within a given session.  This tool separates the page flow from the business logic allowing for many alternative flows using the same pages.  This simplifies applications which perform activities in different modes (create vs edit) or through different means (create "Wizards").

Design

OWL and RDF provide the ability to represent information both as metadata as well as functional components of a system.  As a result, individuals may produce RDF or OWL ontologies which will be integrated into the fabric of the system.  In addition to the standard tools supported by CBIIT relating to design, the use of good ontology editors will help promote the consistency of representation and functionality.  In some senses these are IDEs in the fact that development occurs, however, they can also be considered as PSM design tools because the output becomes a documentable model representation.

...

Note : Since there is no open source or community tool for accessing stores other then text files, many developers use Protege 4 or TopBraid Composer, and then create scripted or programed solutions to upload models into those stores.  However, there are other significant addition to functionality in the paid versions of TopBraid Composer that are not addressed here.

Component Repository

There are some current repository systems that may help in the management of elements such as rules and flow controls.

...