Objective

This procedural guide is meant in performing a new Protege server build for both the NCI Thesaurus and BiomedGT instances.  Protege server builds can be performed either manually, or via automated run scripts.  Generally, using the automated scripts would be less time-consuming. However, it is recommended that going through the manual process (at least once) be performed to understand the concepts and the workflow of a Protege build.  Doing so will facilitate troubleshooting any future problems during a build.

Server builds can include items such as bug fixes, software updates, and updates to the database schema.  Build procedures will differ depending upon the aforementioned scenarios.

Background

Protégé is a free, open-source editor, specific for working with ontologies. 

Component Overview

Steps to complete a Manual Protégé Server Build Process for Dev, QA, and Stage Tiers

 **You will need tier-specific info for Dev, QA, Stage before commencing the build. Production-tier information is separated, since the procedures and build information are a bit different than the other tiers.

  Backup Current Database Project

 If there is an existing database project file which the Protege server is referencing, it would be a good idea to save a backup copy, in case the project ever needs to be rolled back to due to new build complications.  Please follow the steps below to export a copy of the database to a file.  If this is the very first build from scratch, scroll down to the 'Protege Updated File Checkout and Build' section.

       Protege_x.x represents the current Protégé release version number.
       PROTÉGÉ INSTANCE represents either BiomedGT or NCIThesaurus ontology.
       Protégé.Client-x.x.x represents the current build version number.

  Protégé Updated File Checkout and Build

     https://gforge.nci.nih.gov/svnroot/protegegui

     svn https://gforge.nci.nih.gov/svnroot/protegegui

     Note: The above target will check out the entire Protege project. This can take up a good deal of space. If you wish to only checkout the Protege source code, you can use the below target:

     https://gforge.nci.nih.gov/svnroot/protegegui/collaborativedevterminologytools/scripts/trunk

     svn-url-trunk.properties (default)

     'ncitab.url=$nci.base.url/protegegui/trunk'
     ncitab.project=$projects/ncitab

     nciconcepthistory.url=$nci.base.url/protegehistory/NCIConceptHistory/trunk
     nciconcepthistory.project=$projects/nciprojecthistory

     ncievshistory.url=$nci.base.url/protegehistory/NCIEVSHistory/trunk
     ncievshistory.project=$projects/ncievshistory

     classification.url=$nci.base.url/classification/trunk
     classification.project=$projects/classification
         

     svn-url-1.4.properties (customized)

     ncitab.url=$nci.base.url/nci-branches/1.4/protegegui
     ncitab.project=$projects/ncitab

     nciconcepthistory.url=$nci.base.url/nci-branches/1.4/NCIConceptHistory
     nciconcepthistory.project=$projects/nciconcepthistory

     ncievshistory.url=$nci.base.url*/nci-branches/1.4*/NCIEVSHistory
     ncievshistory.project=$projects/ncievshistory

     classification.url=$nci.base.url/nci-branches/1.4/classification
     classification.project=$projects/classification

Protege Server Build Ant Commands

Run the following ant commands within the same directory as the build.xml file. The build.xml is usually stored in the same directory as the 'local.properties' and 'version.info' file.  Once the build.xml file is found, the ant build targets are now ready to be run:

     Note: When copying the client to any server tier from Windows, DO NOT copy the JRE folder.  A copy of the JRE should already installed on the server box, and copying over an existing JRE will take too long.

Configuring New Protege Build

If the build involves software updates that include any database code or schema changes,  skip to the 'Software Updates ' section.  For builds that will only require software updates   connecting to an existing database project, please follow the 'Protege Software Updates' section.