ORB term request prototype

From phenoscape
Revision as of 12:46, 18 January 2010 by Mvn4 (talk | contribs) (Project plan)

Introduction

The vision of this project is to develop an application that will allow data curators to use new ontology terms without creating a workflow bottleneck.

Background

There is a need for applications that will expedite the annotation of phenotypic characters using ontologies and also promote community participation in the expansion and refinement of ontologies. One particular need that has arisen within Phenoscape and other projects is for an Ontology Request Broker (ORB), an application that can launch new ontology term requests within existing data curation workflows, record term provenance and community discussion, enable temporary terms to be used in data annotation, and update temporary terms once a request has been resolved.

Scope

Here is a documentation of ORB term request service. ORB will be accessible via an online interface and programmatically through RESTful web-services.

ORB architecture overview

Error creating thumbnail: Unable to save thumbnail to destination

ORB requirements specification

System behavior

ORB will allow users to submit (and view?) requests for new ontology terms. In the prototype, communication between the client and server will be effected via RESTful web-services. Functionality will be demonstrated via a custom web interface and widget in Phenex. The integration in Phenex will be a demonstration of the ORB’s “integratability” with other related applications via the API.

Term submission

Term submission use case'

Error creating thumbnail: Unable to save thumbnail to destination

Via the web interface or the ORB widget in Phenex a user will have to submit a term’s

  • name,
  • definition, and
  • parent relationship.

The optional fields will be:

  • database references,
  • citations,
  • other relationships,
  • synonym(s), and
  • comments.

A user will be required to submit their e-mail addresses and their names (optional).

On term submission, ORB will:

  • Validate if the required fields are provided, send the user an invalid term request message and return to the submission interface.

If the user’s submission is successful, the application will:

  • Notify the user of successful submission
  • Set the status of the term to “Pending”
  • Assign a temporary ID (ORB:xxxxxx) and store in a database. The xes in the temporary ID represent an auto-generated unique number
  • Automatically send notification messages to the ontology gate keeper(s)
  • Send the term request to the community through the relevant mailing lists at source forge (http://sourceforge.net/projects/obo/support).

Input from the BBOP group

  • There isn't really a reason that "temporary terms" can't be added to the ontology directly, with some kind of status that prevents them from showing in editors etc.
  • Term status values:
    • User trial
    • Requested but unreviewed
    • Reviewed and accepted
    • Obsolete
  • Request types:
    • New term
    • Definition revision
    • Graph placement change
    • Obsoletion

Term processing

Term Resolution Use Case

Error creating thumbnail: Unable to save thumbnail to destination

If a term is resolved (i.e. a reviewer(s) either accepts a term requested or provides a more accurate term as an alternative) the ontology gatekeeper will provide the new term plus all the information provided by the expert via ORB’s web service.

The application will subsequently:

  • Update the status of the new term to “Resolved”
  • Assign the term a permanent ID as provided by the ontology gatekeeper
  • Generate a notification mail to the user and community and the resolution.

If a term is rejected (i.e. the expert(s) and community concur that the requested term is not acceptable and no alternative exists for the request), the gatekeepers will submit this feedback plus any explanations, comments etc. that may have been availed by the expert(s). In this case ORB will:

  • Set the term status to “Rejected”,
  • Send notification e-mail to the user and community.

Implementation details

ORB will be a platform-independent web service with an exposed API for its integration into pre-existing ontology suites such as Phenex, OBO-edit, Phenote etc. Java will be the main language of development and application will be designed in a RESTful way using Restlet, a lightweight REST framework for Java applications.

The application will support GET, POST and PUT requests and the data will be stored in PostgreSQL, an object relational database management system. Hibernate library will be utilized to map the java persistent classes to the relational database. From ORB web-service interface (or Phenex widget) and using the term ID or name, users will be able to access information provided during submission and resolution.

In this prototype, the functionality of ORB term request services and the cycle will be exemplified by working with the Teleost Anatomy and Development Ontology (TAO) gatekeeper (http://www.berkeleybop.org/ontologies/owl/TAO) and TAO mailing list at source forge.

Project plan

An agile approach is used in ORB development. The sign √ indicates accomplished tasks while * indicates tasks yet to be implemented

Week 1: 4 to 9 January, 2010 Review ORB and discuss changes To review the ORB project, suggest any changes in light of existing technologies from literature review and input from the team and document the (including the changes).

  • Revise the ORB project plan and milestones
  • Identify a suitable citation management tool and learn how to utilize it
  • Perform a comprehensive literature search and read the relevant papers and add to the ORB literature review
  • Come up with an outline for the MSc. dissertation

Links & Resources

Contacts

Name: Mtakai Ngara

E-mail: mtakai@nescent.org