<?xml version="1.0" encoding="iso8859-1"?>
<rss version="2.0">
<channel>
<title>AKSW - Projects/OntoWiki/PluginCookbook</title>
<link>http://ontowiki.net/Projects/OntoWiki/PluginCookbook</link>
<description>History/revisions of AKSW/Projects/OntoWiki/PluginCookbook</description>
<language>en-us</language>
<item>
<title>2008-07-22 19:26:14</title>
<link>http://ontowiki.net/Projects/OntoWiki/PluginCookbook/show?time=2008-07-22+19%3A26%3A14</link>
<description>&lt;div class="pageBefore">&lt;img src="http://ontowiki.net/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a name=".projects.ontowiki.plugincookbook" href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook" class="">/Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Plugin&amp;nbsp;Cookbook&lt;/a> of &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-07-22+19%3A26%3A14">2008-07-22 19:26:14&lt;/a> and &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook">2010-07-05 17:03:38&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;div class="indent">ATTENTION: THIS PAGE IS&amp;nbsp;OUTDATED&lt;/div>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-05-16 18:19:33</title>
<link>http://ontowiki.net/Projects/OntoWiki/PluginCookbook/show?time=2008-05-16+18%3A19%3A33</link>
<description>&lt;div class="pageBefore">&lt;img src="http://ontowiki.net/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook" class="">/Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Plugin&amp;nbsp;Cookbook&lt;/a> of &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-05-16+18%3A19%3A33">2008-05-16 18:19:33&lt;/a> and &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-07-22+19%3A26%3A14">2008-07-22 19:26:14&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->&lt;div class='floatbox'>&lt;div class='inner'>
&lt;em>You aren't allowed to read action source page.&lt;/em>&lt;/div>&lt;/div>
&lt;!--/notypo-->&lt;/div>&lt;br />
&lt;b>Deletions:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;!--notypo-->&lt;div class='floatbox'>&lt;div class='inner'>
&lt;ol type="1">&lt;li> About
&lt;ul>&lt;li> &lt;a name=".projects.ontowiki" href="http://ontowiki.net/Projects/OntoWiki#Overview" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki">Overview&lt;/a>
&lt;/li>&lt;li> &lt;a  href="http://ontowiki.net/Projects/OntoWiki#News" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki">News&lt;/a>
&lt;/li>&lt;li> &lt;a name=".projects.ontowiki.features" href="http://ontowiki.net/Projects/OntoWiki/Features" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Features">Features&lt;/a>
&lt;/li>&lt;li> &lt;a name=".projects.ontowiki.screenshots" href="http://ontowiki.net/Projects/OntoWiki/Screenshots" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Screenshots">Screenshots&lt;/a>
&lt;/li>&lt;li> &lt;a  href="http://ontowiki.net/Projects/OntoWiki#Publications" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki">Publications&lt;/a>
&lt;/li>&lt;/ul>&lt;/li>&lt;li> Get&amp;nbsp;started
&lt;ul>&lt;li> &lt;a name=".projects.ontowiki.demo" href="http://ontowiki.net/Projects/OntoWiki/Demo" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Demo">Demos / Screencast&lt;/a>
&lt;/li>&lt;li> &lt;a name=".projects.downloads" href="http://ontowiki.net/Projects/Downloads#OntoWiki" class="" title="Projects&amp;nbsp;/&amp;nbsp;Downloads">Download&lt;/a>
&lt;/li>&lt;li> &lt;a name=".projects.ontowiki.firststeps" href="http://ontowiki.net/Projects/OntoWiki/FirstSteps" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;First&amp;nbsp;Steps">First Steps&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://groups.google.com/group/ontowiki-user" target="_blank" title="Outgoing link (in new window)" class="outerlink">&lt;img src="http://ontowiki.net/themes/aksw2007/icons/world_link.png" alt="" class="contexticon" />User Mailinglist&lt;/a>
&lt;/li>&lt;li> &lt;a name=".projects.ontowiki.help" href="http://ontowiki.net/Projects/OntoWiki/Help" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Help">Online Help&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://code.google.com/p/ontowiki/issues/list" target="_blank" title="Outgoing link (in new window)" class="outerlink">&lt;img src="http://ontowiki.net/themes/aksw2007/icons/world_link.png" alt="" class="contexticon" />Report a&amp;nbsp;bug&lt;/a>
&lt;/li>&lt;/ul>&lt;/li>&lt;li> Specials
&lt;ul>&lt;li> &lt;a name=".projects.ontowiki.commandlineinterface" href="http://ontowiki.net/Projects/OntoWiki/CommandLineInterface" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Command&amp;nbsp;Line&amp;nbsp;Interface">Command Line&lt;/a>
&lt;/li>&lt;li> &lt;a name=".projects.ldap.backend" href="http://ontowiki.net/Projects/LDAP/Backend" class="" title="Projects&amp;nbsp;/&amp;nbsp;LDAP&amp;nbsp;/&amp;nbsp;Backend">LDAP Integration&lt;/a>
&lt;/li>&lt;li> &lt;a name=".projects.ontowiki.webdav" href="http://ontowiki.net/Projects/OntoWiki/WebDAV" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Web&amp;nbsp;DAV">WebDAV Support&lt;/a>
&lt;/li>&lt;li> &lt;a name=".projects.ontowiki.accesscontrol" href="http://ontowiki.net/Projects/OntoWiki/AccessControl" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Access&amp;nbsp;Control">Access Control&lt;/a>
&lt;/li>&lt;li> &lt;a name=".projects.ontowiki.webservices" href="http://ontowiki.net/Projects/OntoWiki/WebServices" class="" title="Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Web&amp;nbsp;Services">Web Services&lt;/a>&lt;/li>&lt;/ul>&lt;/li>&lt;/ol> &lt;/div>&lt;/div>
&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-05-16 18:17:37</title>
<link>http://ontowiki.net/Projects/OntoWiki/PluginCookbook/show?time=2008-05-16+18%3A17%3A37</link>
<description>&lt;div class="pageBefore">&lt;img src="http://ontowiki.net/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook" class="">/Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Plugin&amp;nbsp;Cookbook&lt;/a> of &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-05-16+18%3A17%3A37">2008-05-16 18:17:37&lt;/a> and &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-05-16+18%3A19%3A33">2008-05-16 18:19:33&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h655-1">&lt;/a>&lt;h3>How to&amp;nbsp;create a&amp;nbsp;new knowledge base template&lt;/h3>
Onto&amp;nbsp;Builder (modified: modelcontroller.php/createaction, templates/model/create.php (new file))&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-04-02 18:08:12</title>
<link>http://ontowiki.net/Projects/OntoWiki/PluginCookbook/show?time=2008-04-02+18%3A08%3A12</link>
<description>&lt;div class="pageBefore">&lt;img src="http://ontowiki.net/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook" class="">/Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Plugin&amp;nbsp;Cookbook&lt;/a> of &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-04-02+18%3A08%3A12">2008-04-02 18:08:12&lt;/a> and &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-05-16+18%3A17%3A37">2008-05-16 18:17:37&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">Ontobuilder (modified: resourcecontroller.php/getTabNavigation)&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-09 15:12:20</title>
<link>http://ontowiki.net/Projects/OntoWiki/PluginCookbook/show?time=2008-03-09+15%3A12%3A20</link>
<description>&lt;div class="pageBefore">&lt;img src="http://ontowiki.net/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook" class="">/Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Plugin&amp;nbsp;Cookbook&lt;/a> of &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-03-09+15%3A12%3A20">2008-03-09 15:12:20&lt;/a> and &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-04-02+18%3A08%3A12">2008-04-02 18:08:12&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h655-1">&lt;/a>&lt;h3>Overwrite Onto&amp;nbsp;Wiki Strings / Add&amp;nbsp;Plugin Strings&lt;/h3>
Simply put&amp;nbsp;a&amp;nbsp;&lt;tt>strings.ini&lt;/tt> file in&amp;nbsp;your plugin directory. The&amp;nbsp;plugin manager will include that to&amp;nbsp;the main strings data.&lt;br />
This is&amp;nbsp;a sample &lt;tt>strings.ini&lt;/tt>:&lt;br />
%%(ini)&lt;br />
[english]&lt;br />
; this overwrites the&amp;nbsp;title of&amp;nbsp;the login box&lt;br />
auth.login.login = My&amp;nbsp;own Login String&lt;br />
; this adds a&amp;nbsp;new string to&amp;nbsp;the strings object&lt;br />
myspecialplugin.info = This is&amp;nbsp;my special plugin ...&lt;br />
[german : english]&lt;br />
auth.login.login = My&amp;nbsp;eigener Login String&lt;br />
myspecialplugin.info = Dies ist&amp;nbsp;mein spezielles Plugin ...&lt;br />
[default : english]&lt;/div>&lt;br />
&lt;b>Deletions:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h655-1">&lt;/a>&lt;h3>Overwrite Onto&amp;nbsp;Wiki Strings&lt;/h3>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-03 12:47:28</title>
<link>http://ontowiki.net/Projects/OntoWiki/PluginCookbook/show?time=2008-03-03+12%3A47%3A28</link>
<description>&lt;div class="pageBefore">&lt;img src="http://ontowiki.net/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook" class="">/Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Plugin&amp;nbsp;Cookbook&lt;/a> of &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-03-03+12%3A47%3A28">2008-03-03 12:47:28&lt;/a> and &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-03-09+15%3A12%3A20">2008-03-09 15:12:20&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;ol type="4">&lt;li> Create a&amp;nbsp;new file called &lt;tt>Erfurt&amp;nbsp;Example&amp;nbsp;Plugin.ini-dist&lt;/tt>. This file will contain the&amp;nbsp;followin lines: &lt;!--notypo-->&lt;div class="code">&lt;pre>* The first section contains some metadata about the plugin&lt;span style="color:#4400DD">,&lt;/span> like author and description.
    * The&lt;span style="color:#226622">##switch## directive is very important. It tells the plugin manager&lt;span style="color:#4400DD">,&lt;/span> whether the plugin is active or not&lt;/span>
    * The&lt;span style="color:#226622">##folder## directive announces the folders&lt;span style="color:#4400DD">,&lt;/span> which are needed by the plugin. This is in our case only the root of the plugin dir&lt;/span>
    * The last section is very important&lt;span style="color:#4400DD">,&lt;/span> too. Here you announce your plugin to one or more events and tell the plugin manager&lt;span style="color:#4400DD">,&lt;/span> which class(es) and method(s) to use.
  5. Now we have to implement the plugin. Therefor we need to create a file called&lt;span style="color:#226622">##ErfurtExamplePlugin.php##&lt;span style="color:#4400DD">,&lt;/span> which contains our ##preAddAction## and ##postAddAction## methods&lt;span style="color:#4400DD">,&lt;/span> that we defined in the configuration file.&lt;/span>&lt;/pre>&lt;/div>&lt;!--/notypo-->(php)&lt;/li>&lt;/ol>&lt;/div>&lt;br />
