Difference between revisions of "ORB term request prototype"

From phenoscape
(Project plan)
(Project plan)
Line 86: Line 86:
  
 
'''Week 1: 4 to 9 January, 2010'''
 
'''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).'''
+
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
 
*Revise the ORB project plan and milestones
 
*Identify a suitable citation management tool and learn how to utilize it
 
*Identify a suitable citation management tool and learn how to utilize it
Line 92: Line 92:
  
  
Week 2: 10 to 16 January, 2010
+
'''Week 2: 10 to 16 January, 2010'''
 
Complete literature review, document and discuss with project team
 
Complete literature review, document and discuss with project team
 
*Perform further literature search, read and complete literature review
 
*Perform further literature search, read and complete literature review
Line 99: Line 99:
  
  
Week 3: 17 to 23 January, 2010
+
'''Week 3: 17 to 23 January, 2010'''
 
Document ORB requirements and specification based on input from literature, discussion and research
 
Document ORB requirements and specification based on input from literature, discussion and research
 
*Revise the ORB requirements, specification and document it to the wiki
 
*Revise the ORB requirements, specification and document it to the wiki
  
  
Week 4: 24 to 30 January, 2010
+
'''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.
 
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
 
*Design and implement the ORB database
Line 110: Line 110:
  
  
Week 5: 31st January to 6th February 2010
+
'''Week 5: 31st January to 6th February 2010'''
 
Design and implement ORB Application layer
 
Design and implement ORB Application layer
 
*Identify and document the role of each server application
 
*Identify and document the role of each server application
Line 116: Line 116:
  
  
Week 6: 7 to 13 February, 2010
+
'''Week 6: 7 to 13 February, 2010'''
 
Continue implementing the application layer plus the unit test
 
Continue implementing the application layer plus the unit test
 
*Continue implementing the application layer and unit tests
 
*Continue implementing the application layer and unit tests
  
  
Week 7: 14 to 20 February, 2010
+
'''Week 7: 14 to 20 February, 2010'''
 
Continue implementing the application layer plus the unit test
 
Continue implementing the application layer plus the unit test
 
*Continue implementing the application layer and unit tests
 
*Continue implementing the application layer and unit tests
  
  
Week 8: 21 to 27 February, 2010
+
'''Week 8: 21 to 27 February, 2010'''
 
Continue implementing the application layer plus the unit test
 
Continue implementing the application layer plus the unit test
 
*Continue implementing the application layer and unit tests
 
*Continue implementing the application layer and unit tests
  
  
Week 9:  28th February to 6th March 2010
+
'''Week 9:  28th February to 6th March 2010'''
 
Continue implementing the application layer plus the unit test
 
Continue implementing the application layer plus the unit test
 
*Continue implementing the application layer and unit tests
 
*Continue implementing the application layer and unit tests
  
Week 10: 7th to 13th March 2010
+
'''Week 10: 7th to 13th March 2010'''
 
Start working on the ORB user/client interface
 
Start working on the ORB user/client interface
 
*Identify and describe the user/client interface
 
*Identify and describe the user/client interface
 
*Begin implementing the user/client interface
 
*Begin implementing the user/client interface
  
Week 12: 21st to 27th March 2010
+
'''Week 12: 21st to 27th March 2010'''
 
*Continue working on the user/client interface
 
*Continue working on the user/client interface
  
Week 13: 28th March to 3rd April 2010
+
'''Week 13: 28th March to 3rd April 2010'''
 
*Continue working on the user/client interface
 
*Continue working on the user/client interface
  
  
Week 14: 4th to 10th April 2010
+
'''Week 14: 4th to 10th April 2010'''
 
*Continue working on the user/client interface
 
*Continue working on the user/client interface
  
  
Week 15: 11th to 17th April, 2010
+
'''Week 15: 11th to 17th April, 2010'''
 
*Continue working on the user/client interface
 
*Continue working on the user/client interface
  
  
Week 16: 18th to 24th April, 2010
+
'''Week 16: 18th to 24th April, 2010'''
 
*Continue working on the user/client interface
 
*Continue working on the user/client interface
  
  
Week 17: 25th April to 1st May 2010
+
'''Week 17: 25th April to 1st May 2010'''
 
Complete the ORB application
 
Complete the ORB application
 
*Assemble all the ORB components and have a complete software
 
*Assemble all the ORB components and have a complete software
 
*Refine the code implementation and fix any bugs
 
*Refine the code implementation and fix any bugs
  
Week 18: 2nd to 8th May 2010
+
'''Week 18: 2nd to 8th May 2010'''
 
Refinement and fix bugs
 
Refinement and fix bugs
 
*Continue fixing bugs
 
*Continue fixing bugs
  
Week 19: 9th to 15th May, 2010
+
'''Week 19: 9th to 15th May, 2010'''
 
Begin deployment
 
Begin deployment
 
*Deploy ORB to a publicly accessible server
 
*Deploy ORB to a publicly accessible server
 
*Document ORB server
 
*Document ORB server
Week 20: 16th to 22nd May, 2010
+
'''Week 20: 16th to 22nd May, 2010'''
 +
* To be added
 +
'''Week 21: 23rd to 29th May, 2010'''
 
   To be added
 
   To be added
Week 21: 23rd to 29th May, 2010
+
'''Week 22: 30th to 31st May, 2010'''
  To be added
+
*Submit the dissertation to the University
Week 22: 30th to 31st May, 2010
 
Submit the dissertation to the University
 
  
 
== Links & Resources ==
 
== Links & Resources ==

Revision as of 12:58, 18 January 2010

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