Difference between revisions of "ORB term request prototype"
(→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). | |
*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 22: 30th to 31st May, 2010''' | |
− | + | *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
Contents
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
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'
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
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
- Early and incomplete ORB implementation in Perl by Seth Carbon. This interfaces directly with the SourceForge tracker.
Contacts
Name: Mtakai Ngara
E-mail: mtakai@nescent.org