<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://protegewiki.stanford.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jim.kornell</id>
		<title>Protege Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://protegewiki.stanford.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jim.kornell"/>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/wiki/Special:Contributions/Jim.kornell"/>
		<updated>2026-04-28T08:25:40Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4DevDocs&amp;diff=7173</id>
		<title>Protege4DevDocs</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4DevDocs&amp;diff=7173"/>
				<updated>2010-04-07T19:30:08Z</updated>
		
		<summary type="html">&lt;p&gt;Jim.kornell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4 Developer Documentation&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Pointers for developers of plugins and understanding the core APIs of Protege 4.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
Protege 4.1 will be compatible with both Java 5 and Java 6.  Unfortunately we need to continue supporting Java 5 because of problems with Java on the older Apple platforms (the PowerPC and 32 bit Macs).  If you are writing a plugin and you want to be available on all OS X platforms, then you must use Java 5.  Otherwise Java 6 works as long  as you understand that you are  excluding a  subset of the Apple  platforms.&lt;br /&gt;
&lt;br /&gt;
'''Please consider writing any P4 code as a plugin'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you cannot do this for various reasons, please let us&lt;br /&gt;
know as we may be able to improve the core design in order to support you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Protege 4.0 has been written specifically to be modular. It uses '''equinox''', one implementation of an '''OSGi framework''' to allow&lt;br /&gt;
plugins to be created easily. &lt;br /&gt;
&lt;br /&gt;
'''Please share.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
It is surprising how many people have written plugins for P4 that we just don't hear about.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you wish to publish to the community, please see our notes on [[Protege4Contributing#Code_submissions|code contributions]].&lt;br /&gt;
&lt;br /&gt;
== Using an Integrated Development Environment ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege 4 OWL editor in Eclipse  ===&lt;br /&gt;
&lt;br /&gt;
* [[CompileProtege4InEclipse|Setup and run the Protege 4.0 or 4.1 Editor in Eclipse]] '''(Recommended for Protege 4.0)'''&amp;lt;br /&amp;gt;This page gives directions for compiling and running Protege 4.0 or Protege 4.1 using Eclipse's plugin development framework.&lt;br /&gt;
* [[CompileProtege4InEclipseFromSvn|Setting up eclipse with Protege 4.1]] '''(Recommended for Protege 4.1)'''&amp;lt;br/&amp;gt;This page gives directions for compiling and running Protege  4.1 using Eclipse's plugin development framework.  It includes the OS X workaround  as well.&lt;br /&gt;
&lt;br /&gt;
=== Protege 4 OWL editor in a Generic IDE ===&lt;br /&gt;
&lt;br /&gt;
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 &lt;br /&gt;
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.  &lt;br /&gt;
&lt;br /&gt;
* Downloading, compiling and running the core Protege sources.  The following links cover much the same ground.&lt;br /&gt;
** [[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''.  These directions are specific to Protege 4.0 and are not applicable to Protege 4.1.  However the [[#Building_Protege4.1_from_scratch_using_ant|ant build steps]] will probably provide enough hints to put together a generic ide environment for Protege 4.1.&lt;br /&gt;
&lt;br /&gt;
== Writing A Plugin ==&lt;br /&gt;
&lt;br /&gt;
The following links are focussed on the problems of writing a plugin and are not focused on how your build environment should be configured.  For information about configuring your build environment go to [[Protege4DevDocs#Using_an_Integrated_Development_Environment|Using an IDE]].&lt;br /&gt;
&lt;br /&gt;
[[PluginAnatomy|This page]] gives a quick start to writing a plugin for Protege 4.  It 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.  &lt;br /&gt;
&lt;br /&gt;
=== Additional Information ===&lt;br /&gt;
&lt;br /&gt;
In addition to this there are some other useful sources on plugin development:&lt;br /&gt;
* [[PluginTypes|plugin types]] provides a list of plugin types that you can implement in Protege 4.&lt;br /&gt;
* 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]].&lt;br /&gt;
* 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 page is not supported by the Protege team and may indeed not be actively updated any more.  It has some very useful information but will quite likely slowly go out of date.&lt;br /&gt;
&lt;br /&gt;
== Misc == &lt;br /&gt;
&lt;br /&gt;
=== Protege APIs ===&lt;br /&gt;
&lt;br /&gt;
Here is a summary of the main parts of the [[P4APIOverview|Protege 4 API]] for gaining access to the model and various utilities. &lt;br /&gt;
&lt;br /&gt;
Also see the [http://protege.stanford.edu/protege/4.0/docs/api/ javadoc for Protege 4.0 code].&lt;br /&gt;
&lt;br /&gt;
=== UI components ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Updating to Protege 4.1 ===&lt;br /&gt;
&lt;br /&gt;
A short [[P4_1PortingGuide|guide]] to migrating plugins from Protege4.0 to Protege4.1 (in progress).&lt;br /&gt;
&lt;br /&gt;
=== Building Protege4.1 from scratch using ant ===&lt;br /&gt;
&lt;br /&gt;
The Protege 4.1 build process has been refactored since Protege 4.0.  This means that the locations of the various Protege 4.1 plugins is different than the corresponding locations in Protege 4.0.  There are several advantages of the new scheme:&lt;br /&gt;
* the build files are independent so that changes to one plugin can be propageted to the distribution by compiling just the plugin rather than the redoing an entire Protege build.&lt;br /&gt;
* the build files autodetect the format of the protege distribution.  This means that a single build file for the os x application bundle (Protege.app) and a felix based distribution.&lt;br /&gt;
* the new build process is much simpler allowing us to more easily update the various components.&lt;br /&gt;
Although many readers of this section will not be planning on doing an ant build, these directions clarify the location of the various Protege 4.1 plugins in svn.&lt;br /&gt;
&lt;br /&gt;
First  you must set the PROTEGE_HOME environment variable which is described [[ConfiguringAntBuildFiles|here]].  Then you can build Protege 4.1 by  following the following steps.&lt;br /&gt;
# ''svn checkout http://smi-protege.stanford.edu/repos/protege/protege4/protege-base/trunk protege-base''&lt;br /&gt;
# ''cd protege-base'' and ''ant install'' and ''cd ..''.  '''Warning:''' this step deletes the existing contents of ${PROTEGE_HOME}.&lt;br /&gt;
# ''svn checkout http://smi-protege.stanford.edu/repos/protege/protege4/plugins/org.protege.common/trunk org.protege.common''&lt;br /&gt;
# ''cd org.protege.common'' and ''ant install' and ''cd ..'''&lt;br /&gt;
# ''svn checkout http://smi-protege.stanford.edu/repos/protege/protege4/plugins/org.protege.editor.core.application/trunk org.protege.editor.core.application''&lt;br /&gt;
# ''cd org.protege.editor.core.application'' and ''ant install'' and ''cd ..''&lt;br /&gt;
# ''svn checkout http://smi-protege.stanford.edu/repos/protege/protege4/plugins/org.semanticweb.owl.owlapi/trunk org.semanticweb.owl.owlapi''&lt;br /&gt;
# ''cd org.semanticweb.owl.owlapi'' and ''ant install'' and ''cd ..''&lt;br /&gt;
# ''svn checkout http://smi-protege.stanford.edu/repos/protege/protege4/plugins/org.protege.editor.owl/trunk org.protege.editor.owl''&lt;br /&gt;
# ''cd org.protege.editor.owl'' and ''ant install'' and ''cd ..''&lt;br /&gt;
This will give a minimal installation and other  plugins can be added as desired.  Source plugins can be created by adding ''ant add.source'' before the ''ant install'' step.  A full run on an extremely slow machine is shown [[Protege41FullBuild|here]].&lt;br /&gt;
&lt;br /&gt;
===Embedded OSGi===&lt;br /&gt;
&lt;br /&gt;
For people embedding Protege 4 services inside a non-OSGi based applications [[Embedding OSGi|here]] is a short example showing how this can work.&lt;br /&gt;
&lt;br /&gt;
===Database Backends===&lt;br /&gt;
&lt;br /&gt;
There are now two database backends for the OWL API.  Very soon we expect to have a Protege plugin that enables both backend mechanisms.  We have put together a [[Loading A DatabaseProject|document]] describing how both database backends can be used with the owl api.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* [[SolvingClassLoaderProblems|Troubleshooting class loader issues]]&lt;br /&gt;
* [[DealingWithJava5CompilerIssues|Troubleshooting and fixing problems with the Java 5 compiler]]&lt;/div&gt;</summary>
		<author><name>Jim.kornell</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=OWLViz&amp;diff=7124</id>
		<title>OWLViz</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=OWLViz&amp;diff=7124"/>
				<updated>2010-03-24T18:28:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jim.kornell: /* Mac users - finding the right version of Graphviz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Plugin&lt;br /&gt;
|Description=Enables class hierarchies in an OWL ontology to be viewed and incrementally navigated, allowing comparison of the asserted class hierarchy and the inferred class hierarchy.&lt;br /&gt;
|PluginType=Tab Widget&lt;br /&gt;
|ForApplication1=Protege-OWL&lt;br /&gt;
|Screenshot=OwlViz.jpg&lt;br /&gt;
|HomepageURL=http://www.co-ode.org/downloads/plugins-3.x.php&lt;br /&gt;
|DeveloperID1=Matthew Horridge&lt;br /&gt;
|LastUpdated=March 4, 2010&lt;br /&gt;
|Topic1=Visualization&lt;br /&gt;
|License=LGPL&lt;br /&gt;
|Affiliation1=The University Of Manchester&lt;br /&gt;
|Affiliation2=The CO-ODE Project&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
== More Details ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
OWLViz is designed to be used with the [http://protege.stanford.edu/overview/protege-owl.html Protege-OWL editor]. It enables class hierarchies in an OWL Ontology to be viewed and incrementally navigated, allowing comparison of the asserted class hierarchy and the inferred class hierarchy. OWLViz integrates with the Protege-OWL editor, using the same color scheme so that primitive and defined classes can be distinguished, computed changes to the class hierarchy may be clearly seen, and inconsistent concepts are highlighted in red. OWLViz has the facility to save both the asserted and inferred views of the class hierarchy to various concrete graphics formats including PNG, JPEG, and SVG.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
OWLViz is bundled with the [http://protege.stanford.edu/download/download.html &amp;quot;full&amp;quot; installation of Protege].  After you have installed Protege, there are two additional steps you need to perform for this plugin to work properly:&lt;br /&gt;
&lt;br /&gt;
* [http://www.graphviz.org Download and install] a recent version of Graphviz, which is a free, open source graph visualization software from AT&amp;amp;T Research. &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;Mac users please see Troubleshooting below.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Protege will make an educated guess about where to find graphviz depending on your operating system, but if it does not get it right you will need to configure this yourself:&lt;br /&gt;
&lt;br /&gt;
** '''Protege3.x''' and '''Protege4.0 (pre build 105)''' on the OWLViz tab, click the Options button to bring up the Options dialog. On the Layout Options panel, specify the path to the location of the DOT executable (dot.exe).  The Options dialog will look something like the following, after performing this step:&lt;br /&gt;
&lt;br /&gt;
** '''Protege4.x (build 105 onwards)''' these settings have moved into the OWLViz preferences panel. Again, specify the path to the dot executable in the appropriate place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:OwlViz-configure-path-to-dot.jpg|frame|none|OWLViz Options dialog]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
All of the OWLViz documentation is located on the [http://www.co-ode.org/ CO-ODE Website].  The [http://www.co-ode.org/downloads/owlviz/OWLVizGuide.pdf OWLVizGuide] is somewhat outdated, but still very helpful.  Also, you may refer to the home pages for the OWLViz plugin for additional information:&lt;br /&gt;
&lt;br /&gt;
Home page for build 17 (Protege3.x): http://www.co-ode.org/downloads/owlviz/.&amp;lt;br /&amp;gt;&lt;br /&gt;
Home page for build 18 (Protege4.x): http://code.google.com/p/co-ode-owl-plugins/wiki/OWLViz.&lt;br /&gt;
&lt;br /&gt;
=== Level of Support ===&lt;br /&gt;
OWLViz build 17, which is distributed with [[Protege-OWL 3.3.1]] is no longer under active development.  If you need help with this version of OWLViz, please try posting your questions on the [http://mailman.stanford.edu/mailman/listinfo/protege-owl protege-owl mailing list], and someone from the Protege user community may be able to help you.&lt;br /&gt;
&lt;br /&gt;
OWLViz build 18, which is bundled with [[Protege-OWL 4.0]] is under active development and all comments, suggestions, and/or feature requests are appreciated! Please post questions and requests on the [http://mailman.stanford.edu/mailman/listinfo/p4-feedback p4-feedback mailing list].&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
==== Resolving the &amp;quot;An error related to DOT...&amp;quot; message ====&lt;br /&gt;
&lt;br /&gt;
Many people report the following error the first time they try to use the OWLViz plugin:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:OwlViz-dot-error.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This error message indicates that&lt;br /&gt;
&lt;br /&gt;
a) you need to install Graphviz and/or&lt;br /&gt;
&lt;br /&gt;
b) you need to tell OWLViz where you installed Graphviz. &lt;br /&gt;
&lt;br /&gt;
Instructions for doing both of these things is located above in the [[OWLViz#Installation|Installation]] section.&lt;br /&gt;
&lt;br /&gt;
==== Mac users - finding the right version of Graphviz ====&lt;br /&gt;
&lt;br /&gt;
The current status of Graphviz for the Mac OS is very unclear.&lt;br /&gt;
&lt;br /&gt;
The latest binaries they point to directly (the pixelglow implementation) no longer contain the dot application required by OWLViz. According to their [http://www.graphviz.org/Download..php download page] this distribution is out of date and not maintained.&lt;br /&gt;
&lt;br /&gt;
Install version 2.14 from [http://www.ryandesign.com/graphviz/ one of their alternatives] and point to that instead (it gets installed in '''/usr/local/graphviz-2.14/'''). This contains the necessary binaries in the bin/ folder.&lt;br /&gt;
&lt;br /&gt;
In Preferences, the string you want is:  /usr/local/bin/dot&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim.kornell</name></author>	</entry>

	</feed>