&lt;b>Deletions:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;div class="indent">&lt;br />
&lt;/div>&lt;ol type="4">&lt;li> Create a&amp;nbsp;new file called &lt;tt>Erfurt&amp;nbsp;Example&amp;nbsp;Plugin.ini-dist&lt;/tt>. This file will contain the&amp;nbsp;followin lines:
&lt;/li>&lt;/ol>&lt;ul>&lt;li> The&amp;nbsp;first section contains some metadata about the&amp;nbsp;plugin, like author and&amp;nbsp;description.
&lt;/li>&lt;li> The&amp;nbsp;&lt;tt>switch&lt;/tt> directive is&amp;nbsp;very important. It&amp;nbsp;tells the&amp;nbsp;plugin manager, whether the&amp;nbsp;plugin is&amp;nbsp;active or&amp;nbsp;not
&lt;/li>&lt;li> The&amp;nbsp;&lt;tt>folder&lt;/tt> directive announces the&amp;nbsp;folders, which are&amp;nbsp;needed by&amp;nbsp;the plugin. This is&amp;nbsp;in our&amp;nbsp;case only the&amp;nbsp;root of&amp;nbsp;the plugin dir&amp;nbsp;&lt;/li>&lt;li> The&amp;nbsp;last section is&amp;nbsp;very important, too. Here you&amp;nbsp;announce your plugin to&amp;nbsp;one or&amp;nbsp;more events and&amp;nbsp;tell the&amp;nbsp;plugin manager, which class(es) and&amp;nbsp;method(s) to&amp;nbsp;use.
&lt;/li>&lt;/ul>&lt;ol type="5">&lt;li> Now&amp;nbsp;we&amp;nbsp;have to&amp;nbsp;implement the&amp;nbsp;plugin. Therefor we&amp;nbsp;need to&amp;nbsp;create a&amp;nbsp;file called &lt;tt>Erfurt&amp;nbsp;Example&amp;nbsp;Plugin.php&lt;/tt>, which contains our&amp;nbsp;&lt;tt>preAddAction&lt;/tt> and&amp;nbsp;&lt;tt>postAddAction&lt;/tt> methods, that we&amp;nbsp;defined in&amp;nbsp;the configuration file.&lt;/li>&lt;/ol>
 &lt;br />
