Fetching contributors…
Cannot retrieve contributors at this time
82 lines (66 sloc) 3.97 KB


This file documents the steps needed to create a working development environment for NIFSTD.

NIFSTD development uses this repo, git (GitHub), pyontutils (Python3.6), Protege, ELK, FACT++, and InterLex.

NIFSTD development also uses SciGraph (Java8), and OWLAPI (see pyontutils for more information).


Set up git. This guide can be helpful..

We only accept pull requests with commits that have an email address.

Please be sure to set your commit email. NOTE: If you have not participated in open source development before I often recommend creating a new email specifically for all development related activities.

If you have never used git before check out the git bootcamp guides and if you have never used GitHub before check out the GitHub guides.


If you do not have push rights to SciCrunch/NIF-Ontology, please fork the repo so that you can push somewhere that can submit pull requests.

cd ~/git/
git clone${github_username}/NIF-Ontology.git
# OR if you have push rights to the SciCrunch org repo
git clone

My default development setup assumes that all git repos live in ~/git/, so if your setup is different you should adjust accordingly. Note that many of the scripts in pyontutils avoid this issue by using /tmp/ as the default location for local git repos and the --git-local option can be used to adjust accordingly. However, not all scripts have been updated with these assumptions, so if you encounter a FileNotFoundError that is likely the cause.


Install pyontutils by following the installation instructions here.


Download and install the latest version of Protege here.

NIFSTD is a very large ontology which requires more memory than the Protege defaults.

Modify (or equivalent) so that it launches java with jre/bin/java -Xmx8G -Xms500M \ (or similar). If you do not you will see the following line in the protege logs:
An error occurred whilst loading the ontology at Java heap space. Cause: {}.

Make sure that Expand trees by default is disabled in menu File -> Preferences -> General otherwise load times can stretch on for many minutes.


There is an example ontology catalog catalog-v001.xml.example which should be installed by cp catalog-v001.xml.example catalog-v001.xml. The file itself is not tracked to preven conflicts when switching branches.


You can obtain copies of ELK and FACT++ by launching protege and going to menu bar File -> Check for plugins and selecting ELK and FACT++. NOTE: sometimes the plugin repos don't load, if that happens try again. Otherwise you can download the reasoner plugins and put them in Protege-*/plugins/.


Get the latest version of elk-distribution-* from Or get the latest version of


Get the latest version of*.jar from


InterLex provides all new identifiers for NIFSTD. You will need a SciCrunch account in order to access the InterLex web api and to use InterLex to create new terms. NOTE: At the moment only curators can add terms so let us know if you need access.