<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://protegewiki.stanford.edu/index.php?action=history&amp;feed=atom&amp;title=ProtegeReasonerPlugin</id>
		<title>ProtegeReasonerPlugin - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://protegewiki.stanford.edu/index.php?action=history&amp;feed=atom&amp;title=ProtegeReasonerPlugin"/>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=ProtegeReasonerPlugin&amp;action=history"/>
		<updated>2026-05-21T11:03:06Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=ProtegeReasonerPlugin&amp;diff=2260&amp;oldid=prev</id>
		<title>JenniferVendetti at 23:06, May 27, 2008</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=ProtegeReasonerPlugin&amp;diff=2260&amp;oldid=prev"/>
				<updated>2008-05-27T23:06:11Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 23:06, May 27, 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l89&quot; &gt;Line 89:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 89:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://smi-protege.stanford.edu/repos/protege/protege-pellet-reasoner/trunk/src/edu/stanford/smi/protegex/owl/inference/pellet/ProtegePelletOWLAPIReasoner.java the Pellet accessed through OWL-API reasoner]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://smi-protege.stanford.edu/repos/protege/protege-pellet-reasoner/trunk/src/edu/stanford/smi/protegex/owl/inference/pellet/ProtegePelletOWLAPIReasoner.java the Pellet accessed through OWL-API reasoner]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Protege &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Developer Documentation]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Protege &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;developer documentation&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[Category:Protege 3 Documentation]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[Category:Protege-OWL Documentation&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JenniferVendetti</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=ProtegeReasonerPlugin&amp;diff=2213&amp;oldid=prev</id>
		<title>JenniferVendetti: categorizing page</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=ProtegeReasonerPlugin&amp;diff=2213&amp;oldid=prev"/>
				<updated>2008-05-22T23:36:08Z</updated>
		
		<summary type="html">&lt;p&gt;categorizing page&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 23:36, May 22, 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l88&quot; &gt;Line 88:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 88:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://smi-protege.stanford.edu/repos/protege/protege-pellet-reasoner/trunk/src/edu/stanford/smi/protegex/owl/inference/pellet/ProtegePelletJenaReasoner.java the Pellet accessed through Jena reasoner]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://smi-protege.stanford.edu/repos/protege/protege-pellet-reasoner/trunk/src/edu/stanford/smi/protegex/owl/inference/pellet/ProtegePelletJenaReasoner.java the Pellet accessed through Jena reasoner]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://smi-protege.stanford.edu/repos/protege/protege-pellet-reasoner/trunk/src/edu/stanford/smi/protegex/owl/inference/pellet/ProtegePelletOWLAPIReasoner.java the Pellet accessed through OWL-API reasoner]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://smi-protege.stanford.edu/repos/protege/protege-pellet-reasoner/trunk/src/edu/stanford/smi/protegex/owl/inference/pellet/ProtegePelletOWLAPIReasoner.java the Pellet accessed through OWL-API reasoner]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Protege Developer Documentation]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Protege 3 Documentation]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Protege-OWL Documentation]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JenniferVendetti</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=ProtegeReasonerPlugin&amp;diff=1036&amp;oldid=prev</id>
		<title>TaniaTudorache at 22:42, November 17, 2007</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=ProtegeReasonerPlugin&amp;diff=1036&amp;oldid=prev"/>
				<updated>2007-11-17T22:42:31Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 22:42, November 17, 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l82&quot; &gt;Line 82:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 82:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The interface methods of &amp;lt;code&amp;gt;ProtegeReasoner&amp;lt;/code&amp;gt; that you have to implement are well documented and it should be clear what to do.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The interface methods of &amp;lt;code&amp;gt;ProtegeReasoner&amp;lt;/code&amp;gt; that you have to implement are well documented and it should be clear what to do.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It is also a good idea to look at the existing reasoner plugin implementations from the SVN repository: &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It is also a good idea to look at the existing reasoner plugin implementations from the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://smi-protege.stanford.edu/repos/protege/ Protege &lt;/ins&gt;SVN repository&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;: &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://smi-protege.stanford.edu/repos/protege/owl/trunk/src/edu/stanford/smi/protegex/owl/inference/dig/DefaultProtegeDIGReasoner.java the default DIG reasoner]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://smi-protege.stanford.edu/repos/protege/owl/trunk/src/edu/stanford/smi/protegex/owl/inference/dig/DefaultProtegeDIGReasoner.java the default DIG reasoner]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>TaniaTudorache</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=ProtegeReasonerPlugin&amp;diff=1035&amp;oldid=prev</id>
		<title>TaniaTudorache: New page: &lt;div style=&quot;background:#F0E6CA; border:1px solid #AE5B08; padding:10px 15px 10px 20px; margin:2em 0 0 0;&quot;&gt; &lt;span class=&quot;orangeBoxTitle&quot;&gt;Implementing a Protege-OWL Reasoner Plugin &lt;/span&gt;&lt;b...</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=ProtegeReasonerPlugin&amp;diff=1035&amp;oldid=prev"/>
				<updated>2007-11-17T22:21:38Z</updated>
		
		<summary type="html">&lt;p&gt;New page: &amp;lt;div style=&amp;quot;background:#F0E6CA; border:1px solid #AE5B08; padding:10px 15px 10px 20px; margin:2em 0 0 0;&amp;quot;&amp;gt; &amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Implementing a Protege-OWL Reasoner Plugin &amp;lt;/span&amp;gt;&amp;lt;b...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;background:#F0E6CA; border:1px solid #AE5B08; padding:10px 15px 10px 20px; margin:2em 0 0 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Implementing a Protege-OWL Reasoner Plugin &amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A new plugin type, the '''Reasoner Plugin''', is available in Protege starting with version 3.4 beta 120 (from 2007/11/17). This page describes how you can implement your own reasoner plugin that will allow you to integrate another reasoner into Protege.&lt;br /&gt;
