Protégé Editing Tips

There are a number of tricks to using Protégé effectively for editing. Some of those are listed here. See also the document structOntology v Protégé?

General Tips

 * Until you are comfortable editing with Protégé, save your work frequently under new names so you can recover to an earlier version if need be
 * To re-establish an alphabetical ordering of concepts by hierarchy level, Save the ontology and then re-open
 * Sometimes finding an entry is difficult in a large listing; use the search box at the upper right to find the item; it includes autocomplete, is not case sensitive, but enter underscores or hyphens if used

Adding Classes/Concepts

 * Try to name your concepts or classes uniformly (capitalization, use of spaces, hyphens or underscores) (initial cap with underscores for spaces is the standard used herein)
 * If making large numbers of changes, create a new data property (such as  with a literal value of "yes") so that you can later filter and devote more attention to the entries
 * You will be flagged if you attempt to use a duplicate identifier
 * At time of entry, try to make all known annotation entries, especially including  and
 * When making entries, take care to use the language identifier; note if you save and re-open to get the hierarchical ordering back, you will need to re-set these identifiers.

Bulk Additions

 * For bulk additions, use the Protégé Tools -> Create class hierarchy ... option. To use the utility:
 * First save your work; sometimes errors are generated (most always non-fatal and harmless)
 * From the Protégé main menu, select Tools -> Create class hierarchy ...; then follow the windows and prompts
 * Pick the root class; your new entries will be located under this choice
 * Generally, you may ignore the prefix and suffix options
 * You may enter nested concepts by using the tab indent
 * If you get Java errors at completion, it most often means you have repeated a previously used identifier
 * Once these items have been stubbed in, return to each new entry and complete its annotations

Deleting Classes/Concepts

 * Make sure you are working under the Classes tab with the Class hierarchy displayed
 * [You may want to set your tree preferences (Edit -> Preferences -> Tree preferences tab) to automatically expand the hierarchy with a depth of 4 or so; if you just change the setting, you will need to exit and open the application again to have the change take effect]
 * Highlight the item to be deleted (and/or its children). Enter the delete key [[Image:Protege_delete_key.png]]
 * At this point you will get a confirmation; select children if you want the entire branch removed
 * But, CAUTION! If there are multiple occurrences of the class throughout the ontology, ALL occurrences will be deleted
 * To prevent this, inspect all Superclasses for the item, and remove the current parent only if you want to retain the other occurrences
 * You may use the multi-select keys (Ctrl and Shift) for discontinuous and continuous range selections
 * You may NOT use the Delete key )(since there are intertwined linkages for most concepts)

Moving or Renaming Classes/Concepts

 * NOTE: Remember, classes may be used in multiple places throughout your ontology! If you delete an entry without paying attention to certain guidelines, you may remove ALL occurrences throughout the system!
 * If you need to re-name the identifier, use the Refactor -> Change entity URI ... option. Make sure you have Change all entities with this URI checked. Note, however, that any See also occurrences will NOT be changed
 * To prevent unwanted deletes, first assign your moved concept to a new parent class. You do so by choosing the green plus arrow icon under the Superclasses entry in the Description panel. This will invoke a popup window; use the Class hierarchy tab to navigate to the desired new parent and pick complete. Then, delete the former parent from which you want to move as shown by the red X arrow button: