Contributing to Protege
Protege is an open source project, with a large community, many of whose members help to add to its success through varied means.
This page explains the routes through which you can contribute to Protege and its community.
If you are interested in other ways of helping, please contact us through the protege-user mailing list.
Plenty of people ask questions on the various mailing lists available for Protege support, and it would be impossible to deal with this big an inbox, if it were not for the fellow community members that frequently offer answers, advice and pointers. We welcome contributions from everyone.
Tools such as Protege are continually growing and it is hard to spend huge amounts of time changing screenshots, wording and formatting in the documentation (such that it is).
One of the main reasons for these documents to be published on a wiki is that it allows everyone to expand, correct and contribute. Please help us by adding to these docs if you have anything you have found useful that we currently do not cover.
The most obvious way to contribute to the tools is to produce a plugin. Protege is built on top of an OSGi compliant plugin mechanism, so it is easy to implement new menu items, views and other plugins and it is even possible to extend the types of plugin that can be created.
Creating a plugin
A step-by-step guide is available, using a simple view plugin as the example.
See also: Documentation for Protege 4.x developers
Allow Protege to download your plugin directly
Users are able to check for plugins that are registered with us and download/install them directly into Protege.
Enabling this for your plugin is very simple and should massively increase your number of users.
Please see our page about auto-update for details of how to do this.
Advertising your plugin on this wiki
If you have developed a plug-in for Protege, and you would like to contribute it to the community, follow the following steps:
- Click the New Plugin Link. You may want to right click and choose a new window.
- Choose a name for the page that discusses the new plugin (e.g. "Sub Ontology Tab").
- Click "Add or Edit"
- Be sure to add "Protege-OWL" (exactly like so without the quotes) in the Works with field. Also give the plugin a type (commonly "Tab Widget").
- Fill in the other fields and save.
- Click the create new version and use the naming convention described. Without this step the plugin will not show up in the plugin list below.
- Make the plugin compatible with "Protege-OWL 4.0" or the version it is compatible with.
- When you are done save the page and make sure that your plugin shows up on the 4.x version of the Protege-OWL editor page. It seems for some reason this page often does not update for a while so you may need to come back later.
Some useful links when adding a plugin page to the wiki are the following:
- Organization Category shows all the types of organizations that are currently known. There are some duplicates already.
- Plugin Category is useful because it lists both the different plugin types (e.g. view, import, export, etc) and also has a list of all the plugins currently known.
- Person Category lists the people who are known to this ontology.
Many code contributions can be factored into plugins and this is our preferred route as it keeps the core light and minimizes risk. However, sometimes changes have to be made to the core.
If you would like to submit a contribution to the protege core codebase, please fork the code on github, and submit a pull request.
You can find the codebase for the core of Protege, and many of the plugins that we maintain on github: https://github.com/protegeproject/protege
Also see: Documentation for Protege 4.x developers
As much as we hate hearing that something is wrong and causing people trouble, we would rather know about it than not. Please follow our guidelines if you have found a bug. The better a bug is described, the more likely it is to be fixed quickly.