&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;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Starting with '''Protege 3.4 beta 120''' (from 2007/11/17), the reasoner plugin will allow you to integrate other reasoners into Protege. The plugin reasoner will be accessible through the Protege user interface in the &amp;lt;i&amp;gt;Reasoning&amp;lt;/i&amp;gt; menu. For example, you will be able to select in the &amp;lt;i&amp;gt;Reasoning&amp;lt;/i&amp;gt; menu, your own reasoner and then all the reasoner related actions (e.g. &amp;quot;Classify taxonomy&amp;quot;, &amp;quot;Compute inferred types&amp;quot; , etc.) will be run using your reasoner.&lt;br /&gt;
&lt;br /&gt;
In the same way, the reasoner will be accessible through the reasoning API that is documented [[ProtegeReasonerAPI|here]].&lt;br /&gt;
&lt;br /&gt;
All the reasoners that are distributed with the Protege installation and that are available in the &amp;lt;i&amp;gt;Reasoning&amp;lt;/i&amp;gt; menu are also reasoner plugins.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implement the ProtegeReasoner interface ==&lt;br /&gt;
&lt;br /&gt;
To create a new reasoner plugin, you will have to implement the [http://protege.stanford.edu/download/prerelease_javadoc_owl/edu/stanford/smi/protegex/owl/inference/reasoner/ProtegeReasoner.html ProtegeReasoner] interface.&lt;br /&gt;
&lt;br /&gt;
To make your life easier, you can start by subclassing the [http://protege.stanford.edu/download/prerelease_javadoc_owl/edu/stanford/smi/protegex/owl/inference/reasoner/AbstractProtegeReasoner.html AbstractProtegeReasoner] that already takes care of the synchronization between the OWL model and the reasoner in case that the OWL model has changed. It uses listeners for OWL model events (e.g. class deleted,  created, etc.) and informs the reasoner that at the next request a full synchronization is necessary. It does not support currently an incremental approach to synchronization.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TIP''': In case you implement a DIG reasoner, you may subclass the &amp;lt;code&amp;gt;DefaultProtegeDIGReasoner&amp;lt;/code&amp;gt;, or if you want to use a Jena reasoner, you can subclass the &amp;lt;code&amp;gt;DefaultJenaReasoner&amp;lt;/code&amp;gt; available in the &amp;lt;tt&amp;gt;protege-pellet.jar&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;edu.stanford.smi.protegex.owl.inference.pellet&amp;lt;/tt&amp;gt; plugin folder. (Yes, we should move the Jena reasoner to its own jar..)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should also implement the method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static String getReasonerName()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and return a nice name for your reasoner that will be shown in the &amp;lt;i&amp;gt;Reasoning&amp;lt;/i&amp;gt; menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also recommended that you implement the method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static isSuitable(Project prj, Collection errors)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in case your reasoner cannot handle certain types of Protege-OWL models. For example if your reasoner does not work with OWL databases, then &amp;lt;code&amp;gt;isSuitable&amp;lt;/code&amp;gt; should return &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt; for this case. Then, the plugin will not show up in the &amp;lt;i&amp;gt;Reasoning&amp;lt;/i&amp;gt; menu for OWL database projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The trick to make it work ==&lt;br /&gt;
&lt;br /&gt;
Due to some limitation in the current implementation of the plugin architecure of Protege, you will have to make a trick to make Protege recognize your plugin: You will have to create an empty project plugin and package it in the same jar with the reasoner plugin implementation. (We'll try to fix this in the future).&lt;br /&gt;
&lt;br /&gt;
The implementation of the Project plugin can look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import edu.stanford.smi.protege.plugin.ProjectPluginAdapter;&lt;br /&gt;
&lt;br /&gt;
public class EmptyProjectPlugin extends ProjectPluginAdapter {&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The manifest file ==&lt;br /&gt;
&lt;br /&gt;
In the manifest file containing your implementation of a reasoner plugin, please include the following entry, so that Protege can recognize your plugin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: myPackage.MyReasonerPlugin.class&lt;br /&gt;
ReasonerPlugin: True&lt;br /&gt;
&lt;br /&gt;
Name: myPackage.EmptyProjectPlugin.class&lt;br /&gt;
Project-Plugin: True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the &amp;lt;tt&amp;gt;myPackage.MyReasonerPlugin&amp;lt;/tt&amp;gt; with the full Java path to the class that implements the &amp;lt;code&amp;gt;ProtegeReasoner&amp;lt;/code&amp;gt; interface. The same for the project plugin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TIP''': In case this is the last line in your manifest file, then add an extra empty line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other tips ==&lt;br /&gt;
&lt;br /&gt;
The interface methods of &amp;lt;code&amp;gt;ProtegeReasoner&amp;lt;/code&amp;gt; that you have to implement are well documented and it should be clear what to do.&lt;br /&gt;
&lt;br /&gt;
It is also a good idea to look at the existing reasoner plugin implementations from the SVN repository: &lt;br /&gt;
&lt;br /&gt;
* [http://smi-protege.stanford.edu/repos/protege/owl/trunk/src/edu/stanford/smi/protegex/owl/inference/dig/DefaultProtegeDIGReasoner.java the default DIG reasoner]&lt;br /&gt;
* [http://smi-protege.stanford.edu/repos/protege/protege-pellet-reasoner/trunk/src/edu/stanford/smi/protegex/owl/inference/jena/DefaultJenaReasoner.java the Jena reasoner]&lt;br /&gt;
* [http://smi-protege.stanford.edu/repos/protege/protege-pellet-reasoner/trunk/src/edu/stanford/smi/protegex/owl/inference/pellet/ProtegePelletJenaReasoner.java the Pellet accessed through Jena reasoner]&lt;br /&gt;
* [http://smi-protege.stanford.edu/repos/protege/protege-pellet-reasoner/trunk/src/edu/stanford/smi/protegex/owl/inference/pellet/ProtegePelletOWLAPIReasoner.java the Pellet accessed through OWL-API reasoner]&lt;/div&gt;</summary>
		<author><name>TaniaTudorache</name></author>	</entry>

	</feed>