ORB term request prototype

From phenoscape
Revision as of 09:50, 20 January 2010 by Mvn4 (talk | contribs) (Headline text)

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

Requirements

Accessibility

  • ORB will have a web interface for easy access via browsers
  • It will also have REST-style web service for programmatic access
  • The prototype will be integrated into Phenex as a demonstration of an interfaceable API.

Actors and roles

  • Requester
    • Has an account or registers if it's the first time at the site
    • Submits a term request
    • Can edit their specific requested term's; name, definition, parent, relations, references, cross-references, synonyms and add comments.
  • Ontology gatekeeper
    • Has an account or registers if it’s the first time visiting the site
    • Can edit all the requested term’s fields in the respective ontology(-ies)
    • The only one with privileges to change a term’s status
  • Developers
    • Have access to the source code and an exposed API for integrating and developing ORB further
  • Casual user
    • May or may not have an account at the site
    • Can browse , search, download and comment on terms
  • Community
    • Report bugs
    • Submit feature requests
    • Participate in term focused discussions

Note: The roles of casual users also apply to developers, requester, ontology gatekeepers and the community at large.

ORB prototype functions

Required

    • New term request:
    • Verifies if the requester is registered. If not, generates the registration form else, the login page for requesters
    • On successful registration(for first time users) or login(for registered users), generates the term submission form
    • Validates if all the required term fields are provided
    • Validates if the e-mail provided is valid
    • Validates if the requested term already exists in the ontology to which it's to be added
  • If the request is valid:
    • Assign's a temporary ID, status and generates date of submission to the term
    • Informs the requester of successful submission
    • Sends the term's temporary ID plus the details to the requester's e-mail account
    • Persists the requested term to the ORB database
    • Generates an update at the latest activity section of the site
  • If the request is invalid because of missing required fields or inauthentic e-mail address, ORB rejects the request and sends a message to the requester about the failed submission and the reason
  • If the request is invalid because the term already exists in the designated ontology, ORB informs the requester about the failed submission and returns the matching term from the ontology with it's permanent ID.
    • Term editing
  • Validates if user is a registered ontology gatekeeper for the specific ontology or the requester of the specific term
  • Generates a term's editable fields
  • Saves the terms altered or added information
  • Sends a notification to the term's requester and ontology gatekeeper(if one exists)
  • Generates an update about the action at the site's latest activity section
    • Term's status change
  • Verifies if the user is the authentic ontology gatekeeper for the specific ontology
  • If the valid gatekeeper, generates term's page with the editable feature
  • if status is set to 'resolved', a pop up field is generated for inserting the term's permanent ID
  • Saves the terms edited information to the database
  • Sends a notification message to the term requester's e-mail account
  • Generates an update about the edited term at the latest activity section
    • Discussion board
  • ORB will have a term focused discussion board for all users to submit comments

Useful functions that maybe implemented in the prototype

    • Validation of the submitted term's text definition
    • Validation of the term's relations if matching those specified in the ontology
    • Auto-completion services for relations,ontology name,parent and synonyms during term request and also in the term searching fields
    • Enable a term request submission to multiple ontologies


Support

    • A comprehensive documentation on ORB's functions(how to..),implementation and help pages
    • Registration and extensive documentation at sourceforge, Biocatalogue and Phenoscape wiki
    • Have a bug tracking and feature request mechanism

==


Use cases

Specification

Activity

Database schema

REST services

Project plan

An agile approach will be used in ORB development. The sign √ indicates accomplished tasks while * indicates tasks which ought to have been implemented but haven't been

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

Meetings

Jan 19, 2010 (notes by Mtakai)

Present

    • Paula Mubee
    • Hilmar Lapp
    • Wasila Dahdul
    • Jim Bahloff
    • Peter Midford
    • Mtakai Ngara

Agenda

    • ORB requirements
    • Working modalities

Minutes

    • ORB will be accessible via browsers and programmatically as REST web services
    • Term requester and Ontology gatekeepers must create an account at the site
    • A function to allow for submission of a term to multiple ontologies would useful
    • Apart from term submission, definition revision, term obsoletion and graph placement should be implemented
    • A casual user need not register at the site
    • Function for uploading a file and downloading terms to be implemented
    • Have a section within ORB site for updates on latest acivities
    • Integrate ORB into phenex
    • Host the ORB project at sourceforge on it's page
    • Have a mechanism of checking if a term already exists in an ontology
    • Communication via e-mail
    • ORB meetings after each use case implementation
    • Code will be shared via subversion repository for team review
  • Action items
    • Contact the Berkley group(BBPO) on ORB trial
    • Have screen shots of ORB uploaded in the wiki to demonstrate functionality

Links & Resources


Contacts

Name: Mtakai Ngara

E-mail: mtakai@nescent.org