Introduction

This document gives an overview over the planed functions, internal processes and the database schema of the Ontology Edit Service (OES) tool. By using the OES tool, the user will be able to upload, edit, save and export an ontology in OBO format.

OES style and functions

The following PPT presentation gives an idea how the OES tool will look like and what functions will be available.

OES outline.

Workflow diagrams

A detailed description of the used data and its workflow can be seen in the shown workflow diagrams. There are graphics for the procedures Ontology Upload, Term Search, Edit Term and Manage Ontology.

Ontology Upload

File Upload

Term Search

Term Search

Edit Term

Edit Term

Manage Ontology

Manage Ontology

Database schema

The OES tool is based on the following database schema. This is similar to the schema of the Ontology Lookup Service (OLS) but has several extensions in the tables "dbxref", "term", "annotation", "term_synonym" and "ontology". Furthermore it has three additional tables "users", "term_access" and "ontology_user".

OES Table Schema

The tables "term", "annotation", "term_synonym" and "dbxref" have been extended by the additional attributes "modified_by", "modified_at", "created_by" and "created_at". This should provide a traceability to find out who created or modified which term, dbxref, annotation or synonym in a certain ontology and when.
The "ontology" table has the extra attributes "status", which can be either private or public and "allow_cycles", which indicates whether an ontology can contain cycles, i.e. a term could be linked to an ancestor term.
The additional table "users" contains information about registered users like name, password, email and company. The role of each user is determined in the "ontology_user" table, where a certain user can be either adminstrator or user of a certain ontology. Administrators have total access to their ontology(s) and can give registered users access to a certain range of their ontology. This range is defined in the table "term_access", where a certain user identified by his/her ID has access to the range specified by the "term_id", i.e. all the terms which are direct or indirect descendants of this term.