A unique feature of eagle-i is that the data collection and search tools are completely driven by ontologies. These ontologies are a set of modules that are written in the OWL language and edited and managed using Protégé. The following instructions will help you configure Protégé, edit the core ontology module, and add annotations to drive the user interfaces.
Our modeling approach had three main drivers. The first was to represent real data collected about resources. The second was to have the ontology control the userinterface (UI) and the logic of the data collection tool and search application. The third was a commitment to build a set of ontologies that could be reusable and interoperable with other ontologies and existing efforts for representing biomedical entities. This latter requirement translated into decisions to a) follow OBO Foundry principles and best practices for biomedical ontology development and b) engage in active discussions within the bio-ontology community in order to provide context for eagle-i interoperability and align with domain-wide standards for resource representation (http://bit.ly/rrcoord).
The following instructions will help you configure Protégé, edit the core ontology module, and add annotations to drive the user interfaces. Protégé is a free, open source ontology editor and knowledge-base framework.
Note: You can view the Ontology using Protégé 4.0.2 but to edit, you must install Protégé 4.1.
Step 1: Download Protégé
Step 2: Configure Protégé
Step 3: Set Protégé preferences
'en, en-US, !'
in the languages column. Include the apostrophe.Step 4: Add the local files for ontologies you want to import.
This step adds a set of directories from your local (Subversion) SVN repositories. This example uses the /datamodel/
directory.
/datamodel/trunk/src/ontology/imports /datamodel/trunk/src/ontology/external /datamodel/trunk/src/ontology/external/iao /datamodel/trunk/src/ontology/external/iao/external /datamodel/trunk/src/ontology/external/iao/protégé |
Your dialog window should look like this:
It is important to note that the following steps assume that you have a basic understanding of Protégé, and the revision control software Subversion as well as an understanding of an ontology.
There are seven basic steps when adding a new term to the ontology.
Step 1: Send an e-mail to notify the curators you are locking files.
ero.owl
and eagle-i-app.owl
The body of the e-mail should looks something like this:[LOCKING] eagle-i-app.owl and ero.owl for editing.
Step 2: Open Subversion and update the ontology files.
svn+ssh://orchestra.med.harvard.edu/svn/cbmi/u24/eagle-i-dev/datamodel/trunk/src/ontology
This step updates three files, ids.xlsx, ero.owl
and eagle-i-app.owl
, as well as all relevant imports.
Step 3: Add the new term to the ontology.
Open the Excel file, IDS.xlsx
, which is typically located here: SVN ---> src -> ontology
. This file consists of five columns of information labeled as follows: column (A) ERO ID #, column (B) Mireot, (C) Label, (D) Class and column (E) URI.
Column A |
Column B |
Column C |
Column D |
Column E |
Choose the next consecutive number |
Nothing |
Enter the name of the term |
Typ Class |
Choose the next consecutive number |
/Users/JaneCurator/eagle-i-datamodel/trunk/src/ontology/eagle-i-app.owl.
Step 4: Change the term label to an eagle-i preferred label.
Follow these next series of steps to the eagle-i preferred label. Typically, new terms entered into an ontology are always lowercase. Exceptions are made for terms that are proper names or acronyms, like DNA. The eagle-i preferred label is the proper label for the term, typically with the first letter capitalized. For example, polymerase chain reaction would be entered as "polymerase chain reaction" in the ero.owl
file and the eagle-i preferred label would be Polymerase chain reaction.
Step 5: Use the Hermit Reasoner to classify the ontology and make sure it is consistent.
Step 6: Commit the changes in Subversion
Best practice is to make only a few changes before committing to SVN. Keep detailed notes of the changes you make and always add comments describing the hanges you've made when committing.
Step: 7: Notify the curators that the file has been unlocked
This is the last step. Notify the curators that the file has been unlocked using an e-mail that looks similar to: [UNLOCKING] ero.owl and eagle-i-app.owl.
Before obsoleting a term it is best practice to check the usage of the terms across the repositories. You can do this using either SPARQL queries or ECDT tools.
Step 1: Update Subversion
ids.xlsx, ero.owl
and eagle-i-app.owl
, as well as all relevant imports.Step 2: Obsolete the term
/Users/JaneCurator/eagle-i-datamodel/trunk/src/ontology/eagle-i-app.owl.
ObsoleteClass
. Click OK.Remember to keep track of any data that is currently using the obsoleted term. That data will need to be migrated. Provide a migration (Excel) file for the build team.
Step 3: Use the Hermit Reasoner to classify the ontology
Step 4: Commi to SVN
Application-specific properties and annotations are kept in the eagle-i app file. https://sites.google.com/a/eagle-i.org/workspace/build-team-workspace/data-model-integration/applicationspecificannotations for most current values) The purpose of these annotation properties and their values is to allow curators to "flag" classes and properties to "tell" the eagle-i, for example, to which class is a resource is connected or which property connects a resource to a lab.
Currently the following properties that can be used:
{{- inClassGroup
- inPropertyGroup}}
There is a specific set of values for both
{{inClassGroup and
inPropertyGroup}}
( see https://sites.google.com/a/eagle-i.org/workspace/build-team-workspace/data-model-integration/applicationspecificannotations for most current values)
You can see all these values in the ontology by:
1)Selecting the eagle-i-app-ont ontology as the native ontology in Protégé from the drop-down of active ontology as shown below:
2)Click on the individuals tab and check each single value (note that there is comments explaining the usage and i the Types" indicates if value applies to classes or properties
In order to flag a class or properties with a particular value:
1)Make sure you are adding annotation in the eagle-i-app ontology (see below)
2)Select the class or property form the class or property hierarchy that you want to annotate
3)Select the annotation tab on the right panel and click on add annotation
4)Select inClassGroup or inPropertyGroup from the list (depending what you are annotating)
5)Select 'Individuals' and 'Entity URI' form the right tabs as shown below:
6)Select the value of annotation from the list. And click OK.
For the specifics of the values and meaning of current annotation values please refer to:
[https://sites.google.com/a/eagle-i.org/workspace/build-team-workspace/data-model-integration/applicationspecificannotations
]