&lt;div class="indent">&lt;/div>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-03 12:41:44</title>
<link>http://ontowiki.net/Projects/OntoWiki/PluginCookbook/show?time=2008-03-03+12%3A41%3A44</link>
<description>&lt;div class="pageBefore">&lt;img src="http://ontowiki.net/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook" class="">/Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Plugin&amp;nbsp;Cookbook&lt;/a> of &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-03-03+12%3A41%3A44">2008-03-03 12:41:44&lt;/a> and &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-03-03+12%3A47%3A28">2008-03-03 12:47:28&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;ol type="5">&lt;li> Now&amp;nbsp;we&amp;nbsp;have to&amp;nbsp;implement the&amp;nbsp;plugin. Therefor we&amp;nbsp;need to&amp;nbsp;create a&amp;nbsp;file called &lt;tt>Erfurt&amp;nbsp;Example&amp;nbsp;Plugin.php&lt;/tt>, which contains our&amp;nbsp;&lt;tt>preAddAction&lt;/tt> and&amp;nbsp;&lt;tt>postAddAction&lt;/tt> methods, that we&amp;nbsp;defined in&amp;nbsp;the configuration file.&lt;/li>&lt;/ol>
 &lt;br />
&amp;lt;?php&lt;br />
class Erfurt&amp;nbsp;Example&amp;nbsp;Plugin extends Erfurt_Plugin {&lt;br />
&lt;div class="indent">public function preAddAction(&amp;$data) {&lt;br />
&lt;div class="indent">&lt;br />
// do&amp;nbsp;some stuff before adding a&amp;nbsp;statement&lt;br />
&lt;br />
// e.g.:&lt;br />
// 1. check whether predicate is&amp;nbsp;rdfs:label&lt;br />
// 2a: false -&amp;gt; do&amp;nbsp;nothing&lt;br />
// 2b: true -&amp;gt; check whether object has&amp;nbsp;a&amp;nbsp;language&lt;br />
// 3a: true -&amp;gt; do&amp;nbsp;nothing&lt;br />
// 3b: false -&amp;gt; add&amp;nbsp;a&amp;nbsp;standard language tag... e.g. 'de'&lt;br />
&lt;br />
$stm = $data['statement'];&lt;br />
if&amp;nbsp;($stm-&amp;gt;getPredicate()-&amp;gt;getURI() === EF_RDFS_LABEL) {&lt;br />
&lt;div class="indent">$obj = $stm-&amp;gt;getObject();&lt;br />
&lt;br />
if&amp;nbsp;($obj-&amp;gt;getLanguage() === null) {&lt;br />
&lt;div class="indent">$obj-&amp;gt;setLanguage('de');&lt;br />
&lt;/div>}&lt;br />
&lt;/div>}&lt;br />
&lt;br />
return;&lt;br />
&lt;/div>&lt;br />
public function postAddAction(&amp;$data) {&lt;br />
&lt;div class="indent">&lt;br />
// do&amp;nbsp;some stuff after adding a&amp;nbsp;statement&lt;br />
&lt;br />
// e.g. log&amp;nbsp;statement serialization and&amp;nbsp;success status&lt;br />
$stm = $data['statement'];&lt;br />
$success = $data['success'];&lt;br />
&lt;br />
$logger = Zend_Registry::get('erfurtLog')-&amp;gt;info('ErfurtExamplePlugin &amp;ndash; Statement added (' . &lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">date('d.m.Y H:i:s') . '): ' . $stm-&amp;gt;toString() . &lt;br />
($success ? ' successfully added' : ' addition failed'));&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>
?&amp;gt;&lt;br />
&lt;ol type="6">&lt;li> We&amp;nbsp;are done. If&amp;nbsp;we want to&amp;nbsp;use our&amp;nbsp;plugin, we&amp;nbsp;need to&amp;nbsp;copy the&amp;nbsp;&lt;tt>Erfurt&amp;nbsp;Example&amp;nbsp;Plugin.ini-dist&lt;/tt> file to&amp;nbsp;&lt;tt>Erfurt&amp;nbsp;Example&amp;nbsp;Plugin.ini&lt;/tt>. That's all, no&amp;nbsp;our plugin should work as&amp;nbsp;we expect.&lt;/li>&lt;/ol>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-27 17:49:27</title>
<link>http://ontowiki.net/Projects/OntoWiki/PluginCookbook/show?time=2008-02-27+17%3A49%3A27</link>
<description>&lt;div class="pageBefore">&lt;img src="http://ontowiki.net/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook" class="">/Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Plugin&amp;nbsp;Cookbook&lt;/a> of &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-02-27+17%3A49%3A27">2008-02-27 17:49:27&lt;/a> and &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-03-03+12%3A41%3A44">2008-03-03 12:41:44&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h655-1">&lt;/a>&lt;h3>Write Erfurt Plugins&lt;/h3>
It&amp;nbsp;is also possible to&amp;nbsp;write plugins for&amp;nbsp;the Erfurt Semantic Web&amp;nbsp;Framework. A&amp;nbsp;Erfurt plugin is&amp;nbsp;useful in&amp;nbsp;case your Erfurt based application needs to&amp;nbsp;do some additional things when data is&amp;nbsp;manipulated through Erfurt. A&amp;nbsp;good example for&amp;nbsp;a&amp;nbsp;usecase of&amp;nbsp;such a&amp;nbsp;plugin is&amp;nbsp;cache invalidating when adding or&amp;nbsp;removing statements or&amp;nbsp;logging of&amp;nbsp;the same.&lt;br />
The&amp;nbsp;following example will give you&amp;nbsp;a&amp;nbsp;brief overview of&amp;nbsp;the steps you&amp;nbsp;will have to&amp;nbsp;through in&amp;nbsp;order to&amp;nbsp;build such a&amp;nbsp;plugin.&lt;br />
&lt;ol type="1">&lt;li> First of&amp;nbsp;all you&amp;nbsp;have to&amp;nbsp;decide, which events your plugin should handle. Have a&amp;nbsp;look at&amp;nbsp;the Event section of&amp;nbsp;the EventPluginArchitecture page in&amp;nbsp;order to&amp;nbsp;get a&amp;nbsp;up-to-date list of&amp;nbsp;triggered events. Our&amp;nbsp;example plugin will announce to&amp;nbsp;the &lt;tt>RDFSModel_add_pre&lt;/tt> and&amp;nbsp;&lt;tt>RDFSModel_add_post&lt;/tt> events. These Erfurt core events are&amp;nbsp;triggered in&amp;nbsp;the &lt;tt>add&lt;/tt>-method of&amp;nbsp;the &lt;tt>RDFSModel&lt;/tt>-class. The&amp;nbsp;first one&amp;nbsp;is&amp;nbsp;triggered before a&amp;nbsp;statement is&amp;nbsp;added and&amp;nbsp;the second one&amp;nbsp;after the&amp;nbsp;addition of&amp;nbsp;a statements to&amp;nbsp;the model. When a&amp;nbsp;plugin announces to&amp;nbsp;one of&amp;nbsp;these events, it&amp;nbsp;gets a&amp;nbsp;reference to&amp;nbsp;the data, which actually is&amp;nbsp;an array containing a&amp;nbsp;key &lt;em>statement&lt;/em> with the&amp;nbsp;statement as&amp;nbsp;payload. The&amp;nbsp;&lt;tt>RDFSModel_add_post&lt;/tt> event has&amp;nbsp;a&amp;nbsp;additional key&amp;nbsp;&lt;em>success&lt;/em>, which indicates whether the&amp;nbsp;addition was&amp;nbsp;successful or&amp;nbsp;failed.
&lt;/li>&lt;li> Open the&amp;nbsp;&lt;tt>plugins/&lt;/tt> folder, which is&amp;nbsp;located under your &lt;tt>Erfurt/&lt;/tt> directory (Have a&amp;nbsp;look at&amp;nbsp;the PluginCookbook#h??? section to&amp;nbsp;learn about setting up&amp;nbsp;custom plugin directories.).
&lt;/li>&lt;/ol>&lt;div class="indent">&lt;br />
&lt;/div>&lt;ol type="3">&lt;li> Create a&amp;nbsp;new folder with the&amp;nbsp;name of&amp;nbsp;your plugin. In&amp;nbsp;our case this will be&amp;nbsp;&lt;tt>Erfurt&amp;nbsp;Example&amp;nbsp;Plugin&lt;/tt>.
&lt;/li>&lt;li> Create a&amp;nbsp;new file called &lt;tt>Erfurt&amp;nbsp;Example&amp;nbsp;Plugin.ini-dist&lt;/tt>. This file will contain the&amp;nbsp;followin lines:&lt;/li>&lt;/ol>
[general]&lt;br />
name = &amp;#147;Erfurt Example Plugin&amp;#148;&lt;br />
description = &amp;#147;This is&amp;nbsp;a example Erfurt plugin. It&amp;nbsp;will do&amp;nbsp;some example stuff when a&amp;nbsp;statements is&amp;nbsp;added.&amp;#148;&lt;br />
author = &amp;#147;Philipp Frischmuth&amp;#148;&lt;br />
url&amp;nbsp;= "&lt;a href="http://ontowiki.net" target="_blank" title="Outgoing link (in new window)" class="outerlink">&lt;img src="http://ontowiki.net/themes/aksw2007/icons/world_link.png" alt="" class="contexticon" />http://ontowiki.net&lt;/a>"&lt;br />
switch = &amp;#147;on&amp;#148; ; is&amp;nbsp;plugin active? on|off&lt;br />
folder.0 = &amp;quot;.&amp;quot;&lt;br />
announce.0.event = &amp;#147;RDFSModel_add_pre&amp;#148;&lt;br />
announce.0.class = "Erfurt&amp;nbsp;Example&amp;nbsp;Plugin"&lt;br />
announce.0.method = &amp;#147;preAddAction&amp;#148;&lt;br />
announce.1.event = &amp;#147;RDFSModel_add_post&amp;#148;&lt;br />
announce.1.class = "Erfurt&amp;nbsp;Example&amp;nbsp;Plugin"&lt;br />
announce.1.method = &amp;#147;postAddAction&amp;#148;&lt;br />
&lt;ul>&lt;li> The&amp;nbsp;first section contains some metadata about the&amp;nbsp;plugin, like author and&amp;nbsp;description.
&lt;/li>&lt;li> The&amp;nbsp;&lt;tt>switch&lt;/tt> directive is&amp;nbsp;very important. It&amp;nbsp;tells the&amp;nbsp;plugin manager, whether the&amp;nbsp;plugin is&amp;nbsp;active or&amp;nbsp;not
&lt;/li>&lt;li> The&amp;nbsp;&lt;tt>folder&lt;/tt> directive announces the&amp;nbsp;folders, which are&amp;nbsp;needed by&amp;nbsp;the plugin. This is&amp;nbsp;in our&amp;nbsp;case only the&amp;nbsp;root of&amp;nbsp;the plugin dir&amp;nbsp;&lt;/li>&lt;li> The&amp;nbsp;last section is&amp;nbsp;very important, too. Here you&amp;nbsp;announce your plugin to&amp;nbsp;one or&amp;nbsp;more events and&amp;nbsp;tell the&amp;nbsp;plugin manager, which class(es) and&amp;nbsp;method(s) to&amp;nbsp;use.
&lt;/li>&lt;/ul>&lt;div class="indent">&lt;/div>&lt;/div>&lt;br />
&lt;b>Deletions:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h655-1">&lt;/a>&lt;h3>Write Action Plugins&lt;/h3>
vakantieland, Ontobuilder&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-02-27 15:47:47</title>
<link>http://ontowiki.net/Projects/OntoWiki/PluginCookbook/show?time=2008-02-27+15%3A47%3A47</link>
<description>&lt;div class="pageBefore">&lt;img src="http://ontowiki.net/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Comparison for &lt;a  href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook" class="">/Projects&amp;nbsp;/&amp;nbsp;Onto&amp;nbsp;Wiki&amp;nbsp;/&amp;nbsp;Plugin&amp;nbsp;Cookbook&lt;/a> of &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-02-27+15%3A47%3A47">2008-02-27 15:47:47&lt;/a> and &lt;a href="http://ontowiki.net/Projects/OntoWiki/PluginCookbook?time=2008-02-27+17%3A49%3A27">2008-02-27 17:49:27&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Additions:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h655-1">&lt;/a>&lt;h3>Access to&amp;nbsp;the active resource / resource list&lt;/h3>&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
