Difference between revisions of "Protege5DevDocs"
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | = Protege Desktop 5. | + | <div class="orangeBox"> |
+ | <span class="orangeBoxTitle">Protege 5 Developer Documentation</span><br /><br /> | ||
+ | This page is a top-level entry point for all '''developer documentation''' related to the Protege Desktop application, versions 5.0 and above. | ||
+ | </div><br /><br /> | ||
− | + | __TOC__ | |
− | |||
− | + | == Building == | |
− | + | === Accessing the source code === | |
Protege Desktop is open source and the code is freely [http://github.com/protegeproject/protege available] on GitHub. Use the following Git command to get a local copy: | Protege Desktop is open source and the code is freely [http://github.com/protegeproject/protege available] on GitHub. Use the following Git command to get a local copy: | ||
Line 16: | Line 18: | ||
The source code for many Protege Desktop plug-ins has also been made available on GitHub under the [https://github.com/protegeproject Protege Project organization]. | The source code for many Protege Desktop plug-ins has also been made available on GitHub under the [https://github.com/protegeproject Protege Project organization]. | ||
− | + | === Building from source === | |
The instructions for building from source are available on [https://github.com/protegeproject/protege/wiki/Building-from-Source GitHub]. | The instructions for building from source are available on [https://github.com/protegeproject/protege/wiki/Building-from-Source GitHub]. | ||
− | + | === Building with Eclipse and other IDEs === | |
We would welcome contributions from the community for setting up development environments other than Eclipse. | We would welcome contributions from the community for setting up development environments other than Eclipse. | ||
Line 25: | Line 27: | ||
− | + | == Protege APIs == | |
The [[P4APIOverview|Protege API]] gives access to the ontology model and offers various utilities. | The [[P4APIOverview|Protege API]] gives access to the ontology model and offers various utilities. | ||
Line 32: | Line 34: | ||
− | + | == Developing a plugin == | |
Protege has been written specifically to be modular. It uses the [http://www.osgi.org/About/Technology OSGi framework] as a plugin infrastructure. | Protege has been written specifically to be modular. It uses the [http://www.osgi.org/About/Technology OSGi framework] as a plugin infrastructure. | ||
Line 47: | Line 49: | ||
− | + | ==Embedded OSGi== | |
For people embedding Protege services inside a non-OSGi based applications, [[Embedding OSGi|here]] is a short example showing how this can work. | For people embedding Protege services inside a non-OSGi based applications, [[Embedding OSGi|here]] is a short example showing how this can work. | ||
− | + | == Client-server == | |
* [[Protege_5_Development_Environment|Setting up a development environment for the OWL Ontology Server]] | * [[Protege_5_Development_Environment|Setting up a development environment for the OWL Ontology Server]] | ||
* [[Protege_Server_design|OWL Ontology Server design]] | * [[Protege_Server_design|OWL Ontology Server design]] | ||
− | + | == Troubleshooting == | |
* [[SolvingClassLoaderProblems|Troubleshooting class loader issues]] | * [[SolvingClassLoaderProblems|Troubleshooting class loader issues]] | ||
− | + | == Contributing == | |
'''Please share.''' | '''Please share.''' | ||
It is surprising how many people have written plugins for Protege that we just don't hear about.<br /> | It is surprising how many people have written plugins for Protege that we just don't hear about.<br /> | ||
− | If you wish to publish to the community, please see our notes on [[Protege4Contributing | + | If you wish to publish to the community, please see our notes on [[Protege4Contributing|code contributions]]. |
+ | |||
+ | == Getting help== | ||
+ | |||
+ | If you need additional support, please contact us via the [http://protege.stanford.edu/support.php protege-dev] mailing list. You need to be [https://mailman.stanford.edu/mailman/listinfo/protege-dev subscribed] in order to post to the list. In your post, please provide a detailed description of the problem, the steps to reproduce it, and any exception traces or logs that are relevant. |
Latest revision as of 22:19, May 23, 2016
Protege 5 Developer Documentation
This page is a top-level entry point for all developer documentation related to the Protege Desktop application, versions 5.0 and above.
Contents
Building
Accessing the source code
Protege Desktop is open source and the code is freely available on GitHub. Use the following Git command to get a local copy:
git clone https://github.com/protegeproject/protege.git protege
The source code for many Protege Desktop plug-ins has also been made available on GitHub under the Protege Project organization.
Building from source
The instructions for building from source are available on GitHub.
Building with Eclipse and other IDEs
We would welcome contributions from the community for setting up development environments other than Eclipse.
Protege APIs
The Protege API gives access to the ontology model and offers various utilities.
The Protege core and the OWL editor kit both provide a large number of reuseable UI components and utilities for generating user interfaces for ontologies.
Developing a plugin
Protege has been written specifically to be modular. It uses the OSGi framework as a plugin infrastructure.
When developing a plugin:
First, you should consider which type of plugin you want to build. The plugin types page provides a list of plugin types that can be implemented in Protege.
Second, take a look and reuse the plugin examples available on GitHub. The GitHub page also has documentation (see the readme file). Clone the project, and then adapt the plugin example that you would like to implement.
You may also look at the Anatomy of a Plugin page, which gives a quick start to writing a plugin for Protege. Although it was created for Protege 4 plugins, most things still apply to Protege 5 plugins. The page starts with a guide to writing the empty (trivial) plugin in five minutes. Then it describes how some additional content can be added to the plugin.
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.
Embedded OSGi
For people embedding Protege services inside a non-OSGi based applications, here is a short example showing how this can work.
Client-server
Troubleshooting
Contributing
Please share.
It is surprising how many people have written plugins for Protege that we just don't hear about.
If you wish to publish to the community, please see our notes on code contributions.
Getting help
If you need additional support, please contact us via the protege-dev mailing list. You need to be subscribed in order to post to the list. In your post, please provide a detailed description of the problem, the steps to reproduce it, and any exception traces or logs that are relevant.