Difference between revisions of "Protege4Contributing"

From Protege Wiki
Jump to: navigation, search
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
<div class="orangeBox">
 
<div class="orangeBox">
<span class="orangeBoxTitle">Contributing to Protege 4.x</span><br /><br />
+
<span class="orangeBoxTitle">Contributing to Protege</span><br /><br />
 
Protege is an open source project, with a large community, many of whose members help to add to its success through varied means.
 
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 4.x and its community.
+
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 http://mailman.stanford.edu/mailman/listinfo/p4-feedback.
+
If you are interested in other ways of helping, please contact us through the [https://mailman.stanford.edu/mailman/listinfo/protege-user protege-user mailing list].
 
</div><br />
 
</div><br />
  
Back to [[Protege4UserDocs]]
+
'''Back to [[Protege4UserDocs|Protege User Documentation]]'''
  
Back to [[Protege4DevDocs]]
+
'''Back to [[Main_Page#Developer_Documentation|Protege Developer Documentation]]'''
  
 
__TOC__
 
__TOC__
Line 19: Line 19:
 
=== Mailing lists ===
 
=== Mailing lists ===
  
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
+
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.
 
if it were not for the fellow community members that frequently offer answers, advice and pointers. We welcome contributions from everyone.
 
  
 
=== Documentation ===
 
=== Documentation ===
  
Tools such as Protege 4.x are continually growing and it is hard to spend huge amounts of time changing screenshots, wording and formatting
+
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).
 
in the documentation (such that it is).
  
Line 34: Line 33:
 
== Plugins ==
 
== Plugins ==
  
The most obvious way to contribute to the tools is to produce a plugin. Protege 4.x is built on top of an OSGi compliant plugin mechanism, so it
+
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.
 
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 [https://github.com/protegeproject/protege-plugin-examples step-by-step guide] is available,
 +
using a simple view plugin as the example.
 +
 +
See also: [[Protege4DevDocs#Working_with_the_Protege_source_code|Documentation for Protege developers]]
  
=== Creating a plugin ===
+
=== 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.
  
A [http://www.co-ode.org/downloads/protege-x/plugin-code-example.php step by step guide] with example of creating a simple view plugin is available.
+
Enabling this for your plugin is very simple and should massively increase your number of users.
  
also see: [[Protege4DevDocs#Working_with_the_Protege_source_code|Documentation for Protege 4.x developers]]
+
Please see our page about [[EnablePluginAutoUpdate| auto-update]] for details of how to do this.
  
 
=== Advertising your plugin on this wiki ===
 
=== Advertising your plugin on this wiki ===
  
If you have developed a plug-in for Protege-OWL 4.0 and you would like to contribute it to the community, follow the following steps:
+
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 [[Special:AddPage/Form:Plugin|New Plugin Link]].  You may want to right click and choose a new window.
+
* Click the [[Special:FormStart/Plugin|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").
 
* Choose a name for the page  that  discusses the new plugin (e.g. "Sub Ontology Tab").
 
* Click "Add or Edit"
 
* Click "Add or Edit"
Line 53: Line 60:
 
* Fill in the other fields and save.
 
* 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.
 
* 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".
+
* 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 [[Protege-OWL_4.0 |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.
+
* When you are done save the page and make sure that your plugin shows up on the [[Protege-OWL_4.2 |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:
 
Some useful links when adding a plugin page to the wiki are the following:
 
* [http://protegewiki.stanford.edu/index.php/Category:Organization Organization Category] shows all the types of organizations that are currently known.  There are some duplicates already.
 
* [http://protegewiki.stanford.edu/index.php/Category:Organization Organization Category] shows all the types of organizations that are currently known.  There are some duplicates already.
Line 60: Line 67:
 
* [http://protegewiki.stanford.edu/index.php/Category:Person Person Category] lists the people who are known to this ontology.
 
* [http://protegewiki.stanford.edu/index.php/Category:Person Person Category] lists the people who are known to this ontology.
  
 +
== Core Protege ==
  
== Core Protege 4.x ==
+
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.
 
 
Many code contributions can be factored into plugins and this is our preferred route as it keeps the core light and minimises risk. However, sometimes changes have to be made to the core.
 
 
 
  
 
=== Code submissions ===
 
=== Code submissions ===
  
We have a number of people that contribute to the general codebase of Protege 4.x. The overall responsibility of the core application has been split over several groups in several locations for quite some time (so it is sometimes difficult to even define the current P4 team).
+
If you would like to submit a contribution to the protege core codebase, please fork the code on [https://github.com/protegeproject/protege github], and submit a pull request.
 
 
We have also had contributions from people outside of this team. Whether it be direct access to the codebase or contributions of patches.
 
  
It is essential that the codebase remains as stable as possible, and we currently have no official code review or otherwise official scheme for dealing with contributions to the core - everything is assessed case-by-case. However, we will always consider ideas, so please contact us if you have a particular proposal.
+
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: [[Protege4DevDocs#Working_with_the_Protege_source_code|Documentation for Protege 4.x developers]]
+
Also see: [[Protege4DevDocs#Working_with_the_Protege_source_code|Documentation for Protege developers]]
  
 
=== Bug reports ===
 
=== Bug reports ===
Line 81: Line 85:
 
Please follow our [[Protege4UserDocs#Bugs_and_feature_requests|guidelines]] if you have found a bug.
 
Please follow our [[Protege4UserDocs#Bugs_and_feature_requests|guidelines]] if you have found a bug.
 
The better a bug is described, the more likely it is to be fixed quickly.
 
The better a bug is described, the more likely it is to be fixed quickly.
 +
 +
 +
'''Back to [[Protege4UserDocs|Protege User Documentation]]'''
 +
 +
'''Back to [[Main_Page#Developer_Documentation|Protege Developer Documentation]]'''

Latest revision as of 23:10, May 23, 2016

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.


Back to Protege User Documentation

Back to Protege Developer Documentation


Community

Mailing lists

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.

Documentation

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.


Plugins

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 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.

Core Protege

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.

Code submissions

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 developers

Bug reports

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.


Back to Protege User Documentation

Back to Protege Developer Documentation