ORB term request prototype

From phenoscape
Revision as of 12:55, 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 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


Week 2: 10 to 16 January, 2010 Complete literature review, document and discuss with project team

  • Perform further literature search, read and complete literature review
  • Document the project requirements (technologies to be used, architecture, behavior) in the project wiki
  • Hold an online meeting with NESCent team about progress and ORB implementation based on literature review and existing technologies


Week 3: 17 to 23 January, 2010 Document ORB requirements and specification based on input from literature, discussion and research

  • Revise the ORB requirements, specification and document it to the wiki


Week 4: 24 to 30 January, 2010 Revise, design and implement ORB data layer based on existing technologies, input from project team and implement the database.

  • Design and implement the ORB database
  • Document the ORB database schema


Week 5: 31st January to 6th February 2010 Design and implement ORB Application layer

  • Identify and document the role of each server application
  • Start implementing/coding the application layer


Week 6: 7 to 13 February, 2010 Continue implementing the application layer plus the unit test

  • Continue implementing the application layer and unit tests


Week 7: 14 to 20 February, 2010 Continue implementing the application layer plus the unit test

  • Continue implementing the application layer and unit tests


Week 8: 21 to 27 February, 2010 Continue implementing the application layer plus the unit test

  • Continue implementing the application layer and unit tests


Week 9: 28th February to 6th March 2010 Continue implementing the application layer plus the unit test

  • Continue implementing the application layer and unit tests

Week 10: 7th to 13th March 2010 Start working on the ORB user/client interface

  • Identify and describe the user/client interface
  • Begin implementing the user/client interface

Week 12: 21st to 27th March 2010

  • Continue working on the user/client interface

Week 13: 28th March to 3rd April 2010

  • Continue working on the user/client interface


Week 14: 4th to 10th April 2010

  • Continue working on the user/client interface


Week 15: 11th to 17th April, 2010

  • Continue working on the user/client interface


Week 16: 18th to 24th April, 2010

  • Continue working on the user/client interface


Week 17: 25th April to 1st May 2010 Complete the ORB application

  • Assemble all the ORB components and have a complete software
  • Refine the code implementation and fix any bugs

Week 18: 2nd to 8th May 2010 Refinement and fix bugs

  • Continue fixing bugs

Week 19: 9th to 15th May, 2010 Begin deployment

  • Deploy ORB to a publicly accessible server
  • Document ORB server

Week 20: 16th to 22nd May, 2010

 To be added

Week 21: 23rd to 29th May, 2010

 To be added

Week 22: 30th to 31st May, 2010 Submit the dissertation to the University

Links & Resources

Contacts

Name: Mtakai Ngara

E-mail: mtakai@nescent.org