Difference between revisions of "Protege4DevDocs"
Nickdrummond (talk | contribs) |
Nickdrummond (talk | contribs) (More rejigging) |
||
Line 21: | Line 21: | ||
It is surprising how many people have written plugins for P4 that we just don't hear about.<br /> | It is surprising how many people have written plugins for P4 that we just don't hear about.<br /> | ||
If you wish to publish to the community, please see our notes on [[Protege4Contributing#Code_submissions|code contributions]]. | If you wish to publish to the community, please see our notes on [[Protege4Contributing#Code_submissions|code contributions]]. | ||
+ | |||
== Working with the Protege source code == | == Working with the Protege source code == | ||
=== Compiling and Running === | === Compiling and Running === | ||
+ | |||
==== Protege 4 OWL editor in IntelliJ ==== | ==== Protege 4 OWL editor in IntelliJ ==== | ||
+ | |||
* [[CompileProtege4InIntelliJ|Setup and run the Protege 4 Editor in IntelliJ]] | * [[CompileProtege4InIntelliJ|Setup and run the Protege 4 Editor in IntelliJ]] | ||
+ | |||
==== Protege 4 OWL editor in Eclipse ==== | ==== Protege 4 OWL editor in Eclipse ==== | ||
Line 33: | Line 37: | ||
* [http://www.cs.man.ac.uk/~iannonel/eclipseSetup/eclipseSetupMain.html Setup and run the Protege 4 Editor in Eclipse] (External link) '''RECOMMENDED''' <br />This page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project'' | * [http://www.cs.man.ac.uk/~iannonel/eclipseSetup/eclipseSetupMain.html Setup and run the Protege 4 Editor in Eclipse] (External link) '''RECOMMENDED''' <br />This page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project'' | ||
* [[CompileProtege4InEclipse|Setup and run the Protege 4 Editor in Eclipse]] (In Progress) <br />This page gives directions for compiling and running Protege 4.0 using Eclipse's plugin development framework. | * [[CompileProtege4InEclipse|Setup and run the Protege 4 Editor in Eclipse]] (In Progress) <br />This page gives directions for compiling and running Protege 4.0 using Eclipse's plugin development framework. | ||
+ | |||
==== Protege 4 OWL editor in a Generic IDE ==== | ==== Protege 4 OWL editor in a Generic IDE ==== | ||
+ | |||
This section describes how to set up an IDE for plugin development. While we have used eclipse to illustrate these pages, we have tried to | This section describes how to set up an IDE for plugin development. While we have used eclipse to illustrate these pages, we have tried to | ||
describe an approach that is generic and will work for all IDE platforms. We welcome others to add pages above to describe how to get Protege 4 running in their favorite IDE. We describe this in two steps - first the core Protege sources are downloaded and compiled and then a plugin project is created. | describe an approach that is generic and will work for all IDE platforms. We welcome others to add pages above to describe how to get Protege 4 running in their favorite IDE. We describe this in two steps - first the core Protege sources are downloaded and compiled and then a plugin project is created. | ||
Line 40: | Line 46: | ||
* Downloading, compiling and running the core Protege sources. The following links cover much the same ground. | * Downloading, compiling and running the core Protege sources. The following links cover much the same ground. | ||
** [[CompileProtege4InEclipseOneProject|Compile and run the Protege-OWL editor in a Generic IDE]] - this page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project''. | ** [[CompileProtege4InEclipseOneProject|Compile and run the Protege-OWL editor in a Generic IDE]] - this page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project''. | ||
+ | |||
=== Anatomy of a Plugin === | === Anatomy of a Plugin === | ||
+ | |||
A short guide to [http://www.co-ode.org/downloads/protege-x/plugin-code-example.php writing a plug-in] to show the class hierarchy. | A short guide to [http://www.co-ode.org/downloads/protege-x/plugin-code-example.php writing a plug-in] to show the class hierarchy. | ||
This doesn't delve deeply into setting up your build environment, but concentrates on a simple code example and making sure you understand the components and the structure of a plug-in. | This doesn't delve deeply into setting up your build environment, but concentrates on a simple code example and making sure you understand the components and the structure of a plug-in. | ||
Line 51: | Line 59: | ||
Once you have written a plugin you want people to use it. Some very simple steps allow you to advertise your plugin and [[EnablePluginAutoUpdate|enable auto-update]]. | Once you have written a plugin you want people to use it. Some very simple steps allow you to advertise your plugin and [[EnablePluginAutoUpdate|enable auto-update]]. | ||
− | === | + | |
+ | ==== Protege APIs ==== | ||
Here is a summary of the main parts of the [[P4APIOverview|Protege 4 API]] for gaining access to the model and various utilities. | Here is a summary of the main parts of the [[P4APIOverview|Protege 4 API]] for gaining access to the model and various utilities. | ||
Line 57: | Line 66: | ||
Also see the [http://protege.stanford.edu/protege/4.0/docs/api/ javadoc for Protege 4.0 code]. | Also see the [http://protege.stanford.edu/protege/4.0/docs/api/ javadoc for Protege 4.0 code]. | ||
− | |||
− | + | ==== UI components ==== | |
− | + | The Protege core and the OWL editor kit both provide a large number of [[P4UiComponentSummary|reuseable components]] and utilities for generating user interfaces for ontologies. | |
− | + | == Updating to Protege 4.1 == | |
A short [[P4_1PortingGuide|guide]] to migrating plugins from Protege4.0 to Protege4.1 (in progress). | A short [[P4_1PortingGuide|guide]] to migrating plugins from Protege4.0 to Protege4.1 (in progress). |
Revision as of 07:25, June 30, 2009
Protege 4 Developer Documentation
Pointers for developers of plugins and understanding the core APIs of Protege 4.
Contents
Guidelines
If you are writing code for P4, please compile it with java 1.5 for compatibility.
All current Protege 4.0 code is written in java 1.5. This will continue to be the case until Apple supports Java 6.
Please consider writing any P4 code as a plugin.
If you cannot do this for various reasons, please let us
know as we may be able to improve the core design in order to support you.
Protege 4.0 has been written specifically to be modular. It uses equinox, one implementation of an OSGi framework to allow
plugins to be created easily.
Please share.
It is surprising how many people have written plugins for P4 that we just don't hear about.
If you wish to publish to the community, please see our notes on code contributions.
Working with the Protege source code
Compiling and Running
Protege 4 OWL editor in IntelliJ
Protege 4 OWL editor in Eclipse
- Setup and run the Protege 4 Editor in Eclipse (External link) RECOMMENDED
This page gives directions for compiling Protege 4.0 sources in Eclipse where all bundles are encapsulated in one Eclipse project - Setup and run the Protege 4 Editor in Eclipse (In Progress)
This page gives directions for compiling and running Protege 4.0 using Eclipse's plugin development framework.
Protege 4 OWL editor in a Generic IDE
This section describes how to set up an IDE for plugin development. While we have used eclipse to illustrate these pages, we have tried to describe an approach that is generic and will work for all IDE platforms. We welcome others to add pages above to describe how to get Protege 4 running in their favorite IDE. We describe this in two steps - first the core Protege sources are downloaded and compiled and then a plugin project is created.
- Downloading, compiling and running the core Protege sources. The following links cover much the same ground.
- Compile and run the Protege-OWL editor in a Generic IDE - this page gives directions for compiling Protege 4.0 sources in Eclipse where all bundles are encapsulated in one Eclipse project.
Anatomy of a Plugin
A short guide to writing a plug-in to show the class hierarchy. This doesn't delve deeply into setting up your build environment, but concentrates on a simple code example and making sure you understand the components and the structure of a plug-in.
This page also contains some information about the different parts of a plugin and how they work together. It also includes a very simple plugin and shows how to install it into the eclipse development environment.
The example delves into producing a view plugin, but we also have a short list of other useful plugin types that you may wish to implement (such as menu items etc).
Once you have written a plugin you want people to use it. Some very simple steps allow you to advertise your plugin and enable auto-update.
Protege APIs
Here is a summary of the main parts of the Protege 4 API for gaining access to the model and various utilities.
Also see the javadoc for Protege 4.0 code.
UI components
The Protege core and the OWL editor kit both provide a large number of reuseable components and utilities for generating user interfaces for ontologies.
Updating to Protege 4.1
A short guide to migrating plugins from Protege4.0 to Protege4.1 (in progress).
Troubleshooting
- Troubleshooting class loader issues
- Building the FaCT++ JNI Library - issues with FaCT++ libraries not found, linking errors etc
- Troubleshooting and fixing problems with the Java 5 compiler